Dopo 6 mesi di sviluppo, è stata rilasciata la versione del motore di gioco open source Godot 3.4, 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 dei giochi, un sistema di distribuzione dei giochi con un click, ampie capacità di animazione e simulazione dei processi fisici, un debugger integrato e un sistema di rilevamento dei colli di bottiglia nelle prestazioni. Il codice del motore di gioco, dell'ambiente di progettazione e degli strumenti di sviluppo associati (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 numerosi giochi per PC, console e dispositivi mobili. Il motore supporta tutte le piattaforme desktop e mobili più diffuse (Linux, Windows, macOS, Wii, Nintendo 3DS, PlayStation 3, PS Vita, Android, iOS, BBX), oltre alla creazione di giochi per il Web. Gli assemblaggi binari pronti per l'uso sono stati creati per Linux, Windows e macOS.
In un ramo separato si sta sviluppando un nuovo backend di rendering basato sull'API grafica Vulkan, che sarà introdotto nella prossima versione Godot 4.0, al posto dei backend di rendering attualmente offerti tramite OpenGL ES 3.0 e OpenGL 3.3 (il supporto per OpenGL ES e OpenGL sarà mantenuto grazie alla compatibilità con il vecchio backend OpenGL ES 2.0/OpenGL 2.1 sopra la nuova architettura di rendering basata su Vulkan). La transizione da Godot 3.x a Godot 4.0 richiederà una riprogettazione delle applicazioni a causa delle interruzioni nella compatibilità a livello di API, ma sarà garantito un lungo ciclo di supporto per il ramo Godot 3.x, la cui durata dipenderà dalla domanda degli utenti riguardo la compatibilità dell'API.
Godot 3.4 si distingue per l'aggiunta delle seguenti novità:
- Interfaccia utente rivisitata per l'editing dei temi, che offre un processo visivo per la selezione dei nodi e la possibilità di modificare il design senza lasciare la modalità di anteprima.

- Sono stati apportati miglioramenti all'editor per aumentare l'usabilità: è stata aggiunta la funzione di caricamento rapido delle risorse nella modalità di ispezione, è consentita la creazione di nodi in posizioni arbitrarie, è stata introdotta una nuova interfaccia per l'esportazione di modelli, sono state rese disponibili operazioni aggiuntive con gizmo (sistema di bounding box) e migliorato l'editor delle animazioni basato su curve di Bézier.

- È stata aggiunta una modalità di annullamento delle modifiche, che consente di annullare tutte le modifiche alla scena causate dall'applicazione di animazioni tramite AnimationPlayer, invece di annullare ogni proprietà singolarmente.
- Nelle impostazioni è stata aggiunta un'opzione per modificare il livello di zoom dell'area di visualizzazione 2D (2D viewport), che può ad esempio essere utilizzata per ingrandire o ridurre gli elementi 2D, indipendentemente dall'attuale modalità di estensione (stretch mode).
- Nell'API File è stata aggiunta la possibilità di lavorare con file (inclusi PCK) di dimensioni superiori a 2 GB.
- Sono state incluse modifiche per migliorare la fluidità del rendering calcolando le variazioni nei frame senza vincolarsi al timer di sistema e risolvendo problemi di sincronizzazione dell'output quando si utilizza vsync.
- Nel sistema di gestione degli input InputEvents è stata aggiunta la supporto per il binding ai codici scancodici, che riflettono il posizionamento fisico dei tasti sulla tastiera, indipendentemente dalla disposizione attiva (ad esempio, i tasti WASD nella disposizione QWERTY saranno automaticamente mappati ai tasti ZQSD nella disposizione francese AZERTY).
- Aggiunti gli interfaccie AESContext e HMACContext per accedere dagli script agli algoritmi di crittografia AES-ECB, AES-CBC e HMAC. È stata anche aggiunta la possibilità di salvare e leggere le chiavi RSA per la generazione e la verifica delle firme digitali.
- Nel motore di rendering è stato aggiunto il supporto iniziale per interrompere il rendering degli oggetti che si trovano nel campo visivo della camera, ma non sono visibili a causa della sovrapposizione di altri oggetti (ad esempio, dietro un muro). Il ritaglio raster (a livello di singoli pixel) delle sovrapposizioni sarà implementato solo nella versione Godot 4, mentre in Godot 3 sono inclusi alcuni metodi geometrici di ritaglio degli oggetti sovrapposti e il supporto per il ritaglio portale.

- È stato aggiunto un nuovo metodo di tonificazione ACES Fitted, che consente di ottenere maggiore realism e accuratezza fisica aumentando il contrasto degli oggetti luminosi.

- Aggiunto il supporto per la forma di emissione delle particelle 3D sotto forma di anello o cilindro cavo.
- Nel motore di simulazione fisica è stata notevolmente migliorata la performance nella generazione di oggetti convessi da mesh e il modo di monitoraggio delle collisioni nell'interfaccia di ispezione è stato rielaborato. Per il motore fisico 2D è stato implementato il supporto per la struttura BVH (Bounding Volume Hierarchy) per la suddivisione spaziale dinamica. Nel motore fisico 3D è stato implementato il supporto per la funzione HeightMapShapeSW e sono stati aggiunti strumenti di sincronizzazione con KinematicBody3D.
- È stata aggiunta la possibilità di esportare scene 3D nel formato glTF, ad esempio, per aprire le mesh preparate in Godot in Blender.
- È stato aggiunto il supporto per la modalità di compressione delle immagini WebP senza perdita, che ora viene applicata per impostazione predefinita per la compressione delle texture invece del formato PNG.
- Nel porting per la piattaforma Android è stata aggiunta la supporto iniziale per l'API Scoped storage e un nuovo modo di caricare risorse aggiuntive (Play Asset Delivery) per file eseguibili nel formato AAB (Android App Bundle).
- Per la piattaforma HTML5 è stata implementata la possibilità di installare applicazioni in formato PWA (Progressive Web Apps), è stata aggiunta un'interfaccia JavaScriptObject per interagire tra Godot e JavaScript (ad esempio, è possibile richiamare metodi JavaScript dagli script di Godot) e per le build multithread è stato implementato il supporto per AudioWorklet.
- Per la piattaforma macOS è stato aggiunto il supporto per i sistemi basati su chip Apple Silicon (M1).
Fonte: opennet.ru




