}

Die Godot Engine

Im April habe ich die Godot Engine entdeckt. Es handelt sich dabei um eine Game Engine die unter einer permissiven MIT-Lizenz freigegeben wurde. Die Engine kann sowohl 2D als auch 3D. 2D ist dabei nicht nur die Nutzung des 3D Teils mit spezieller orthografischer Perspektive sondern eine speziellen auf 2D optimierten Teil der Engine.

Die Engine liegt mittlerweile in Version 1.1 vor und bietet bereits sehr viele Features und viele Platformen. Sowohl die Entwicklungsumgebung, als auch die Runtime sind für Windows, MacOS X und Linux verfügbar. Die Runtime ist zusätzlich bereits für iOS und Android verfügbar. Eine Runtime für HTML5 sowie für Windows Phone und Windows Store Apps ist in Entwicklung.

Godot Entwicklungsumgebung Godot Entwicklungsumgebung

Die Engine bietet neben einem visuellen Szenen-Editor auch einen Skript-Editor mit Syntaxhervorhebung und Autovervollständigung. Wobei letztere auf Grund des Konzepts eine Szene in viele Teilszenen zu zerlegen nicht immer hilfreich ist, da er nicht alle Nodes aus eingebetteten Szenen oder Szenen in die die aktuelle Szene eingebettet ist kennt. Des Weiteren hat Godot einen integrierten Debugger, mit dem man eine Menge Fehler leicht debuggen kann, der allerdings nicht das Niveau eines Visual Studio Debuggers oder ähnlichem erreicht. Am meisten vermisse ich im Debugger die Möglichkeit individuelle Watches zu setzen. Oft ist es hilfreich entsprechende Debug-Ausgaben in der integrierten Konsole vorzunehmen. So kann man während das Spiel läuft Informationen über den internen Status erhalten.

An Features zur einfachen Umsetzen des eigenen Spiels bietet die Godot Engine unter anderem umfangreiche Animationsmöglichkeiten, bei denen quasi alle Eigenschaften der Objekte animiert werden können, 2D und 3D Physik sowie eine große Bibliothek mit einfach verwendbaren UI-Elementen.

Die Programmierung erfolgt in einer an Python angelehnten eigenen Skriptsprache mit dem Namen [GDScript](https://github.com/okamstudio/godot/wiki/gdscript). Diese ist schnell und einfach zu erlernen. Sollte die Performance der Skriptsprache einmal nicht ausreichen, kann theoretisch auch auf C++ zurückgegriffen werden, dies habe ich jedoch noch nicht ausprobiert.

In Sachen Performance bin ich gerade von der Entwicklungsumgebung von Godot begeistert: Diese läuft absolut flüssig mit sehr niedriger CPU-Last auf meinem Tablet-Mini-Laptop-Convertible. Obwohl dieses einen Ultra-Low-Voltage Core i5 4300Y (Dual-Core 1,6Ghz mit Intel HD4200 Grafik) hat. Sowohl CPU als auch Speicherbedarf sind sehr moderat, zumindest bei den von mir bisher bearbeiteten Szenen. Und auch die Unterstützung der Intel Grafik ist vorbildlich: In der Vergangenheit musste ich feststellen, dass manche andere Game Engine auf Intel Grafik Darstellungsfehlern oder anderen Problemen aufweist. Dies konnte ich in Godot noch nicht beobachten. Hier sieht auch auf der HD4200 alles so aus wie es aussehen sollte.

Die Dokumentation der Features und APIs könnte jedoch besser sein. Hier gibt es zwar schon eine große Menge an Dokumentation aber es gibt noch wesentlich mehr Funktionen in der API. Es gibt allerdings ein aktives Forum, eine Facebook Gruppe und einen ziemlich aktiven IRC-Chat. Dort kann man für fast jede Frage eine Antwort finden. Oder man schaut einfach in den offenen C++ Source.

Die Weiterentwicklung schreitet ziemlich aktiv voran. Es werden dabei Community Wünsche berücksichtigt und Features bzw. deren Ausgestaltung in der Community zur Diskussion gestellt. Durch die MIT-Lizenz gibt es auch keine hochgradig komplexen rechtlichen Einschränkungen beim Einsatz der Engine bzw. beim Veröffentlichen der Spiele. Wo man bei anderen Engines das Gefühl hat ein Team von auf Urheber- und Lizenzrecht spezialisierte Anwälte zu benötigen um ein Spiel konform zum Lizenzvertrag der Engine zu veröffentlichen ist die von der Godot Engine genutzte MIT-Lizenz äußerst einfach und großzügig.

Dafür ein ganz großes Dankeschön an die beiden Entwickler der Engine: Juan Linietsky und Ariel Manzur