Po pěti měsících vývoje byl zveřejněn release svobodného herního enginu Godot 4.2, vhodného pro vytváření 2D a 3D her. Engine podporuje snadno se učící jazyk pro herní logiku, grafické prostředí pro návrh her, systém nasazení her jedním kliknutím, široké možnosti animace a simulace fyzikálních procesů, vestavěný debugger a systém pro odhalování úzkých míst v výkonu. Kód herního enginu, návrhového prostředí a přidružených vývojových nástrojů (fyzikální engine, zvukový server, backendy pro 2D/3D rendering atd.) je šířen pod licencí MIT.
Zdrojové kódy enginu byly otevřeny v roce 2014 studiem OKAM, po deseti letech vývoje proprietárního produktu profesionální úrovně, který byl použit k vytváření a publikování mnoha her pro PC, herní konzole a mobilní zařízení. Engine podporuje všechny populární stacionární a mobilní platformy (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), stejně jako vývoj her pro Web. Hotové binární sestavy jsou generovány pro Linux, Android, Windows a macOS.
Hlavní změny:
- Pro vývojáře 2D her byla přidána podpora nuceného celistvého škálování, umožňující využití čtvercové pixelové mřížky, bez ohledu na skutečné poměry stran. Byla poskytnuta možnost získání barycentrických souřadnic normály z bodů průsečíku objektu s paprskem. Byly přidány metody Rotate_toward a Angle_difference pro správné zpracování rotace a úhlů. Do uzlů Line2D bylo přidáno vlastnost „closed“ pro vytváření uzavřených linií s nepřetržitým vyplněním.

- Byla provedena práce na zvýšení spolehlivosti systému animace. Uzly AnimationPlayer a AnimationTree byly přepracovány a unifikovány, přičemž společné části byly vyčleněny do meziproduktové třídy AnimationMixer. Byla přidána volba pro deterministické míchání. Do náhledu animace byl přidán režim skici (onion skinning), zahrnující zobrazení poloprůhledných překryvů s předchozími a následujícími snímky animace.

- Možnosti „pečení“ navigační mřížky (baking, transformace do statické formy) pro 2D byly přiblíženy možnostem, které byly dříve dostupné v 3D navigaci, například pro 2D mřížky byla implementována podpora práce s fyzickými tělesy, instancemi polygonových mřížek, jednoduchými mnohouhelníky a dlaždicovými mapami (tilemap). servery Do 2D a 3D navigace byla přidána podpora vícethreadového pečení mřížek.

- Byl proveden refaktoring kódu pro práci s dlaždicemi a dlaždicovými mapami. Byly optimalizovány operace skupinové bloky a třídění podle osy Y, což vedlo k výraznému zkrácení doby aktualizace dlaždic. Byla provedena práce na zvýšení pohodlí při vytváření dlaždicových map a jejich používání. Byl přidán nástroj pro převracení a otáčení dlaždic při jejich umisťování. Byly vylepšeny nástroje pro úpravu polygonů a dlaždicových scén.

- V editoru skriptů GDScript byla přidána možnost vytvářet pojmenované oblasti kódu pro sbalování bloků během úpravy a usnadnění navigace. V debuggeru skriptů byla přidána plná podpora vícitémany kódu, zásobníku provádění a zarážek. V C#/.NET skriptech byla implementována podpora platform Android (vyžaduje .NET 7.0+) a iOS (vyžaduje .NET 8.0). V GDScript skriptech byla rozšířena podpora staticky typovaného kódu, přidána podpora pro řetězcové literály r-string (raw string) a rozšířeny možnosti operátoru match.

- Ve 3D pohledu byla zlepšena podpora řízení transformace ve stylu Blender, používající myš a klávesové zkratky. Zobrazení rozšířených vizuálních informací ve 3D pohledu je nyní realizováno pouze pro vybrané objekty. Byly přidány další indikátory pro takové prvky, jako jsou dekály a objem mlhy. Byla vylepšena práce s gizmo (gizmo) – jakoukoli stranu objemových tvarů lze nyní rozšiřovat jednotlivě v pohledu.

- Byla vylepšena kontextová menu a nápovědy v panelech "Inspekce" a "Signály". V editoru témat byly přidány nápovědy s popisem vlastností. V panelu práce se souborovým systémem se objevila možnost názorného zvýraznění adresářů pomocí přiřazování různých barev. Bylo přepracováno rozhraní editoru zdrojů gradientů. V editoru oblastí textur byla sjednocena práce se všemi podporovanými zdroji, včetně stylů a atlasů.

- V knihovně assetů bylo vylepšeno zobrazení výsledků vyhledávání a přidána možnost výběru jiného adresáře pro instalaci doplňku nebo zdroje.

- V manažeru projektů bylo přepracováno umístění hlavních ovládacích prvků a modernizováno rozhraní pro import projektu.

- Byla rozšířena možnost vývoje pluginů pro editor. Zajištěn přístup ke všem funkcím editoru prostřednictvím třídy EditorInterface. Byly implementovány praktické metody pro přímý přístup k 2D a 3D viewportům. Přidána možnost zobrazení dialogu s upozorněním na neuložené změny.
- Pokračoval vývoj experimentálního systému rozšíření GDExtension, který umožňuje používat nízkoúrovňové jazyky, jako je C++, jako skriptovací jazyky pro hry, bez potřeby překompilovat engine a bez změn v kódu. Byla přidána možnost využívání GDExtensions při exportu do Webu.
- Bylo změněno ovládání zaměření v uživatelském rozhraní. Realizována možnost přenosu zaměření na jednotlivé karty v panelu karet, včetně navigace pomocí klávesnice. Do ovládacích prvků (Control) byl přidán způsob pro hledání dalšího sousedního zaostřitelného prvku. Výrazně byl přepracován uzel pro stavbu grafů (GraphEdit a GraphNode). Byly rozšířeny možnosti přizpůsobení nástrojové lišty hlavního uzlu GraphEdit.

- Byla přidána možnost za běhu měnit typ importu assetů s automatickou aktualizací scén a zdrojů, což nevyžaduje restartování editoru. Byly rozšířeny dostupné možnosti importu a poskytnuta možnost změny fyzikálních vlastností importovaných objektů, jakož i parametrů stínů a viditelnosti. Přidána možnost náhledu animací v dialogovém okně importu. Byla rozšířena podpora importu assetů z Blenderu ve formátu GLTF. Přidána podpora importu obrázků ve formátu KTX.

- Byly provedeny optimalizace zaměřené na zlepšení výkonu renderování. Pro zrychlení práce na mobilních zařízeních bylo rozděleno rastrové pozadí na vrcholové a fragmentové komponenty. Zrychlena generace šumových textur. Přidán předběžný průchod pro výpočet hloubky. Zkrácena doba načítání a kompilace shaderů. Optimalizováno ukládání polygonálních sítí v paměti. Byla přidána podpora komprese polygonálních sítí pro snížení přenosové šířky při jejich přenosu.
- Byla přidána možnost vytvářejí vlastní texturové objekty (příklad použití výpočetních shaderů pro vytvoření textury s vodním efektem).
- Byl přidán API pro volání kódu ve vykreslovacím vlákně, což může být užitečné například při synchronizaci výpočtového shaderu s vykreslováním.
- Byla přidána podpora verze 2.2 technologie supervzorkování AMD FSR (FidelityFX Super Resolution), která využívá algoritmy prostorového měřítka a rekonstrukce detailů k minimalizaci ztráty kvality obrazu při zvětšení a převodu na vyšší rozlišení.
- Byl navržen nový potlačovač šumů JNLM, který používá mapy osvětlení (lightmapper) a výpočtové shadery. JNLM je výrazně rychlejší než dříve používaná knihovna na odstranění šumů OIDN (Open Image Denoise), ale v některých situacích zaostává v kvalitě.
- Do metod vykreslování Forward+ a Mobile byla přidána podpora 2D vykreslování v rozšířeném dynamickém rozsahu jasnosti (HDR), což umožňuje implementaci některých 3D efektů, jako je záření, do 2D her. Do metody vykreslování Compatibility byla přidána podpora trojrozměrných stínů.
- Pro macOS a Windows byl navržen nový ovladač OpenGL vykreslování, který používá vrstvu ANGLE, která překládá volání OpenGL do API Direct3D 11 a Metal.
- Systém simulace částic byl přepracován pro zjednodušení údržby a rozšíření řízení pohybu částic. Například je nyní možné animovat a dědit rychlost pohybu a také měnit počet emitovaných částic. Byl přidán nástroj pro převod kódu správy částic, který využívá CPU, na ekvivalentní kód využívající GPU.
- Byla přidána podpora pro používání nativních dialogů pro výběr souborů na Linuxu, macOS a Windows, stejně jako možnost kopírování a vkládání obrázků prostřednictvím schránky.
- Architektura Godot pro platformu Android byla přepracována, což odstranilo vazbu na komponent Android Fragment, čímž se zkrátila doba spouštění aplikací a her a umožnila se práce s více okny.
- Bylo zajištěno vytváření oficiálních Linuxových sestavení editoru Godot pro 32- a 64-bitové platformy ARM.
Zdroj: opennet.ru











