So, ich habe mir die letzten 6 Stunden mal die Cry Engine intensiver angeschaut und will dazu noch ein paar weitere Worte verlieren.
Der Anlass, dass ich mir die CryEngine nochmal näher angeschaut habe war, weil eine neue Version mit DirectX 11 Features veröffentlicht wurde.
Zu Beginn musste ich erstmal feststellen, dass der Editor meinen PC aufhängt, wenn ich den Editor starte... naja gut, nach ewiger Sucherei habe ich einen Workaround gefunden und erfahren, dass es ein genereller Bug ist, der bei ATI GPUs auftritt.
Danach konnte ich endlich beginnen mich mit dem Editor zu beschäftigen und mir die Features anzuschauen.
Zweifelsohne ist die Grafikqualität bei der Cryengine top und stellt in Sachen Outdoor und Realtime Beleuchtung sogar die Unreal Engine in den Schatten. Der Deferred Renderer hat zwar bereits im Idle Mode einen sehr großen Einfluss auf die Performance, allerdings ist die Belohnung für das "Qüalen der GPU" eine wunderschöne Grafik.
Neben den neuen DirectX 11 Featuren wie Tesselation, sind auch haufenweise Spezialeffekte, sowie ein detailliertes Ozeansystem integriert. Interessant ist ebenfalls das integrierte Atmospheric Scattering und unterschiedliche Tageszeiten.
Nachdem ich dann angefangen hatte wirklich mal was zusammenzubasteln, merkt man doch einen großen Unterschied zu Unity. Es ist deutlich komplexer und nicht so intuitiv die entsprechenden Dinge zu finden um beispielsweise ein Terrain zu erstellen und zu texturieren. Doch das Terrainsystem ist enorm mächtig, zwar ist es nicht so einfach möglich unendlich große Welten darzustellen, doch 8km*8km Terrain sind mit maximaler Detailstufe (1m = 1 Heightmap Einheit) durchaus machbar. Wenn man einmal raus hat, wie das erstellen und texturieren funktioniert so ist dies doch enorm von nutzen und im Vergleich zu Unity viel mächtiger.
Als ich dann ein halbwegs gutes Terrain hatte, machte ich mich daran einige Objekte in der Welt zu platzieren und dies war erstaunlich komfortabel und verhielt sich, wie man es aus 3ds Max und anderen Modelling Tools kennt. Die Objekte kann man an das Terrain alignen und sogar leicht auf anderen Objekten platzieren, wobei sie hier die Normalen des anderen Objekts nutzen um sich selbst auszurichten.
Der Editor besitzt ebenfalls einige nützlichen Einstellungen sowie zuweisbare Keyboard Shortcuts, doch es gibt ebenfalls enorm viele "Subprogramm", wie beispielsweise den Asset Browser, Material Editor, Visual Script System und Animation Nodes, etc.. Diese kann man natürlich alle gebrauchen, doch sie machen es einem Einsteiger nicht gerade leicht...
Bezüglich des eigenen Programmierens:
In der CryEngine gibt es drei Arten zu programmieren bzw. zu skripten.
- Klassischerweise lässt sich in C++ programmieren hierbei wird für eine GameDll programmiert, die sowohl der Editor als auch das Game zum darstellen der Spiellogik nutzt. Wenn man den bereits vorhanden Source Code öffnet, so wird man erstmal von mindestens 300 Source+Header Dateien erschlagen. Da es bedauerlicherweise nicht sehr gut kommentiert ist und meiner Meinung nach sehr altmodisch programmiert ist habe ich es schnell wieder sein lassen. Es wird Hungarian Notation verwenden und Haufenweise Makros, wo man sie eher nicht braucht.
- Mit Lua lassen sich simple Skripts erstellen, die beispielsweise das Verhalten der AI bestimmen, dies habe ich mir aber nicht näher angeschaut.
- Ebenfalls ist es möglich den Visuellen Node Editor zu nutzen, so wie man ihn u.U. bereits aus dem UDK kennt. Ein enorm mächtiges Tool, zumal sich in C++ neue Nodes definieren lassen.
Nachdem mir C++ nicht sehr zugesagt hatte, habe ich mir kurz Crymono angeschaut, mit dem es möglich sein soll C# Code in der Cryengine zu schreiben. Doch leider funktioniert es bei mir nicht, und ich kann mich deshalb dazu nicht weiter äußern.
Vorhin habe ich dann versucht ein 3D Modell in die Cryengine zu importieren, was mMn viel zu kompliziert ist und u.a. ein Exporter Skript für 3dsMax oder Maya erfordert. Außerdem habe ich bis jetzt nicht hinbekommen mein Material mit dem 3D Modell zu verknüpfen.
Fazit: Die Cryengine ist auf jeden Fall ein klasse Stück Software, doch für Hobbyentwickler ist sie bisher eher nicht geeignet, da es einfach noch sehr wenig Tutorials und Dokumentation (besonders zum Programmieren) gibt. Außerdem ist die Verwendung des Editors auf den ersten Blick enorm komplex. Ich finde, dass die Engine eher für größere Teams mit klaren Rollenverteilungen geeignet ist und man sie dann auch wirklich effektiv nutzen kann.