# Meine Erfahrung und mein Tipp



## Tashtego (3. Jan 2020)

Ich hab mich mit der JMonkey Engine etwas beschäftigt. Mit Swing früher, mit JavaFx kurz, mit Java3D früher,.... Ich hab so ziemlich alles mal ausprobiert, weil ichs auf Biegen und Brechen mit Java machen wollte. Ich liebe Kreativität und die Idee, Spiele zu programieren.

Dann hab ich irgendwann mal C# angefangen und Unity. Und ich würde es nie wieder anders machen. Ich weiß, das ist ein Java Forum. Und Java ist super. Aber wer wirklich Spiele programmieren will, kommt an Unity (oder zur Not UnrealEngine) nicht vorbei. Die Vorteile von Unity sind:

- WAHNSINNIG gute Doku inkl. vieler Video-Tutorials
- Kostenlos
- Geschwindigkeitsboost 1000% im Vergleich zu Java-Aproaches.

Da hab ich Fortschritte gemacht, die ich vorher nicht für möglich hielt. Dann kommt aber das Erwachen. Der große "Haken". Die Skills zum Spiele-Entwickeln kann man dann in Ansätzen erlernen. Aber dann merkt man, man braucht viele 3D Modelle -> Blender lernen. Man braucht Texturen, Grafiken, Sounds... 

Faktisch kann man mit Ausnahme von hässlichen 0815 2D Sachen nicht wirklich "alleine" ein Spiel programmieren. Außer man hat keine Freizeit mehr für 5 Jahre. Allerdings lohnt es sich ja vielleicht für den einen oder anderen, in ein bestehendes Open Source Game eines Teams einzusteigen.

Daher mein Tipp: Unity3D


----------



## Javinner (4. Jan 2020)

Wer ein Steam-Account hat kann sich GameBuilder von Google runterladen, eine sehr interessante Geschichte


----------



## JuKu (4. Jan 2020)

Es kommt drauf an, was man machen will.
Natürlich ist es IMMER (erstmal) einfacher, eine Game Engine zu verwenden, als die Dinge selbst in Java zu schreiben.
ABER Unity hat auch viele Nachteile, z.B. Performance. Die Performance von Unity ist bei weitem nicht so gut, wie man sie mit Java oder C++ hinbekommen könnte. Man muss natürlich wissen, was man tut! Wenn man z.B. keine Ahnung hat, wie man GC Pressure in Java verhindert, dann wird die Performance von Java recht schnell einbrechen, da der GC dann nur noch damit zu tun hat, die ganzen Objekte, die im Gameloop erstellt wurden, aufzuräumen. Und je nach Java Version ruckelt dann das Spiel recht heftig, weil der GC dann das Spiel für ein paar ms pausieren muss.

C# ist in Unity übrigens eine Scriptsprache (wird meines Wissens interpretiert) und keine Programmiersprache (wie beim Standard C#).
In Sachen Performance ist die Unreal Engine der Unity Engine übrigens deutlich überlegen, soweit ich weiß.



Tashtego hat gesagt.:


> Aber wer wirklich Spiele programmieren will, kommt an Unity (oder zur Not UnrealEngine) nicht vorbei.


Das stimmt so nicht!
Hier muss man *zwischen Hobby- & professionellen Entwicklern unterscheiden*!

*Die meisten professionellen Spiele von großen Game Studios werden NICHT in Unity oder Unreal Engine geschrieben*!
Das beste Beispiel wäre hier *Anno*. Ubisoft schreibt für fast jedes ihrer Anno Spiele eine eigene Game Engine oder verbessern sie.
Das hat Burkhard Ratheiser (*Executive Producer von Anno* bei Ubisoft) hier sehr schön beschrieben:
https://www.makinggames.biz/feature/the-evolution-of-the-anno-engine9646.html

EA geht einen ähnlichen Weg, das kann man im Buch "Game Coding Complete" sehr eindrucksvoll nachlesen.
Es ist eben nicht alles so einfach, wie man manchmal denkt.
Und beide beschreiben auch, wieso eine fertige (allgemeine Game Engine wie Unity) für sie überhaupt nicht in Frage kam.

Aber wenn man natürlich erstmal nur Spiele entwickeln lernen will, kommt man mit Unity schneller voran, das stimmt.


----------



## JuKu (5. Jan 2020)

Was mir gerade noch aufgefallen ist:
Auch die MMOs Wurm Unlimited und Runescape sind komplett in Java geschrieben worden.
Ich erwähne das nur für den Fall, falls jemand auf die Idee kommt, dass Java für richtig große Spiele Projekte nicht verwendbar wäre.
Das ist Quatsch, wie diese Beispiele (und noch viele andere große Spiele) zeigen.

Und Sry für die neue Antwort, ich konnte den alten Beitrag leider nicht mehr bearbeiten.


----------



## Tashtego (6. Jan 2020)

Naja ok JuKu ich geb dir schon recht. Wenn es jemand so dermaßen drauf hat, ne eigene Engine zu schreiben, braucht er kein Unity mehr. NoMansSky hat auch ne eigene Engine. Aber ich hab das mehr aus Sicht eines Hobby-/Einsteiger-Gamedev geschrieben. Und jemand, der erst einsteigt und ein kleines nettes Game selbst machen und veröffentlichen will, fängt als ersten Schritt nicht mit einer Engine an


----------

