După 7 luni de dezvoltare, a fost publicat motorul gratuit de jocuri Godot 3.3, potrivit pentru crearea de jocuri 2D și 3D. Motorul oferă un limbaj de scripting ușor de învățat pentru logica jocului, un mediu grafic pentru designul jocurilor, un sistem de implementare a jocurilor printr-un clic, vaste posibilități de animație și simulare a proceselor fizice, un debugger încorporat și un sistem de detectare a problemelor de performanță. Codul motorului de jocuri, al mediului de design al jocurilor și al instrumentelor de dezvoltare conexe (motor fizic, server audio, backend-uri pentru randare 2D/3D etc.) este distribuit sub licența MIT.
Codul sursă al motorului a fost deschis în 2014 de către studioul OKAM, după zece ani de dezvoltare a unui produs proprietar de nivel profesional, folosit pentru a crea și publica multe jocuri pentru PC, console de joc și dispozitive mobile. Motorul suportă toate platformele populare de desktop și mobile (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), precum și dezvoltarea de jocuri pentru web. Versiunile binare gata de rulat sunt disponibile pentru Linux, Windows și macOS.
Într-o ramură separată, se dezvoltă un nou backend de randare bazat pe API-ul grafic Vulkan, care va fi oferit în următoarea versiune Godot 4.0, în locul backend-urilor de randare actuale prin OpenGL ES 3.0 și OpenGL 3.3 (suportul pentru OpenGL ES și OpenGL va fi păstrat prin asigurarea funcționării vechiului backend OpenGL ES 2.0/OpenGL 2.1 deasupra noii arhitecturi de randare bazate pe Vulkan). Trecerea de la Godot 3.x la Godot 4.0 va necesita reproiectarea aplicațiilor din cauza necompatibilității la nivel de API, dar ramura Godot 3.x va beneficia de un ciclu de suport extins, durata căruia va depinde de cerințele stricte ale utilizatorilor pentru API.
Ramura Godot 3.3 este complet compatibilă cu Godot 3.2 și continuă dezvoltarea versiunilor stabile ale motorului, pentru care va fi asigurat un ciclu lung de suport. Inițial, în loc de Godot 3.3, era planificată lansarea actualizării 3.2.4, dar versiunile 3.2.x au fost percepute de utilizatori ca fiind corective, în ciuda portării din ramura 4.0 a unor noi funcționalități, motiv pentru care proiectul a trecut la schema clasică de versionare semnificativă. În special, actualizarea cifrei a treia va indica acum prezența doar a corecțiilor, a doua va include noi funcționalități, iar prima va indica modificări care afectează compatibilitatea. Ramura 3.x.x va fi susținută paralel cu 4.x.x până când Godot 4.x va fi complet stabilizat și adaptat pentru tot hardware-ul actual.
Godot 3.3 este remarcabil prin adăugarea următoarelor noutăți:
- A fost pregătită o variantă a editorului care funcționează în browserul web.

- A fost adăugată opțiunea de a exporta jocuri pentru platforma Android în format AAB (Android App Bundle), pe lângă pachetele APK. Formatul AAB permite descărcarea doar a bibliotecilor nativ necesare pentru a funcționa pe dispozitivul curent (de exemplu, armeabi-v7a sau arm64-v8a). De asemenea, pentru platforma Android a fost implementată posibilitatea încorporării în aplicații a elementelor bazate pe motorul Godot sub formă de subcomponente (subview), utilizând o parte a ferestrei. A fost adăugată, de asemenea, suportul pentru zonele oarbe ale ecranului (colțuri rotunjite și decupaje pentru cameră), evenimentele mouse-ului și intrarea de la tastatura externă.

- A fost propus un nou API pentru construirea și distribuirea plugin-urilor pentru platforma iOS, care permite extragerea plugin-urilor (ARKit, GameCenter, InAppStore) într-un repository separat și dezvoltarea lor independent de motorul Godot. Acest API a fost implementat anterior pentru platforma Android.
- Instrumentele de export pentru jocuri pentru Web (platforma HTML5) au fost îmbunătățite. Pentru jocurile care rulează în browser s-a adăugat suport pentru multiprocesare și scripturi GDNative, dar din cauza limitărilor platformei HTML5, implementarea lor nu este compatibilă cu variantele pentru jocuri native. În plus, implementarea firelor este legată de API SharedArrayBuffer, care nu este disponibil în toate browserele. Au fost furnizate trei moduri separate de export - Regular, Threads și GDNative. În profilul de multiprocesare s-a adăugat suplimentar suport pentru API AudioWorklet, permițând o ieșire de sunet de calitate mai bună fără blocarea firului principal. Suportul pentru gamepaduri și tastaturi virtuale a fost semnificativ îmbunătățit.

- A fost adăugat suport pentru construirea jocurilor pentru noul hardware Apple echipat cu cip ARM M1. A fost inclus suport pentru atașarea semnăturilor digitale pentru fișierele executabile generate pentru macOS.
- API-ul modernizat pentru organizarea multiprocesării a fost transferat din ramura 4.0, care utilizează capacitățile standardului C++14, sporind fiabilitatea pe diferite platforme și optimizând performanța.
- Optimizarea bazată pe structura BVH (Bounding Volume Hierarchy) a fost transferată din ramura 4.0, înlocuind metoda Octree pentru divizarea spațială dinamică în timpul randării. BVH este acum utilizat implicit și rezolvă multe probleme de performanță.
- A fost activată o implementare unificată a 2D-batching-ului (Batching, optimizare pentru reducerea apelurilor de randare prin luarea în considerare a poziționării reciproce a obiectelor), care poate fi aplicată atât pentru OpenGL ES 3, cât și pentru OpenGL ES 2. Optimizarea însă cuprinde acum mai multe obiecte, inclusiv linii și poligoane.
- A fost adăugat un nou lightmapper, care utilizează metoda ray tracing și suportă reducerea zgomotului prin intermediul bibliotecii oidn (Open Image Denoise). Noul lightmapper folosește CPU pentru calcule și rezolvă cea mai mare parte a problemelor de calitate asociate cu vechiul procesor. De asemenea, a fost pregătită o variantă de lightmapper care utilizează GPU, dar aceasta este legată de API Vulkan și va apărea doar în ramura 4.0.

- Din ramura Godot 4.0 au fost transferate numeroase îmbunătățiri legate de redare, precum skinning-ul rapid software, transformările optimizate ale obiectelor 3D ascunse, numărul personalizabil de surse de lumină pentru fiecare obiect și redarea îmbunătățită a umbrelor cu ajutorul filtrului PCF.

- În motorul de simulare a proceselor fizice, a fost îmbunătățită gestionarea diferitelor tipuri de coliziuni.
- Editorul a primit funcționalități complete pentru copierea și lipirea nodurilor, permițând transferul între diferite scene.
- Modul de inspecție a fost îmbunătățit, oferind evidențierea vizuală a subresurselor.

- A fost adăugată suportul pentru definirea setărilor implicite pentru resursele importate.

- S-au făcut eforturi pentru a spori ușurința utilizării în editorul 3D, inclusiv adăugarea unei rețele 3D dinamice infinite și îmbunătățirea semnificativă a realizării rotirii și selectării cu ajutorul gizmo-ului (indicatorul axelor coordonatelor).

- În instrumentele de colaborare a fost adăugată o protecție împotriva modificărilor aduse scenelor deja deschise de alți utilizatori (apare un avertisment dacă, la salvare, se descoperă versiuni mai recente ale fișierelor deschise).
- Importul din fișiere de format FBX a fost îmbunătățit.

- A fost adăugat pluginul OpenXR cu suport pentru standardul omonim pentru crearea de aplicații de realitate virtuală și augmentată. În portul HTML5 pentru crearea jocurilor bazate pe tehnologiile de realitate virtuală, a fost adăugată suportul pentru specificația WebXR.

- A fost adăugată suportul pentru încărcarea și redarea sunetului în format MP3 (anterior nu era suportat din cauza brevetelor).
- În GraphEdit a fost adăugată suportul pentru mini-harta întregii structuri (minimap), afișată în colțul din dreapta jos, care permite vizualizarea rapidă a tuturor nodurilor.

Sursa: opennet.ro











