Intervista a Tobia Giani, dai porting ai game engine per lo spazio

Tobia Giani intervista porting giochi

Durante la Global Game Jam abbiamo avuto la possibilità di intervistare Tobia Giani, uno sviluppatore veterano dell’industria videoludica italiana. Ha lavorato per cinque anni nello sviluppo di videogiochi, per poi abbandonare e cambiare completamente campo. “Sono scappato” ci ha detto lui, e successivamente ha cominciato a lavorare nel settore aerospaziale. Durante le talk di apertura del weekend di Jam, Giani ha portato una presentazione sull’utilizzo dei game engine per lo spazio e i satelliti, raccontando anche l’utilizzo che fanno di questi software in AIKO: azienda torinese impiegata nel settore aerospaziale. È una prospettiva di utilizzo decisamente curiosa e che pone quindi l’accento importante sulla necessità di un’approccio interdisciplinare, sia che si parli di videogiochi che di spazio.

La talk ci è bastata per interessarci al personaggio e per incuriosirci sui punti di intersezione tra questi due mondi tecnologici. Lo abbiamo quindi fermato subito dopo il suo intervento e gli abbiamo proposto un’intervista. Lui, sorridente, ci ha regalato mezzora di chiacchiere. Abbiamo parlato della sua esperienza in questi due settori, dei videogiochi su cui ha lavorato (Forma.8 nello specifico) e sul processo di sviluppo dietro ai porting. Lo ringraziamo per il tempo che ci ha dedicato e gli auguriamo il meglio per il suo futuro personale e lavorativo.

Le foto sono state scattate da Marco Verdese

Intervista a Tobia Giani

  • Ci hai detto prima che sei scappato dalla game industry, perché?

È un’industria, in generale, molto complicata. Ha le sue problematiche purtroppo già note ai molti e dopo tanti anni che ci lavori può diventare difficile rimanerci perché le esigenze personali possono non essere più compatibili. Infine, si possono innescare dei circoli viziosi e pesanti che ti consumano e che possono porti davanti a una necessità di cambiamento.

Tutte le questioni che si leggono in giro su burnout e litigi, purtroppo, sono frequenti. E sebbene succeda anche in tanti altri settori, la mia impressione è che succeda maggiormente in quella dei videogiochi. Ciò non vuol dire che mi penta di aver lavorato per cinque anni in questo settore, ma ho avuto bisogno di trovare qualcos’altro per raggiungere una maggiore serenità e obiettivi extra lavorativi. In sostanza, è un settore che ti regala grandi soddisfazioni ma anche grandi fatiche.

  • Dei giochi a cui hai lavorato, qual è quello che ti è rimasto anche più impresso?

MixedBag, l’azienda in cui ho lavorato, era nata per fare Forma.8. È stato il primo gioco su cui abbiamo cominciato a lavorare e su cui abbiamo speso più tempo. Ovviamente è il nostro bambino a cui tutti vogliamo bene, che teniamo sempre nel nostro cuore. È stato anche il primo progetto su cui ho cominciato a fare esperienza da programmatore: gestendo le piattaforme, la UI e tutto quello che è la complessità di fare un gioco completo. Essendo Forma.8 il progetto su cui ho imparato di più, è quello su cui ho più emozioni. È durato un sacco di anni e io ne ho vissuti una buona parte, anche se sono entrato in azienda a lavori già avviati.

Abbiamo tutti la nostra copia fisica di Forma.8 incelofanata e tenuta in bella mostra a casa. Poi da me ce ne sono due perché anche mia moglie è una ex-sviluppatrice del gioco, quindi anche lei ha la sua copia.

Forma.8 Tobia Giani
Forma.8 è un videogioco metroidvania sviluppato da MixedBag e uscito nel 2017
  • Hai lavorato molto con i porting?

Si moltissimo. Forma.8, in partenza, doveva essere per iOS, iPad in particolare. Infatti, le prime versioni implementate erano per tablet. Poi fu visto da persone di Sony a Londra e i miei ex-capi riuscirono a ottenere un dev kit di PlayStation Vita. Pian piano abbiamo cominciato ad accumulare piattaforme su cui sarebbe dovuto essere rilasciato, mentre lo stavamo ancora sviluppando. Quindi abbiamo cominciato a lavorare su PS Vita, PS4, Xbox, Nintendo Wii U e Nintendo Switch in parallelo, ottenendo il grande obiettivo di rilasciarlo in contemporanea su sei piattaforme. Successivamente siamo poi usciti su altre tre piattaforme tra cui la versione iOS, che paradossalmente è una delle ultime a essere uscita.

Sui porting, una delle prime task a cui ho lavorato era far funzionare la UI con tutti i controller possibili. Difatti, il software Unity ti fa il 90% del lavoro, ma l’ultimo 10%, che è la parte più complicata, sei sempre tu a doverla fare a mano. Altri esempi sono la gestione dei salvataggi, dei video ecc.

Ad esempio, Forma.8 inizia con una video animazione del logo di MixedBag: un file MP4 all’interno del progetto. La gestione dei video su ogni console è completamente diversa. Come si riproduce un video all’interno di un gioco su PlayStation 4 è diverso da PlayStation Vita, che a sua volta è diverso da Nintendo Switch. È richiesto quindi dello sviluppo ad hoc per far funzionare la stessa cosa su tutte le piattaforme nel modo più simile possibile tra di loro.

  • Cosa significa fare un porting, quali sono le sfide?

Ci sono delle sfide tecniche come video, salvataggi e controller, che possono richiedere molta programmazione specifica per piattaforma. Ci sono anche sfide più formali o legali, per esempio su PlayStation, se devi fare il salvataggio di una partita Sony ti fornisce delle indicazioni/regole su come lo devi gestire. Se lo devi fare invece su Nintendo Switch, per esempio il flusso di esperienza dell’utente e il flusso dati il comportamento sarà diverso.

Di solito le piattaforme ti forniscono loro un SDK (ndr Software Development Kit), con set di funzionalità prefatte da loro che devi integrare nel tuo gioco per poter richiamare le funzioni di sistema. Inoltre quegli SDK, di solito, se li integri nella piattaforma sbagliata, anche semplicemente mettendo un file, è possibile che quella piattaforma ti bocci la release.

Questo vuol dire che non si devono mischiare i materiali: loghi, file di librerie che non possono essere presenti da altre parti ecc. Ciò che uno fa nel tempo è quello che avevamo fatto noi in MixedBag, ovvero strutturare un nostro sistema che ci permettesse di rendere trasparente al gioco, la piattaforma su cui stava girando, in modo da poter scrivere il gioco in modo agnostico dalla piattaforma. Quindi per esempio il codice di gameplay, nei nostri giochi, non sapeva normalmente su che piattaforma stesse girando. Noi avevamo aggiunto un layer di software sotto che rendeva questo trasparente, automatizzando il passaggio da una piattaforma all’altra.

Infine, nel tempo ci eravamo trovati a creare una serie di tool ad uso interno per facilitare la vita dello sviluppatore che deve fare tutte le volte le build. Il famoso concetto di “fare la build” del gioco è una parte più che pallosa, tremendamente noiosa. Purtroppo se la fai a mano tutti i giorni h24 tendi a sbagliare. Per cui avevamo creato delle procedure automatiche che andavano a eliminare codici o file non necessari e a fare in modo corretto le varie build rispettando tutte le regole delle piattaforme.

Forma.8 Tobia Giani
Forma.8 è un videogioco ad ambientazione fantascientifica e con uno stile artistico suggestivo
  • Da iOS a Ps Vita non avete utilizzato il supporto touch

Si, avevamo completamente abbandonato il supporto al touch, passando ai controller anche se su PS Vita c’era il touch. Il gioco doveva essere più comodo possibile per la piattaforma su cui stava girando. In più, il controller ti dava la possibilità di avere più bottoni e quindi ti permetteva di fare più cose. Nelle prime versioni di Forma.8 c’erano un numero di poteri che poi, piano piano, abbiamo ampliato, aggiungendone altri. Facendo così ovviamente poi ci siamo trovati con il problema del dire: “Ok ora che abbiamo aggiunto tanti poteri come li rendo comodi all’utente iOS, perché con il touch hai le limitazioni delle dita con cui toccare lo schermo?”. Quindi, oltre a sfide tecniche o formali, i porting pongono anche sfide di design e di user experience, in cui è importante preoccuparsi di ricalibrare il gioco rispetto all’esperienza console.

In tutto questo ci sono dei tool che ti permettono di avere delle cose già fatte. Per esempio, Unity ultimamente ha cominciato a semplificare la vita per quanto riguarda i controller e i video, implementando dei suoi sistemi di mapping dei comandi e di video player. In passato, invece l’unica alternativa era utilizzare tool a pagamento Rewired o implementare.

Per esempio, Forma.8 aveva tutto scritto a mano tranne la versione Nintendo Switch, per la quale abbiamo utilizzato Rewired. A quel punto avevamo cominciato ad avere un approccio misto, in cui alcune cose le facevamo noi e altre le facevamo utilizzando strumenti esterni per facilitare l’implementazione. Tieni conto che Forma.8 è uscita su sette/otto piattaforme differenti, di cui 6 al lancio. La più grande difficoltà è stata gestire il porting per ogni console e testarle, tutte in contemporanea. Insomma, è una fatica. Chi faceva da noi il tester ha passato settimane a testare il gioco per mille volte su tutte le piattaforme, verificando che funzionasse correttamente.

Prima parlavamo della “black magic” durante la fase di sviluppo di un gioco (ndr in una talk di Tommaso Verde e Davide Cavuoto, i due definiscono ironicamente “black magic” quel processo su cui non si ha controllo durante lo sviluppo e che, quindi, è “magia nera”), del passaggio dall’engine alla build. Ovviamente il mondo del PC è un mondo abbastanza pieno di rose e fiori, il mondo console è una “black magic” ancora più complicata: non sai che cosa succede e il gioco rischia di non girare per problemi computazionali. Tu sai che quel gioco funziona perfettamente sul tuo computer, ma potrebbe non girare perfettamente su una console. Questo per limiti o problematiche relative alla console.

Bisogna perciò stare attenti anche a testare il gioco direttamente sulle console. C’è poi tutto Il lavoro di publishing, e quindi pubblicare un gioco vuol dire che devi realizzare grafiche ad hoc per tutte le piattaforme, store, loghi, ecc. Se vuoi fare un gioco con PlayStation devi mettere tutti i loghi che ti chiedono di esporre, nei momenti giusti e al tempo giusto, inserendoli a schermo in un determinato modo. Se banalmente devo fare la schermata controller in cui ti dico: “Ah il bottone X fa l’azione spinge la scatola”, il bottone X lo devo identificare all’interno del gioco nel modo corretto, rispettando le regole che mi dà la piattaforma.

Tobia Giani
Tobia Giani durante la sua talk sui game engine utilizzati nel settore aerospaziale (Foto di Marco Verdese)
  • I game engine vengono utilizzati nel settore aerospaziale?

Fare videogame o fare simulazioni per intelligenze artificiali richiede la stessa cosa, cioè costruire mondi virtuali. Che servano ad allenare una IA o che servano a far divertire una persona, comunque mondi virtuali sono. Infatti, si può dover costruire una simulazione completa che stimoli i sensi sia dell’IA che dell’umano attraverso suoni, video e attuatori aptici. Ciò che cambia è lo scopo, ovviamente. E quindi anche le regole da rispettare. Non avendo una persona a dover usare ed esplorare quel mondo, non devi preoccuparti di renderlo intellegibile a una persona. Devi invece preoccuparti di renderlo intelligibile a un’IA, quindi devi dare modo che l’IA sia in grado di capire il mondo.

Tendenzialmente ciò vuol dire che se, per esempio, in un gioco si punta, tra le varie cose, a raggiungere l’appagamento estetico dell’occhio del giocatore, a costo anche di togliere realisticità alla scena, nel caso di simulazioni per IA si cerca di rendere il tutto il più realistico possibile. A costo di rendere la scena poco interessante a livello estetico. Facendo un esempio pratico, effetti come il motion blur o line art sono effetti largamente utilizzati in ambito gaming, ma assolutamente da non usare in ambito simulazione perché nasconderebbero feature utili a una IA.

Le difficoltà sono diverse, gli obiettivi sono diversi, ma gli strumenti, in pratica, sono gli stessi. Questa è la cosa interessante. Sviluppi quindi dei piccoli videogiochi, ma cambiano un po’ le regole del gioco e come approcci il lavoro.

Le due industrie sono poi differenti, chiaramente, un po’ come tutte hanno delle peculiarità. Ad esempio, l’industria del gaming è un’industria in cui molto del testing viene fatto a mano. Nell’automotive e nell’aerospaziale, invece, molto poco viene fatto a mano, se non l’effettivo assemblaggio dei pezzi fisici. Si cerca di creare dei software che testino altri software, in modo tale da verificare con più oggettività, senza essere legati alla percezione umana. Questa è una cosa che, per esempio, nei videogame si fa ancora poco, cioè l’automazione del testing attraverso concetti di testing del software.

AGGIORNAMENTO al 3/3/2023 16:30: L’intervista è stata aggiornata sotto indicazione dell’intervistato per chiarire alcuni concetti tecnici. Il nome di AIKO è stato riscritto correttamente in maiuscolo ed è stato aggiunto un link al sito web ufficiale dell’azienda.

Facebook Comments

Articoli Correlati


© Copyright © 2019 videogiochitalia.it All Rights Reserved

Scroll To Top