Godot Engine

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Godot
Logo der Godot-Engine
Basisdaten
Entwickler Juan Linietsky, Ariel Manzur
die Godot-Gemeinschaft
Aktuelle Version 3.0
(29. Januar 2018)
Betriebssystem Linux (X11), Windows (Win32 + UWP), macOS, FreeBSD, OpenBSD, Haiku (Entwicklungs- und Zielplattformen), Android, iOS (nur Zielplattformen), Web (WebAssembly, WebGL 2.0)
Programmiersprache C++, GDScript[1], C#
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[1] implementiert, einer eigenen integrierten Skriptsprache, die speziell an die Bedürfnisse von Spiel-Engines angepasst wurde.

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[2]. Unter der Leitung von Juan Linietsky und Ariel Manzur und mit Hilfe einer wachsenden Gemeinschaft externer Interessenten wurde am 15. Dezember 2014 die finale Version 1.0 veröffentlicht[3]. Das erste große stabile Update, das die 2D-Engine stark erweitert, erschien als Version 1.1 am 21. Mai 2015[4].

Version 2.0 wurde am 23. Februar 2016 veröffentlicht[5] 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.[6]

Version 3.0, erschienen am 29. Januar 2018 nach anderthalb Jahren Entwicklung[7], bezeichnet die erste stabile Version der Godot-Engine, nachdem große Teile von Grund auf neu geschrieben wurden. Viel Arbeit wurde in die 3D-Engine investiert, die jetzt Full Principled BSDF Rendering, Globale Beleuchtung (GI-Probes und Lightmaps) und GPU-berechnete Partikeleffekte beherrscht. Zusätzlich wurden viele Grafikeffekte integriert und die Unterstützung externer Dateiformate erweitert. Mit GDNative bietet Godot eine Schnittstelle um Drittanwenderbibliotheken anzubinden, unter anderem wird nun C# als Programmiersprache durch Mono unterstützt. Parallel zu 3D-Engine wurde auch die Audio-Engine komplett neu entwickelt und bietet jetzt Audiobus-Verwaltung, positionsabhängiges Audio, Audioeffekte und 5.1-/7.1-Lautsprecherunterstützung. Zu den weiteren Änderungen gehören die Unterstützung von VR/AR, eine neue Netzwerk-API inklusive IPv6-Unterstützung, Integration der Bullet-Physik-Engine, automatischer Asset-Import, Verbesserungen an der Benutzeroberfläche und GDScript, starke Verbesserung der Dokumentation und vieles mehr.

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[1]. 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 im 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. Seit Version 3.0 ist GDNative in Godot enthalten, eine Schnittstelle, welche es erlaubt, externe Bibliotheken mit Godot zu verbinden, ohne Godot neu kompilieren zu müssen. Damit ist auch Unterstützung für weitere Programmiersprachen gegeben, prominentestes Beispiel hierfür ist C#. Zusätzlich gibt es die Möglichkeit, mittels VisualScript graphisch über Flussdiagramme Programmierlogik zu definieren.

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 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 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, iOS und Nintendo Switch.

Dokumentation[Bearbeiten | Quelltext bearbeiten]

Godot liefert eine integrierte Dokumentation aller Klassen und Funktionen direkt im Editor. Eine illustrative Einführung und detaillierte Anleitungen befinden sich der Projektwebseite. Auf der offiziellen Webseite befindet sich zusätzlich ein durch die Gemeinschaft organisiertes Frage-Antwort-System (inkl. generierten FAQ), ein Forum und ein Schaukastensystem, die alle zum Lernen zur Verfügung stehen.

Weblinks[Bearbeiten | Quelltext bearbeiten]

Einzelnachweise (englisch)[Bearbeiten | Quelltext bearbeiten]

  1. a b c [1]. Offizielle Dokumentation zu GD-Script
  2. [2] Erster Eintrag auf der Projektseite
  3. [3] Godot-Engine als Version 1.0 veröffentlicht
  4. [4] Godot-Engine 1.1 veröffentlicht
  5. [5]Godot-Engine erreicht stabile Version 2.0
  6. [6]Godot erreicht stabile Version 2.1
  7. [7]Godot-Engine 3.0 veröffentlicht
  8. [8] Offizielle Dokumentation der Shading Language