Die beste Engine gibt es wohl wirklich nicht. Unity ist sehr gut für Einsteiger geeignet. Man durchschaut schnell, wie die Dinge laufen und kann relativ schnell und einfach zu guten Ergebnissen kommen. Das Scripten von Objekten ist sehr einfach und mit grundlegenden Programmierkenntnissen, kann man denke ich schnell nette Spiele entwickeln.
Die Unreal Engine ist im Einstieg von meinem persönlichen Gefühl her deutlich komplexer und richtet sich mehr an erfahrene Entwickler. Anders als Unity bietet Unreal eben nicht nur Objekte, die man mit ein paar Komponenten ausstatten kann, sondern man kann mit den Objekten eben so ziemlich alles machen, was man sich vorstellen kann. Wenn nicht im Editor, dass eben direkt in C++. Unreal lässt dich nicht nur Scripts für Objekte schreiben, sondern du kannst wirklich das ganze Objekt nach deinen eigenen Vorstellungen anpassen. Überhaupt bekommst du beim Programmieren einfach die kompletten Projektklassen, die du dann eben selbst verknüpfen musst (was ist die Basis-Klasse für das Spiel, welche Klasse kümmert sich um den Input, wie ist das dann mit dem Spieler verknüpft, etc.). Mit lediglich grundlegenden Programmierkenntnissen kommt man bei Unreal nicht weit, wenn man wirklich programmieren möchte. Man sollte C++ programmieren können und sich auch mit Programmdesign auskennen. Unreal bietet einem da eben alle Möglichkeiten, verlangt aber auch, dass man dann selbst weiß, was man tut. Bei Unity schreibt man eben ein Script, das irgendwelche Events verarbeitet und Unity, wird dann schon wissen, wie dieses Script in den Ablauf einzuhängen ist. Die Unreal Engine bietet einem programmier-technisch eben wirklich alle Möglichkeiten. Das kann ein Vorteil sein - muss es als Einsteiger aber nicht unbedingt. Das "Alles" geht sogar so weit, dass man als Käufer den kompletten SourceCode der Engine bekommt. Wenn man also an der Engine etwas ändern möchte oder eigene Features einbauen möchte, ist auch das ohne Probleme möglich (dazu sollte man aber wirklich Ahnung haben, von dem, was man tut
).
Dennoch bringt die Unreal Engine ein recht cleveres Konzept mit, für Einsteiger, die sich nicht in den unendlichen Weiten der C++-Klassen verlieren wollen - Blueprints. Ich war zuerst etwas skeptisch wg. der Ankündigung man würde programmieren, indem man irgendwelche Knoten zusammenhängt, aber wenn man es selbst ausprobiert funktioniert es überraschend gut. Die Idee dahinter ist, dass jeder Befehl und jede Variable durch einen Knoten dargestellt wird und man baut sich dann einen Programm-Ablaufsbaum auf. Das funktioniert ganz gut und so kann man auch ohne Programmierkenntnisse schnell Ergebnisse erzielen. Man kann auch Teile mit C++ programmieren und andere Teile durch Blueprints darstellen.
Graphisch wurde ja schon gesagt, dass man zwei Engines nicht unbedingt vergleichen kann, weil letztlich die verwendeten Modelle, Texturen und Shader die Grafik ausmachen. Somit ist man tendenziell in der Lage mit allen Engines sehr hübsche Ergebnisse zu erzielen. Dennoch habe ich persönlich das Gefühl, dass die Unreal Engine einem in diesem Punkt große Vorteile an die Hand gibt. Denn nicht nur die Spiellogik lässt sich durch Blueprints darstellen, sondern auch Materialien. Und das finde ich persönlich ziemlich cool. Man kann sich quasi extrem schnell seinen Shader zusammen-stellen und sieht sofort, ob das Ergebnis dem entspricht, was man sich vorstellt. Die Möglichkeiten, die man dabei hat sind sind ziemlich umfassend. Dadurch gibt einem die Unreal Engine das Werkzeug an die Hand, das man braucht, um möglichst schnell optisch ansprechende Materialien zu erzeugen, was der Optik eines Spiels sehr gut tut.
Zur CryEngine kann ich nichts sagen, weil ich sie nicht ausprobiert habe. Welche Engine von Unity und Unreal besser geeignet ist, lässt sich pauschal auch nicht beantworten. Unity halte ich für einstiegsfreundlicher und gerade bei "kleineren" Projekten durchaus empfehlenswert, weil man damit extrem schnell voran kommt. Bei Unreal braucht es etwas mehr Einarbeitungszeit, aber dafür gibt sie dem Entwickler wirklich alle Möglichkeiten - je nach Entwickler muss das aber eben kein Vorteil sein
. Die Unreal Engine ist, so wirkt es auf micht, vor allem für "größere" Teams ausgelegt. Durch das Blueprint-System hat auch ein Level- oder Game-Designer die Möglichkeit schnell zu testen, ob bestimmte Teile Spaß machen, ohne Programmierkenntnisse haben zu müssen. So können gerade zu Anfang sehr viel parallel verteilt werden. Epic Games werkelt zur Zeit ja Unreal Tournament und als Engine-Käufer hat man ja Zugriff auf das Entwicklungs-Repo und auch dort ist, wie ich finde genau das zu erkennen. Die Programmierer kümmern sich zu Anfang erst mal darum, dass das Spiel im Netzwerk laufen kann (Waffensystem, Bewegung, etc.). Die Level-Designer basteln nebenbei schon fleißig erste Map-Entwürfe. Das Game-Design testet verschiedenes Waffenverhalten durch Blueprints, etc.
Also gerade bei größeren Teams kann ich mir vorstellen, dass diese Engine enorm den professionellen Workflow unterstützt.