Sviluppare videogiochi in Italia, è possibile?

Purtroppo, nel nostro bel paese, resta tutt’oggi ancorata la convinzione che il mondo videoludico sia un settore prettamente adolescenziale, indegno di essere considerato per quello che è: un mercato globale da miliardi di dollari. Questa ignoranza purtroppo si ripercuote su una flebile e quasi bisbigliata informazione, la quale lascia credere che sviluppare videogiochi in Italia sia qualcosa di mistico e irraggiungibile. Di certo facile non è, data la scarsa cultura che la nostra società italiana ha nei confronti dei videogiochi, dalla politica fino alla scuola, ma non è certo un mero miraggio. Soprattutto se si considerano tutti quei settori che sfruttano le tecnologie 3D per produrre software non destinati al mercato videoludico di massa, vedi i Seriuos Game. Mi piacerebbe dunque con questo articolo schiarire le idee ai futuri sviluppatori che, spinti dalla mia stessa passione, si ritrovano a vagare tra la nebbia di Silent Hill, senza sapere che era solamente un espediente grafico per caricare meno modelli e texture. Andrò dunque ad esplorare le tre principali professioni che concorrono allo sviluppo di un videogioco: Game Programmer, 3D Artist e Game Designer. Cercherò per ognuna di sfatare falsi miti e illustrare possibili percorsi di studio, strumenti di lavoro e mansioni lavorative, con uno sguardo al mercato italiano.

In Italia non è il mercato videoludico ad essere arretrato ma la cultura

Indice

Game Programmer

Iniziamo subito con il più “classico” degli impieghi legati allo sviluppo di un videogioco, la persona a cui tutti pensano quando si parla di professioni videoludiche. Il game programmer, o semplicemente il programmatore, è colui che detiene l’arduo compito di “battere a macchina” tutta la parte logica del gioco. Una volta definito il GDD (il Game Design Document, del quale parlerò più avanti), il team di programmatori deve, all’interno del motore grafico scelto, realizzare logicamente ciò che è stato deciso in fase di progettazione. Le varie scene/livelli che compongono il gioco e il loro susseguirsi; le caratteristiche tecniche del nostro personaggio come quantità di vita, stamina, abilità eccetera, tutte le possibili interazioni che quest’ultimo può avere con l’ambiente circostante; il database degli oggetti presenti nel gioco; l’intelligenza artificiale degli NPC e dei nemici e via dicendo.

Dico “battere a macchina” perché l’attività principale di un programmatore di videogiochi è quella di scrivere decine e decine di righe di codice che traducano la logica del gioco pensata durante la progettazione in un linguaggio comprensibile alla macchina. L’attività di amanuense sicuramente ricopre gran parte del tempo di un game programmer ma, a differenza di uno sviluppatore web o di app, non è il suo unico compito. Il game engine, ovvero l’ambiente di sviluppo di un videogame, oltre a dare la possibilità di aggiungere logica alla propria esperienza, offre una serie di tool che permettono al programmatore di controllare diversi aspetti del mondo di gioco.

Primo fra tutti è la fisica (gravità, collisioni tra oggetti, moto dei proiettili…), fondamentale per rendere l’esperienza più verosimile possibile. Seguono la gestione delle camere in scena, delle luci (le quali hanno un forte impatto nelle prestazioni), delle animazioni (sviluppate dai 3D artist ma gestite dai programmatori) e della UI (interfaccia utente). Più il team è piccolo, più al programmatore sarà richiesto di spaziare tra i diversi ambiti dell’engine, dovendo di fatto acquisire conoscenze che vanno al di là del puro coding. In definitiva il game programmer non vive di solo codice e per molti è la peculiarità più interessante che lo distingue da qualsiasi altro programmatore “classico”.

Interfaccia di Unity.
Interfaccia di Unity

Gli strumenti del fabbro

Nella sua faretra il game programmer ha sostanzialmente tre frecce per il proprio arco, ma grosse quanto quelle di Gough Occhio di Falco.

Il Game Engine è il motore di gioco, l’ambiente che permette di unire la grafica 3D con la programmazione per dare vita ad esperienze real-time interattive. Come sopra illustrato, consente di importare e di gestire gli asset grafici forniti dai 3D artist (modelli, texture, animazioni…) inserendoli in un unico ambiente, potendone decidere il comportamento tramite script. Inoltre permette di realizzare quella parte di computer grafica che non può essere sviluppata da altri programmi esterni e che concorre alla completezza di un’ambientazione. Due sono gli engine più diffusi al momento: Unity e Unreal Engine. Le differenze tra i due, purtroppo per i programmatori, sono sostanziali poiché nascono con obiettivi differenti. Con entrambi comunque è possibile sviluppare videogiochi 2D e 3D e la scelta dell’uno piuttosto che l’altro dipende molto dall’obiettivo finale.

L’IDE, Integrated Development Environment, è un blocco note “leggermente” più intelligente. Esso ci permette di scrivere il codice che andrà a definire la logica del gioco. La sua importanza a volte viene trascurata, ma una buona conoscenza dello strumento permette al programmatore di scrivere più velocemente (indentazione automatica, autocompletamento del codice, lista dei possibili attributi da utilizzare…) e più correttamente (segnalazione degli errori, debugging…). Di IDE in circolazione ce ne sono davvero molti e ognuno sceglie quello che più gli aggrada. Uno dei più famosi e consigliati per lo sviluppo in Unity e Unreal è Microsoft Visual Studio (se vi lamentate di Chrome per l’utilizzo della RAM non avete ancora aperto Visual Studio!).

Git è un po’ come una supposta: non vorresti mai usarlo perché colpisce là dove ti senti più vulnerabile, ma è un male necessario per un bene superiore. Bestia nera che tutti i programmatori conoscono, è il sistema che permette il versionamento del codice, consentendo a più persone di lavorare sullo stesso progetto in maniera consistente e senza conflitti. Lo si impara a forza, obbligati inizialmente da necessità aziendali, ma dopo un po’ che lo usi capisci che non puoi più vivere senza. Vi sono diversi servizi di hosting e client di Git che permettono di operare più o meno profondamente. Alcuni esempi dei primi possono essere GitHub e Bitbucket mentre i più comuni client sono GitHub Desktop, Sourcetree e GitKraken.

3D Artist

Scultore, pittore, animatore dell’era digitale, il 3D artist è la figura di riferimento per tutto ciò che riguarda la parte puramente grafica di un videogioco. Molto più tecnico di quanto si pensi, il compito di un 3D artist è quello di creare, attraverso tool interni ed esterni al game engine, tutti gli asset che compongono le varie scene dell’esperienza. Ma ad ognuno il suo ruolo, o quasi. Sì, perché il mondo della computer grafica è talmente vasto da far sembrare la mappa di Skyrim uno sputacchio su un foglio di carta.

Pensateci un secondo: di quante parti è composto il nostro Geralt di Rivia che effettua un affondo su un basilisco? Ve lo spiego subito: di un modello tridimensionale anatomico assieme ai suoi vestiti ed accessori, delle relative texture, di un sistema che permetta al modello di muoversi mantenendo le giuste deformazioni ed infine delle animazioni che gli danno dinamicità e movimento. E tutto questo per un singolo personaggio. E sì, molto di tutto ciò è fatto “a mano”; purtroppo in ZBrush non hanno ancora inventato il pennello “Crea intero personaggio principale”.

Per darvi un’idea dell’impossibilità per un 3D artist di specializzarsi in tutti i campi della CG ne riporterò i principali di seguito:

Sono davvero moltissimi i campi che compongono la computer grafica ed ognuno possiede principi teorici e pratici che richiedono anni per essere appresi. Nelle grosse produzioni dove il livello di dettaglio richiesto è altissimo esistono diversi artisti specializzati per ogni settore. Nelle produzioni più piccole invece, molto diffuse in italia, il 3D artist tende ad essere più generalista. Egli cercherà dunque di ricoprire più campi affini, come modelling e texturing o rigging e animazione. Questo permette di risparmiare molto sul personale ovviamente, ma chiaramente il generalist non riuscirà a raggiungere il massimo del dettaglio in tutti i ruoli che ricopre.

Interfaccia di ZBrush.
Interfaccia di ZBrush

Gli strumenti del fabbro

Il 3D artist possiede tante frecce al proprio arco quante Legolas durante la battaglia del Fosso di Helm. Partendo dallo sculpting, un software ormai massicciamente utilizzato anche nelle grosse produzioni è ZBrush. Una volta presa familiarità con un’interfaccia proveniente da un’altra dimensione, ZBrush è uno strumento potentissimo che permette di gestire mesh dall’altissima conta poligonale. Grazie a ciò, permette all’artista di scendere nel dettaglio dei particolari del volto, delle pieghe del vestito o degli intagli dell’impugnatura di una spada.

Utilizzato principalmente per la modellazione dei character principali, ZBrush richiede una buona abilità manuale e una solida conoscenza anatomica, dove l’uso della tavoletta grafica è praticamente obbligatorio. Un software professionale che invece permette la modellazione hard surface, ma anche il rigging e le animazioni, è ad esempio Autodesk Maya. Applicazione più “tecnica” della precedente, è utilizzata in ambito gaming ma soprattutto anche nelle grandi produzioni VFX per film.

Al suo interno è possibile modellare un braccio meccanico ricco di pistoni, bulloni e cavi, di costruire uno scheletro che ne permetta il movimento e di creare un set di animazioni utilizzabili a piacimento poi nel game engine. Infine un ottimo programma di texturing è Substance Painter. Esso permette di “dipingere” direttamente sul modello 3D attraverso la tavoletta grafica e una serie corposa di pennelli, texture e materiali. I restanti campi sono tutti sviluppati all’interno del motore di gioco, dei quale ho già parlato nel paragrafo sopra.

I sopracitati sono solo alcuni dei software che i 3D artist hanno a disposizione per creare le meraviglie che tanto apprezziamo e ogni artista ha la piena libertà di scegliere tra i programmi che l’azienda ha già selezionato per lui. Una nota amara ma che rispecchia la realtà dei fatti: molti di questi programmi, anche se gratuiti per gli studenti, sono a pagamento. Una volta deciso di investire in un software, l’azienda formerà il proprio know-how su di esso ed è necessario che il nuovo 3D artist abbia almeno una vaga idea di come sia strutturato quel particolare programma. I principi di base sono gli stessi ovviamente, ma se si è già pratici di quel particolare ambiente si parte avvantaggiati. Dunque è necessario scegliere accuratamente dove spendere il proprio tempo, cercando di prediligere i programmi utilizzati nelle grandi produzioni, anche se possono sembrare più complessi.

Per tutto il resto c’è Blender.

Game Designer

Arriviamo infine alla più ambita delle professioni, il deus ex machina che tutto dirige da dietro le quinte. Parliamo ovviamente del game designer, il progettista dell’idea, una persona dotata di grande creatività e doti comunicative. È lui a dirigere le regole e la struttura del gioco, di cui elabora le dinamiche e le modalità di svolgimento. La prima fase del suo lavoro comprende la definizione dei contenuti e lo sviluppo di un’idea, finalizzata alla progettazione di un sistema coerente e che possa coinvolgere l’utente. Ciò lo porta a redigere il GDD, ovvero il Game Design Document, le tavole della legge che tutto il team di sviluppo dovrà adorare. Questo documento descrive nel dettaglio sia gli aspetti di gioco come il genere, l’aspetto grafico generale e le meccaniche del gameplay. Ma anche argomenti più commerciali come il target del gioco, le piattaforme di rilascio e la monetizzazione.

Il game designer dunque, oltre ad avere una buona padronanza delle dinamiche, della struttura e delle regole dei videogiochi, deve conoscere l’andamento del mercato videoludico così da creare un’esperienza appetibile e in grado di coprire i costi di produzione. Una volta avviato lo sviluppo, si occuperà di testare i prototipi e giudicare la realizzazione degli aspetti tecnici e ludici, dando indicazioni agli sviluppatori per migliorare l’idea iniziale e ottimizzare il prodotto.

Grafico che mostra uno dei principi cardine del game design, la Flow Channel Theory, ovvero lo stato mentale che mantiene il giocatore impegnato in una attività.

Grafico che mostra uno dei principi cardine del game design, la Flow Channel Theory, ovvero lo stato mentale che mantiene il giocatore impegnato in una attività.

Percorso di studi

Sfatiamo subito un paio di miti: per imparare a programmare non deve per forza piacere la matematica e per fare il 3D artist non si deve saper disegnare. Anche se sicuramente aiuta.

Per quanto riguarda il game programmer, il corso di studi più ovvio per iniziare è quello di informatica all’università. Niente come la triennale insegna le basi e gli approfondimenti del vastissimo mondo della programmazione. E’ vero, ci sono tantissimi corsi riguardanti argomenti che mai più verranno utilizzati (e per fortuna!). Ma altrettanti sono necessari per lo sviluppo dei videogiochi e difficilmente verranno trattati così bene come all’università. Inoltre una laurea in informatica è un ottimo biglietto da visita e avrà una grande validità se un giorno i videogiochi perderanno il loro fascino a favore dei database.

Per il 3D artist la cosa non è così ovvia e si tratta di scegliere un percorso universitario che più si avvicina al mondo della computer grafica come l’Accademia delle belle arti, Laurea in Grafica e Progettazione Multimediale o in Design Industriale. Nonostante non siano indirizzi specifici per i videogiochi, forniscono un’ampia base sulle tecnologie per lo sviluppo di asset 2D e 3D in campo multimediale ed industriale.

Infine c’è il game designer. Nessuna particolare laurea “tradizionale” viene caldamente consigliata per questa figura professionale. Le conoscenze di un designer di videogiochi spaziano dalle tecnologie attuali alla narrazione, dall’andamento del mercato alla dialettica (anche e soprattutto in inglese). Nessun percorso di studi universitario tratta argomenti così diversi, men che meno indirizzati verso il settore videoludico. Ma niente paura: ci sono le scuole dedicate!

Corsi privati in videogiochi non ne mancano, sono le aziende a latitare

Le due principali università pubbliche che propongono un percorso post triennale in videogiochi sono l’Università degli studi di Milano e l’Università di Verona, mentre per quanto riguarda le scuole professionalizzanti alcuni esempi sono: AIV – Accademia italiana Videogiochi, Digital Bros Academy, BigRock e Event Horizon. Qui la scelta viene presa in base alla disponibilità economica, all’interesse per un particolare corso e alla possibilità di trasferimento. Ma grande importanza deve essere data all’organizzazione delle scuola, al corpo docenti, alla strumentazione, alle certificazioni e al portfolio. Il costo e il tempo che questi corsi richiedono non sono assolutamente irrisori ed è preferibile aver controllato tutte le scuole a disposizione prima di iniziare il salasso. Open day e forum sono i nostri più sinceri alleati. Non si deve aver paura di chiedere informazioni sui social media e pareri ad ex corsisti.

Immagine di un visore di Realtà Virtuale.

Tutto molto interessante ma…. troverò mai lavoro?

La risposta è sì, ma il foglio di carta non basta. Sia in Italia che nel resto del mondo, entrare anche nei più piccoli studios richiede una buona preparazione teorica, ma soprattutto esperienza sul campo.

“E come faccio a far esperienza se nessuno mi assume?”

Semplice: sviluppando progetti personali.

I software che vengono utilizzati dalle case di produzione sono quasi tutti gratuiti per gli studenti, permettendo così un loro utilizzo prima dell’effettiva assunzione. Dedicare un periodo post laurea/corso per sviluppare un piccolo progetto che metta in pratica tutte le abilità e tecniche acquisite non è assolutamente da considerarsi una perdita di tempo. Esso una volta concluso, permetterà di presentarsi alla software house con prove tangibili delle proprie capacità.

In Italia le aziende che sviluppano videogiochi non sono moltissime, ma negli anni si sono moltiplicate e hanno prodotto alcuni titoli davvero eccelsi (The Last Day of June ad esempio). Andiamo dai colossi del settore come Milestone (casa di sviluppo dei videogiochi ufficiali di MotoGP e MXGP) e Ubisoft Milano (succursale italiana del colosso francese che recentemente ha sviluppato Mario + Rabbids), a team di sviluppo più piccoli ma molto promettenti come Ovosonico, 34BigThings e Tiny Bull Studio. L’offerta lavorativa nel nostro bel paese non è molta purtroppo, e la concorrenza è davvero agguerrita, soprattutto per i game designer.

Esperienze VR e AR: la nuova frontiera di videogiochi business-to-business

Sono diversi però i settori che utilizzano le stesse tecnologie dei nostri amati giochi virtuali, dando l’opportunità al junior di tutte e tre le professioni di fare la tanto agognata prima esperienza. Un esempio principe è il settore della realtà virtuale e aumentata B2B. Software house “classiche” che scoprono nelle nuove tecnologie immersive una importante opportunità, entrando nell’ambito di un’offerta emozionale molto caro al mercato di oggi. Un’esperienza di realtà virtuale e aumentata si costruisce interamente attraverso le tecnologie sopracitate, adattate però ad una esperienza immersiva. L’ambiente di sviluppo sarà quindi Unity o Unreal, i modelli dell’ambientazione verranno costruiti in Maya e la varie fasi dell’esperienza seguiranno i dettami descritti nel GDD.

Non lo negherò, il percorso per sviluppare videogiochi in Italia è lungo e pieno zeppo di scagnozzi di Cortex pronti a farci perdere le nostre preziose vite dopo ogni salto. Ma per noi che abbiamo combattuto contro il potente Blastoise di Blu, sconfitto a suon di Spade del Caos un gigantesco dio della guerra e viaggiato in lungo e in largo alla ricerca di El Dorado assieme ad Elena e Sully, può forse questa nuova sfida spaventarci? Al limite, possiamo sempre riprendere dall’ultimo checkpoint!

#LiveTheRebellion