Liste der Features (Eigenschaften, Merkmale)

Diese Seite zeigt alle Features die aktuell von Godot unterstützt werden.

Bemerkung

Diese Seite zeigt unterstützte Features der aktuell stabilen Godot Version (3.2). Weitere Features sind in der letzten Entwicklerversion (4.0).

Eigenschaften

Plattformen

Sowohl Editor und exportierte Projekte sind lauffähig:

  • Windows 7 und folgende (64-bit und 32-bit).

  • MacOS 10.12 und folgende (64-bit, x86 und ARM).

  • Linux (64-bit und 32-bit, x86 und ARM).

    • Binärdateien sind statisch verknüpft und können auf jeder Distribution ausgeführt werden, wenn sie auf einer ausreichend alten Basisdistribution kompiliert werden.
    • Offizielle Binärdateien sind für Ubuntu 14.04 compiliert.

nur exportierte Projekte sind lauffähig:

  • Android 4.4 und folgende.
  • iOS 10.0 und folgende.
  • HTML5 via WebAssembly (Firefox, Chrome, Edge, Opera).
  • Konsolen.

Godot wurde so gut es geht Plattform unabhängig entwickelt und kann deshalb relativ einfach auf neue Plattformen portiert werden.

Editor

Funktionen:

  • Szenen-Baum Editor (SceneTree).

  • Skripteditor.

  • Unterstützung von externen Script Editoren wie z.B. Visual Studio Code oder Vim.

  • GDScript debugger.

    • Momentan keine Unterstützung zum Debuggen in Threads.
  • Leistungs-Analyse Tools.

  • Live-Skript ladet erneut.

  • Live-Bearbeitung der Szene.

    • Änderungen werden im Editor angezeigt und nach dem schließen des laufenden Projekts auch gespeichert.
  • Fern-Inspektor (Remote).

    • Änderungen werden nicht im Editor angezeigt und nach dem schließen des laufenden Projekts auch nicht gespeichert.
  • Live Kamera Replikation.

    • Bewegt die Editor interne Kamera und zeigt das Ergebnis im laufenden Projekt.
  • Nutze den Editor in vielen verschiedenen Sprachen, erstellt von der Godot Gemeinschaft.

Erweiterungen:

  • Editor Plugins können von asset library runtergeladen werden, um die Editorfunktionen zu erweitern.
  • Erstelle eigene Plugins mittels GDScript um neue Funktionen hinzuzufügen oder den Arbeitsablauf zu beschleunigen.
  • Lade Projekte von der Bestandsbibliothek in den Projektmanager herunter und importiere sie direkt.

2D Grafik

Zwei Renderer sind verfügbar:

  • OpenGL ES 3.0 Renderer (nutzt OpenGL 3.3 auf Desktop Plattformen).
    • High-End Optik. Empfohlen auf Desktop Plattformen.
  • OpenGL ES 2.0 Renderer (nutzt OpenGL 2.1 auf Desktop Plattformen).
    • Empfohlen für Mobile Geräte und Webplattformen.

Funktionen:

  • Rendering von Sprites, Polygonen und Linien.

    • Fortgeschrittene Werkzeuge zum Zeichnen von Linien und Polygonen wie Polygon2D und Line2D.
  • AnimatedSprite als Unterstützung zur Erstellung von animierten Sprites.

  • Parallax-Ebenen.

    • Pseudo-3D Unterstützung, indem ein Layer automatisch mehrfach dupliziert wird.
  • 2D Beleuchtung mit Normal Maps.

    • Harte oder weiche Schatten.
  • Schrift-Rendering mit Bitmaps (BitmapFont) oder Rasterisierung mit FreeType (DynamicFont).

    • Bitmap-Schriften können mithilfe von Werkzeugen wie BMFont exportiert werden.
    • DynamicFont unterstützt ein- sowie mehrfarbige Schriftarten. Unterstützte Formate sind TTF und OTF.
    • DynamicFont unterstützt optionale Konturierung der Schrift mit einstellbarer Breite und Farbe.
    • Unterstützung um bei höheren Auflösungen den Zeichensatz scharf darzustellen (Font Oversampling).
  • GPU-basierte Partikel mit Unterstützung für individuelle Partikel Shader.

  • CPU-basierte Partikel.

2D Werkzeuge

  • 2D-Kamera mit eingebauter Glättung und Schlepprändern.

  • Path2D-Node zur Repräsentation eines Pfads im 2D-Raum.

    • Kann im Editor gezeichnet oder prozedural erzeugt werden.
    • PathFollow2D node damit Nodes einem Path2D folgen können.
  • 2D Geometrie Hilfs-Klasse.

  • Line2D Node um texturierte 2D Linien zu zeichnen.

2D Physik

physikalische Körper:

  • Statische Körper
  • Starre Körper
  • Bewegte Körper
  • Gelenke
  • Bereiche, um Körper beim Betreten oder Verlassen zu erkennen

Kollisionserkennung:

  • eingebaute Formen: Linien, Rechtecke, Kreise, Ellipsen.
  • Kollisions Polygone (können manuell gezeichnet oder von einem Sprite im Editor erzeugt werden).

3D Grafiken

Zwei Renderer sind verfügbar:

  • OpenGL ES 3.0 Renderer (nutzt OpenGL 3.3 auf Desktop Plattformen).
    • High-End Optik. Empfohlen auf Desktop Plattformen.
    • HDR Rendering mit sRGB.
  • OpenGL ES 2.0 Renderer (nutzt OpenGL 2.1 auf Desktop Plattformen).
    • Empfohlen für Mobile Geräte und Webplattformen.
    • LDR Rendering für größere Kompatibilität.
    • Nicht alle Funktionen verfügbar. Funktionen, die nur bei Nutzung des Open GL ES 3.0 Renderers verfügbar sind, werden mit *GLES3" gekennzeichnet.

Kamera:

  • Perspektivische, orthografische und Kegelstumpf-Offset Kameras.

Physikalisch-basierendes Rendering:

  • Folgt dem Disney PBR Model.
  • Nutzt einen metallisch-rohen Arbeitsablauf mit Unterstützung für ORM Texturen.
  • Normal Mapping.
  • GLES3: Parallax/Relief Mapping mit automatischem Detailgrad abhängig von der Entfernung.
  • GLES3: Sub-Surface Trübung und Durchlässigkeit.
  • GLES3: Umgebungsunschärfe (Soft Partikel).
  • Entfernungsunschärfe die Alpha Blending oder Dithering nutzt, um den Weg durch die Transparenz Pipeline zu vermeiden.
  • Dithering (Bewegungsunschärfe) kann auf Pixel oder Objekt Basis berechnet werden.

Echtzeit Beleuchtung:

  • Richtungsabhängige Beleuchtung (Sonne/Mond), bis zu 4 pro Szene.
  • Rundum Beleuchtung.
  • Spot Lights mit einstellbarem Kegelwinkel und Dämpfung.

Schatten abbilden (Shadow Mapping):

  • DirectionalLight: Orthogonal (am schnellsten), PSSM 2-split und 4-split. Unterstützt Blending zwischen splits.
  • OmniLight: Dual paraboloid (fast) or cubemap (slower but more accurate). Supports colored projector textures in the form of panoramas.
  • SpotLight: Einzelne Textur.

Globale Beleuchtung mit indirekter Beleuchtung:

  • indirektes Lichtschema (schnell, kann aber während der Laufzeit nicht aktualisiert werden).

    • Lichtschema werden auf der CPU indirekt berechnet.
  • GLES3: GI Probes (langsamer, Semi-Real-Time). unterstützt Reflexionen.

Reflexionen:

  • GLES3: Voxel-basierende Reflexionen (bei Nutzung von GI Probes).
  • Schnelle baked Reflektionen oder langsame Echtzeit-Reflektionen nutzen ReflectionProbe. Parallaxe Korrekturen können wahlweise eingeschaltet werden.
  • GLES3: Screen-Space Reflexionen.
  • Reflexionstechniken können für eine höhere Präzision auch kombiniert werden.

Himmel:

  • Panorama Himmel (nutzt HDRI).
  • Prozeduraler Himmel.

Nebel:

  • Sichtweite des Nebels mit anpassbarer Dämpfungskurve.
  • Höhennebel (Fußboden oder Decke) mit anpassbarer Dämpfung.
  • Unterstützung für automatische Tiefenanpassung der Nebelfarbe abhängig von der Kameraposition (um mit der Sonnenfarbe übereinzustimmen).
  • Optionale Lichtdurchlässigkeit um Lichter im Nebel besser zu erkennen.

Partikel:

  • GLES3: GPU-basierte Partikel mit Unterstützung für eigene Partikel Shader.
  • CPU-basierte Partikel.

Post-Processing

  • Tonemapping (Linear, Reinhard, Filmic, ACES).
  • GLES3: Automatische Regelung zur Aufdeckung basierend auf der Helligkeit des Darstellungsbereichs.
  • GLES3: Nahe und ferne Tiefenschärfe.
  • GLES3: Screen-Space Ambient Occlusion (SSAO - ist eine Rendering-Technik).
  • glühen/blühen mit optionaler bikubischer Hochskalierung und verschiedenen Mischmodi: Bildschirm, weiches Licht, hinzufügen, ersetzen.
  • Farbkorrektur mit Hilfe einer eindimensionalen Rampe.
  • Helligkeit-, Kontrast- und Sättigungs-Regler.

Textur Filterung:

  • Nächstgelegene, bilineare, trilineare oder anisotrope Filterung.

Textur Kompression:

  • GLES3: BPTC für High-Quality Kompression (keine Unterstützung auf MacOS).
  • GLES3: ETC2 (keine Unterstützung auf MacOS).
  • ETC1 (Empfohlen falls GLES2 Renderer genutzt wird).
  • GLES3: S3TC (keine Unterstützung auf mobilen Geräten/Web Plattformen).

Anti-Aliasing:

  • Multi-Sample Antialiasing (MSAA).

Die meisten dieser Effekte können zur Verbesserung der Leistung oder zur weiteren Qualitätsverbesserung angepasst werden. Dies kann hilfreich sein, wenn Sie Godot für das Offline-Rendering verwenden.

3D Werkzeuge

  • eingebaute Meshes: Würfel, Zylinder/Kegel, (Halb-) Kugel, Prisma, Ebene, Quader.

  • Werkzeuge für Prozedurale Geometrien.

  • Constructive solid geometry (vorgesehen für Prototyping).

  • Path3D node steht für einen Pfad in 3D Raum.

    • Kann im Editor gezeichnet oder prozedural erzeugt werden.
    • PathFollow3D damit Nodes einem Path3D folgen.
  • 3D Geometrie Hilfsklasse.

3D Physik

physikalische Körper:

  • Statische Körper
  • Starre Körper
  • Bewegte Körper
  • Fahrzeug Körper (vorgesehen für Arcade Physik, keine Simulation).
  • Gelenke
  • Weiche Körper.
  • Ragdolls (Gliederpuppen).
  • Bereiche, um Körper beim Betreten oder Verlassen zu erkennen

Kollisionserkennung:

  • eingebaute Formen: Quader, Kugel, Kapsel, Zylinder (nur mit Projektil-Physik).
  • Erzeugt dreieckige Kollisionsformen für jedes Mesh aus dem Editor.
  • Erzeugt eine oder mehrere konvexe (nach außen gewölbte) Kollisionsformen für jedes Mesh aus dem Editor.

Shader (Schattierer)

  • 2D: Custom Vertex, Fragment und Beleuchtungs-Shader.

  • 3D: Custom Vertex, Fragment, Beleuchtungs- und Himmels-Shader.

  • Text-basierende Shader, die eine Shader Sprache inspiriert von GLSL <doc_shading_language> nutzen.

  • Visueller Shader Editor.

    • Unterstützung für visuelle Shader Plugins.

Skripten

Allgemein:

  • Objektorientierte Designvorlagen mit Skript erweitertem Node.
  • Signale und Gruppen zur Kommunikation zwischen Skripten.
  • Unterstützung für sprachübergreifendes Skripten.
  • Viele 2D und 3D lineare Algebra Datentypen wie Vektoren und Transformationen.

GDScript:

C#:

  • In einer separaten Binärdatei verpackt, um Dateigrößen und Abhängigkeiten gering zu halten.

  • nutzt Mono 6.x.

    • Vollständige Unterstützung für C# 7.0 Syntax und Features.
  • Unterstützt alle Plattformen.

  • Nutzung eines externen Editors wird empfohlen um von der IDE Funktionalität zu profitieren.

VisualScript:

  • Grafik-basierte visuelle Skriptsprache.
  • Funktioniert am besten, wenn es für bestimmte Zwecke (z.B. Level-spezifische Logik) verwendet wird und nicht als Sprache zum Erstellen ganzer Projekte.

GDNative (C, C++, Rust, D, ...):

  • Stellen Sie bei Bedarf eine Verknüpfung zu nativen Bibliotheken her, um eine höhere Leistung und eine Integrationen von Drittanbietern zu erzielen.

    • Um Spiele-Logik zu skripten wird GDScript oder C# empfohlen, wenn deren Leistung ausreicht.
  • Offizielle Einbindung für C und C++.

    • Nutze das Bau-System und die Sprachfeatures die du möchtest.
  • Unterstützt D, Kotlin, Python, Nim, und Rust Einbindungen entwickelt von der Community.

Audio

Funktionen:

  • Mono, Stereo, 5.1 und 7.1 Ausgabe.

  • Positionsabhängige und PositionsUNabhängige Wiedergabe in 2D und 3D.

    • Optionaler Doppler-Effekt in 2D und 3D.
  • Support for re-routable audio buses and effects with dozens of effects included.

  • Listener3D Node um von einer anderen Position als die Kamera in 3D zu hören.

  • Audioeingang zur Mikrofon-Aufnahme.

  • MIDI Eingang.

    • Momentan keine Unterstützung für MIDI Ausgabe.

genutzte APIs:

  • Windows: WASAPI (Windows Audio Session API).
  • MacOS: CoreAudio.
  • Linux: PulseAudio oder ALSA.

Import

Formate:

  • Images: See Bilder importieren.

  • Audio:

    • WAV mit optionaler IMA-ADPCM Kompression.
    • Ogg Vorbis.
  • 3D Szenen:

    • glTF 2.0 (empfohlen).
    • ESCN (Direkter Export von Blender).
    • FBX (experimentel).
    • Collada (.dae).
    • Wavefront OBJ (nur statische Szenen, kann direkt als Mesh geladen werden).

Eingang

  • Eingabe-Zuordnungs-System nutzt fest codierte Eingabeereignisse oder neu zuweisbare Eingabeaktionen.

    • Achsenwerte können zwei verschiedenen Aktionen zugeordnet werden mit einer konfigurierbaren Totzone.
    • Nutze den gleichen Code um Tastatur und Gamepad zu unterstützen.
  • Tastatureingaben.

    • Keys can be mapped in "physical" mode to be independent of the keyboard layout.
  • Mauseingaben.

    • Der Mauszeiger kann sichtbar, ausgeblendet, erfasst oder auf das Fenster begrenzt sein.
    • Bei der Erfassung werden Rohdaten unter Windows und Linux verwendet, um die Einstellungen der Maus des Betriebssystems zu umgehen.
  • Gamepad Einagbe (bis zu 8 gleichzeitige Controller).

  • Stift/Tablet Eingabe mit Erkennung des Anpressdrucks.

Netzwerke

  • Low-Level TCP Netzwerk mittels StreamPeer und TCP Server.

  • Low-Level UDP Netzwek mittels PacketPeer und UDP Server.

  • Low-Level HTTP Anfragen mittels HTTPClient.

  • High-Level HTTP Anfragen mittels HTTPRequest.

    • Unterstützt standardmäßig HTTPS mittels gebündelter Zertifikate.
  • High-Level Mehrspieler API mittels UDP und ENet.

    • Automatische Nachbildungen mittels entfernter Prozeduraufrufe (RPCs = remote procedure calls).
    • Unterstützt unzuverlässige, zuverlässige und beantragte Transfers.
  • WebSocket Client und Server, verfügbar auf allen Plattformen.

  • WebRTC Client und Server, verfügbar auf allen Plattformen.

  • Unterstützung für UPnP um Port-Forwarding zu umgehen wenn der Server hinter einem NAT steht.

Internationalisierung

  • Volle Unterstützung für Unicode inklusive Emoji.
  • Speichere übersetzte Zeichenketten mittels CSV oder gettext.
  • Nutze übersetzte Zeichenketten automatisch in deinem Projekt in GUI Elementen oder mit Hilfe der tr() Funktion.
  • Unterstützung für rechts-nach-links Eingabe und Text Shaping geplant in Godot 4.0.

Fensterverwaltung und OS Integration

  • Bewegen, Größe verändern, minimieren und maximieren des vom Projekt erzeugten Fensters.

  • Ändern des Fenster-Titels und Icons.

  • Aufmerksamkeit erbitten (lässt die Titelzeile auf den meisten Plattformen blinken).

  • Vollbildmodus.

    • Verwendet keinen exklusiven Vollbildmodus, daher kann die Bildschirmauflösung auf diese Weise nicht geändert werden. Verwenden Sie stattdessen ein Ansichtsfenster mit einer anderen Auflösung.
  • Rahmenloses Fenster (Vollbild oder kein Vollbild).

  • Möglichkeit das Fenster im Vordergrund zu halten.

  • Transparentes Fenster mit pixelgenauer Transparenz.

  • Globale Menü Integration auf MacOS.

  • Führen Sie Befehle blockierend oder nicht blockierend aus.

  • Öffnen Sie Dateipfade und URLs mit Standard- oder benutzerdefinierten Protokoll-Handlers (sofern im System registriert).

  • Kommandozeilenparameter parsen.

Mobile Geräte

  • In-App Käufe auf Android und iOS.
  • Unterstützung für Werbung mittels Third-Party Modulen.

XR Unterstützung (AR und VR)

  • Direkte Unterstützung für ARKit auf iOS.
  • Unterstützung für die OpenXR und OpenVR APIs.
  • Bekannte VR Headsets wie Oculus Quest und HTC Vive werden dank Plugins unterstützt.

GUI System

Die Benutzeroberfläche von Godot wurde mit denselben Kontroll-Nodes erstellt, mit denen auch Spiele in Godot erstellt werden. Die Benutzeroberfläche des Editors kann mithilfe von Add-Ons auf vielfältige Weise erweitert werden.

Nodes (Knoten):

  • Schaltflächen (Buttons).
  • Check Boxen, Check Buttons, Radio Buttons.
  • Texteingabe nutzt LineEdit (einzelne Zeile) und TextEdit (mehrere Zeilen).
  • Dropdown-Menüs nutzen PopupMenu und OptionButton.
  • Scroll-Leisten.
  • Labels (Markierungen).
  • RichTextLabel für BBCode formatierten Text.
  • Bäume (können auch zur Darstellung von Tabellen verwendet werden).
  • Container (horizontal, vertikal, Gitter, Mitte, Rand, ziehbarer Splitter, ...).
  • Steuerelemente können gedreht und skaliert werden.

Größenbestimmung:

  • Verankerung, um GUI-Elemente in einer bestimmten Ecke, Kante oder Mitte zu halten.

  • Container um GUI-Elemente automatisch nach gewissen Regeln zu platzieren.

  • Skala um die Auflösung zu vergrößern mittels 2d oder ``viewport``Streckungsmodus.

  • Unterstützt jedes Seitenverhältnis mit Ankern und dem Streckungaspekt expand.

Themen (Designvorlagen):

  • Eingebauter Themen-Editor.

    • Erzeugt ein Thema basierend auf den Editor Themen Einstellungen.
  • Prozeduale, vektorbasierte Themen mit StyleBoxFlat.

    • Unterstützt abgerundete/abgeschrägte Ecken, Schlagschatten und Randbreiten.
  • Texturbasierte Themen mit StyleBoxTexture.

Die geringe Verteilungsgröße von Godot kann es zu einer geeigneten Alternative zu Frameworks wie Electron oder Qt machen.

Animation

  • Direkte Kinematics und inverse Kinematics.
  • Unterstützung für die Animation jeder Eigenschaft mit änderbarer interpolation.
  • Unterstützung um Methoden aufzurufen innerhalb von Animation-Spuren.
  • Unterstützung um Sounds abzuspielen innerhalb von Animation-Spuren.
  • Unterstützung für Bézierkurven in Animationen.

Formate

  • Szenen und Ressourcen können in text-based oder Binärformaten gespeichert werden.

    • Text basierte Formate sind lesbarer und damit besser für eine Versionskontrolle.
    • Binärformate sind für große Szenen oder Ressourcen schneller geladen bzw. gespeichert.
  • Lese und schreibe Text oder Binärdateien mittels File.

    • Kann optional komprimiert oder verschlüsselt werden.
  • Lesen und schreiben von JSON Dateien.

  • Lesen und schreiben von INI-Konfigurationsdateien mittels ConfigFile.

    • Kann jeden Godot-Datentyp (de)serialisieren, unter anderem Vector, Color, ...
  • Lese XML Dateien mittels XMLParser.

  • Packen Sie Spieldaten in eine PCK-Datei (benutzerdefiniertes Format, das für die schnelle Suche optimiert ist), in ein ZIP-Archiv oder direkt in die ausführbare Datei für die Verteilung als einzelne Datei.

  • Exportiere zusätzliche PCK Dateien die von der Engine gelesen werden können, zur Unterstützung von Mods und DLCs.

Verschiedenes

  • Low-Level Zugriff auf Server die es erlauben den Szenenbaum-Overhead zu umgehen, falls nötig.

  • Textbasierte UI (CLI) zur Automatisierung.

    • Exportieren und Bereitstellen von Projekten mithilfe von kontinuierlich integrierten Plattformen.
    • komplette Skripte sind verfügbar für Bash, zsh und fish.
  • Unterstützung für C++ Module die statisch in die binäre Engine eingebunden werden.

  • Engine und Editor geschrieben in C++03.

    • Kann compiliert werden mittels GCC, Clang und MSVC. MinGW wird auch unterstützt.
    • Friendly towards packagers. In most cases, system libraries can be used instead of the ones provided by Godot. The build system doesn't download anything. Builds can be fully reproducible.
    • Godot 4.0 wird in C++17 geschrieben.
  • Lizenz mit Zustimmung vom MIT.

Siehe auch

Diese roadmap Dokumente zeigen Verbesserungen (Features) auf die man sich geeinigt hat und die möglicherweise in zukünftigen Godot-Versionen eingebaut werden.