Na 6 maanden ontwikkeling is de vrijgegeven versie van de gratis game-engine Godot 3.4, geschikt voor het maken van 2D- en 3D-spellen. De engine ondersteunt een eenvoudig te leren script-taal voor game-logica, een grafische omgeving voor game-ontwerp, een één-klik implementatiesysteem voor games, uitgebreide animatie- en simulatiemogelijkheden, een ingebouwde debugger en een systeem voor het identificeren van prestatieknelpunten. De code van de game-engine, de game-ontwerpomgeving en bijbehorende ontwikkelingshulpmiddelen (fysieke engine, geluidsserver, backends voor 2D/3D rendering, enz.) wordt verspreid onder de MIT-licentie.
De bronbestanden van de engine werden in 2014 vrijgegeven door studio OKAM, na tien jaar ontwikkeling van een propriëtaire professionele product dat gebruikt is voor het maken en uitgeven van vele games voor pc, spelconsoles en mobiele apparaten. De engine ondersteunt alle populaire desktop- en mobiele platforms (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), evenals de ontwikkeling van games voor het web. Klaar-voor-gebruik binaire builds zijn beschikbaar voor Linux, Windows en macOS.
In een aparte tak wordt een nieuwe rendering-backend ontwikkeld op basis van de grafische API Vulkan, die zal worden aangeboden in de volgende versie Godot 4.0, in plaats van de momenteel aangeboden rendering-backends via OpenGL ES 3.0 en OpenGL 3.3 (ondersteuning voor OpenGL ES en OpenGL zal worden behouden door het functioneren van de oude OpenGL ES 2.0/OpenGL 2.1 backend mogelijk te maken boven een nieuwe Vulkan-gebaseerde renderingarchitectuur). De overstap van Godot 3.x naar Godot 4.0 vereist herontwerp van applicaties vanwege incompatibiliteit op de API-niveau, maar voor de Godot 3.x tak zal een langdurige ondersteuningscyclus worden gegarandeerd, waarvan de duur afhankelijk zal zijn van de vraag naar de strikte API door gebruikers.
Godot 3.4 valt op door de toevoeging van de volgende vernieuwingen:
- De gebruikersinterface voor het bewerken van thema's is herzien, waarbij een visueel proces voor het selecteren van knooppunten is geïmplementeerd en de mogelijkheid is geboden om de opmaak te wijzigen zonder de voorbeeldmodus te verlaten.

- Verbeteringen zijn aangebracht in de editor voor gebruiksvriendelijkheid: er is een functie voor snelle resource-upload toegevoegd in de inspectiemodus, het is nu mogelijk om een knooppunt op een willekeurige positie te creëren, er is een nieuwe sjabloonexportinterface toegevoegd, extra bewerkingen met gizmo (systeem voor begrenzende parallelepipeden) zijn geïmplementeerd en de animatie-editor op basis van Bézier-curven is verbeterd.

- Er is een modus voor het terugdraaien van wijzigingen toegevoegd, waarmee alle scene-wijzigingen die zijn veroorzaakt door het toepassen van animatie via AnimationPlayer in één keer kunnen worden teruggedraaid, in plaats van elke eigenschap afzonderlijk te annuleren.
- In de instellingen is een optie toegevoegd om het zoomniveau van het 2D-voorbeeldgebied (2D viewport) te wijzigen, wat bijvoorbeeld kan worden gebruikt om 2D-elementen te vergroten of te verkleinen, onafhankelijk van de huidige rekmodus (stretch mode).
- In de File API is de mogelijkheid toegevoegd om met bestanden (inclusief PCK) te werken waarvan de grootte meer dan 2 GB bedraagt.
- Wijzigingen zijn doorgevoerd om de soepelheid van de weergave te verhogen door wijzigingen in frames te berekenen zonder te koppelen aan de systeemtimer en om synchronisatieproblemen bij het gebruik van vsync op te lossen.
- In het invoerverwerkingssysteem InputEvents is ondersteuning toegevoegd voor bindings aan scancodes die de fysieke plaatsing van toetsen op het toetsenbord weergeven, ongeacht de actieve indeling (bijvoorbeeld zullen de toetsen WASD in de QWERTY-indeling automatisch worden gekoppeld aan de toetsen ZQSD op de Franse AZERTY-indeling).
- De interfaces AESContext en HMACContext zijn toegevoegd voor toegang vanuit scripts tot de versleutelingsalgoritmen AES-ECB, AES-CBC en HMAC. Daarnaast is er de mogelijkheid toegevoegd om open RSA-sleutels op te slaan en te lezen voor het genereren en verifiëren van digitale handtekeningen.
- In de rendering-engine is een initiële ondersteuning voor het stoppen met het renderen van objecten die zich in de camerafocus bevinden, maar niet zichtbaar zijn vanwege overlapping met andere objecten (bijvoorbeeld die achter een muur staan) toegevoegd. Rasterisatie (op pixelniveau) van overlapping zal alleen worden geïmplementeerd in de Godot 4-tak, terwijl in Godot 3 enkele geometrische snijmethoden voor overlappende objecten en ondersteuning voor portaaloverlapping zijn opgenomen.

- Er is een nieuwe ACES Fitted tonemapping-methode toegevoegd, die een grotere realisme en fysieke nauwkeurigheid mogelijk maakt door de contrast van heldere objecten te verhogen.

- Ondersteuning toegevoegd voor de vorm van het uitstralen van driedimensionale deeltjes in de vorm van een ring of holle cilinder.
- De prestaties van de simulatiemotor voor fysische processen zijn aanzienlijk verbeterd bij het genereren van convexe objecten uit meshes en de botsingsdetectiemodus is herzien in de inspectie-interface. Voor de 2D-fysica-motor is ondersteuning toegevoegd voor de BVH-structuur (Bounding Volume Hierarchy) voor dynamische ruimtelijke verdeling. In de 3D-fysica-motor is ondersteuning geïmplementeerd voor de functie HeightMapShapeSW en zijn synchronisatiemiddelen toegevoegd met KinematicBody3D.
- De mogelijkheid toegevoegd om 3D-scènes in glTF-formaat te exporteren, bijvoorbeeld om in Godot voorbereide meshes in Blender te openen.
- Ondersteuning toegevoegd voor een verliesloze WebP-beeldcompressiemodus die nu standaard wordt toegepast voor het comprimeren van texturen in plaats van het PNG-formaat.
- In de Android-port is initiële ondersteuning toegevoegd voor de Scoped Storage API en een nieuwe manier om extra bronnen te laden (Play Asset Delivery) voor uitvoerbare bestanden in AAB-formaat (Android App Bundle).
- Voor het HTML5-platform is de mogelijkheid geïmplementeerd om te installeren als PWA-apps (Progressive Web Apps), en de JavaScriptObject-interface is toegevoegd voor interactie tussen Godot en JavaScript (bijvoorbeeld het aanroepen van JavaScript-methoden vanuit Godot-scripts). Voor multi-threaded builds is ondersteuning voor AudioWorklet geïmplementeerd.
- Ondersteuning toegevoegd voor Apple Silicon (M1) chip-systemen op het macOS-platform.
Bron: opennet.ru




