Nach vier Jahren Entwicklung wurde die Veröffentlichung der freien Spiel-Engine Godot 4.0 bekannt gegeben, die fĂŒr die Erstellung von 2D- und 3D-Spielen geeignet ist. Die Engine unterstĂŒtzt eine leicht zu erlernende Sprache fĂŒr die Programmierung von Spiel-Logik, eine grafische Umgebung zur Spieleentwicklung, ein Ein-Klick-Deployment-System, umfangreiche Animations- und Physik-Simulationsmöglichkeiten, einen integrierten Debugger und ein System zur Erkennung von Performance-EngpĂ€ssen. Der Code der Spiel-Engine, der Entwicklungsumgebung und der zugehörigen Entwicklungstools (Physik-Engine, Audio-Server, Backends fĂŒr 2D/3D-Rendering usw.) wird unter der MIT-Lizenz verbreitet.
Der Quellcode der Engine wurde 2014 von dem Studio OKAM freigegeben, nach zehn Jahren der Entwicklung eines proprietĂ€ren Produkts auf professionellem Niveau, das fĂŒr die Entwicklung und Veröffentlichung vieler Spiele fĂŒr PC, Spielkonsolen 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 Entwicklung von Spielen fĂŒr das Web. Funktionsbereite BinĂ€rversionen wurden fĂŒr Linux, Android, Windows und macOS erstellt.
In den Godot 4.0-Branch wurden etwa 12.000 Ănderungen eingefĂŒgt und 7.000 Fehler behoben. Rund 1500 Personen haben an der Entwicklung der Engine und dem Schreiben der Dokumentation mitgearbeitet. Zu den wichtigsten Ănderungen gehören:
- Es wurden zwei neue Rendering-Backends (clusterbasiert und mobil) auf Basis der Grafik-API Vulkan angeboten, die die Backends ablösen, die Rendering ĂŒber OpenGL ES und OpenGL durchfĂŒhren. FĂŒr alte und leistungsschwache GerĂ€te wurde ein KompatibilitĂ€ts-Backend auf Basis von OpenGL integriert, das eine neue Rendering-Architektur verwendet. FĂŒr dynamisches Rendering mit niedrigerer Auflösung wurde die AMD FSR-Technologie (FidelityFX Super Resolution) eingesetzt, die Algorithmen fĂŒr rĂ€umliches Upscaling und Detailrekonstruktion nutzt, um den QualitĂ€tsverlust bei der Skalierung und Umwandlung in höhere Auflösungen zu minimieren. Eine Rendering-Engine auf Basis von Direct3D 12 wurde implementiert, die die UnterstĂŒtzung fĂŒr die Plattformen Windows und Xbox verbessert.

- Die Möglichkeit, in einem Multi-Window-Modus mit der BenutzeroberflĂ€che zu arbeiten, wurde hinzugefĂŒgt (verschiedene Panels und Teile der BenutzeroberflĂ€che können als separate Fenster angehĂ€ngt werden).

- Ein neuer BenutzeroberflĂ€chen-Editor und ein neues visuelles Design-Widget wurden hinzugefĂŒgt.

- Ein neuer Editor fĂŒr Themen wurde hinzugefĂŒgt.

- Das Beleuchtungs- und Schattensystem wurde vollstÀndig neu geschrieben, wobei die Echtzeit-Technologie der globalen Beleuchtung SDFGI (Signed Distance Field Global Illumination) verwendet wird. Die QualitÀt des Schattens wurde erheblich verbessert.

- Der GIProbe-Knoten, der zur Beleuchtung der Szene mit reflektiertem Licht verwendet wurde, wurde durch den VoxelGI-Knoten ersetzt, der fĂŒr die Echtzeitanwendung von Licht in Szenen mit kleinen oder mittleren InnenrĂ€umen optimiert ist. FĂŒr schwĂ€chere Hardware bleibt die Möglichkeit der Vorab-Renderung von Licht und Schatten mithilfe von Lichtkarten erhalten, deren Rendering jetzt durch die GPU beschleunigt wird.

- Neue Techniken zur Renderoptimierung wurden implementiert. Es wurde eine automatische Okklusionsabdeckung (occlusion culling) hinzugefĂŒgt, die dynamisch Modelle identifiziert und entfernt, die hinter anderen OberflĂ€chen verborgen sind, um die Renderleistung zu steigern und die CPU- und GPU-Auslastung zu reduzieren.

- Der Modus SSIL (Screen Space Indirect Lighting) wurde hinzugefĂŒgt, der die Rendering-QualitĂ€t auf leistungsstarker Hardware durch verbesserte Verarbeitung dunkler Bereiche und indirekter Beleuchtung erhöht. DarĂŒber hinaus wurden zusĂ€tzliche Einstellungen zur Simulation von diffusem indirektem Licht mithilfe der SSAO-Technik (Screen Space Ambient Occlusion) bereitgestellt, wie z.B. die Wahl des Einflussgrades des direkten Lichts.
- Es wurden realistische Beleuchtungseinheiten vorgeschlagen, die es ermöglichen, die LichtintensitÀt zu korrigieren und die Standardkameraeinstellungen wie Blende, Belichtungszeit und ISO zur Steuerung der Helligkeit der finalen Szene zu nutzen.
- Neue Werkzeuge zur Bearbeitung von Levels fĂŒr 2D-Spiele wurden hinzugefĂŒgt. Es wurden drastische Ănderungen im Entwicklungsprozess von 2D-Spielen vorgenommen. Ein neuer Tilemap-Editor wurde hinzugefĂŒgt, der die UnterstĂŒtzung von Schichten, automatischen LandschaftsfĂŒllungen, randomisierter Platzierung von Pflanzen, Steinen und verschiedenen Objekten sowie flexible Objektauswahl bietet. Die Arbeit mit Tilemaps und Fragmentsets zur Erstellung von Karten (tileset) wurde vereinheitlicht. Eine automatische Erweiterung der Fragmente im Set wurde eingerichtet, um LĂŒcken zwischen benachbarten Fragmenten zu vermeiden. DarĂŒber hinaus wurde eine neue Funktion zur Platzierung von Objekten in der Szene hinzugefĂŒgt, die beispielsweise zur HinzufĂŒgung von Charakteren in die Zellen des Tile-Netzes verwendet werden kann.
- Bei der 2D-Darstellung wurde die Möglichkeit implementiert, Gruppen von LeinwĂ€nden zu nutzen, die es ermöglichen, ĂŒberlappende Elemente zu mischen. Beispielsweise können mehrere Sprites zusammengefasst und mit dem Hintergrund gemischt werden, als wĂ€ren diese Sprites ein einziges Element. Die Eigenschaft Clip Children wurde hinzugefĂŒgt, die es ermöglicht, jedes 2D-Element als Maske zu verwenden. Der 2D-Engine wurde auch eine Option hinzugefĂŒgt, die die Verwendung von MSAA (Multisample Anti-Aliasing) zur Verbesserung der BildqualitĂ€t und zur Schaffung glatterer Kanten ermöglicht.

- Die Arbeit mit Licht und Schatten in 2D-Spielen wurde verbessert. Die Leistung bei der Verwendung mehrerer Lichtquellen wurde erheblich gesteigert. Es wurde die Möglichkeit hinzugefĂŒgt, DreidimensionalitĂ€t durch VerĂ€nderung des Lichtniveaus auf Normalmaps zu simulieren, sowie die Erstellung visueller Effekte wie lange Schatten, Heiligenscheine und klare Konturen.

- Ein volumetrischer Nebeleffekt wurde hinzugefĂŒgt, der die Technik der temporalen Rekonstruktion nutzt, um ein realistisches Aussehen bei hoher Leistung zu erreichen.

- Cloud-Shader wurden hinzugefĂŒgt, die es ermöglichen, Wolken dynamisch zu generieren, die sich in Echtzeit Ă€ndern.

- Die UnterstĂŒtzung fĂŒr âDecalsâ, eine Methode zur Projektion von Materialien auf OberflĂ€chen, wurde implementiert.
- Es wurden Effekte auf Basis von Partikeln hinzugefĂŒgt, die im gesamten Spielraum anwendbar sind und die GPU nutzen. Diese unterstĂŒtzen Attraktoren, Kollisionen, NachlĂ€ufe und Emittern.
- Die Möglichkeiten der BenutzeroberflĂ€che fĂŒr die visuelle Bearbeitung von Shadern wurden erweitert.

- Die Shader-Sprache wurde erweitert und unterstĂŒtzt jetzt Strukturen, PrĂ€prozessor-Makros, Shader-Inklusion (include-Anweisung), einheitliche Arrays und die Verwendung von âvaryingâ zur DatenĂŒbertragung vom Fragment-Handler zum Beleuchtungs-Handler.
- Die Möglichkeit zur Anwendung von Compute-Shadern wurde hinzugefĂŒgt, die die GPU zur Beschleunigung von Algorithmen nutzt.
- Im Skriptsprache GDScript wurde das System der statischen Typisierung verbessert, eine neue Syntax zur Definition von Eigenschaften hinzugefĂŒgt, die SchlĂŒsselwörter await und super eingefĂŒhrt, map/reduce-Operationen implementiert, ein neues Annotationssystem realisiert, die Nutzung von Unicode-Zeichen in Variablen- und Funktionsnamen ermöglicht. Ein Werkzeug zur automatischen Generierung von Dokumentationen wurde hinzugefĂŒgt. Die Leistung und StabilitĂ€t der GDScript-Laufzeitumgebung wurde verbessert. In der Entwicklungsumgebung wurde die Möglichkeit geschaffen, mehrere Fehler gleichzeitig anzuzeigen, und es wurden neue Warnungen fĂŒr typische Probleme hinzugefĂŒgt.

- Die Möglichkeiten zur Entwicklung von Spiel-Logik in C# wurden erweitert. Die UnterstĂŒtzung fĂŒr die Plattform .NET 6 und die Sprache C# 10 wurde hinzugefĂŒgt. FĂŒr Skalare Werte werden 64-Bit-Typen verwendet. Viele APIs wurden von den Typen int und float auf long und double umgestellt. Die Möglichkeit zur Definition von Signalen in Form von C#-Ereignissen wurde bereitgestellt. Zudem wurde die Entwicklung von GDExtensions in C# ermöglicht.
- Die experimentelle UnterstĂŒtzung fĂŒr Erweiterungen (GDExtension) wurde hinzugefĂŒgt, die zur Erweiterung der Engine-FunktionalitĂ€ten verwendet werden können, ohne die Engine neu zu kompilieren oder den Code zu Ă€ndern.
- StandardmĂ€Ăig wird jetzt die eigene Simulationsengine Godot Physics angeboten, die fĂŒr die Lösung von Aufgaben, die im Bereich von Computerspielen typisch sind, optimiert und hinsichtlich der FunktionalitĂ€t auf ParitĂ€t mit der zuvor verwendeten Bullet-Engine gebracht wurde (z.B. wurde in Godot Physics die Verarbeitung neuer Kollisionsformen, die UnterstĂŒtzung von Höhendatenkarten und die Möglichkeit zur Nutzung von SoftBody-Knoten zur Simulation von Kleidung hinzugefĂŒgt). Die Leistung wurde optimiert, und die Anwendung von Multithreading zur Verteilung der Last auf verschiedene CPU-Kerne bei der Simulation physikalischer Prozesse in 2D- und 3D-Umgebungen wurde erweitert. Viele Probleme mit der Simulation wurden gelöst.
- Ein neues Textdarstellungssystem wurde vorgeschlagen, das mehr Kontrolle ĂŒber das Abschneiden und Umbrechen von Text bietet und zudem eine hohe SchĂ€rfe bei allen Bildschirmauflösungen gewĂ€hrleistet.
- Die Werkzeuge zur Lokalisierung und zur Arbeit an Ăbersetzungen wurden erweitert.
- Ein separater Dialog zum Import von 2D- und 3D-Ressourcen wurde hinzugefĂŒgt, der eine Vorschau und Ănderung der Einstellungen fĂŒr die importierte Szene, Materialien und physikalische Eigenschaften unterstĂŒtzt.

- Im Editor wurden neue Widgets hinzugefĂŒgt, darunter ein Panel zum RĂŒckgĂ€ngigmachen von Ănderungen sowie ein neuer Farbauswahl- und Farbpaletten-Update-Dialog.

- Die BenutzeroberflĂ€che der Inspektion wurde aktualisiert, Steuerungspanel die Szene und der Skripteditor. Die Syntaxhervorhebung wurde verbessert, die Möglichkeit zur Anzeige mehrerer Cursorn hinzugefĂŒgt und Werkzeuge zum Bearbeiten von JSON- und YAML-Formaten bereitgestellt.
- Die Funktionen des Animationseditors wurden erweitert, der nun die UnterstĂŒtzung fĂŒr das Mischen von Formen bietet und die Prozesse auf Basis von BĂ©zier-Kurven verbessert wurden. Der Code fĂŒr die 3D-Animation wurde neu geschrieben und unterstĂŒtzt jetzt Komprimierung zur Reduzierung des Speicherverbrauchs. Das System zum Mischen von Animationen und Erstellen von Ăbergangseffekten wurde ĂŒberarbeitet. Die Möglichkeiten zur Erstellung komplexer Animationen wurden erweitert. Zur Speicherung und Wiederverwendung erstellter Animationen wurden Animationsbibliotheken vorgeschlagen.

- Ein Film-Erstellungsmodus wurde hinzugefĂŒgt, der eine Bild-fĂŒr-Bild-Wiedergabe der Szene in höchster QualitĂ€t zum Erstellen von Intros und Videoaufnahmen ermöglicht.
- Die UnterstĂŒtzung fĂŒr 3D-Headsets und Plattformen der virtuellen RealitĂ€t wurde erweitert. In den Hauptbestand des Engines wurde die UnterstĂŒtzung des OpenXR-Standards integriert, der eine universelle API fĂŒr die Erstellung von Virtual-Reality- und Augmented-Reality-Anwendungen definiert. In Windows und Linux wird die UnterstĂŒtzung aller gĂ€ngigen 3D-Headsets gewĂ€hrleistet, einschlieĂlich SteamVR-, Oculus- und Monado-Headsets.
- Die StabilitĂ€t des Untermoduls fĂŒr die Organisation von Netzwerkspielen wurde verbessert und der Entwicklungsprozess fĂŒr Mehrspieler-Spiele vereinfacht.
- Die Möglichkeiten des Soundsystems wurden erweitert, die UnterstĂŒtzung fĂŒr Polyfonie integriert, eine API fĂŒr Sprachsynthese hinzugefĂŒgt und die Möglichkeit zum Loopen von Audio realisiert.
- Die Möglichkeit, die Godot-OberflÀche auf Android-Tablets und im Webbrowser zu starten, wurde sichergestellt.

- Ein neues System zum Erstellen von Spielen fĂŒr verschiedene CPU-Architekturen wurde hinzugefĂŒgt. Beispielsweise kann jetzt eine Kompilierung fĂŒr Raspberry Pi, Microsoft Volterra, Surface Pro X, Pine Phone, VisionFive, ARM Chromebook und Asahi Linux durchgefĂŒhrt werden.
- Im API wurden Ănderungen vorgenommen, die die KompatibilitĂ€t beeintrĂ€chtigen. Der Wechsel von Godot 3.x zu Godot 4.0 erfordert eine Ăberarbeitung der Anwendungen, jedoch wird fĂŒr den Godot-3.x-Zweig ein langer UnterstĂŒtzungzyklus gewĂ€hrleistet, dessen Dauer von der Nachfrage nach der alten API durch die Benutzer abhĂ€ngt.

Quelle: opennet.ru

















