01) Corso Godot Engine – Introduzione

Godot Engine è un motore di gioco multipiattaforma, gratuito e open-source rilasciato sotto licenza MIT.
È stato inizialmente sviluppato dagli sviluppatori di software argentini Juan Linietsky e Ariel Manzur per diverse aziende in America Latina prima della sua uscita pubblica.  

Godot Game Engine

L’ambiente di sviluppo funziona su più sistemi operativi tra cui Linux, FreeBSD, NetBSD, OpenBSD, macOS, Microsoft Windows, Android e web. 
È progettato per creare giochi 2D e 3D destinati a piattaforme PC, mobili e web e può anche essere utilizzato per sviluppare software non di gioco, inclusi gli editor.
Caratteristiche
Godot consente agli sviluppatori di videogiochi di creare giochi 3D e 2D utilizzando più linguaggi di programmazione, come C ++, C # e GDscript.  Utilizza una gerarchia di nodi per facilitare l’esperienza di sviluppo.  
Le classi possono essere derivate da un tipo di nodo per creare tipi di nodo più specializzati che ereditano il comportamento. I nodi sono organizzati all’interno di “scene”, che sono gruppi di nodi riutilizzabili, istanziabili, ereditabili e nidificabili.
Tutte le risorse di gioco, inclusi script e risorse grafiche, vengono salvate come parte del file system del computer (anziché in un database).
Questa soluzione di archiviazione ha lo scopo di facilitare la collaborazione tra i team di sviluppo del gioco che utilizzano sistemi di controllo della versione software. 
Piattaforme supportate
Il motore supporta la distribuzione su più piattaforme e consente di specificare le impostazioni di compressione e risoluzione delle texture per ciascuna piattaforma.
Il sito Web fornisce binari solo per le piattaforme di editor e l’esportazione di progetti su altre piattaforme viene eseguita all’interno dell’editor Godot.
L’editor Godot, utilizzato per creare giochi Godot, supporta le seguenti piattaforme:
• Piattaforme desktop Linux, macOS, Windows, Android e web distribuite sul sito web, su Steam e su Itch. Anche BSD è supportato, ma deve essere compilato manualmente. 
• Piattaforma web HTML5, WebAssembly con l’editor web. 
• Telefoni e tablet Android (disponibili a partire da Godot 3.5). 
Il motore supporta l’esportazione di progetti su molte più piattaforme, incluse tutte le piattaforme di editor. Le piattaforme attualmente supportate a partire da Godot 4.0 sono:
• Piattaforme mobili Android, iOS
• Piattaforme desktop Linux, macOS, Microsoft Windows (Universal Windows Platform), BSD (deve essere compilato manualmente)
• Piattaforma web HTML5, WebAssembly. 
• Piattaforme di realtà virtuale / estesa HTC Vive, Valve Index, Oculus Rift, Oculus Go, Oculus Quest, tutti i visori Microsoft MR, ARKit di Apple e molti altri. 
Mentre il motore Godot può essere eseguito su console, le console più popolari non sono ufficialmente supportate poiché non consentono la pubblicazione di codice specifico della piattaforma sotto una licenza open source. Tuttavia, è ancora possibile portare i giochi su console grazie ai servizi forniti da società terze.
Per le architetture CPU, Godot supporta ufficialmente x86 su tutte le piattaforme desktop (sia a 32 bit che a 64 bit dove disponibili) e ha il supporto ARM ufficiale su macOS, piattaforme mobili e piattaforme Oculus standalone (sia a 32 bit che a 64 bit dove disponibili). La piattaforma Web utilizza WebAssembly a 32 bit. Il supporto per ARM, RISC-V e PowerPC Linux non è ufficiale e sperimentale

Scripting

Godot supporta una varietà di linguaggi di programmazione per la creazione di giochi, inclusi i linguaggi integrati GDScript, C++ e C#.
Inoltre, il motore include GDNative, una funzione per la creazione di associazioni con altri linguaggi. I linguaggi GDNative ufficialmente supportati includono C e C++.
Le lingue supportate dalla comunità includono Rust, Nim, Haskell, Clojure, Swift e D.

È supportata anche la codifica visiva, tramite il linguaggio integrato VisualScript, progettato per essere un equivalente visivo di GDScript.
Visual Scripting è stato rimosso dal motore principale in Godot 4.0.
I giochi Godot in esecuzione nel browser possono interfacciarsi con il codice JavaScript del browser.
L’editor Godot include un editor di testo con indentazione automatica, evidenziazione della sintassi e completamento e piegatura del codice. Dispone inoltre di un debugger con la possibilità di impostare punti di interruzione e programmare l’elong.

GDScript

Godot ha il suo linguaggio di scripting incorporato, GDScript, un linguaggio di programmazione di alto livello, tipizzato dinamicamente che è sintatticamente simile a Python. A differenza di Python, GDScript è ottimizzato per l’architettura basata su scene di Godot e può specificare la tipizzazione rigorosa delle variabili.
Gli sviluppatori di Godot hanno dichiarato che molti linguaggi di scripting alternativi di terze parti come Lua, Python e Squirrel sono stati testati prima di decidere che l’utilizzo di un linguaggio personalizzato consentiva un’ottimizzazione superiore e l’integrazione dell’editor.
Nella versione 4.0, una nuova funzione chiamata Typed array è stata implementata su GDScript.
Ciò consente agli utenti di modificare facilmente un array normale in tipizzato e viceversa senza modificare molto codice.

Un semplice programma “Hello world” può essere scritto così:

func _ready():
	print("Ciao Mondo")

Sono possibili anche programmi più complessi, come questo che genera una sequenza di Fibonacci:

func _ready():
	var nterms = 5
	print("Fibonacci sequenza:")
	for i in range(nterms):
		print(fibonacci(i))

func fibonacci(n):
	if n <= 1:
		return n
	else:
		return fibonacci(n - 1) + fibonacci(n - 2)

Rendering

Il motore grafico di Godot utilizza OpenGL ES 3.0 per tutte le piattaforme supportate; in caso contrario, viene utilizzato OpenGL ES 2.0.
Vulkan è supportato a partire dalla versione 4.0 e include anche la possibilità di supporto per Metal utilizzando MoltenVK.
Il motore supporta la mappatura normale, la specularità, le ombre dinamiche utilizzando mappe delle ombre, l’illuminazione globale cotta e dinamica e gli effetti di post-elaborazione a schermo intero come bloom, profondità di campo, rendering ad alta gamma dinamica e correzione gamma. Viene inoltre incorporato un linguaggio shader semplificato, simile a GLSL.
Gli shader possono essere utilizzati per materiali e post-elaborazione. In alternativa, possono essere creati manipolando i nodi in un editor visuale.

Godot include anche un motore grafico 2D separato che può funzionare indipendentemente dal motore 3D, ma entrambi possono anche lavorare contemporaneamente sullo stesso display, in modo da creare mix complessi tra 2D e 3D.
Il motore 2D supporta funzionalità quali luci, ombre, shader, set di piastrelle, scorrimento della parallasse, poligoni, animazioni, fisica e particelle.
È anche possibile combinare 2D e 3D utilizzando un “nodo viewport”.

Altre Caratteristiche

Godot contiene un sistema di animazione con una GUI per l’animazione scheletrica, la fusione, gli alberi di animazione, il morphing e le cutscene in tempo reale.
Quasi tutte le variabili definite o create su un’entità di gioco possono essere animate.
Godot ha un proprio motore fisico interno, e a partire da Godot 4.x consente a terzi di integrare la propria fisica tramite GDExtension. In Godot 3.x, il motore fisico Bullet è incluso e utilizzato per impostazione predefinita.
La libreria ThorVG permette di creare GUI con risorse vettoriali.

  • Grafici di analisi delle prestazioni
  • Cottura leggera
  • Multithreading
  • Sistema di plugin
  • Renderizzare le destinazioni
  • Riproduzione video utilizzando il codec Theora
  • Riproduzione audio di codec Ogg Vorbis, MP3 e WAV
  • Sistema di particelle 2D e 3D
  • Importazione/esportazione/compressione di texture
  • Supporto Navmesh
  • Interfaccia utente grafica
  • Supporto per tastiera, mouse, gamepad e touchscreen

Storia

Godot è un motore di gioco che è stato avviato da Juan ‘reduz’ Linietsky e Ariel ‘punto’ Manzur nel 2007. Il nome “Godot” è stato scelto a causa della sua relazione con l’opera teatrale di Samuel Beckett Aspettando Godot, in quanto rappresenta il desiderio infinito di aggiungere nuove funzionalità nel motore, che lo avvicinerebbero a un prodotto esaustivo, ma non lo faranno mai.

Nel febbraio 2014, il codice sorgente di Godot è stato rilasciato al pubblico su GitHub sotto la licenza MIT.
Godot ha raggiunto la versione 1.0 il 15 dicembre 2014, segnando la prima versione stabile e l’aggiunta di lightmapping, supporto navmesh e altri shader.

La versione 1.1 è stata rilasciata il 21 maggio 2015, aggiungendo un miglioramento del completamento automatico nell’editor di codice, un editor di shader visivi, una nuova API al sistema operativo per la gestione di schermate e finestre, un motore 2D riscritto, un nuovo supporto per poligoni di navigazione 2D, un esportatore Blender Collada molto migliorato e un nuovo tema scuro.

Godot è entrato a far parte della Software Freedom Conservancy il 4 novembre 2015.

Godot 2.0 è stato rilasciato il 23 febbraio 2016, aggiungendo una migliore creazione di istanze ed ereditarietà delle scene, un nuovo browser di file system, editing di scene multiple e un debugger avanzato.
Questa è stata seguita dalla versione 2.1 nell’agosto 2016, che ha introdotto un database di asset, un profiler e un’API plug-in.

Godot 3

La versione 3.0 è stata rilasciata il 29 gennaio 2018, aggiungendo un nuovissimo renderer PBR implementato in OpenGL ES 3.0, compatibilità con la realtà virtuale e supporto C # (via Mono) grazie a una donazione di $ 24.000 da Microsoft.
La versione 3.0 aggiunse anche il motore fisico Bullet in aggiunta al back-end di fisica 3D incorporato nel motore e fu la prima versione di Godot ad essere inclusa in Debian.

Godot 3.1 è stato rilasciato il 13 marzo 2019, con le caratteristiche più importanti che sono l’aggiunta di § GDScript tipizzato staticamente, un sistema di classi di script per GDScript e un renderer OpenGL ES 2.0 per dispositivi e dispositivi mobili meno recenti.
Godot 3.2 è stato rilasciato il 29 gennaio 2020, con le caratteristiche più importanti che sono enormi miglioramenti della documentazione, supporto C# notevolmente migliorato e supporto per i file glTF 2.0.

Lo sviluppatore principale, Juan Linietsky, passò la maggior parte del suo tempo a lavorare su un ramo Vulkan separato che sarebbe stato successivamente fuso in master per 4.0, quindi il lavoro su 3.2 fu per lo più fatto da altri contributori. Il lavoro sulla 3.2 è continuato come rilascio di supporto a lungo termine per un anno, incluso Godot 3.2.2 il 26 giugno 2020, una versione di patch di grandi dimensioni che ha aggiunto funzionalità come il batch OpenGL ES 2.0 e il supporto C # per iOS.
Il 17 marzo 2021, la strategia di versioning è stata modificata per riflettere meglio il versioning semantico, con un ramo stabile 3.3 e un ramo 3.x per il backporting delle funzionalità a una futura versione 3.4.

Godot 3.3 è stato rilasciato il 21 aprile 2021, con funzionalità come il supporto ARM su macOS, il supporto Android App Bundles, il supporto MP3, il supporto Autodesk FBX, il supporto WebXR e un editor web.

Godot 3.4 è stato rilasciato il 6 novembre 2021 dopo 6 mesi di sviluppo, implementando funzionalità mancanti o correzioni di bug che sono fondamentali per la pubblicazione di giochi 2D e 3D con Godot 3 e rendendo le funzionalità esistenti più ottimizzate e affidabili.

Godot è in procinto di lasciare Software Freedom Conservancy (SFC) a partire dal 1° novembre 2021.

Godot 4

Godot 4 è una versione del motore di gioco Godot che è stato rilasciato il 1 ° marzo 2023. Si tratta di un importante aggiornamento che revisiona il sistema di rendering, aggiunge il supporto per l’API grafica Vulkan, migliora le prestazioni e l’usabilità di GDScript, migliora la fisica e i sistemi di animazione e introduce molte altre funzionalità e correzioni di bug.

Lo sviluppo di Godot 4 è iniziato nel 2019 con una riscrittura del renderer per utilizzare Vulkan da parte di Juan Linietsky (reduz), lo sviluppatore principale di Godot.
Nel 2020, diversi collaboratori si sono uniti al team di sviluppo e hanno lavorato su vari aspetti di Godot 4, come miglioramenti GDScript, revisione del motore fisico, riscrittura del sistema di animazione, miglioramenti dell’usabilità dell’editor e altro ancora.
Nel gennaio 2022, la prima versione alpha di Godot 4 è stata rilasciata per i test da parte dei primi utenti. Ha mostrato alcune delle nuove funzionalità come l’illuminazione globale basata su SDF, le particelle basate su GPU, le ombre morbide dinamiche e altro ancora.
Nel settembre 2022, Godot 4 ha raggiunto la fase beta con stabilità e prestazioni migliorate.
È stato inoltre aggiunto il supporto per WebXR (VR sul web), il supporto C# per Android e iOS, nuove funzionalità audio e altro ancora.
Il 1º marzo 2023, Godot 4 è stato ufficialmente rilasciato come versione stabile dopo diverse build beta e correzioni di bug.
Ha segnato una nuova era per Godot con una migliore qualità grafica, tecniche di ottimizzazione del rendering, funzionalità di accessibilità e altro ancora.

Comunità

Godot come progetto internazionale ha una comunità attiva in tutto il mondo. Alcuni membri della comunità sono amministratori dei gruppi locali Godot.

Lo sviluppatore principale di Godot, Juan Linietsky, ha espresso preoccupazione per il fatto che Godot venga presumibilmente definito una setta dagli utenti di software commerciale.

Dall’invasione russa dell’Ucraina, il server Discord “Godot Engine Russia” è stato rinominato in “Godot Engine Ru” e ha sostituito l’icona con l’immagine di un “gattino Godot”.

Alcuni Videogiochi sviluppati con Godot Engine

Deponia, Le avventure inrattive di Dog Mendonca & Piazzboy, Hardcoded, Commander Keen in Keen Dreams, Cruelty Squad, Sonic Colors: Ultimate, Carol Reed Mysteries, Dome Keeper, The Case of the Golde Idol, Cassette Beasts, Kingdoms of the Dump.

Pubblicato da Luca Bocaletto

Sviluppatore, Creatore, Musicista, Artista, Radiantista, Scacchista.