Intervista a Daniele Giannetti, Principal SE in 343 Industries
MX: Ciao Daniele, grazie per il tuo tempo! Vorremmo iniziare chiedendoti com'è stato, per un professionista italiano come te, riuscire ad approdare in un team importante come 343 Industries per lavorare su un franchise di culto come Halo.
Daniele Giannetti: Com'è stato… domanda piuttosto ampia!
Quando sono entrato a far parte di 343 Industries, sentivo che stavo finalmente raggiungendo un posto dove avrei potuto trovare la mia casa a lungo termine. Avevo percorso un lungo cammino per arrivare in un team di sviluppo di giochi AAA come questo, e finalmente ero arrivato a destinazione. Ho sempre amato Halo e la mia missione quando mi sono unito a 343 è stata quella di contribuire a riportare il gioco e il franchise in cima alla catena alimentare in questo pazzo mondo competitivo degli sparatutto AAA. Mi sono sentito decisamente fortunato, perché non sono state solo le mie capacità a portarmi qui, ma anche una buona dose di fortuna! Ho trascorso i successivi anni lavorando su un titolo fondamentale per Xbox e lanciando al contempo una nuova console: è stato un giro pazzesco sulle montagne russe, ma anche un'opportunità unica nella vita!
MX: Come Principal Software Engineer, la maggior parte del tuo lavoro si svolge sul motore di gioco e sui sistemi a supporto del gameplay. Puoi dirci di cosa si tratta e come si riflette sul gioco finale?
Quando sono entrato a far parte di 343 Industries, sentivo che stavo finalmente raggiungendo un posto dove avrei potuto trovare la mia casa a lungo termine. Avevo percorso un lungo cammino per arrivare in un team di sviluppo di giochi AAA come questo, e finalmente ero arrivato a destinazione. Ho sempre amato Halo e la mia missione quando mi sono unito a 343 è stata quella di contribuire a riportare il gioco e il franchise in cima alla catena alimentare in questo pazzo mondo competitivo degli sparatutto AAA. Mi sono sentito decisamente fortunato, perché non sono state solo le mie capacità a portarmi qui, ma anche una buona dose di fortuna! Ho trascorso i successivi anni lavorando su un titolo fondamentale per Xbox e lanciando al contempo una nuova console: è stato un giro pazzesco sulle montagne russe, ma anche un'opportunità unica nella vita!
MX: Come Principal Software Engineer, la maggior parte del tuo lavoro si svolge sul motore di gioco e sui sistemi a supporto del gameplay. Puoi dirci di cosa si tratta e come si riflette sul gioco finale?
Daniele Giannetti: Assolutamente sì! In italiano "motore di gioco" viene spesso inteso come "motore grafico". Tuttavia odio questo termine, perché la grafica è solo una parte di ciò che rende tale un motore di gioco. Un motore di gioco ha una componente grafica ma molte, molte altre componenti: audio, I/O, animazione, sistemi di salvataggio, simulazione fisica, scripting, sistemi d'interfaccia utente, un framework per costruire oggetti di gioco, e l'elenco continua.
Sono un Principal Software Engineer, ma sono anche un Architect in 343 Industries, il che significa che contribuisco a diverse aree del nostro motore di gioco. Le mie aree di specializzazione sono la navigazione fisica e l'intelligenza artificiale, lo streaming, lo scripting, l'animazione e le prestazioni della CPU. In pratica, molti dei miei contributi diretti ad Halo Infinite si sono concentrati sui miglioramenti del motore per ottenere una migliore efficienza della memoria e della CPU, per supportare lo streaming dell'anello nella campagna di Halo Infinite e per scalare bene su diverse piattaforme, ma contribuisco anche molto indirettamente aiutando gli ingegneri più giovani a capire come risolvere problemi specifici o guidando l'implementazione di nuove funzionalità di gioco, dalla progettazione alla consegna.
Per quanto riguarda i risultati del mio lavoro nel gioco finale, la fluidità del frame-rate del gioco su più console è una buona testimonianza del mio lavoro di ottimizzazione e di quello di molti altri ingegneri! Ho lavorato sulle caratteristiche fondamentali del motore utilizzate per implementare gli elementi di gioco sia nel multiplayer che nella campagna. Come nota a margine, ho prototipato in mezza giornata la tecnologia che abbiamo finito per utilizzare per i ciondoli delle armi nel gioco rilasciato, e sono piuttosto soddisfatto di come è andata a finire!
MX: Quando è stato annunciato Halo Infinite, i riflettori erano puntati sullo Slipspace Engine, il nuovo motore creato appositamente per il gioco e al quale immaginiamo tu abbia dato un contributo significativo. Puoi dirci quali vantaggi offre questo motore rispetto ai precedenti motori di Halo e come permetterà alla serie di evolversi in futuro? Sono previsti ulteriori sviluppi del motore o siete soddisfatti del risultato ottenuto?
Sono un Principal Software Engineer, ma sono anche un Architect in 343 Industries, il che significa che contribuisco a diverse aree del nostro motore di gioco. Le mie aree di specializzazione sono la navigazione fisica e l'intelligenza artificiale, lo streaming, lo scripting, l'animazione e le prestazioni della CPU. In pratica, molti dei miei contributi diretti ad Halo Infinite si sono concentrati sui miglioramenti del motore per ottenere una migliore efficienza della memoria e della CPU, per supportare lo streaming dell'anello nella campagna di Halo Infinite e per scalare bene su diverse piattaforme, ma contribuisco anche molto indirettamente aiutando gli ingegneri più giovani a capire come risolvere problemi specifici o guidando l'implementazione di nuove funzionalità di gioco, dalla progettazione alla consegna.
Per quanto riguarda i risultati del mio lavoro nel gioco finale, la fluidità del frame-rate del gioco su più console è una buona testimonianza del mio lavoro di ottimizzazione e di quello di molti altri ingegneri! Ho lavorato sulle caratteristiche fondamentali del motore utilizzate per implementare gli elementi di gioco sia nel multiplayer che nella campagna. Come nota a margine, ho prototipato in mezza giornata la tecnologia che abbiamo finito per utilizzare per i ciondoli delle armi nel gioco rilasciato, e sono piuttosto soddisfatto di come è andata a finire!
MX: Quando è stato annunciato Halo Infinite, i riflettori erano puntati sullo Slipspace Engine, il nuovo motore creato appositamente per il gioco e al quale immaginiamo tu abbia dato un contributo significativo. Puoi dirci quali vantaggi offre questo motore rispetto ai precedenti motori di Halo e come permetterà alla serie di evolversi in futuro? Sono previsti ulteriori sviluppi del motore o siete soddisfatti del risultato ottenuto?
Daniele Giannetti: Partendo dal motore di Halo 5, non riesco a pensare a nessuna area che abbiamo lasciato intatta nel percorso verso il motore Slipspace di Halo Infinite. C'è un video su YouTube che mostra il mio intervento alla GDC 2022 e che approfondisce alcuni dei lavori che abbiamo svolto.
Slipspace si differenzia dai nostri motori precedenti in molti modi, solo per elencarne alcuni:
- Il motore è completamente multipiattaforma e si adatta naturalmente a diversi tipi di hardware.
- Il renderer del motore è completamente nuovo, multithread e basato su Direct3D 12
- I nostri strumenti interni sono nettamente migliori di quelli che avevamo prima, soprattutto per gli artisti dell'ambiente.
- I nostri nuovi sistemi di acustica ci permettono di raggiungere un livello di realismo audio più elevato.
- L'ottimizzazione spinta ci permette di far girare questo nuovo gioco anche su hardware datato come Xbox One con un ingombro di memoria molto ridotto.
- E molto altro ancora…
Slipspace è riuscito a supportare le ambizioni di Halo Infinite e il nostro piano è quello di continuare ad evolverlo per supportare tali ambizioni mentre il nostro servizio continua a evolversi. Dal punto di vista tecnologico, anche se abbiamo sicuramente superato gli scogli più grandi prima del lancio del gioco, continueremo a innovare e migliorare Slipspace per offrire esperienze sempre più belle e nuove in Halo Infinite.
MX: Parliamo ora un po' di te. Qual è stato il percorso che ti ha portato a ricoprire una posizione così importante a Seattle? Quali studi hai fatto e come hai iniziato la tua carriera?
Slipspace si differenzia dai nostri motori precedenti in molti modi, solo per elencarne alcuni:
- Il motore è completamente multipiattaforma e si adatta naturalmente a diversi tipi di hardware.
- Il renderer del motore è completamente nuovo, multithread e basato su Direct3D 12
- I nostri strumenti interni sono nettamente migliori di quelli che avevamo prima, soprattutto per gli artisti dell'ambiente.
- I nostri nuovi sistemi di acustica ci permettono di raggiungere un livello di realismo audio più elevato.
- L'ottimizzazione spinta ci permette di far girare questo nuovo gioco anche su hardware datato come Xbox One con un ingombro di memoria molto ridotto.
- E molto altro ancora…
Slipspace è riuscito a supportare le ambizioni di Halo Infinite e il nostro piano è quello di continuare ad evolverlo per supportare tali ambizioni mentre il nostro servizio continua a evolversi. Dal punto di vista tecnologico, anche se abbiamo sicuramente superato gli scogli più grandi prima del lancio del gioco, continueremo a innovare e migliorare Slipspace per offrire esperienze sempre più belle e nuove in Halo Infinite.
MX: Parliamo ora un po' di te. Qual è stato il percorso che ti ha portato a ricoprire una posizione così importante a Seattle? Quali studi hai fatto e come hai iniziato la tua carriera?
Daniele Giannetti: Ho deciso che volevo programmare giochi quando ero al liceo, ma allora c'erano pochissime scuole con programmi specifici per i giochi in tutto il mondo, tanto meno in Italia... Sono finito a studiare Ingegneria Informatica all'Università di Pisa, dove ho conseguito la laurea triennale e la laurea specialistica, conclusa nel 2010.
Verso la fine dei miei studi, mentre pensavo a come affrontare la ricerca di un lavoro nell'industria dei videogiochi, mi sono reso conto che, pur conoscendo molte cose sull'architettura delle macchine, sulla programmazione generale, sulle reti e sui sistemi distribuiti, ecc. non sapevo ancora come costruire veri giochi 3D da zero. Mi sono fatto prendere dal panico e ho deciso che, dopo il master a Pisa, avrei preso un'altra laurea specifica per lo sviluppo di videogiochi.
Ho fatto un po' di certificazioni in inglese per poter studiare nelle università americane e poi ho incontrato alcuni professori che insegnavano in queste nuove e scintillanti scuole di sviluppo di videogiochi. Non sono rimasto molto colpito... così ho deciso che invece di studiare sviluppo di videogiochi avrei fatto del mio meglio per finire la mia laurea in ingegneria informatica. Ho imparato da solo OpenGL e ho scritto un piccolo motore grafico da zero, che poi ho usato per far colpo sui miei primi potenziali datori di lavoro.
Ho fatto domanda in molte, moltissime aziende e ho fallito i primi colloqui prima di approdare alla Havok in Irlanda. È stato il mio primo lavoro nell'industria dei videogiochi; lavorando per Havok ho imparato molto sui sistemi di basso livello che alimentano i motori di gioco e dopo tre anni mi sono trasferito nell'ufficio Havok di San Francisco come Developer Relations Engineer (ovvero un ingegnere del software che lavora direttamente con gli studios che utilizzano la tecnologia Havok per aiutarli a sfruttare al meglio la tecnologia). A San Francisco ho avuto modo di lavorare con Bethesda, Bungie e, naturalmente, 343 Industries, oltre a molti altri sviluppatori di giochi AAA, e di mettere le mani su molti motori di gioco.
Quando Microsoft ha acquistato Havok, ho colto l'occasione per unirmi a 343 Industries e lavorare su Halo! Inizialmente mi sono concentrato solo sul miglioramento della simulazione fisica e dei sistemi di navigazione dell'intelligenza artificiale, poi ho iniziato a lavorare sullo streaming e infine sono diventato un Architect che supporta tutti i team di gioco!
MX: Che consiglio daresti ai ragazzi che vorrebbero iniziare una carriera in questo settore? Pensi che sia obbligatorio trasferirsi all'estero o ci sono buone opportunità anche in Italia?
Verso la fine dei miei studi, mentre pensavo a come affrontare la ricerca di un lavoro nell'industria dei videogiochi, mi sono reso conto che, pur conoscendo molte cose sull'architettura delle macchine, sulla programmazione generale, sulle reti e sui sistemi distribuiti, ecc. non sapevo ancora come costruire veri giochi 3D da zero. Mi sono fatto prendere dal panico e ho deciso che, dopo il master a Pisa, avrei preso un'altra laurea specifica per lo sviluppo di videogiochi.
Ho fatto un po' di certificazioni in inglese per poter studiare nelle università americane e poi ho incontrato alcuni professori che insegnavano in queste nuove e scintillanti scuole di sviluppo di videogiochi. Non sono rimasto molto colpito... così ho deciso che invece di studiare sviluppo di videogiochi avrei fatto del mio meglio per finire la mia laurea in ingegneria informatica. Ho imparato da solo OpenGL e ho scritto un piccolo motore grafico da zero, che poi ho usato per far colpo sui miei primi potenziali datori di lavoro.
Ho fatto domanda in molte, moltissime aziende e ho fallito i primi colloqui prima di approdare alla Havok in Irlanda. È stato il mio primo lavoro nell'industria dei videogiochi; lavorando per Havok ho imparato molto sui sistemi di basso livello che alimentano i motori di gioco e dopo tre anni mi sono trasferito nell'ufficio Havok di San Francisco come Developer Relations Engineer (ovvero un ingegnere del software che lavora direttamente con gli studios che utilizzano la tecnologia Havok per aiutarli a sfruttare al meglio la tecnologia). A San Francisco ho avuto modo di lavorare con Bethesda, Bungie e, naturalmente, 343 Industries, oltre a molti altri sviluppatori di giochi AAA, e di mettere le mani su molti motori di gioco.
Quando Microsoft ha acquistato Havok, ho colto l'occasione per unirmi a 343 Industries e lavorare su Halo! Inizialmente mi sono concentrato solo sul miglioramento della simulazione fisica e dei sistemi di navigazione dell'intelligenza artificiale, poi ho iniziato a lavorare sullo streaming e infine sono diventato un Architect che supporta tutti i team di gioco!
MX: Che consiglio daresti ai ragazzi che vorrebbero iniziare una carriera in questo settore? Pensi che sia obbligatorio trasferirsi all'estero o ci sono buone opportunità anche in Italia?
Daniele Giannetti: Prima di tutto, non voglio mentire... essere nato in Italia ha presentato le sue barriere. Per avere una buona carriera nell'industria dei videogiochi, l'inglese deve essere impeccabile e bisogna essere pronti a lasciarsi alle spalle la propria casa e il proprio Paese. Questo vale per tutti coloro che non sono di madrelingua inglese e che sono nati in determinati Paesi non anglofoni, purtroppo. L'industria italiana dei videogiochi è ancora agli inizi, anche se vedo sempre più movimento, il che è fantastico.
La storia divertente è che ho fatto domanda a 343 Industries nel 2011, subito dopo l'università. Non mi hanno nemmeno degnato di una risposta. Ovviamente non sapevo nulla delle leggi sull'immigrazione degli Stati Uniti, il che significa che 343 non avrebbe potuto assumermi per lavorare a Redmond nemmeno se avesse voluto.
Ora, con Covid-19, i grandi datori di lavoro potrebbero essere in grado di ottenere sempre più lavoro a distanza da paesi arbitrari, vedremo!
Se siete appassionati di sviluppo e volete lavorare in uno studio di videogiochi AAA, iniziate a smontare i motori disponibili per vedere come funzionano. Al giorno d'oggi ci sono molte risorse liberamente disponibili online, tutto il codice sorgente di Unreal, ecc... Capite come funziona e diventerete immediatamente più appetibili per qualsiasi datore di lavoro. Non dimenticate le basi! Troppo spesso vedo sviluppatori che si concentrano sull'apprendimento dell'uso di un motore (ad esempio Unreal o Unity) ma che finiscono per avere scarse competenze di programmazione di base e di comprensione dei concetti di informatica; assicuratevi di prestare attenzione quando imparate a codificare e a capire come funzionano i computer, vi tornerà utile.
MX: Grazie mille per la disponibilità, Daniele, e complimenti per la tua splendida carriera!
La storia divertente è che ho fatto domanda a 343 Industries nel 2011, subito dopo l'università. Non mi hanno nemmeno degnato di una risposta. Ovviamente non sapevo nulla delle leggi sull'immigrazione degli Stati Uniti, il che significa che 343 non avrebbe potuto assumermi per lavorare a Redmond nemmeno se avesse voluto.
Ora, con Covid-19, i grandi datori di lavoro potrebbero essere in grado di ottenere sempre più lavoro a distanza da paesi arbitrari, vedremo!
Se siete appassionati di sviluppo e volete lavorare in uno studio di videogiochi AAA, iniziate a smontare i motori disponibili per vedere come funzionano. Al giorno d'oggi ci sono molte risorse liberamente disponibili online, tutto il codice sorgente di Unreal, ecc... Capite come funziona e diventerete immediatamente più appetibili per qualsiasi datore di lavoro. Non dimenticate le basi! Troppo spesso vedo sviluppatori che si concentrano sull'apprendimento dell'uso di un motore (ad esempio Unreal o Unity) ma che finiscono per avere scarse competenze di programmazione di base e di comprensione dei concetti di informatica; assicuratevi di prestare attenzione quando imparate a codificare e a capire come funzionano i computer, vi tornerà utile.
MX: Grazie mille per la disponibilità, Daniele, e complimenti per la tua splendida carriera!
Commenti