PER RICHIESTE DEI LAVORATORI! Preso da opennet.
Dopo 10 mesi di sviluppo, è stato pubblicato un rilascio del motore di gioco open source Godot 3.2, adatto per la creazione di giochi 2D e 3D. Il motore supporta un linguaggio di scripting facile da apprendere per la logica di gioco, un ambiente grafico per la progettazione di giochi, un sistema di distribuzione dei giochi con un clic, ampie capacità di animazione e simulazione fisica, un debugger integrato e un sistema di rilevamento dei colli di bottiglia nelle prestazioni. Il codice del motore di gioco, dell'ambiente di progettazione dei giochi e degli strumenti di sviluppo correlati (motore fisico, server audio, backend di rendering 2D/3D, ecc.) è rilasciato sotto licenza MIT.
I codici sorgente del motore sono stati resi pubblici nel 2014 dallo studio OKAM, dopo dieci anni di sviluppo di un prodotto proprietario di livello professionale, utilizzato per creare e pubblicare molti giochi per PC, console di gioco e dispositivi mobili. Il motore supporta tutte le piattaforme desktop e mobili più comuni (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), nonché lo sviluppo di giochi per il Web. Le versioni binarie pronte per l'uso sono state realizzate per Linux, Windows e macOS.
In una nuova ramificazione si sta sviluppando un backend di rendering basato sull'API grafica Vulkan, che sarà offerto nel prossimo rilascio di Godot 4.0, al posto dei backend di rendering attuali basati su OpenGL ES 3.0 e OpenGL 3.3 (il supporto per OpenGL ES e OpenGL sarà mantenuto garantendo il funzionamento del vecchio backend OpenGL ES 2.0/OpenGL 2.1 sopra la nuova architettura di rendering basata su Vulkan). La transizione da Godot 3.2 a Godot 4.0 richiederà una riprogettazione delle applicazioni a causa della rottura della compatibilità a livello API, ma per la ramificazione Godot 3.2 sarà garantito un lungo ciclo di supporto, la cui durata dipenderà dalla domanda da parte degli utenti. Non si esclude inoltre il porting di innovazioni non impattanti sulla stabilità dalla ramificazione 4.x verso le versioni intermedie 3.2.x, come il supporto per la compilazione AOT, ARCore, DTLS e la piattaforma iOS per progetti C#.
Novità principali di Godot 3.2:
- È stata aggiunta la compatibilità con i visori di realtà virtuale Oculus Quest, realizzata sulla base di un plugin per la piattaforma Android. Per lo sviluppo di sistemi di realtà aumentata per iOS è stata integrata la compatibilità con il framework ARKit. Per Android è in fase di sviluppo la compatibilità con il framework ARCore, ma non è ancora pronta e sarà inclusa in una delle versioni intermedie 3.3.x;
- L'interfaccia dell'editor visivo degli shader è stata ristrutturata. Sono stati aggiunti nuovi nodi per creare shader più avanzati. Per gli shader implementati tramite script classici, è stata aggiunta la compatibilità con costanti, array e modificatori 'varying'. Molti shader specifici per il backend OpenGL ES 3.0 sono stati portati a OpenGL ES 2;
- Il supporto per il rendering fisicamente corretto dei materiali (PBR) è stato sincronizzato con le capacità dei nuovi motori di rendering PBR, come Blender Eevee e Substance Designer, per garantire una visualizzazione comparabile della scena in Godot e nei pacchetti di modellazione 3D utilizzati;
- Ottimizzazione di diverse impostazioni di rendering per migliorare le prestazioni e aumentare la qualità dell'immagine. Molte funzionalità dal backend GLES3 sono state trasferite in GLES2, inclusa la supporto per il metodo di antialiasing MSAA (Multisample anti-aliasing) e vari effetti di post-elaborazione (bagliore, sfocatura DOF e BCS);
- È stata aggiunta la piena compatibilità per l'importazione di scene e modelli 3D nel formato glTF 2.0 (GL Transmission Format) e è stata introdotta una supporto iniziale per il formato FBX, che consente di importare scene con animazione da Blender, ma che attualmente non è compatibile con Maya e 3ds Max. È stato implementato il supporto per i rig degli scheletri durante l'importazione di scene tramite glTF 2.0 e FBX, consentendo di utilizzare un singolo rig in più mesh. I lavori per migliorare e stabilizzare il supporto di glTF 2.0 sono stati realizzati insieme alla comunità degli sviluppatori del pacchetto Blender, dove il supporto migliorato per glTF 2.0 sarà offerto nella versione 2.83;
- Le capacità di rete del motore sono state ampliate con il supporto dei protocolli WebRTC e WebSocket, oltre alla possibilità di utilizzare UDP in modalità multicast. È stata aggiunta un'API per l'uso di hash crittografici e la gestione dei certificati. È stata introdotta un'interfaccia grafica per il profiling delle attività di rete. Sono iniziati i lavori per creare un porting di Godot per WebAssembly/HTML5, che consentirà di eseguire l'editor nel browser tramite Web;
- Il plugin per la piattaforma Android e il sistema di esportazione sono stati rielaborati. Ora sono disponibili due sistemi di esportazione separati per la creazione di pacchetti Android: uno con un motore precompilato e l'altro che consente di creare build personalizzate basate su varianti personalizzate del motore. La configurazione delle build personalizzate può essere eseguita a livello del plugin per Android, senza dover modificare manualmente il template sorgente.
- Il editor è stato dotato del supporto per disattivare selettivamente determinate funzionalità, ad esempio è possibile rimuovere i pulsanti per accedere all'editor 3D, all'editor di script, alla libreria delle risorse, ai nodi, ai pannelli, alle proprietà e ad altri elementi non necessari per lo sviluppatore (nascondere elementi superflui semplifica notevolmente l'interfaccia).
- È stato aggiunto un supporto iniziale per l'integrazione con i sistemi di gestione del codice sorgente e realizzato un plugin per supportare Git nell'editor.
- È stata fornita la possibilità di sovrascrivere la telecamera per il gioco in esecuzione tramite una finestra nell'editor, permettendo di valutare diverse modalità di gioco (visione libera, ispezione dei nodi, ecc.).
- È stata proposta un'implementazione del server LSP (Language Server Protocol) per il linguaggio GDScript, che consente di trasmettere informazioni sulla semantica di GDScript e regole di completamento automatico del codice a editor esterni, come il plugin per VS Code e Atom;
- Sono stati apportati numerosi miglioramenti all'editor di script GDScript integrato: è stata aggiunta la possibilità di impostare segnalibri in posizioni nel codice, è stata implementata una barra minimap (per una rapida panoramica dell'intero codice), è stato migliorato il completamento automatico e ampliate le funzionalità della modalità di progettazione visiva degli script;
- Aggiunta la modalità di creazione di giochi pseudo-3D, che consente di utilizzare un effetto di profondità in giochi bidimensionali tramite la definizione di più livelli che formano una prospettiva fittizia;
- Nel editor 2D è stata ripristinata la supporto per gli atlanti delle texture;
- Nel GUI è stato modernizzato il processo di posizionamento degli ancoraggi e dei confini delle aree;
- Per i dati testuali è stata aggiunta la possibilità di monitorare in tempo reale i cambiamenti nei parametri degli effetti, è stato fornito supporto per i tag BBCode e la possibilità di definire effetti personalizzati;
- È stato aggiunto un generatore di flussi audio, che consente di creare onde sonore a partire da singoli fotogrammi e da un analizzatore spettrale;
- Attraverso la libreria V-HACD è stata implementata la possibilità di suddividere mesh concave in parti convexe precise e semplificate. Questa funzionalità semplifica notevolmente la generazione di forme di collisione per i mesh 3D esistenti;
- È stata implementata la possibilità di sviluppare logiche di gioco in C# utilizzando Mono per le piattaforme Android e WebAssembly (in precedenza C# era supportato per Linux, Windows e macOS). Sulla base di Mono 6.6 è stato implementato il supporto per C# 8.0. Per C# è inoltre stato introdotto un supporto iniziale per la compilazione anticipata (AOT, ahead-of-time), già aggiunto al codice sorgente, ma attualmente non attivato (per WebAssembly viene utilizzato ancora l'interprete). Per la modifica del codice C# è possibile collegare editor esterni come MonoDevelop, Visual Studio for Mac e Jetbrains Rider;
- La documentazione è stata notevolmente ampliata e migliorata. È stata pubblicata una traduzione parziale della documentazione in russo (è stato tradotto il manuale introduttivo per iniziare a lavorare).
Fonte: linux.org.ru

