Indice
Utente:Sumail/Sandbox
TODO: aggiungere template per la traduzione nella pagina di discussione https://it.wikipedia.org/wiki/Template:Tradotto_da
Godot è un motore grafico open source per giochi 3D e 2D. Include un editor grafico in cui gli elementi del gioco sono organizzati in una struttura ad albero e mostrati in un . La logica del gioco viene definita usando un editor interno con un linguaggio specifico chiamato GDScript [1], molto simile a Python, ma sono supportati altri linguaggi come C#, Nim o Rust.
Storia
[modifica | modifica wikitesto]Dopo molti anni di utilizzo e sviluppo ad uso interno del motore da parte di OKAM-Studio, il codice sorgente del progetto è stato rilasciato su Github nel febbraio del 2014 sotto licenza MIT[2]. Sotto la guida di Juan Linietsky e Ariel Manzure con l'aiuto di una crescente comunità di persone interessate il 15 dicembre 2014 è stata rilasciata la versione 1.0[3], seguita dal rilascio del motore 2D nella versione 1.1 il 21 maggio 2015.
La versione 2.0 è stata pubblicata il 23 febbraio 2016 [4], presentando un'interfaccia rinnovata con la possibilità di avere più tab per lavorare facilmente su più scene, un debugger potenziato (inclusa la possibilità di debuggare giochi eseguiti su altri dispositivi hardware) e live-editing persistente (la possibilità di modificare un gioco in esecuzione e osservare i cambiamenti senza ricaricare). Allo stesso tempo viene aperto un sito ufficiale.
La versione 2.1 presenta un' interfaccia profondamente rinnovata (maggiore ergonomia, localizzazione in varie lingue, flessibilità) e offre funzioni aggiuntive come la profilazione, il supporto a font OTF e TrueType, miglioramenti al live-editor e una funzione incorporata per importare asset multimediali e progetti da internet.[5]
La versione 3.0, pubblicata il 29 gennaio 2019 dopo un anno e mezzo di sviluppo[6], mostra profonde modifiche al motore di gioco. La grafica 3D è stata migliorata con l'implementazione del rendering BSDF-principled (un sofisticato modello della diffusione della luce), illuminazione globale e sistemi di particelle calcolati dalla GPU. Viene inoltre esteso il supporto a formati esterni e vengono aggiunti nuovi effetti grafici. Tramite GDNative è possibile integrare librerie di terze parti, e C# è supportato tramite Mono. Insieme al motore 3D anche il motore audio viene completamente riscritto e offre canali multipli (audiobus), audio posizionale e sistemi di altoparlanti surround 5.1 e 7.1.
Tra le aggiunte è presente il supporto alla realtà aumentata, API di rete con supporto a IPv6, integrazione del motore fisico Bullet, import automatico degli asset, miglioramenti di GDScript e dell'interfaccia utente e grossi miglioramenti della documentazione, tradotta in buona parte anche in italiano, tedesco, spagnolo e altre lingue.
Caratteristiche tecniche
[modifica | modifica wikitesto]Il sistema a scene
[modifica | modifica wikitesto]In Godot le scene sono organizzate in una struttura ad albero. Gli elementi sono chiamati nodi e ognuno ha un nodo padre e può avere più nodi figlio. Collezioni di oggetti sono a loro volta nodi e una scena è data dall'insieme di tutti i nodi e la loro posizione nell'albero della scena (scenetree). Questa struttura offre una grande glessibilità, permettendo una forte astrazione quando si manipolano le scene a diveris livelli. Dalla versione 2.0 è anche disponibile una forma di ereditarietà che permette di riportare in automatico le modifiche da una scena a una scena derivata.
Programmazione
[modifica | modifica wikitesto]Godot utilizza un suo linguaggio di scripting chiamato GDScript[1]. GDScript è sintatticamente molto simile a Python, ma con delle modifiche necessarie a favorire l'integrazione con il kotore. Gli script possono direttamente essere associati ai nodi creati nell'editor e accedere alle loro proprietà. L'editor integrato offre le classiche funzioni di syntax highlighting, indentazione e completamento automatico.
In aggiunta a GDScript, è possibile scrivere programmi in C++. Per la programmazione degli shader viene offerto un linguaggio simile a GLSL.[7]. Per la gestione degli errori e la misurazione delle performance è fornito un debugger integrato. Dalla versione 3.0 è disponibile l'interfaccia GDNative che permette l'integrazione con linguaggi e strumenti esterni senza dover compilare Godot. Questo permette l'integrazione con altri linguaggi come C#. È possibile utilizzare un linguaggio visuale chiamato VisualScript per definire logica di programmazione con diagrammi di flusso
Rendering
[modifica | modifica wikitesto]Godot utilizza principalmente OpenGL ES 3.0 per il rendering 2D e 3D. In alternativa per avere maggiore compatibilità con alcuni dispositivi, specialmente smartphone, è possibile usare OpenGL ES 2.0[8]. Nella versione 4.0 Vulkan sarà supportato in aggiunta a OpenGL 2.0, utilizzando la libreria open source MoltenVK per supportare i sistemi macOS che non offrono questa API.
I materiali possono essere importati nell'editor come le texture, le mappe di rilievo, le riflessioni e le dispersioni volumetriche, oppure definite come shader in un linguaggio semplificato simile a GLSL. Le luci possono usare l'illuminazione globale e possono essere dinamiche o pre-calcolate. Sono supportati anche effetti come la nebbia, la profondità di campo e l'HDR.
Sistema di animazioni
[modifica | modifica wikitesto]Godot contiene un sistema per la gestione delle animazioni integrato. Raggruppando sotto al nodo animation una parte della scena è possibile definire collezioni di attributi che sono associati a key frame e possono quindi essere associati a una sequenza temporale. Inoltre le animazioni possono invocare delle funzioni e integrare operazioni definite tramite codice nell'editor.
Motori 2D e 3D separati
[modifica | modifica wikitesto]In Godot è possibile ottenere applicazioni 2D senza conoscenza di programmazione 3D, poiché il motore 2D è separato e non una proiezione 3D. Questo si applica anche al motore fisico (anche se le API sono uguali). All'occorrenza si possono incorporare scene 2D nel motore 3D. Le scene 3D, incluse le animazioni, si possono preparare con strumenti grafici 3D esterni come Blender. Una grossa libreria per la costruzione di GUI chiamata Control è utilizzabile in modalità 2D e 3D. Il motore fisico integrato lavora su coordinate di pixel, non con il sistema metrico.
Piattaforme
[modifica | modifica wikitesto]Godot è uno dei pochi motori di gioco che permette lo sviluppo in Windows, Linux e macOS e altri sistemi. I giochi sviluppati possono essere eseguiti anche su Android e come app HTML 5. Ulteriori progetti esterni permettono di esportare i giochi per piattaforme come PlayStation 3, Nintendo 3DS, IOS e Nintendo Switch ma generalmente richiedono licenze particolari.
Documentazione
[modifica | modifica wikitesto]Godot mostra la documentazione delle classi e delle funzioni direttamente nell'editor. La documentazione dettagliata e discorsiva è presente nel sito ufficiale del progetto, insieme a un forum, FAQ e esempi. La documentazione ufficiale è in inglese ma disponibile in buona parte in varie lingue grazie a traduttori volontari.
Link
[modifica | modifica wikitesto]- godotengine.org (inglese) – Sito ufficiale
- Features (inglese) – Lista completa delle feature
- Documentazione (inglese) – documentazione ufficiale
- Documentazione tradotta (italiano) – Traduzione ufficiale della documentazione (incompleta)
- gamefromscratch.com (inglese) – Serie di tutorial video
Riferimenti (inglese)
[modifica | modifica wikitesto]- ^ a b Documentazione ufficiale di GDScript
- ^ Annuncio della prima release pubblica
- ^ Annuncio della pubblicazione della versione 1.0
- ^ Godot engine raggiunge la versione 2.0
- ^ Annuncio della versione 2.1
- ^ Pubblicazione di Godot 3.0
- ^ Documentazione ufficiale del linguaggio di shading
- ^ Utilizzo di Vulkan al posto di OpenGL ES 3.0