Liste der Eigenschaften und Merkmale

Diese Seite zeigt alle Eigenschaften und Merkmale (Features) die aktuell von Godot unterstützt werden.

Bemerkung

This page lists features supported by the current stable version of Godot (3.4). More features are available in the latest development version (4.0).

Eigenschaften und Merkmale

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.

  • HTML5 via WebAssembly (Firefox, Chrome, Edge, Opera).

nur exportierte Projekte sind lauffähig:

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).

  • Built-in script editor.

  • 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:

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 support including preview in the editor.

  • 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 (z.B. Emojis). Unterstützte Formate sind TTF, OTF und WOFF1.

    • 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 zu erkennen, die sie betreten oder verlassen.

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.

    • Optional HDR rendering with sRGB (enabled by default).

    • Uses an optional depth prepass (enabled by default) to reduce the cost of overdraw, which speeds up complex scene rendering.

  • 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.

Physically-based rendering (built-in material features):

  • Folgt dem Disney PBR Model.

  • Supports Lambert, Lambert Wrap (half-Lambert), Oren-Nayar and Toon diffuse shading modes.

  • Supports Schlick-GGX, Blinn, Phong, Toon and Disabled specular shading modes.

  • Nutzt einen metallisch-rohen Arbeitsablauf mit Unterstützung für ORM Texturen.

  • Uses horizon specular occlusion (Filament model) to improve material appearance

  • Normal Mapping.

  • Detail mapping for the albedo and normal maps.

  • 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.

  • GLES3: Parallax/Relief Mapping mit automatischem Detailgrad abhängig von der Entfernung.

  • GLES3: Sub-Surface Trübung und Durchlässigkeit.

  • GLES3: Refraction with support for material roughness (resulting in blurry refraction). On GLES2, refraction is still functional but lacks support for material roughness.

  • GLES3: Umgebungsunschärfe (Soft Partikel).

Echtzeit Beleuchtung:

  • Richtungsabhängige Beleuchtung (Sonne/Mond), bis zu 4 pro Szene.

  • Rundum Beleuchtung.

  • Spot Lights mit einstellbarem Kegelwinkel und Dämpfung.

  • Specular energy can be adjusted on a per-light basis.

  • GLES3: Lighting is done with a single-pass forward approach. By default, up to 32 omni light and 32 spot lights can be displayed per mesh resource. If needed, this limit can be increased at the cost of increased shader compilation times and lower performance. GLES2 uses a multi-pass forward approach to lighting, which doesn't have a limit on the number of lights but is slower with many lights.

Schatten abbilden (Shadow Mapping):

  • DirectionalLight: Orthogonal (am schnellsten), PSSM 2-split und 4-split. Unterstützt Blending zwischen splits.

  • OmniLight: Dual Parabolid (schnell) oder Cubemap (langsamer, aber genauer). Unterstützt farbige Projektortexturen in Form von Panoramen.

  • SpotLight: Einzelne Textur.

Globale Beleuchtung mit indirekter Beleuchtung:

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

    • Unterstützt das Backen von nur indirektem Licht oder das Backen von sowohl direktem als auch indirektem Licht. Der Backmodus kann für jedes einzelne Licht eingestellt werden, um hybride Lichtback-Setups zu ermöglichen.

    • Unterstützt die Beleuchtung dynamischer Objekte mit einem automatischen, Octree-basierten System. Es ist keine manuelle Probe-Platzierung erforderlich.

    • LightMaps werden auf der CPU eingebrannt.

  • GLES3: GI Probes (langsamer, Semi-Real-Time). unterstützt Reflexionen.

Reflexionen:

  • Fast baked reflections or slow real-time reflections using ReflectionProbe. Parallax box correction can optionally be enabled.

  • Reflexionstechniken können für eine höhere Präzision und Skalierbarkeit auch kombiniert werden.

  • GLES3: Voxel-basierende Reflexionen (bei Nutzung von GI Probes).

  • GLES3: Screen-Space Reflexionen.

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).

  • GLES3: Optionales Debanding zur Vermeidung von Color Banding (wirksam, wenn HDR-Rendering aktiviert ist).

  • 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:

  • Lossless or lossy WebP (does not save VRAM; only reduces storage size).

  • S3TC (only supported on desktop platforms).

  • ETC1 (Empfohlen falls GLES2 Renderer genutzt wird).

  • GLES3: BPTC für High-Quality Kompression (keine Unterstützung auf MacOS).

  • GLES3: ETC2 (keine Unterstützung auf MacOS).

Anti-Aliasing:

  • Multi-Sample Antialiasing (MSAA).

  • Multi-Sample Antialiasing (MSAA).

Performance:

  • Occlusion culling with rooms and portals. Supports gameplay notifications with primary and secondary visibility to disable AI/physics processing for nodes that don't need it.

  • Real-time occluder spheres. Not as effective as rooms and portals (and doesn't support gameplay notifications), but easier to set up.

Bemerkung

Most of the effects listed above can be adjusted for better performance or to further improve quality. This can be helpful when using Godot for offline rendering.

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.

  • Support for exporting the current scene as a glTF 2.0 file from the editor.

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 zu erkennen, die sie betreten oder verlassen.

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

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

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

  • Text-basierende Shader, die eine von der :ref:`GLSL <doc_shading_language>`inspirierte Shader-Language verwenden.

  • 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++.

    • Nutzen Sie das Bau-System und die Sprachfeatures die Sie möchten.

  • 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.

  • Unterstützung für Re-Routable Audio Busse und Effekte.

  • Listener2D and Listener3D nodes to listen from a position different than the camera.

  • Audioeingang zur Aufnahme von Mikrofonen mit Echtzeitzugriff über die Klasse AudioEffectCapture.

  • MIDI Eingang.

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

genutzte APIs:

  • Windows: WASAPI (Windows Audio Session API).

  • MacOS: CoreAudio.

  • Linux: PulseAudio oder ALSA.

Importieren

Formate:

  • Bilder: Siehe Importieren von Bildern.

  • Audio:

    • WAV mit optionaler IMA-ADPCM Kompression.

    • Ogg Vorbis.

    • MP3.

  • 3D Szenen:

    • glTF 2.0 (empfohlen).

    • ESCN (Direkter Export von Blender).

    • FBX (experimental, static meshes only).

    • Collada (.dae).

    • Wavefront OBJ (nur statische Szenen, kann direkt als Mesh geladen werden).

  • 3D meshes use Mikktspace to generate tangents on import, which ensures consistency with other 3D applications such as Blender.

Eingabe

  • 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.

    • Tasten können im "physischen" Modus unabhängig vom Tastaturlayout zugeordnet werden.

  • 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 Eingabe (bis zu 8 Controller gleichzeitig).

  • Stift/Tablet Eingabe mit Erkennung des Anpressdrucks.

  • Gamepad-, Tastatur- und Mauseingabeunterstützung sind auch auf Android verfügbar.

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.

  • Nutzen Sie übersetzte Zeichenketten automatisch in Ihrem 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.

  • Headless/server binaries can be downloaded for Linux and compiled for macOS. Any binary can be used without a window using the --no-window command line argument.

Mobile Geräte

  • In-App Käufe auf Android und iOS.

  • Unterstützung für Werbung mittels Third-Party Modulen.

  • Unterstützung für das Einbetten von Unteransichten auf Android.

XR Unterstützung (AR und VR)

  • Direkte Unterstützung für ARKit auf iOS.

  • Unterstützung für die OpenXR-APIs.

    • Beinhaltet Unterstützung für beliebte Headsets wie Meta Quest und Valve Index.

  • Unterstützung für die OpenVR-APIs.

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).

  • Color picker with RGB and HSV modes.

  • Containers (horizontal, vertical, grid, flow, center, margin, aspect ratio, draggable 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.

    • Supports rounded/beveled corners, drop shadows, per-border widths and antialiasing.

  • 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.

  • Tween node to easily perform procedural animations by code.

  • 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.

Dateiformate

  • 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.

    • Can (de)serialize any Godot datatype, including Vector2/3, 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.

  • Command line interface for automation.

    • Exportieren und Bereitstellen von Projekten mithilfe von kontinuierlich integrierten Plattformen.

    • Shell completion scripts are available for Bash, zsh and 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.

    • Benutzerfreundlich gegenüber Packagern: In den meisten Fällen können Systembibliotheken anstelle der von Godot bereitgestellten Bibliotheken verwendet werden. Das Build-System lädt nichts herunter. Builds können somit vollständig reproduzierbar sein.

    • Godot 4.0 wird in C++17 geschrieben.

  • Lizenz mit Zustimmung vom MIT.

Siehe auch

Das Godot proposals repository listet von der Community gewünschte Features auf, die möglicherweise in zukünftigen Godot-Versionen implementiert werden.