Godot Engine

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche
Godot
Logo der Godot-Engine
Basisdaten
Entwickler OKAM Studio,
die Godot-Gemeinschaft
Aktuelle Version 2.1.4[1]
(27. August 2017)
Betriebssystem Linux (X11), Windows, macOS, FreeBSD, OpenBSD, Haiku (Entwicklungs- und Zielplattformen), Android, iOS, Blackberry 10 (nur Zielplattformen), Web (HTML5) (via Emscripten)
Programmiersprache C++, GDScript (ähnlich zu Python)[2]
Kategorie Spiel-Engine
Lizenz MIT-Lizenz
deutschsprachig Ja
godotengine.org

Godot ist eine freie Spiel-Engine. Sie besteht aus einem grafischen Editor, in dem Spielelemente in einer Baumstruktur organisiert und auf einer 2D- oder 3D-Leinwand angeordnet werden. Spiellogik wird üblicherweise in GDScript[2] implementiert, einer eigenen integrierten Skriptsprache, die Python ähnelt.

Geschichte und Entstehung[Bearbeiten | Quelltext bearbeiten]

Nach vieljähriger interner Entwicklung und Verwendung der Godot-Engine von OKAM-Studio, wurde im Februar 2014 der gesamte Quellcode des Projekts unter der MIT-Lizenz auf GitHub freigegeben[3]. Unter der Leitung von Juan Linietsky und Ariel Manzur (weiterhin finanziert von OKAM-Studio) und mit Hilfe einer wachsenden Gemeinschaft externer Interessenten wurde am 15. Dezember 2014 die finale Version 1.0 veröffentlicht[4]. Das erste große stabile Update, das die 2D-Engine stark erweitert, erschien als Version 1.1 am 21. Mai 2015[5].

Version 2.0 wurde am 23. Februar 2016 veröffentlicht[6] und enthält eine an vielen Stellen überarbeitete Benutzeroberfläche, welche durch Registerkarten (Tabs) das Arbeiten an mehreren Szenen stark vereinfacht, einen verbesserten Debugger (inkl. Debugging auf externer Hardware) und das Persistent-Live-Editing (der Editor kann in ein laufendes Spiel eingreifen und getätigte Änderungen bleiben nach Spielende bestehen). Zeitgleich wurde eine neue überarbeitete offizielle Webseite vorgestellt. Version 2.1 überarbeitet die Benutzeroberfläche erneut (verbesserte Ergonomie, Lokalisierungen und Anpassungsmöglichkeiten) und bietet weitere Funktionen wie einen integrierten Profiler, Unterstützung von OTF- und TTF-Schriftarten, Verbesserungen am Live-Editing und einer eingebauten Funktion Medieninhalte und Projekte aus dem Internet zu laden.[7]

Technische Eigenschaften[Bearbeiten | Quelltext bearbeiten]

Das Szenen-System[Bearbeiten | Quelltext bearbeiten]

In Godot werden Szenen in einer Baumstruktur organisiert. Die Elemente werden Nodes genannt und haben jeweils genau ein Eltern-Node und beliebig viele Kinder-Nodes. Sämtliche Objekte in Godot sind Nodes und eine Szene ist die Summe aller Nodes und ihre Anordnung im Szenenbaum (scenetree). Große Flexibilität erreicht dieser Aufbau, da in Godot auch Sub-Szenen als Nodes an beliebigen Stellen im Szenen-Baum eingefügt werden können und somit ein großes Abstraktionsniveau und hohe Ordnung erreicht werden können. Ab Version 2.0 ist es zusätzlich möglich eine Vererbungshierarchie zwischen Szenen aufzubauen. Änderungen in der Basisszene werden dabei sofort in allen abgeleiteten Szenen verfügbar.

Programmierung[Bearbeiten | Quelltext bearbeiten]

Als Skriptsprache in Godot dient das eigens entwickelte GDScript[2]. GDScript ähnelt syntaktisch stark Python, ist jedoch teils angepasst worden, um besser in die Engine integriert zu werden. Skripte können somit direkt den Nodes, die in Editor erstellt wurden, zugeordnet werden und Variablen können vom Quelltext in den Editor exportiert werden. Die integrierte Editorkomponente verfügt über Syntaxhervorhebung und ein fortgeschrittenes Autovervollständigungssystem. Zusätzlich zu GDScript können Programme auch in C++ geschrieben werden. Für Shader-Programmierung wurde eine gesonderte Skriptsprache integriert, die sich an GLSL orientiert[8]. Zur Fehlerbehandlung und Leistungsmessung ist ein integrierter Debugger vorhanden.

Animationssystem[Bearbeiten | Quelltext bearbeiten]

Godot verfügt über ein tief integriertes Animationssystem. Hängt man im Szenenbaum die Node „Animation“ ein, so können sämtliche Attribute der anderen Nodes im Szenenbaum mittels Keyframes zur Laufzeit verändert werden. Des Weiteren können mit Animationen auch Funktionen gezielt aufgerufen werden, was es erlaubt, viel Programmierlogik in den Editor zu übertragen.

Separate Engine für 2D und 3D[Bearbeiten | Quelltext bearbeiten]

In Godot können 2D-Anwendungen vollkommen ohne Kenntnisse über 3D-Programmierung erstellt werden, da die 2D-Engine getrennt läuft und keine Projektion der 3D-Engine ist. Dies gilt auch für die integrierte Physik-Engines (wobei deren API gleich gehalten ist). Bei Bedarf lassen sich 2D-Szenen dennoch in die 3D-Engine einbetten. 3D-Szenen lassen sich zum größten Teil in externer 3D-Grafiksoftware anfertigen (inklusive Animationen). Eine große Bibliothek von GUI-Elementen (genannt Control) lassen sich sowohl in 2D als auch in 3D verwenden. Die integrierte Physik-Engine arbeitet in Pixelkoordinaten, nicht im metrischen System.

Plattformunabhängigkeit[Bearbeiten | Quelltext bearbeiten]

Godot ist neben der Blender-Spiel-Engine eine der wenigen Spiel-Engines, die Spielentwicklung neben Windows auch vollständig in Linux, Mac OS X und weiteren Betriebssystemen erlauben. Erstellte Spiele können neben den genannten Desktopbetriebssystemen auch nach Android, Blackberry 10 und als HTML5-Webanwendung exportiert werden. Des Weiteren existieren projekt-externe Export-Templates in unterschiedlicher Stabilität und Lizenz für PlayStation 3, PlayStation Vita, Nintendo 3DS, Windows Runtime und iOS.

Dokumentation[Bearbeiten | Quelltext bearbeiten]

Godot liefert eine integrierte Dokumentation aller Klassen und Funktionen direkt im Editor. Eine illustrative Einführung und detaillierte Beschreibungen befinden sich im Wiki der Projektseite. Allerdings sind zum gegenwärtigen Zeitpunkt (Februar 2016) sämtliche Dokumentationen stark unvollständig (insbesondere die Integrierte), so dass es sich empfiehlt, die offiziellen Beispielprogramme durchzulesen, um einen umfassenden Eindruck von der Funktionsweise Godots zu erhalten. Auf der offiziellen Webseite befindet sich zusätzlich ein durch die Gemeinschaft organisiertes Frage-Antwort-System (inkl. generierten FAQ).

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise (englisch)[Bearbeiten | Quelltext bearbeiten]

  1. api.github.com. (abgerufen am 27. August 2017).
  2. a b c [1]. Offizielle Dokumentation zu GD-Script
  3. [2] Erster Eintrag auf der Projektseite
  4. [3] Godot-Engine als Version 1.0 veröffentlicht
  5. [4] Godot-Engine 1.1 veröffentlicht
  6. [5]Godot-Engine erreicht stabile Version 2.0
  7. [6]Godot erreicht stabile Version 2.1
  8. [7] Offizielle Dokumentation der Shading Language