Nach 6 Monaten Entwicklung wurde die Veröffentlichung der kostenlosen Spiel-Engine Godot 3.4 bekannt gegeben, die sich für die Erstellung von 2D- und 3D-Spielen eignet. Die Engine unterstützt eine leicht zu erlernende Sprache zur Programmierung der Spiel-Logik, eine grafische Umgebung zur Spieleentwicklung, ein Ein-Klick-Deployment-System, umfassende Animationsmöglichkeiten und physikalische Simulation, einen integrierten Debugger und ein System zur Leistungsüberwachung. Der Quellcode der Spiel-Engine, der Entwicklungsumgebung und der zugehörigen Entwicklungswerkzeuge (Physik-Engine, Soundsystem, 2D/3D-Rendering-Backends usw.) wird unter der MIT-Lizenz veröffentlicht.
Der Quellcode der Engine wurde 2014 von der Firma OKAM veröffentlicht, nach zehn Jahren Entwicklung eines proprietären Produkts auf professionellem Niveau, das zur Erstellung und Veröffentlichung vieler Spiele für PC, Konsolen und mobile Geräte verwendet wurde. Die Engine unterstützt alle gängigen Desktop- und Mobilplattformen (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX) sowie die Web-Spielentwicklung. Startbereite Binary-Builds wurden für Linux, Windows und macOS erstellt.
In einem separaten Zweig wird ein neuer Rendering-Backend auf Basis der Grafik-API Vulkan entwickelt, der in der nächsten Version von Godot 4.0 angeboten wird, anstelle der derzeit verfügbaren Rendering-Backends über OpenGL ES 3.0 und OpenGL 3.3 (die Unterstützung von OpenGL ES und OpenGL bleibt durch den Betrieb des alten Backends OpenGL ES 2.0/OpenGL 2.1 auf der neuen Vulkan-basierten Rendering-Architektur gewährleistet). Der Wechsel von Godot 3.x zu Godot 4.0 erfordert eine Überarbeitung der Anwendungen aufgrund der API-Kompatibilitätsprobleme, jedoch wird für den Branch Godot 3.x ein langer Unterstützungszyklus gewährleistet, dessen Dauer von der Nachfrage der Benutzer nach der API abhängt.
Godot 3.4 zeichnet sich durch die Einführung folgender Neuerungen aus:
- Die Benutzeroberfläche für die Bearbeitung von Themen wurde überarbeitet, wobei ein visuell ansprechender Auswahlprozess für Knoten implementiert wurde und die Möglichkeit besteht, das Design zu ändern, ohne den Vorschau-Modus zu verlassen.

- Der Editor wurde verbessert, um die Benutzerfreundlichkeit zu erhöhen: Die Funktion für das schnelle Laden von Ressourcen im Inspektionsmodus wurde hinzugefügt, die Erstellung von Knoten an beliebiger Stelle ist nun möglich, ein neues Template-Export-Interface wurde integriert, zusätzliche Operationen mit Gizmo (System der begrenzenden Quader) wurden implementiert und der Animationseditor auf Basis von Bézier-Kurven wurde verbessert.

- Ein Rückgängig-Modus wurde hinzugefügt, der es ermöglicht, alle Änderungen an der Szene, die durch die Anwendung von Animationen über den AnimationPlayer verursacht wurden, auf einmal rückgängig zu machen, anstatt jede Eigenschaft einzeln zurückzusetzen.
- In die Einstellungen wurde eine Option zur Änderung des Skalierungsniveaus des 2D-Viewport hinzugefügt, die beispielsweise verwendet werden kann, um 2D-Elemente unabhängig vom aktuellen Stretch-Modus zu vergrößern oder zu verkleinern.
- Im File API wurde die Möglichkeit hinzugefügt, mit Dateien (einschließlich PCK) zu arbeiten, deren Größe 2 GB überschreitet.
- Änderungen wurden implementiert, um die Rendering-Flüssigkeit zu verbessern, indem die Änderungen in den Frames berechnet werden, ohne an den Systemtimer gebunden zu sein, und Synchronisationsprobleme bei der Ausgabe bei Verwendung von VSync wurden behoben.
- Im InputEvents-Verarbeitungssystem wurde die Unterstützung für die Bindung an Scancodes hinzugefügt, die die physische Anordnung der Tasten auf der Tastatur widerspiegeln, unabhängig vom aktiven Layout (zum Beispiel werden die Tasten WASD im QWERTY-Layout automatisch den Tasten ZQSD im französischen AZERTY-Layout zugeordnet).
- Es wurden die Schnittstellen AESContext und HMACContext hinzugefügt, um aus Skripten auf die Verschlüsselungsalgorithmen AES-ECB, AES-CBC und HMAC zugreifen zu können. Darüber hinaus wurde die Möglichkeit hinzugefügt, RSA-öffentliche Schlüssel zu speichern und zu lesen, um digitale Signaturen zu erstellen und zu überprüfen.
- Im Render-Engine wurde grundlegende Unterstützung für das Stoppen der Darstellung von Objekten hinzugefügt, die im Kamerablickfeld, aber aufgrund von Überlappungen mit anderen Objekten nicht sichtbar sind (zum Beispiel hinter einer Wand). Die rasterbasierte (auf Pixelebene) Clipping-Technik wird nur in der Godot 4-Version implementiert, während in Godot 3 einige geometrische Clipping-Methoden für überlappende Objekte und Unterstützung für portale Überlappung enthalten sind.

- Eine neue Methode für das ACES Fitted Tone Mapping wurde hinzugefügt, die eine höhere Realitätsnähe und physikalische Genauigkeit durch eine Anpassung des Kontrasts für helle Objekte ermöglicht.

- Die Unterstützung für die Form von dreidimensionalen Partikelausstößen in Form von Ringen oder hohlen Zylindern wurde hinzugefügt.
- Die Leistung des Simulationsantriebs für die Generierung konvexer Objekte aus Netzen wurde erheblich verbessert, und der Kollisionsverfolgungsmodus im Inspektionsinterface wurde überarbeitet. Für die 2D-Physik-Engine wurde die Unterstützung der Struktur BVH (Bounding Volume Hierarchy) für dynamische räumliche Trennung hinzugefügt. In der 3D-Physik-Engine wurde die Unterstützung der Funktion HeightMapShapeSW implementiert und Synchronisationsmittel mit KinematicBody3D hinzugefügt.
- Die Möglichkeit, 3D-Szenen im glTF-Format zu exportieren, wurde hinzugefügt, um vorbereitete Netze in Godot beispielsweise in Blender zu öffnen.
- Die Unterstützung für ein verlustfreies Bildkompressionsformat WebP, das jetzt standardmäßig für die Kompression von Texturen anstelle des PNG-Formats verwendet wird, wurde hinzugefügt.
- Im Android-Port wurde die erste Unterstützung für die API Scoped Storage und eine neue Methode zum Laden zusätzlicher Ressourcen (Play Asset Delivery) für ausführbare Dateien im AAB-Format (Android App Bundle) hinzugefügt.
- Für die HTML5-Plattform wurde die Möglichkeit zur Installation als PWA (Progressive Web Apps) implementiert. Eine JavaScript-Objekt-Schnittstelle wurde hinzugefügt, um die Interaktion zwischen Godot und JavaScript zu ermöglichen (zum Beispiel können Methoden von JavaScript aus Godot-Skripten aufgerufen werden). Darüber hinaus wurde für Multi-Thread-Bauten die Unterstützung von AudioWorklet implementiert.
- Für die macOS-Plattform wurde Unterstützung für Systeme mit Apple Silicon (M1) hinzugefügt.
Quelle: opennet.ru




