Nakon četiri godine razvoja, objavljeno je izdanje slobodnog igraćeg engine-a Godot 4.0, pogodnog za izradu 2D i 3D igara. Engine podržava jezik za programiranje igraće logike koji je jednostavan za učenje, grafičko okruženje za dizajn igara, sustav za jednim klikom postavljanje igara, široke mogućnosti animacije i simulacije fizičkih procesa, ugrađeni debager i sustav za identifikaciju uskih grla u performansama. Kod igraćeg engine-a, okruženja za dizajn igara i pratećih alata za razvoj (fizički engine, zvučni server, backend za 2D/3D renderiranje itd.) distribuira se pod MIT licencom.
Izvorni kodovi motora su otvoreni 2014. godine od strane studija OKAM, nakon deset godina razvoja proprietary proizvoda profesionalnog nivoa koji je korišten za kreiranje i objavljivanje mnogih igara za PC, igraće konzole i mobilne uređaje. Motor podržava sve popularne desktop i mobilne platforme (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), kao i razvoj igara za web. Gotove binarne verzije su formirane za Linux, Android, Windows i macOS.
U grani Godot 4.0 uključeno je oko 12 tisuća izmjena i ispravljeno 7 tisuća grešaka. U razvoju engine-a i pisanju dokumentacije sudjelovalo je oko 1500 osoba. Među ključnim promjenama su:
- Predložena su dva nova backend-a renderiranja (klusterizirani i mobilni) temeljenih na grafičkom API-ju Vulkan, koji su zamijenili backend-e koji su izrađivali prikaz putem OpenGL ES i OpenGL. Za stare i slabo moćne uređaje integriran je backend za osiguravanje kompatibilnosti temeljen na OpenGL-u koji koristi novu arhitekturu renderiranja. Za dinamičko prikazivanje s nižom razlučivošću korištena je tehnologija superuzorkovanja AMD FSR (FidelityFX Super Resolution), koja koristi algoritme prostornog skaliranja i rekonstrukcije detalja za smanjenje gubitka kvalitete slike prilikom povećanja i prebacivanja u višu razlučivost. Implementiran je render engine temeljen na Direct3D 12, koji će poboljšati podršku za platforme Windows i Xbox.

- Dodana je mogućnost rada s sučeljem u više prozora (različite ploče i dijelovi sučelja mogu se odvojiti u obliku zasebnih prozora).

- Dodan je novi urednik sučelja korisnika i novi widget za vizualni dizajn.

- Dodan je novi urednik tema.

- Potpuno je prepisan sustav upravljanja osvjetljenjem i sjenama, u kojem je korištena tehnologija globalnog osvjetljenja u stvarnom vremenu SDFGI (Signed Distance Field Global Illumination). Značajno je poboljšana kvaliteta prikazivanja sjena.

- Čvor GIProbe, korišten za popunjavanje scene reflektiranim svjetlom, zamijenjen je čvorom VoxelGI, optimalnim za obradu osvjetljenja u stvarnom vremenu u scenama s malim ili srednjim unutarnjim prostorima. Za slabu opremu ostavljena je mogućnost unaprijednog rendiranja svjetla i sjena putem svjetlosnih mapa, što sada ubrzava GPU.

- Implementirane su nove tehnike optimizacije rendiranja. Dodano je automatsko okkluzično rezanje (occlusion culling), koje dinamički određuje i uklanja modele skrivene iza drugih površina radi povećanja performansi rendiranja i smanjenja opterećenja na CPU i GPU.

- Dodana je opcija SSIL (Screen Space Indirect Lighting), koja omogućuje poboljšanje kvalitete rendiranja na visokoučinkovitoj opremi kroz poboljšanu obradu tamnih područja i neizravnog osvjetljenja. Također, pružene su dodatne postavke imitacije raspršenog neizravnog osvjetljenja pomoću tehnike SSAO (Screen Space Ambient Occlusion), poput odabira razine utjecaja izravnog svjetla.
- Predložene su realistične jedinice osvjetljenja, omogućujući prilagodbu intenziteta svjetla i korištenje standardnih postavki kamere, poput otvora, vremena ekspozicije i ISO-a, za upravljanje svjetlinom konačne scene.
- Dodani su novi alati za uređivanje razina za dvodimenzionalne igre. Uvedene su radikalne promjene u procesu razvoja 2D igara. Dodan je novi urednik pločastih karata (tilemap) koji sada podržava slojeve, automatsko popunjavanje krajolika, nasumičnu distribuciju biljaka, kamenja i raznih objekata, fleksibilno odabiranje objekata. Ujedinjeno je upravljanje pločastim kartama i skupovima fragmenata za izgradnju karte (tileset). Osigurano je automatsko proširenje fragmenata u setu kako bi se isključili prostori između susjednih fragmenata. Dodana je nova funkcija raspoređivanja objekata na sceni, koju se, na primjer, može koristiti za dodavanje likova u ćelije pločaste mreže.
- U 2D-renderiranju omogućena je upotreba grupa platna, što omogućava miješanje preklapajućih elemenata platna, na primjer, možete spojiti nekoliko spriteova i pomiješati ih s pozadinom, kao da su ti spriteovi jedan element. Dodana je osobina Clip Children koja omogućava korištenje bilo kojeg 2D-elementa kao maske. U 2D-motor je također dodana opcija koja omogućava korištenje metode višestrukog uzorkovanja (MSAA) za poboljšanje kvalitete slika i stvaranje glađih rubova.

- Poboljšan je rad s osvjetljenjem i sjenama u 2D-igrama. Znatno je povećana izvedba pri korištenju više izvora svjetlosti. Dodana je mogućnost simulacije trodimenzionalnosti kroz promjenu razine osvjetljenja na kartama normala, kao i stvaranja vizualnih efekata kao što su dugi sjenki, aure i jasne konture.

- Dodana je efekat volumetrijske magle koja koristi tehniku vremenske reprikacije za postizanje realističnog izgleda i visoke performanse.

- Dodani su shaderi oblaka koji omogućuju dinamičko generisanje oblaka koji se mijenjaju u realnom vremenu.

- Implementirana je podrška za 'decale', metodu projektiranja materijala na površinu.
- Dodani su efekti na bazi čestica primjenjivi na cijeli igraći prostor, koji koriste GPU i podržavaju attraktore, sudare, tragove i emitere.
- Proširene su mogućnosti sučelja za vizualno uređivanje shadera.

- Proširen je jezik shadera, koji sada podržava strukture, makroe preprocesora, uključivanje shadera (operator include), unificirane nizove i korištenje 'varying' za prijenos podataka iz fragmentnog handlera u handler osvjetljenja.
- Dodana je mogućnost primjene računskih shadera koji koriste GPU za ubrzanje algoritama.
- U jeziku skripti GDScript poboljšan je sustav statičke tipizacije, dodana je nova sintaksa za definiranje svojstava, uvedeni su ključne riječi await i super, dodane su operacije map/reduce, implementiran je novi sustav oznaka, omogućena je upotreba unicode simbola u imenima varijabli i nazivima funkcija. Dodan je alat za automatsko generiranje dokumentacije. Povećana je performance i stabilnost GDScript runtime-a. U razvojnome okruženju omogućeno je prikazivanje više pogrešaka odjednom, dodana su nova upozorenja za tipične probleme.

- Proširene su mogućnosti razvoja igre logike na jeziku C#. Dodana je podrška za .NET 6 platformu i jezik C# 10. Za skalarne vrijednosti korišteni su 64-bitni tipovi. Mnogi API-i su prevedeni s tipova int i float na long i double. Omogućeno je definiranje signala u obliku događaja C#. Dodana je mogućnost razvoja ekstenzija GDExtensions na jeziku C#.
- Dodana je eksperimentalna podrška za ekstenzije (GDExtension) koje se mogu koristiti za proširenje mogućnosti motora bez ponovne izgradnje i bez izmjene koda.
- Predložen je po defaultu vlastiti motor za simulaciju fizičkih procesa Godot Physics, optimiziran za rješavanje zadataka svojstvenih računalnim igrama, i doveden do pariteta u funkcionalnosti s ranije korištenim motorom Bullet (na primjer, Godot Physics dodana je obrada novih oblika sudara, podrška za visinske karte i mogućnost korištenja čvorova SoftBody za simulaciju odjeće). Provedena je optimizacija performansi i proširena primjena višekratnosti s raspodjelom opterećenja na različita CPU jezgri tijekom simulacije fizičkih procesa u 2D i 3D okruženjima. Riješeni su mnogi problemi s simulacijom.
- Predložen je novi sustav iscrtavanja teksta, koji pruža veću kontrolu nad obrezivanjem i prelijevanjem teksta, kao i osigurava visoku oštrinu pri svim ekranima razlučivosti.
- Prošireni su alati za lokalizaciju i rad na prevođenju.
- Dodavan je odvojen dijalog za uvoz 2D i 3D resursa, koji podržava pregled i promjenu postavki uvožene scene, materijala i fizičkih svojstava.

- U editor su dodani novi widgeti, poput ploče za povratak promjena i novog dijaloga za odabir boja i ažuriranje palete.

- Ažurirano sučelje za inspekciju, upravljačka ploča scenama i editoru skripti. Poboljšano je isticanje sintakse, dodana je mogućnost prikazivanja više kursorâ, te su pružena sredstva za uređivanje JSON i YAML formata.
- Proširene su mogućnosti urednika animacija, koji sada podržava miješanje oblika i poboljšane procese temeljenje na Bezier krivulji. Prepisan je kod za 3D animaciju, u kojem je implementirana podrška za kompresiju radi smanjenja potrošnje memorije. Prepisan je sustav za miješanje animacija i stvaranje prijelaznih efekata. Proširene su mogućnosti za izradu složenih animacija. Kreirane su biblioteke animacija za pohranu i ponovnu upotrebu izrađenih animacija.

- Dodana je opcija za stvaranje filmova, koja izvršava renderiranje scena po kadrovima s maksimalnom kvalitetom za izradu uvodnih sekvenci i snimanje videa.
- Proširena je podrška za 3D slušalice i platforme virtualne stvarnosti. U glavni motor je ugrađena podrška za OpenXR standard, koji definira univerzalni API za razvoj aplikacija virtualne i proširene stvarnosti. Na Windows i Linux operativnim sustavima osigurana je podrška za sve popularne 3D slušalice, uključujući SteamVR, Oculus i Monado.
- Povećana je stabilnost podsustava za organizaciju mrežne igre i pojednostavljen je proces razvoja višekorisničkih igara.
- Proširene su mogućnosti zvučnog sustava, ugrađena je podrška za polifoniju, dodan je API za sintezu govora i omogućeno je ponavljanje zvuka.
- Osigurana je mogućnost pokretanja Godot sučelja na Android tabletima i u web pregledniku.

- Dodana je nova građevinska sustava igara za različite CPU arhitekture. Na primjer, moguće je i izgraditi za Raspberry Pi, Microsoft Volterra, Surface Pro X, Pine Phone, VisionFive, ARM Chromebook i Asahi Linux.
- API je mijenjan na način koji narušava kompatibilnost. Prelazak sa Godot 3.x na Godot 4.0 zahtijevat će redizajn aplikacija, ali za granu Godot 3.x osigurana je dugotrajna podrška, čiji će trajanje ovisiti o potražnji starog API-ja među korisnicima.

Izvor: opennet.ru

















