Godot Engine

aus Wikipedia, der freien Enzyklopädie
Zur Navigation springen Zur Suche springen
Godot

Godot logo.svg
Basisdaten

Entwickler Juan Linietsky, Ariel Manzur
die Godot-Gemeinschaft
Aktuelle Version 3.2[1]
(29. Januar 2020)
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[2], C#
Kategorie Spiel-Engine
Lizenz MIT-Lizenz[3]
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 an Python angelehnt ist und 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.[4] 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.[5] Das erste große stabile Update, das die 2D-Engine stark erweitert, erschien als Version 1.1 am 21. Mai 2015.[6]

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

Version 3.0, erschienen am 29. Januar 2018 nach anderthalb Jahren Entwicklung[9], 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 zur 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]

extends RichTextLabel 

var label_text = "Hallo Welt"

func _ready():
   self.add_text(label_text)
GDScript-Codebeispiel
VisualScript-Codebeispiel

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 im Editor erstellt wurden, zugeordnet werden und Variablen können vom Quelltext in den Editor exportiert werden. Die integrierte Editorkomponente verfügt über Syntaxhervorhebung, automatische Einrückungen 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.[10] Zur Fehlerbehandlung und Leistungsmessung ist ein integrierter Debugger vorhanden. Ab 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.

Rendering[Bearbeiten | Quelltext bearbeiten]

Godot nutzt in 2D und in 3D primär einen OpenGL ES 3.0-Renderer. Alternativ ist aufgrund von manchen Kompatibilitäts- und Performance-Mängeln auch OpenGL ES 2.0 nutzbar[11]. In Version 4.0[12] wird auch Vulkan unterstützt werden, was OpenGL ES 3.0 schlussendlich ablösen soll. Materials können im Editor über Eigenschaften wie Textur, Normal Map, Spekularität und Volumenstreuung definiert oder von Grund auf als Shader in einer vereinfachten GLSL-ähnlichen Sprache geschrieben werden. Lichter nutzen Globale Beleuchtung und können dynamisch oder vorberechnet sein. Auch Postprocessing-Effekte wie Nebel, Schärfentiefe und HDR werden unterstützt.

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 projektexterne 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 auf 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. Here comes Godot 3.2, with quality as priority. 29. Januar 2020 (abgerufen am 30. Januar 2020).
  2. a b c Offizielle Dokumentation zu GD-Script
  3. github.com. (abgerufen am 29. September 2016).
  4. Erster Eintrag auf der Projektseite
  5. Godot-Engine als Version 1.0 veröffentlicht
  6. Godot-Engine 1.1 veröffentlicht
  7. Godot-Engine erreicht stabile Version 2.0
  8. Godot erreicht stabile Version 2.1
  9. Godot-Engine 3.0 veröffentlicht
  10. Offizielle Dokumentation der Shading Language
  11. Juan Linietsky: Umstieg zu Vulkan (und ES 2.0) statt OpenGL ES 3.0. Abgerufen am 11. August 2019.
  12. Juan Linietsky: Vulkan Zwischenbericht #1. Abgerufen am 11. August 2019.