Nach 6 Monaten Entwicklung wurde die Version 3.4 der freien Spiele-Engine Godot veröffentlicht, die sich für die Erstellung von 2D- und 3D-Spielen eignet. Die Engine unterstützt eine leicht erlernbare Sprache zur Erstellung von Spiel-Logik, eine grafische Umgebung zur Spieleentwicklung, ein Ein-Klick-Spiele-Deployment-System, umfangreiche Animations- und physikalische Simulationsmöglichkeiten, einen eingebauten Debugger und ein System zur Identifizierung von Leistungsengpässen. Der Code der Spiele-Engine, der Entwicklungsumgebung und der zugehörigen Entwicklungswerkzeuge (Physik-Engine, Audio-Server, 2D/3D-Rendering-Backends usw.) wird unter der MIT-Lizenz verbreitet.
Die Quelltexte der Engine wurden 2014 von dem Studio OKAM veröffentlicht, nach zehn Jahren Entwicklung eines proprietären Produkts auf professionellem Niveau, das für die 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 mobilen Plattformen (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX) sowie die Entwicklung von Spielen für das Web. Betriebsbereite binäre Builds wurden für Linux, Windows und macOS erstellt.
In einem separaten Branch wird ein neues Rendering-Backend auf Basis der Grafik-API Vulkan entwickelt, das in der nächsten Version Godot 4.0 angeboten wird, anstelle der derzeit unterstützen Rendering-Backends über OpenGL ES 3.0 und OpenGL 3.3 (die Unterstützung von OpenGL ES und OpenGL bleibt erhalten, indem das alte Backend OpenGL ES 2.0/OpenGL 2.1 über die neue Rendering-Architektur auf Basis von Vulkan betrieben wird). Der Übergang von Godot 3.x zu Godot 4.0 wird eine Überarbeitung der Anwendungen erfordern, da die API-Kompatibilität verletzt wird, aber für den Branch Godot 3.x wird eine lange Unterstützung bereitgestellt, deren Dauer von der Nachfrage der Nutzer nach der API abhängt.
Godot 3.4 ist bemerkenswert durch die Hinzufügung folgender Neuerungen:
- Die Benutzeroberfläche für die Bearbeitung von Themen wurde überarbeitet, welche einen anschaulichen Auswahlprozess für Knoten implementiert und die Möglichkeit bietet, das Design zu ändern, ohne den Vorschaumodus zu verlassen.

- Im Editor wurden Verbesserungen zur Erhöhung der Benutzerfreundlichkeit vorgenommen: Eine Funktion zum schnellen Laden von Ressourcen im Inspektionsmodus wurde hinzugefügt, die Erstellung von Knoten an beliebiger Stelle ist erlaubt, eine neue Benutzeroberfläche zum Export von Vorlagen wurde hinzugefügt, zusätzliche Operationen mit Gizmo (ein System von begrenzenden Quader) wurden implementiert und der Animationseditor auf Basis von Bézier-Kurven wurde verbessert.

- Ein Rückgängig-Modus wurde hinzugefügt, mit dem alle Änderungen der Szene, die durch die Anwendung von Animationen über AnimationPlayer verursacht wurden, auf einmal rückgängig gemacht werden können, anstatt jede Eigenschaft einzeln zurückzusetzen.
- Die Einstellungen umfassen eine Option zur Änderung des Skalierungsniveaus des 2D-Ansichtsbereichs (2D viewport), die beispielsweise genutzt werden kann, um 2D-Elemente unabhängig vom aktuellen An stretchmodus zu vergrößern oder zu verkleinern.
- Die File API hat die Möglichkeit hinzugefügt, mit Dateien (einschließlich PCK) zu arbeiten, deren Größe 2 GB überschreitet.
- Änderungen zur Erhöhung der Rendering-Smoothness wurden aktiviert, indem die Änderungen in den Frames ohne Bindung an den Systemtimer berechnet werden und Probleme mit der Ausgabe-Synchronisation bei Verwendung von VSync behoben wurden.
- Im System zur Verarbeitung von InputEvents wurde die Unterstützung für das Binden an Scancodes hinzugefügt, die die physische Position der Tasten auf der Tastatur widerspiegeln, unabhängig von der aktiven Zeichencodierung (zum Beispiel werden die Tasten WASD im QWERTY-Layout automatisch den Tasten ZQSD im französischen AZERTY-Layout zugeordnet).
- Die Schnittstellen AESContext und HMACContext wurden hinzugefügt, um aus Skripten auf die AES-ECB-, AES-CBC- und HMAC-Verschlüsselungsalgorithmen zuzugreifen. Zudem wurde die Möglichkeit hinzugefügt, öffentliche RSA-Schlüssel zu speichern und zu lesen zur Erstellung und Überprüfung digitaler Signaturen.
- Der Rendering-Engine wurde eine anfängliche Unterstützung für das Einstellen der Darstellung von Objekten, die sich im Blickfeld der Kamera befinden, aber aufgrund von Überlappungen mit anderen Objekten (z. B. hinter einer Wand) unsichtbar sind, hinzugefügt. Rasterisierte (auf Pixelebene) Überlappungsberechnungen werden nur im Godot 4 Zweig implementiert, während in Godot 3 einige geometrische Methoden zur Erfassung überlappender Objekte und die Unterstützung von Portalüberlappungen integriert wurden.

- Eine neue Methode zur Tönung ACES Fitted wurde hinzugefügt, die realistischere und physikalisch genauere Ergebnisse durch erhöhte Kontrastierung von hellen Objekten ermöglicht.

- Unterstützung für die Emissionsform von dreidimensionalen Partikeln in Form eines Rings oder eines hohlen Zylinders hinzugefügt.
- Die Leistung des Simulations-Engines für physikalische Prozesse bei der Generierung konvexer Objekte aus Netzen wurde erheblich verbessert, und der Modus zur Verfolgung von Kollisionen im Inspektor-Interface wurde überarbeitet. Für die 2D-Physik-Engine wurde Unterstützung für die Struktur BVH (Bounding Volume Hierarchy) für dynamische räumliche Partitionierung hinzugefügt. In der 3D-Physik-Engine wurde Unterstützung für die Funktion HeightMapShapeSW implementiert und Synchronisierungsmittel mit KinematicBody3D hinzugefügt.
- Die Möglichkeit, 3D-Szenen im glTF-Format zu exportieren, wurde hinzugefügt, um beispielsweise in Godot vorbereitete Netze in Blender zu öffnen.
- Unterstützung für verlustfreies WebP-Bildkomprimierungsformat hinzugefügt, das jetzt standardmäßig für die Komprimierung von Texturen anstelle des PNG-Formats verwendet wird.
- Im Android-Port wurde anfängliche 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 in Form von PWA (Progressive Web Apps) implementiert, ein JavaScriptObject-Interface für die Interaktion zwischen Godot und JavaScript hinzugefügt (z. B. können JavaScript-Methoden aus Godot-Skripten aufgerufen werden), und für Multithread-builds wurde Unterstützung für AudioWorklet umgesetzt.
- Für die macOS-Plattform wurde Unterstützung für Apple Silicon (M1) hinzugefügt.
Quelle: opennet.ru




