10 January 2022

13 Minuti di lettura

inside ubisoftstudio updates

Ubisoft La Forge - Lo stato dell'arte dell'IA al servizio della creazione di PNG di nuova generazione

Ubisoft La Forge è un'iniziativa nel settore di ricerca e sviluppo che riunisce accademici ed esperti di Ubisoft, con l'obiettivo di colmare la distanza che separa la ricerca universitaria dalle innovazioni dell'industria dei videogiochi. Si tratta di un progetto all'avanguardia nel mondo accademico, che sperimenta con le ultime tecnologie e tecniche di produzione di videogiochi e che include team specializzati nello studio delle applicazioni della tecnologia più avanzata, come l'intelligenza artificiale, per la realizzazione di giochi più realistici, divertenti ed efficienti in termini di sviluppo.

[UN ] Ubisoft La Forge – Pushing State-Of-The-Art AI In Games To Create The Next Generation Of NPCs - JoshuaHeadshot

Uno dei potenziali utilizzi è il deep reinforcement learning, ovvero una forma di apprendimento automatico che impiega l'IA per individuare le soluzioni più efficienti a un'ampia gamma di problemi. Per saperne di più e scoprire come può servire a creare PNG più realistici, aiutarli a esplorare universi di gioco complessi e a innescare reazioni più simili a quelle umane, abbiamo incontrato Joshua Romoff, Data Scientist di Ubisoft La Forge e originario di Montréal, che ha trasformato la sua passione per i videogiochi in un PhD in Data science. Ora si occupa delle diverse applicazioni del machine learning nei videogiochi e di recente ha tenuto una conferenza all'Artificial Intelligence and Interactive Digital Entertainment (AIIDE) 2021 per presentare gli straordinari progressi compiuti da lui e dal suo team nell'impiego del machine learning nel miglioramento dell'esplorazione e del movimento dei PNG.

Cos'è il deep reinforcement learning e come funziona?

Joshua Romoff: Partiamo dalla definizione di due termini: "agente" e "azione". Nel contesto dell'IA, l'agente è il personaggio principale che interagisce con il mondo, e nella nostra ricerca quel ruolo è affidato ai bot. L'azione è invece l'interazione che viene compiuta. Mi piace pensare che il giocatore sia una sorta di estensione del controller, dato che ogni input del giocatore risulta in un'azione.

Ora veniamo al reinforcement learning. L'idea è quella di "rinforzare" un comportamento, analogamente a quanto accadeva negli esercizi di Pavlov con i cani: un ricercatore suonava una campanella all'ora del pasto e i cani finivano per associare la campanella a una ricompensa. In altre parole, si ricorre a premi e punizioni per incoraggiare o scoraggiare un certo comportamento. Lo stesso accade con l'agente IA, che riceve punti se fa qualcosa che ci piace o li perde se invece fa qualcosa che disapproviamo. Il mio lavoro consiste nell'ideare test e stabilire quando elargire o meno le ricompense, mentre l'IA tenta di ottenere il punteggio massimo utilizzando le azioni disponibili.

Per quanto riguarda il "deep", questo termine riguarda il modo in cui l'agente percepisce il mondo che lo circonda: si tratta di una rete neurale "deep", ovvero profonda. Una schermata è un elemento complesso, con centinaia di migliaia di pixel che appaiono tutti insieme. Come si possono processare una schermata e tutti quegli input? Una rete neurale profonda prende la schermata, la riduce a una dimensione molto più piccola e analizza i dati che poi fungono da input per il reinforcement learning, che a sua volta esegue azioni basate sui dati inseriti. Si tratta di un cosiddetto "sistema end-to-end", perché è chiuso e i dati vengono trasmessi da un sistema all'altro, avanti e indietro. Per ogni frame assegniamo punti in base alle azioni e all'effetto sull'ambiente, e vengono eseguite molte iterazioni in modo da insegnare all'agente a eseguire le azioni che vogliamo.

Ci sono giochi che ti hanno ispirato più degli altri nello studio del deep reinforcement learning?

JR: Certo. Mi hanno sempre affascinato i giochi con un universo aperto che permettono di esplorare e interagire con PNG, come per esempio Far Cry. Mi ha sempre affascinato come, in questa tipologia di giochi, esista un'interazione del giocatore con l'IA dei PNG, e questo per me è un fattore essenziale dell'esperienza di gioco. Si interagisce con un mondo e i PNG sono una componente fondamentale di questa interazione. Mi è sempre piaciuto forzare le interazioni con i PNG per tentare di manipolarli e mettere alla prova l'IA. Per esempio, se sto affrontando un nemico, provo a salire su una montagna lì vicino per vedere se andrà a sbatterci contro perché non è in grado di arrampicarsi e scoprire così come risponde ai diversi eventi che si verificano. Questo è un aspetto che è sempre stato presente nel mio lavoro: mi piace immaginare come si può addestrare l'IA per insegnare comportamenti più "umani".

Sei uno scienziato che si occupa di ricerca e sviluppo: com'è la tua giornata tipo?

JR: Di solito passo le giornate a compiere esperimenti, a fare tentativi e ad addestrare i cosiddetti "agenti IA" a eseguire una determinata azione nel gioco. Una volta ideato un esperimento, inizia la fase di osservazione: leggo i grafici e modifico i parametri per migliorare il risultato finale. Inoltre nel mio lavoro mi trovo a collaborare con studenti di master e PhD. Gli studenti che collaborano con noi sono tutti retribuiti e io lavoro insieme a loro e ai loro docenti alla definizione dei loro progetti: in genere ci sono più progetti aperti in contemporanea, e questo è positivo sia per gli studenti che per i nostri progressi. Non posso scrivere tutto il codice da solo, no? Una volta realizzato un prototipo, lo inseriamo in un ambiente "sandbox", che corrisponde a una versione semplificata di un motore di gioco reale, e poi osserviamo i risultati del nostro lavoro. Se il progetto ha successo è possibile che il lavoro degli studenti venga integrato nei giochi che sviluppiamo: gli studenti possono così sperimentare cosa significa lavorare a un videogioco e per questo motivo facciamo in modo che i progetti a cui lavoriamo producano qualcosa che possa essere davvero utilizzato dai team di sviluppo.

Nella conferenza che hai tenuto all'AIIDE hai menzionato alcuni test eseguiti in giochi come Hyper Scape allo scopo di creare bot che si comportino come i giocatori. Puoi dirci qualcosa in più?

JR: Abbiamo eseguito alcuni test in Hyper Scape, anche se non nei server live: questo gioco è una sandbox interessante che ci ha permesso di rispondere ad alcune domande. L'aspetto notevole di Hyper Scape è che si tratta di un ambiente 3D complesso da navigare e caratterizzato da una verticalità diffusa. Inoltre i giocatori hanno a disposizione molti strumenti, come trampolini che permettono di saltare verso l'alto o doppi salti, che si possono sfruttare per raggiungere la cima degli edifici. Questi elementi si possono anche combinare, perciò per sviluppatori e tester è interessante capire se la mappa esistente permette ai giocatori di esplorare l'intero ambiente.

Tradizionalmente i giochi utilizzano il cosiddetto navmesh, una sorta di mappa 2D di tutte le aree che si possono attraversare nel gioco, che permette ai bot di stabilire dove possono andare e come arrivarci. Però è molto difficile eseguire test con questo metodo, perché in presenza di tanti elementi insoliti, come trampolini e doppi salti, e di elementi verticali che non sempre sono collegati da rampe o scale, le combinazioni salgono di numero in maniera vertiginosa. Ha senso quindi usare il deep reinforcement learning, perché si può inserire l'agente in una serie di azioni di addestramento che gli insegnino ad andare dal punto A al punto B da solo, senza bisogno di navmesh. Quindi il nostro scopo primario era insegnare questi movimenti all'agente per poi usarlo per testare la mappa e assicurarci che tutto fosse accessibile.

[UN ] Ubisoft La Forge – Pushing State-Of-The-Art AI In Games To Create The Next Generation Of NPCs - NavMesh

Sappiamo che hai ottenuto risultati interessanti in alcuni test eseguiti su altri giochi. Cosa puoi dirci a riguardo?

JR: Un esempio che posso citare è un bot che abbiamo addestrato in For Honor. Volevamo che l'agente difendesse di più, perciò lo abbiamo premiato quando difendeva. Alla fine l'agente ha deciso di non mettere più fine ai combattimenti, continuando a difendere in eterno. È stato molto buffo. È una delle sfide dell'addestrare gli agenti con questo tipo di processo: qualunque sia l'azione che si vuole incentivare, l'agente in teoria finirà per imparare qual è il modo migliore di eseguirla. Se gli si offre una ricompensa per difendere o sopravvivere, l'agente continuerà a farlo all'infinito pur di ottenerla. Del resto nessuno vuole che il bot sconfigga sempre e comunque il giocatore, giusto? Non sarebbe divertente. Perciò occorre incentivare altri comportamenti, come per esempio la difesa, in modo da variare le azioni.

L'altra ragione per cui si offrono le ricompense è per accelerare il processo di addestramento: è facile offrire un bonus per difendere e un altro per attaccare, ma non sempre si riesce a prevedere come i diversi bonus si combineranno e il risultato può essere un comportamento bizzarro come questo. Un altro esempio interessante sono i test di esplorazione in Hyper Scape. Stavamo addestrando l'agente ad andare da un punto all'altro il più in fretta possibile, ma non gli avevamo ancora dato la possibilità di correre: alla fine è riuscito a combinare salti e piccoli spostamenti della visuale pur di riuscire a muoversi un po' più velocemente che non camminando e basta. In pratica lo abbiamo visto mentre imparava a saltellare! Ho citato entrambi gli esempi nella mia conferenza all'AIIDE.

[UN] Ubisoft La Forge – Pushing State-Of-The-Art AI In Games To Create The Next Generation Of NPCs - ForHonorDefenseBot

Questi risultati possono rivelarsi comunque utili?

JR: Dipende dall'applicazione. Se si sta testando un gioco, come nel caso dei nostri esperimenti, sono risultati utili perché permettono di vedere qual è il comportamento ottimale sulla base delle ricompense offerte. È possibile capire cosa sta imparando l'agente e come il suo comportamento lo aiuti a raggiungere il suo obiettivo, e questo può permettere di scoprire eventuali errori nascosti e di risolverli, o di stabilire se il codice funzioni come previsto.

L'ultima generazione di console o servizi come cloud e streaming hanno aperto nuove possibilità all'IA nei videogiochi?

JR: Assolutamente sì. La ricerca sul deep learning è iniziata tra gli anni '80 e '90, ma i ricercatori erano limitati dalle risorse informatiche che avevano a disposizione. Se si vuole riprodurre un modello di deep learning su una console di vecchia generazione, è impossibile farlo in locale: da un punto di vista tecnico, si uccide il framerate. La potenza di calcolo che le persone hanno a casa propria è aumentata drasticamente, così come è migliorato l'hardware: la combinazione di questi due fattori, insieme alla vastità delle ricerche compiute in questo campo, ci ha permesso di risolvere questi problemi e di avere bot che sono in grado di esplorare mappe complesse di universi in 3D utilizzando tante abilità incredibili. Ora tutto funziona in maniera piuttosto efficiente e gli agenti si comportano in maniera più realistica rispetto a quanto si otteneva con l'hard coding: non è più assurdo immaginare di avere più agenti in un gioco che compiono calcoli complessi. Non si tratta più di ipotizzare cosa succederà tra 10 anni: ricerca e hardware esistono già e il percorso per arrivare dove siamo oggi è iniziato da un pezzo.

Quali altre applicazioni si possono immaginare per queste tecniche?

JR: L'applicazione più ovvia sono i bot, motivo per cui ci stiamo concentrando su questo. Il mio gruppo infatti si chiama Smart Bots Group, perché il nostro focus sono i bot. Stiamo lavorando a bot da usare per testare i giochi ma, dal momento che possiamo insegnare ai bot a esplorare gli ambienti, potenzialmente potrebbero arrivare a diventare IA avversarie dei giocatori.

Oltre ai bot, il reinforcement learning è una cornice nella quale si possono inserire molte altre applicazioni. Penso, per esempio, alla gestione dei server. Quando si gestiscono server di gioco, è un problema averne troppi in funzione quando non servono. E viceversa si possono avere troppi giocatori ma un numero insufficiente di server attivi. In teoria si potrebbe addestrare un agente per ottimizzare un processo decisionale sequenziale, in modo da calcolare il numero di giocatori nelle diverse fasce orarie per poi aumentare o ridurre il numero di server online in base alle necessità.

Quali sono i vostri obiettivi per il futuro di questa tecnologia?

JR: L'obiettivo è continuare a lavorare per rendere i giochi più realistici, in modo che PNG e bot sembrino più "umani" e siano in grado di risolvere problemi che finora sono apparsi insormontabili. Inoltre vorremmo consegnare questa tecnologia nelle mani dei game designer e creare strumenti anche destinati ai giocatori. Questa tecnologia potrebbe aggiungersi alle risorse a disposizione degli sviluppatori, che potrebbero personalizzare i bot e usarli a piacimento: questo potrebbe essere il prossimo passo, dal momento che i test che ho citato finora non sono mai stati eseguiti in ambienti live o in presenza di giocatori. Immagino che per prima cosa questa tecnologia si possa impiegare insieme ai tester in ogni tipo di scenario, per individuare problemi di prestazioni, verificare le meccaniche di gioco e non solo.

Quali sono le implicazioni dell'uso di IA e deep reinforcement learning nei videogiochi?

JR: Se questa tecnologia servirà solo a testare i giochi, non ci sarà alcuna interazione con i giocatori e questo tranquillizzerà chi è scettico o ha pregiudizi negativi nei confronti dell'IA. Alcuni potrebbero pensare che serviranno meno tester in futuro, ma non è così: la tipologia di test che siamo in grado di eseguire grazie ai bot non ha nulla a che vedere con il testing che possono fare i soggetti umani. L'interazione umana non scomparirà e ci saranno sempre persone in carne e ossa a testare gli elementi più interessanti dei giochi, come le missioni e le altre sezioni di intrattenimento puro.

Per quanto riguarda l'inserimento dei bot gestiti dall'IA nei giochi, credo che la trasparenza riguardo a ciò che facciamo sia essenziale. Credo che le persone siano preoccupate all'idea che ci siano bot nei giochi e di non saperli distinguere dagli esseri umani. Si tratta di una tema potenzialmente controverso, motivo per cui ritengo che sia necessario essere onesti e non ingannare i giocatori. Penso che l'altra ragione per cui la presenza di AI nei giochi vada accettata è che si tratta di ambienti "sandbox" perfetti per lo scopo: i giochi sono ideali per testare nuove idee proprio perché qualsiasi risultato inatteso resta confinato nel gioco e non ha alcun impatto sul mondo reale. In altre parole, la gente non ha ragione di temere che il mio bot difensivo in For Honor possa conquistare il mondo: esiste solo dentro al gioco, e lì dentro è piuttosto divertente.

Guarda la conferenza di Joshua all'AIIDE 2021 per conoscere il suo lavoro e saperne di più su deep reinforcement learning e IA. Per le ultime novità e aggiornamenti dai team Ubisoft, visita Ubisoft News.

More From Ubisoft

7 March 20243 Minuti di lettura

Valiant Hearts: Coming Home and Valiant Hearts: The Collection Out Now for PlayStation, Xbox, Switch and PC

The collection, which includes both The Great War and Coming Home, tells the stories of people in World War I.

Leggi altro
18 January 20245 Minuti di lettura

Prince of Persia: The Lost Crown Out Now

Dive into Sargon’s adventure through a time-cursed mythological world starting today.

Leggi altro
15 January 20245 Minuti di lettura

Ubisoft+ migliora ancora: ecco tutte le novità

Oggi, nel giorno dell'accesso anticipato a Prince of Persia: The Lost Crown su Ubisoft+, Ubisoft ha ridefinito i suoi piani di abbonamento.

Leggi altro
2 November 2023