Hai deciso di iniziare a sviluppare un videogioco, ma prima di scegliere il linguaggio di programmazione più adatto e chiedersi qual è il Game Engine migliore per il tuo videogioco, è bene fare un passo indietro e avere ben chiare in mente quelle che sono le caratteristiche principali del videogioco che vuoi andare a creare. Oggi esistono molte tipologie di giochi e altrettante piattaforme dove pubblicare, ed è essenziale prima di tutto definire se si tratta di un gioco 2D, 3D, in Realtà Virtuale o Aumentata, o se sarà fruibile per dispositivi mobili, console o pc. Esistono strumenti di creazione e Game Engine molto flessibili, mentre altri sono indicati specificatamente per accelerare lo sviluppo di una tipologia di gioco o per la pubblicazione su una specifica piattaforma.

Ciò che è necessario sapere sulla realizzazione di un videogioco è che nasce prima di tutto da un’idea, che si sviluppa intorno a delle meccaniche chiave e si espande fino a comprendere sistemi e sottosistemi che governano tutte le interazioni possibili. Una delle figure chiave nel Game Development, oltre a Game Designer e artisti, è quella del Game Programmer. A lui spetta il compito di tradurre le idee, le regole e i sistemi contenuti all’interno di un documento di design in script e codice pulito ed efficiente. Un documento di game design contiene il tema principale del gioco; ne è descritto il suo funzionamento e sono esplicitati gli obiettivi e i modi che il giocatore ha per raggiungerli. I programmatori, quindi, hanno un compito affascinante quanto delicato: danno essenzialmente vita a un videogioco.

Game Programmer DBGA Campus

Studenti del corso Game Programming DBGA Campus che sviluppano un videogioco

I Game Programmer lavorano a stretto contatto con designer, altri sviluppatori e artisti durante tutto il processo di sviluppo affinché la creazione del prodotto finale proceda senza rallentamenti. Possono implementare funzionalità e strumenti ad hoc, come level editor, o realizzare prototipi per testare le funzionalità progettate. Sono coloro che conoscono bene i limiti e le potenzialità del motore di gioco in uso e delle tecnologie utilizzate. Braz Monteiro, CTO di Chucklefish, riassume così il ruolo di un programmatore sulle pagine di gamesindustry.biz: il compito di un programmatore è comprendere un problema, trovare la soluzione migliore a quel programma data una serie di vincoli e modellare quell’insieme di soluzioni come una serie di astrazioni ben progettate.

È importante sottolineare che se hai scelto di intraprendere un percorso da Game Programmer, nel corso del tempo potrai arrivare a specializzarti ulteriormente nel tuo ruolo perché nello sviluppo di un videogioco non esiste un’unica figura di programmatore. A seconda delle dimensioni dello studio e della complessità del progetto, possono essere diverse le aree da coprire. Per muovere i primi passi nel settore, però, le abilità di base più richieste sono ottime capacità matematiche, analitiche, di problem solving e di comunicazione, a cui si aggiungono la conoscenza di uno o più linguaggi di programmazione e una comprovata esperienza con i game engine.

Sviluppare un videogioco: cos’è un Game Engine?

Un Game Engine è un ambiente di sviluppo integrato che, fornendo un livello di astrazione sufficiente attraverso interfacce grafiche e tutta una serie di librerie software, rende più semplice il processo di creazione di un videogioco. I motori di gioco possono essere responsabili del sistema di input, della logica di un gioco, del rendering della grafica, delle leggi fisiche e del rilevamento delle collisioni, della gestione della memoria, dell’intelligenza artificiale che risponde alle azioni del giocatore e di molte altre funzionalità.

Crash Bandicoot: On the Run!

Crash Bandicoot: On the Run! sviluppato con Unity

I motori di gioco, quindi, offrono componenti riutilizzabili che gli sviluppatori utilizzano per costruire il proprio gioco e sono spesso impiegati per lo sviluppo di più titoli, risultando un chiaro investimento nel tempo. Sono davvero tanti gli aspetti che concorrono alla realizzazione di un videogioco, o anche solo di una porzione del mondo di gioco, e i Game Engine si rendono necessari per abbattere i tempi e facilitare il raggiungimento degli obiettivi di sviluppo.

Nella maggior parte dei casi, i Game Engine oggi disponibili sul mercato sono sufficienti per creare un videogioco, ma per grandi e ambiziosi progetti potrebbe essere necessario creare il proprio motore di gioco da zero, per questo motivo è bene distinguere tra Game Engine proprietari e Game Engine di terze parti.

Game Engine proprietari vs Game Engine di terze parti

Un Game Engine proprietario, o sviluppato in-house, è un motore di gioco appartenente a uno studio di sviluppo o a un publisher. Sono software che vengono creati da zero internamente per rispondere in modo più puntuale alle esigenze del team e del progetto, ma soprattutto non prevedono il pagamento di un canone di licenza, che in caso di giochi che venderanno molte copie è un fattore economico da non sottovalutare.

Esempi di motori di gioco proprietari sono il Decima Engine di Guerrilla Games che ha alimentato giochi come Killzone: Shadow Fall, la serie di Horizon e Death Stranding di Kojima Productions, o il Frostbite di EA Games che ha permesso di raggiungere risultati impressionanti in giochi come Battlefield. Ha avuto origine nello sparatutto di DICE per garantire interazioni multiplayer su larga scala in ambienti distruttibili dinamici e oggi rappresenta il cuore dello sviluppo di tutto il portfolio giochi di EA.

Poiché i motori di gioco richiedono tempo per essere sviluppati, personale specializzato e possono avere costi molto elevati, molti studi di sviluppo si rivolgono ad aziende di terze parti che creano motori di gioco appositamente per concederli in licenza ad altri studi. Questi strumenti sono progettati per abbracciare un numero sempre più crescente di esigenze, generi, stili di gioco e piattaforme. Vediamo quali sono i principali Game Engine sul mercato, i linguaggi di programmazione richiesti e i giochi sviluppati con essi.

I principali Game Engine sul mercato

Unity

Unity è un Game Engine multipiattaforma sviluppato da Unity Technologies, annunciato e pubblicato per la prima volta nel giugno 2005 alla Apple Worldwide Developers Conference come motore di gioco esclusivo per Mac OS X. A partire dal 2018 è stato ampliato per supportare più di 25 piattaforme tra cui Nintendo Switch. Il motore è molto flessibile e può essere utilizzato per creare giochi 3D, 2D, VR e AR, nonché simulazioni e altre esperienze come film e cinematiche.

Gli aggiornamenti frequenti forniscono sempre funzionalità aggiuntive che nella maggior parte dei casi sono sufficienti per creare videogiochi ricchi di dettagli. È una valida opzione per chiunque voglia iniziare a creare videogiochi grazie anche a una serie di tutorial online e progetti già pronti per essere scomposti e modificati così da imparare le basi di un platform o uno sparatutto in prima persona.

Unity consente di creare i tuoi componenti di gioco utilizzando gli script. Attraverso questi file si possono modificare le proprietà dei componenti, aggiungere interazioni e strutturare le risposte a un input dell’utente. Unity supporta il C# come linguaggio di programmazione nativo, un linguaggio ampiamente utilizzato in moltissimi campi di applicazione e simile a C++ e Java. Alcuni dei giochi di successo sviluppati utilizzando Unity includono Hearthstone, Hollow Knight, Beat Saber e Ori and the Blind Forest.

Programmatori corso Game Programming

Studenti del corso Game Programming DBGA Campus al lavoro con Unity

Unreal Engine

Unreal Engine è un motore di gioco multipiattaforma sviluppato da Epic Games ed è tra i più utilizzati nel settore a livello professionale in quanto, come Unity, permette di creare la stessa esperienza di gioco su console, PC e piattaforme mobile includendo anche software per la Realtà Estesa (AR, VR e MR). La prima versione dell’engine è stata distribuita nel 1998 per il famosissimo sparatutto in prima persona Unreal da cui prende il nome.

Unreal Engine è dotato di un potente script visivo integrato chiamato Blueprint che permette di utilizzare un’interfaccia basata su nodi per creare elementi di gioco direttamente dentro l’editor. Il motore può essere utilizzato anche con C++, infatti le classi C++ possono essere utilizzate come base per le classi Blueprint. Il gioco di punta di Epic Games è il fenomeno mondiale Fortnite, ma con Unreal sono stati creati anche giochi tripla A come le serie di Gears of War e Borderlands e giochi indipendenti come Kena: Bridge of Spirits e Omno.

Godot

Godot è un motore di gioco open source multipiattaforma che può essere utilizzato per creare giochi 2D e 3D da pubblicare su piattaforme desktop, mobili, console e web. Poiché il motore di gioco è open source, gli aggiornamenti sono spesso mirati all’aggiunta di funzionalità e correzione dei problemi, inoltre può contare su un ampio supporto da parte della community. Nello sviluppo indipendente è un engine molto apprezzato e in crescita, si trova infatti nella top 5 dei motori più utilizzati su Itch.io.

Godot consente di combinare linguaggi di scripting in base alle proprie necessità, infatti, oltre allo scripting visivo, utilizza principalmente GDScript, un linguaggio di programmazione di alto livello che ha una sintassi simile al Python. Grazie alla tecnologia GDNative, il motore può interagire con le librerie condivise ed eseguire codice C o C++. Tra i giochi realizzati con l’engine Godot troviamo Dungeondraft, Resolutiion e il gioco in sviluppo The Garden Path.

Un programmatore al lavoro

CRYENGINE

CryEngine è un motore sviluppato da Crytek, azienda che ha sempre sviluppato prodotti che hanno spinto le capacità tecniche del medium, infatti, la prima versione dell’Engine è stata utilizzata per lo sparatutto Far Cry. Da una versione pesantemente modificata del CryEngine è nato anche il Dunia Engine che attualmente Ubisoft utilizza per continuare la serie Far Cry. Il CryEngine è un motore gratuito ma basato su un sistema di royalty ed è possibile utilizzarlo per creare giochi anche molto complessi per diverse piattaforme come Xbox One, PlayStation 4, PC Windows e Oculus Rift.

Tra le sue caratteristiche principali spiccano potenti strumenti per gestire l’illuminazione e la fisica in modo reale, sistemi avanzati di animazione e rendering per dare vita a personaggi realistici e una tecnologia AI per gestire i comportamenti dei personaggi non giocanti sfruttando sistemi sensoriali modulari come l’udito e la vista. Per poter estendere le funzionalità tramite scripting è necessario conoscere LUA. Titoli realizzati con il CryEngine includono Sniper Ghost Warrior 3, Kingdom Come: Deliverance e Crysis 3.

Amazon Lumberyard – Open 3D Engine

Amazon Lumberyard era originariamente basato sul CryEngine, ma è stato riscritto e ottimizzato da Amazon per integrarsi nativamente con il cloud di Amazon Web Services e con le funzionalità di Twitch. Lumberyard offre accesso gratuito all’intero codice sorgente del motore in C++ in modo da avere maggiore controllo sulle modalità di utilizzo di memoria, CPU e grafica per ottimizzare le prestazioni. Lumberyard è un motore multipiattaforma che supporta PlayStation 4, Xbox One, PC, macOS, iOS, Android e gli ecosistemi VR come Oculus Rift, HTC Vive e PlayStation VR.

Nel luglio del 2021, Amazon e la Linux Foundation hanno annunciato che alcune parti del motore sarebbero state utilizzate per creare un nuovo Game Engine open source chiamato Open 3D Engine, attualmente disponibile in Developer Preview. Il motore è stato riprogettato da zero per essere modulare, ossia gli sviluppatori che intendono utilizzare Open 3D potranno sostituire completamente il renderer grafico, il sistema audio, l’editor, il supporto linguistico e altre librerie senza che i moduli impattino gli uni sugli altri. I giochi sviluppati attualmente includono tutti i titoli di Amazon Games Studios come l’MMO New World e titoli in sviluppo come Star Citizen.

Sviluppare videogiochi

GameMaker Studio 2

GameMaker Studio consente di creare giochi 2D per Windows, Mac, Linux, Android, iOS, HTML5, Xbox, PlayStation e Nintendo Switch attraverso un sistema di interazione drag and drop. Grazie alla funzionalità Code Preview è possibile visualizzare il codice dietro i vari blocchi che costituiscono le azioni e imparare come viene creato un gioco. Considerato che non richiede conoscenze di programmazione per essere utilizzato, ha trovato ampia diffusione, tuttavia, l’introduzione di un linguaggio di scripting, con una sintassi simile a quella del C, aggiunge maggiore flessibilità nella creazione di funzioni personalizzate.

GameMaker Studio 2 è l’ultima e più aggiornata versione disponibile per il download. Sono diverse le licenze disponibili, ma è possibile ottenere l’accesso illimitato all’IDE e ai materiali didattici in modo del tutto gratuito, limitando però l’esportazione del proprio gioco alla piattaforma web Opera GX. Giochi realizzati con licenze più professionali di GameMaker Studio includono Hyper Light Drifter, Chicory: A Colorful Tale e Post Void.

Conclusioni

Come avrai capito, sviluppare un videogioco non è un processo semplice e inizia ben prima di scrivere righe di codice o modellare un oggetto 3D. Nonostante oggi ci siano molti più mezzi per accelerare lo sviluppo e risorse per apprendere come fare a realizzare un videogioco, tempo, impegno e un costante aggiornamento delle proprie abilità non sono elementi secondari. Il modo migliore per perfezionarsi e imparare a creare giochi è proprio iniziando a fare pratica. Allo stesso tempo, svilupperai un portfolio con i tuoi progetti che metterà in mostra il tuo talento e le tue capacità.

Se vuoi essere guidato in questo percorso di crescita professionale da veri professionisti del settore, consulta i nostri corsi in presenza DBGA Campus o i corsi Online Blended se hai necessità della flessibilità di un corso di formazione online.