Na vijf maanden ontwikkeling is de gratis Godot 4.2 game-engine uitgebracht, geschikt voor het maken van 2D- en 3D-games. De engine ondersteunt een eenvoudig te leren gamelogica, een grafische omgeving voor het ontwerpen van games, een systeem voor de implementatie van games met één klik, uitgebreide mogelijkheden voor animatie en physics-simulatie, een ingebouwde debugger en een systeem voor het detecteren van prestatieknelpunten. De code voor de game-engine, de game-ontwerpomgeving en bijbehorende ontwikkeltools (physics-engine, geluidsserver, 2D/3D-rendering-backends, enz.) worden gedistribueerd onder de MIT-licentie.
De broncode van de engine werd in 2014 door OKAM Studios open source gemaakt, na tien jaar ontwikkeling van een eigen, professioneel product dat werd gebruikt voor het maken en publiceren van talloze games voor pc, consoles en mobiele apparaten. De engine ondersteunt alle populaire desktop- en mobiele platformen.Linux, Windows, macOSWii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), evenals webgame-ontwikkeling. Kant-en-klare binaire builds worden gemaakt voor Linux, Android, Windows и macOS.
Grote veranderingen:
- Voor 2D-gameontwikkelaars is ondersteuning voor gedwongen integer-schaling toegevoegd, waardoor het pixelraster vierkant kan zijn, ongeacht de werkelijke beeldverhouding. De mogelijkheid om barycentrische normaalcoördinaten te verkrijgen uit de snijpunten van een object met een straal is geïntroduceerd. De methoden Rotate_toward en Angle_difference zijn toegevoegd om rotatie en hoeken correct af te handelen. De eigenschap "closed" is toegevoegd aan Line2D-knooppunten om gesloten lijnen met een continue vulling te creëren.

- Er is gewerkt aan het verbeteren van de betrouwbaarheid van het animatiesysteem. De knooppunten AnimationPlayer en AnimationTree zijn opnieuw ontworpen en samengevoegd, waarbij hun gemeenschappelijke onderdelen zijn gescheiden in de tussenliggende klasse AnimationMixer. Er is een optie voor deterministische menging toegevoegd. Er is een onion skinning-modus toegevoegd aan de animatiepreview, inclusief de weergave van doorschijnende overlays met voorgaande en volgende animatieframes.

- De mogelijkheden om het navigatienetwerk te "bakken" (om te zetten in een statische vorm) voor 2D liggen dichter bij de mogelijkheden die eerder beschikbaar waren voor 3D-navigatie. Zo is er bijvoorbeeld ondersteuning geïmplementeerd voor het werken met fysieke objecten, instanties van polygonale netwerken, eenvoudige polygonen en tegelkaarten voor 2D-netwerken. severen 2D- en 3D-navigatie ondersteunen nu multithreaded mesh baking.

- De code voor het werken met tegels en tegelkaarten is herzien. Blokgroepering en sorteerbewerkingen langs de Y-as zijn geoptimaliseerd, waardoor de tijd die nodig is om tegels bij te werken aanzienlijk is verkort. Er is gewerkt aan het verbeteren van het gemak van het maken en gebruiken van tegelkaarten. Er is een tool toegevoegd voor het omdraaien en roteren van tegels tijdens het plaatsen. Tools voor het bewerken van polygonen en tegelscènes zijn verbeterd.

- De GDScript-scripteditor ondersteunt nu benoemde codegebieden voor het inklappen van codeblokken tijdens het bewerken en het vereenvoudigen van de navigatie. De scriptdebugger biedt nu volledige ondersteuning voor multithreaded code, de uitvoeringsstack en breakpoints. C#/.NET-scripts ondersteunen nu platformen. Android (vereist .NET 7.0 of hoger) en iOS (vereist .NET 8.0). GDScript-scripts bieden nu uitgebreidere ondersteuning voor statisch getypte code, ondersteuning voor r-string (raw string) literals en de mogelijkheden van de match-operator zijn uitgebreid.

- De 3D-viewport ondersteunt nu betere transformatiecontrole in Blender-stijl met de muis en sneltoetsen. Uitgebreide visuele informatie in de 3D-viewport wordt nu alleen weergegeven voor geselecteerde objecten. Er zijn extra indicatoren toegevoegd voor elementen zoals decals en mistvolume. Verbeterde gizmo-ondersteuning: elke zijde van volumetrische vormen kan nu individueel worden uitgevouwen in de viewport.

- Het contextmenu en de tooltips in de panelen Inspecteren en Signalen zijn verbeterd. Tooltips met beschrijvingen van eigenschappen zijn toegevoegd aan de thema-editor. De mogelijkheid om mappen duidelijk te markeren door ze verschillende kleuren toe te wijzen, is nu beschikbaar in het bestandssysteempaneel. De interface van de editor voor kleurverloopbronnen is opnieuw ontworpen. In de editor voor textuurgebieden is het werken met alle ondersteunde bronnen, inclusief stijlen en atlassen, geüniformeerd.

- De weergave van zoekresultaten in de Assetbibliotheek is verbeterd en u kunt nu een andere map selecteren voor het installeren van een add-on of resource.

- De projectmanager heeft de lay-out van de belangrijkste besturingselementen opnieuw ontworpen en de interface voor het importeren van projecten gemoderniseerd.

- De mogelijkheden voor het ontwikkelen van plug-ins voor de editor zijn uitgebreid. Toegang tot alle editorfunctionaliteit wordt geboden via de klasse EditorInterface. Handige methoden voor directe toegang tot 2D- en 3D-viewports zijn geïmplementeerd. De mogelijkheid om een dialoogvenster weer te geven met een waarschuwing over niet-opgeslagen wijzigingen is toegevoegd.
- Verdere ontwikkeling van het experimentele GDExtension-extensiesysteem, waarmee laag-level talen zoals C++ als scripttalen voor games kunnen worden gebruikt, zonder de engine opnieuw te hoeven bouwen of de code aan te passen. De mogelijkheid toegevoegd om GDExtensions te gebruiken bij het exporteren naar het web.
- Het focusbeheer in de gebruikersinterface is gewijzigd. De mogelijkheid om de focus over te brengen naar afzonderlijke tabbladen in de tabbladbalk is geïmplementeerd, ook bij navigatie met het toetsenbord. Er is een methode toegevoegd om het volgende aangrenzende focusbare element te vinden aan de besturingsknooppunten (Control). De grafiekconstructieknooppunten (GraphEdit en GraphNode) zijn aanzienlijk aangepast. De opties voor het aanpassen van de werkbalk van het hoofdknooppunt GraphEdit zijn uitgebreid.

- De mogelijkheid toegevoegd om het type import van assets direct te wijzigen, met automatische updates van scènes en resources, zonder dat de editor opnieuw hoeft te worden opgestart. De beschikbare importparameters zijn uitgebreid en het is nu mogelijk om de fysieke eigenschappen van geïmporteerde objecten te wijzigen, evenals schaduw- en zichtbaarheidsparameters. De mogelijkheid om een voorbeeld van een animatie te bekijken in het importdialoogvenster is toegevoegd. Uitgebreide ondersteuning voor het importeren van assets uit Blender in GLTF-formaat. Ondersteuning toegevoegd voor het importeren van afbeeldingen in KTX-formaat.

- Er zijn optimalisaties doorgevoerd om de renderingprestaties te verbeteren. Om de rendering op mobiele apparaten te versnellen, zijn rasterbarrières gescheiden in vertex- en fragmentcomponenten. De generatie van ruisachtige texturen is versneld. Er is een pre-pass toegevoegd voor diepteberekening. De laad- en compilatietijden van shaders zijn verkort. De opslag van polygoonmeshes in het geheugen is geoptimaliseerd. Ondersteuning voor polygoonmeshescompressie is toegevoegd om de bandbreedte tijdens de transmissie te verminderen.
- De mogelijkheid is toegevoegd om uw eigen textuurobjecten te maken (een voorbeeld van het gebruik van computationele shaders om een textuur met een watereffect te maken).
- Er is een API toegevoegd voor het aanroepen van code op de renderthread, wat bijvoorbeeld nodig kan zijn als u een compute shader wilt synchroniseren met rendering.
- Ondersteuning toegevoegd voor versie 2.2 van de AMD FSR (FidelityFX Super Resolution) supersamplingtechnologie, die gebruikmaakt van ruimtelijke schaal- en detailreconstructie-algoritmen om verlies van beeldkwaliteit te beperken bij het opschalen en upsamplen naar hogere resoluties.
- Er wordt een nieuwe ruisonderdrukker (JNLM) voorgesteld, die gebruikmaakt van lightmappers en compute shaders. JNLM is aanzienlijk sneller dan de eerder gebruikte OIDN (Open Image Denoise) ruisonderdrukkerbibliotheek, maar is in sommige situaties van mindere kwaliteit.
- De rendermethoden Forward+ en Mobile ondersteunen nu 2D-rendering in High Dynamic Range (HDR), waardoor sommige 2D-effecten, zoals gloed, in 3D-games kunnen worden geïmplementeerd. De rendermethode Compatibiliteit ondersteunt nu XNUMXD-schaduwen.
- Voor macOS и Windows Er is een nieuwe OpenGL-renderingdriver geïntroduceerd die gebruikmaakt van de ANGLE-laag, die OpenGL-aanroepen vertaalt naar de Direct3D 11- en Metal-API's.
- Het deeltjessimulatiesysteem is vernieuwd om de beweging van deeltjes gemakkelijker te onderhouden en beter te controleren. Je kunt nu bijvoorbeeld de bewegingssnelheid animeren en overnemen, en het aantal uitgezonden deeltjes wijzigen. Er is een tool toegevoegd om CPU-gebaseerde code voor deeltjesgeneratie om te zetten naar equivalente GPU-gebaseerde code.
- Ondersteuning toegevoegd voor het gebruik van native voor Linux, macOS и Windows Dialoogvensters voor bestandsselectie, evenals de mogelijkheid om afbeeldingen te kopiëren en te plakken via het klembord.
- De Godot-architectuur is opnieuw ontworpen voor het platform. Android, dat vrij is van gehechtheid aan Android- De Fragment-component, die de opstarttijd van applicaties en games verkortte en de mogelijkheid bood om met meerdere vensters te werken.
- De vorming van officiële Linux- Godot-editorbuilds voor 32- en 64-bits ARM-platforms.
Bron: opennet.ru











