Lo sviluppo di un videogame richiede competenze varie: progettazione, grafica, animazioni, suoni e, ovviamente, programmazione del codice. Tali skills non sono quasi mai possedute tutte insieme da una singola persona, tuttavia esistono strumenti software potentissimi, chiamati game engine (motori di gioco) che semplificano enormemente il processo di realizzazione dei giochi, sia ai professionisti che ai neofiti.
Cos'è un game engine
Immagina di dover realizzare frequentemente presentazioni con diapositive (slide): non puoi costruire un computer ed installare programmi necessari (LibreOffice Impress o Microsoft PowerPoint) ogni volta che devi farne una, oppure programmare tu stesso il software per fare le presentazioni!
Analogamente, per creare un videogioco è necessario il supporto di tecnologie e strumenti preesistenti. Tutti i tipi di gioco hanno alcune necessità comuni, per esempio devono necessariamente disegnare "cose" sullo schermo: il codice di programmazione necessario è già stato scritto, per cui si può riusare invece di riscriverlo da zero per ogni gioco. È qui che intervengono software appositamente progettati per semplificare il processo di sviluppo: game framework e game engine.
Un game framework è un insieme di librerie di programmazione per lo sviluppo delle parti fondamentali di un videogioco. Non forniscono necessariamente tutto il necessario e sarà ancora necessario scrivere molto codice per "mettere insieme" tutti i pezzi. Un esempio di game framework sono le librerie libGDX.Un game engine è un software che include una serie di strumenti e di tecnologie che semplificano il processo di creazione di un gioco, eliminando il fastidio dover reinventare la ruota ogni volta che si progetta un nuovo videogame. In particolare, mette a disposizione una serie di funzionalità necessarie ad ogni gioco che, se non presenti, dovrebbero essere sviluppate a parte. Tali funzionalità includono:
- rendering 2D e 3D: il rendering si occupa di disegnare a video la schermata del gioco. Un motore di rendering deve tener conto del supporto alle schede video moderni, della risoluzione dello schermo, degli effetti speciali e mantendo un alto frame rate, ossia un elevato il numero di immagini da visualizzare ogni secondo, necessario per garantire fluidità all'azione di gioco.
- Fisica: si occupa di aspetti come il rilevamento e la gestione delle collisioni tra oggetti o la loro interazione con l'ambiente di gioco. Sviluppare un motore fisico è già di per sé un sforzo di programmazione enorme.
- Supporto multipiattaforma: si proramma il gioco una sola volta ma si rende disponibile il gioco con un processo di esportazione unificato, in modo che il gioco funzioni su un PC desktop, una console, uno smartphone o sul web.
Un game engine permette allo sviluppatore di concentrarsi sulla realizzazione del gioco piuttosto che creare l'ambiente software sottostante necessario. Per un singolo sviluppatore o un piccolo studio indipendente, questo può fare la differenza tra creare e finire un gioco nell'arco di un certo periodo di tempo (per esempio un anno), oppure di non crearlo affatto.
Esistono molti game engine, i più noti sono Unreal Engine e Unity, potentissimi ma con una curva di apprendimento molto ripida. Si tratta di ambienti di sviluppo piuttosto complessi che richiedono una conoscenza tecnica pregressa non banale. Quando si costruisce il codice di gioco, nell'Unreal Engine si programma in C++ in unione ad un linguaggio creato appositamente per il game engine; Unity è un po' più semplice da padroneggiare ed usa il linguaggio C#. In entrambi i casi bisogna già avere una certa pratica di programmazione.
Nel variegato panorama dei game engine, Godot (https://godotengine.org/) ha guadagnato popolarità, soprattutto tra gli sviluppatori indipendenti (indie), per diverse ragioni: è open-source, multipiattaforma, richiede basse risorse hardware, non esitono pagamenti/royalties di nessun tipo. Godot ha una curva di apprendimento piuttosto dolce, grazie ad un ambiente di sviluppo amichevole e flessibile, include un linguaggio di programmazione (GDScript) semplice da apprendere anche per chi è digiuno di programmazione.
Godot Engine
Godot è un game engine per giochi 2D e 3D rilasciato come software open-sorurce nel 2014 con licenza MIT: significa che se sviluppate e distribuite un gioco con Godot, il vostro unico obbligo è includere il testo della licenza da qualche parte all'interno dei file che compongono il gioco. Per il resto potete fare letteralmente quello che vi pare, è tutto gratis:
- puoi scaricare ed usare gratuitamente Godot per qualunque scopo, sia personale che commerciale;
- non ci sono royalties o compensi di alcun tipo da pagare: se sviluppi un gioco con Godot, lo distribuisci a pagamento e guadagni 1 000 000 000 € (un miliardo di euro), non devi pagare neanche un centesimo per diritti/royalities (solo le tasse quando fai la dichiarazione dei redditi!);
- a differenza di altri game engine, non esiste alcuna restrizione sul tipo di gioco che puoi creare.
Godot è disponibile su (e si possono creare giochi per) Windows, Linux, MacOS, Android e browser web. Dal punto di vista tecnico si possono creare giochi anche per console, tuttavia la natura open-source di Godot non permette l'inclusione dei template necessari all'esportazione su tali hardware (per saperne di più consultate la pagina https://docs.godotengine.org/en/stable/tutorials/platform/consoles.html#doc-consoles).
I requisti hardware per eseguire Godot sono modesti, a meno che non abbiate un PC obsoleto sarete immediatamente in grado di avviare l'ambiente di sviluppo (per informazioni dettagliate consultate la pagina https://docs.godotengine.org/en/stable/about/system_requirements.html#doc-system-requirements).
Installazione di Godot
Si può scaricare Godot dal sito https://godotengine.org/ e clickando su Download Latest (al momento della scrittura di questo articolo il software è in versione 4.4). Nella pagina di download viene data la possibilità di scaricare la versione standard oppure la versione .NET (relativamente nuova, progettata per essere usata con il C#, non scaricatela se non conoscete già questo linguaggio).
Negli articoli che seguiranno useremo la versione standard di Godot (in ambiente Windows) ed il linguaggio GDScript, creato dagli autori di Godot e specificatamente progettato per la programmazione di giochi.
Preparazione dell'ambiente di lavoro
Creare una cartella (per esempio \GODOT) dove estrarre il contenuto del file scaricato ed una cartella separata dove salvare i progetti di gioco, per fissare le idee la chiameremo \GODOT-PRJ). A questo punto non resta che fare doppio click sull'eseguibile di Godot per essere catapultati nell'ambiette di sviluppo.
Precedente | Indice | Successivo |