Na 7 maanden ontwikkeling is de vrijgegeven versie van de gratis game-engine Godot 3.3 gepubliceerd, geschikt voor het maken van 2D- en 3D-games. De engine ondersteunt een gemakkelijk te leren scriptingtaal voor game-logica, een grafische omgeving voor game-ontwerp, een ƩƩn-klik game-implementatiesysteem, uitgebreide animatie- en fysieke simulatiemogelijkheden, een ingebouwde debugger en een systeem voor het detecteren van prestatieknelpunten. De code van de game-engine, de game-ontwerpomgeving en de bijbehorende ontwikkelingsmiddelen (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.
De Godot 3.3-tak is volledig compatibel met Godot 3.2 en zet de ontwikkeling van stabiele engine-releases voort, waarvoor een langdurige ondersteuningscyclus zal worden gegarandeerd. Oorspronkelijk was het de bedoeling om een update 3.2.4 uit te brengen in plaats van Godot 3.3, maar versie 3.2.x werd door gebruikers gezien als een correctie-update, ondanks de portering van nieuwe functies uit tak 4.0. Daarom is het project overgestapt op een klassiek semantisch versiebeheer. In het bijzonder zal een update van het derde cijfer nu alleen bugfixes aanduiden, het tweede cijfer de toevoeging van nieuwe functionaliteit en het eerste cijfer veranderingen die van invloed zijn op de compatibiliteit. De 3.x.x-tak zal parallel worden ondersteund met 4.x.x totdat Godot 4.x volledig is gestabiliseerd en is aangepast voor alle actuele hardware.
Godot 3.3 valt op door de toevoeging van de volgende vernieuwingen:
- Er is een versie van de editor voorbereid die in de webbrowser werkt.

- De mogelijkheid om games te exporteren voor het Android-platform in het AAB-formaat (Android App Bundle) is toegevoegd, naast APK-pakketten. Het AAB-formaat maakt het mogelijk om alleen de benodigde native bibliotheken voor het huidige apparaat te laden (bijv. armeabi-v7a of arm64-v8a). Voor het Android-platform is ook de mogelijkheid gerealiseerd om elementen op basis van de Godot-engine in apps in te voegen in de vorm van subcomponenten (subview) die een deel van het venster gebruiken. Daarnaast is ondersteuning voor blinde gebieden op het scherm (afrondingen en uitsparingen voor de camera), muisgebeurtenissen en invoer van een extern toetsenbord toegevoegd.

- Een nieuwe API is voorgesteld voor het bouwen en verspreiden van plug-ins voor het iOS-platform, waarmee plug-ins (ARKit, GameCenter, InAppStore) in een aparte repository kunnen worden geplaatst en onafhankelijk van de Godot-engine kunnen worden ontwikkeld. Deze API was eerder gerealiseerd voor het Android-platform.
- De exporttools voor games naar het web (HTML5-platform) zijn verbeterd. Voor in de browser gespeelde games is ondersteuning voor multithreading en GDNative-scripts toegevoegd, maar vanwege de beperkingen van het HTML5-platform is hun implementatie niet compatibel met de versies voor native games. Daarnaast is de implementatie van threads afhankelijk van de SharedArrayBuffer API, die niet in alle browsers beschikbaar is. Er zijn drie aparte exportmodi ā Regular, Threads en GDNative. In het multithread-profiel is bovendien ondersteuning voor de AudioWorklet API toegevoegd, die een betere geluidsweergave zonder blokkering van de hoofdthread mogelijk maakt. De ondersteuning voor gamepads en virtuele toetsenborden is aanzienlijk verbeterd.

- Ondersteuning voor het bouwen van games voor de nieuwe Apple-hardware met de ARM M1-chip is toegevoegd. Ondersteuning voor het attachen van digitale handtekeningen aan uitvoerbare bestanden die voor macOS worden gegenereerd, is toegevoegd.
- Een gemoderniseerde API voor multithreading is overgenomen uit de versie 4.0, waarin de mogelijkheden van de C++14-standaard zijn benut, de betrouwbaarheid op verschillende platforms is verhoogd en de prestaties zijn geoptimaliseerd.
- Een optimalisatie is overgenomen uit de versie 4.0, waarbij de BVH-structuur (Bounding Volume Hierarchy) is gebruikt in plaats van de Octree-methode voor dynamische ruimtelijke verdeling tijdens het renderen. BVH wordt nu standaard gebruikt en lost veel prestatieproblemen op.
- Een eenduidige implementatie van 2D-batching (Batching, optimalisatie om het aantal renderaanroepen te verminderen door rekening te houden met de relatieve positionering van objecten) is ingevoerd, die kan worden toegepast zowel voor OpenGL ES 3 als voor OpenGL ES 2. De optimalisatie dekt nu meer objecten, inclusief lijnen en polygonen.
- Een nieuwe lightmapper is toegevoegd, die de padtraceringstechniek toepast en ruisonderdrukking ondersteunt met behulp van de oidn-bibliotheek (Open Image Denoise). De nieuwe lightmapper maakt bij berekeningen gebruik van de CPU en lost de meeste kwaliteitsproblemen op die verband houden met de oude verwerker. Daarnaast is er een versie van de lightmapper ontwikkeld die gebruikmaakt van de GPU, maar deze is afhankelijk van de Vulkan-API en zal slechts beschikbaar zijn in de 4.0-tak.

- Veel verbeteringen met betrekking tot rendering zijn overgenomen uit de Godot 4.0-tak, zoals snelle software skinning, geoptimaliseerde transformaties van verborgen 3D-objecten, een aanpasbaar aantal lichtbronnen voor elk object en verbeterde schaduwrendering met behulp van PCF-filtering.

- De fysica-simulatiemotor heeft verbeteringen aangebracht in de verwerking van verschillende soorten botsingen.
- De editor heeft volledige mogelijkheden voor het kopiëren en plakken van knooppunten toegevoegd, die het mogelijk maken om over verschillende scènes heen te verplaatsen.
- De inspectiemodus is verbeterd, waarbij visuele markering van subresources is toegevoegd.

- Ondersteuning is toegevoegd voor het instellen van standaardinstellingen voor geĆÆmporteerde bronnen.

- Er is gewerkt aan het verbeteren van de gebruiksvriendelijkheid in de 3D-editor, waaronder de toevoeging van een oneindig dynamisch 3D-rooster en een aanzienlijke verbetering van de rotatie- en selectie-implementatie met behulp van gizmo (de coƶrdinatenasaanwijzer).

- In de groepswerktools is een bescherming toegevoegd tegen wijzigingen in scĆØnes die al door andere gebruikers zijn geopend (er verschijnt een waarschuwing als er nieuwere versies van geopende bestanden worden ontdekt tijdens het opslaan).
- De import vanuit FBX-bestanden is verbeterd.

- Er is een OpenXR-plugin toegevoegd met ondersteuning voor de gelijknamige standaard voor het maken van virtuele en augmented reality-toepassingen. In de HTML5-port voor het maken van VR-technologiegames is ondersteuning toegevoegd voor de WebXR-specificatie.

- Ondersteuning voor het uploaden en afspelen van audio in MP3-formaat is toegevoegd (voorheen niet ondersteund vanwege patenten).
- In GraphEdit is ondersteuning voor een miniatuurweergave van de volledige structuur (minimap) toegevoegd, weergegeven in de rechterbenedenhoek, zodat je alle knooppunten in ƩƩn oogopslag kunt overzien.

Bron: opennet.ru











