L’intelligenza artificiale e il suo impiego nell’ambito dello sviluppo dei videogiochi

Dic 20

Come le ricerche nell’ambito dell’IA e del machine learning possono cambiare l’industria dei videogame.Quello dell’intelligenza artificiale è senza dubbio uno dei settori legati all’informatica più in fermento e carichi di aspettative degli ultimi anni.
Si tratta del tentativo di dare vita a strumenti hardware e software capaci di simulare in maniera sempre più sofisticata differenti funzioni cognitive associate alla mente umana quali learning (raccolta di informazioni e messa a punto di parametri per usare queste informazioni), reasoning (uso di regole per raggiungere conclusioni più o meno definite), problem solving (analisi della situazione per trovare la migliore soluzione), self-correction (capacità di autocorrezione quando le cose non vanno nel modo stabilito) e altre.

Nell’immaginario popolare l’applicazione dell’intelligenza artificiale al gaming è rappresentata dalla macchina che sconfigge il giocatore umano, come il famoso computer Deep Blue dell’IBM – che nel 1996 batté il campione del mondo di scacchi, Garry Kasparov – o il più recente e sofisticato AlphaGo, software per il gioco da tavolo go, considerato fino a pochi anni fa fuori dalla portata delle tecniche di apprendimento automatico.
In realtà, la funzione dell’IA nei videogame – dove è usata principalmente per generare i comportamenti dei personaggi non giocanti e per il pathfinding (tracciatura del percorso più breve tra due punti) – non è tanto quello di sconfiggere il giocatore o dimostrarsi superiore a lui, ma di arricchire la sua esperienza di gioco, modificandosi e adattandosi allo sviluppo dell’azione.
I due modelli algoritmici più noti sono il Finite State Machine e il Monte Carlo Tree Search, utilizzato soprattutto nei giochi di strategia a turni.

Il Finite State Machine venne introdotto negli anni ’90 ed è relativamente semplice, visto che prevede una reazione specifica dell’IA in risposta a ogni azione o situazione. Per esempio, in uno shooting game, l’IA attacca quando il giocatore si espone o si ritira quando la propria energia è troppo bassa.
Questo modello, tuttavia, risulta inadeguato per altri tipi di giochi, per esempio di strategia, dove un comportamento di questo genere renderebbe il gameplay ripetitivo e poco competitivo.
Per questo venne introdotto il Monte Carlo Tree Search, un algoritmo di ricerca capace di prendere in considerazione tutte le mosse fattibili da parte dell’IA, le possibili risposte del giocatore, le ulteriori contromosse e via di questo passo in una ramificazione sempre più complessa di possibilità.

Negli ultimi anni gli algoritmi hanno superato anche la meccanicità di questo comportamento sviluppando, soprattutto nell’ambito dei giochi stealth, una avanzata capacità hunting, cioè quella di andare alla ricerca di particolari segnali generati dai giocatori come rumori, impronte e via dicendo. Questo si traduce nella possibilità dell’IA di valutare lo stile di gioco dell’avversario e adattarsi di conseguenza.

Si tratta del cosiddetto apprendimento automatico o machine learning, una branca dell’intelligenza artificiale che mette insieme una serie di metodi sviluppati sotto diversi nomi quali teoria dei sistemi dinamici, data mining, algoritmi adattivi e via dicendo.
Nell’ambito dell’informatica si configura come una variante alla programmazione tradizionale, nella quale si predispone in una macchina l’abilità di apprendere qualcosa dai dati in maniera autonoma, senza ricevere istruzioni esplicite a riguardo.
In sostanza, attraverso l’uso di algoritmi e modelli statistici, catturando e analizzando una grande quantità di informazioni, l’IA può migliorare nel tempo la propria performance riguardo a task particolari.

Nel febbraio del 2015 la rivista Nature ha pubblicato un articolo, Human-level control through deep reinforcement learning, nel quale dava conto della creazione di un algoritmo capace di ottenere punteggi eccezionali su alcuni videogiochi classici per Atari 2600 – come Breakout, Pong e Space Invaders – senza essere programmato sulla base delle regole dei vari giochi.

Creato dalla DeepMind, l’algoritmo Agent57  è stato sviluppato a partire dai soli input dei pixel e dei punteggi di gioco ottenuti fino ad arrivare a superare le performance di un giocatore umano medio su tutti e 57 giochi per Atari 2600. Gli stessi ideatori dell’algoritmo, che non conoscevano le tattiche migliori per vincere in ogni gioco, le hanno imparate osservando Agent57 in azione.
L’algoritmo in pratica ha imparato dai dati, riuscendo a capire quali sarebbero state le conseguenze di una determinata azione e ha risposto di conseguenza: un comportamento che potremmo definire intelligente.

Nell’ambito dei videogame il machine learning può trovare varie applicazioni.
Per esempio nello sviluppo dei personaggi non giocanti, solitamente programmati per rispondere a determinate situazioni secondo un set preimpostato di istruzioni. Incorporando l’apprendimento automatico, gli NPC possono adattarsi all’ambiente e allo stile di gioco rispondendo così in maniera unica. Come ad esempio in Metal Gear Solid 5: The Phantom Pain, dove se un giocatore usa spesso la tecnica di sparare alla testa dei nemici, i personaggi non giocanti si adattano usando un elmetto.
Anche l’interazione con gli stessi NPC potrebbe conoscere nuovi sviluppi e dare vita a conversazioni che utilizzano l’elaborazione del linguaggio naturale, come già avviene per assistenti vocali come Siri, Alexa o Google Assistant.

La forza del machine learning sta anche nella sua abilità di modellare sistemi complessi, per far sì che i videogiochi siano sempre più coinvolgenti e realistici. In Fifa 19 ad esempio, il risultato della partita, il tifo sugli spalti o gli errori fatti dai giocatori nel corso dell’incontro, possono influenzare il rendimento della squadra e far sì che abilità particolari appaiano o scompaiano durante la partita.

Non bisogna poi dimenticare una delle più promettenti applicazioni del machine learning: la creazione on the fly di universi complessi.
Considerando che molti videogiochi utilizzano una mappa particolarmente estesa, e che questo richiede migliaia di ore di lavoro di sviluppo e modellazione, l’implementazione dell’apprendimento automatico permetterebbe di ridurre le risorse allocate a questo compito.
In sostanza, quelle che oggi sono considerate poco più di ricerche accademiche sull’IA, nel giro di qualche tempo potrebbero diventare strumenti concreti capaci di automatizzare alcune parti del processo di sviluppo di un videogioco (anche la fase di testing, per esempio), dando così la possibilità a team non particolarmente numerosi di creare giochi sofisticati e complessi.

Allo stato attuale, comunque, la capacità dell’intelligenza artificiale di apprendere ed evolversi in maniera autonoma all’interno dei videogiochi rimane, di proposito, limitata. Infatti, un comportamento imprevedibile e non programmato dell’IA potrebbe portare a sviluppi indesiderati all’interno del gioco, rendendo l’esperienza poco soddisfacente o impedendo addirittura al giocatore di proseguire.
Nella pratica, infatti, la tecnica più utilizzata al momento nell’industria rimane quella del Behaviour Tree, che estende le potenzialità del Finite State Machine. Si tratta di un modello che permette la gestione di un processo decisionale in un agente autonomo, che deve variare il proprio comportamento in base alle esigenze. Rispetto alle altre modalità, il Behaviour Tree – che permette di creare task molto complessi composti da task semplici – offre significativi benefici in termini di robustezza, leggibilità e scalabilità.

Il Behaviour Tree è composto da nodi gerarchici che controllano il flusso decisionale dell’IA e che possono estendersi in profondità, attraverso sottonodi che svolgono particolari funzioni. Questo consente allo sviluppatore di creare librerie di comportamenti che possono essere concatenati per fornire una condotta convincente dell’IA. Lo sviluppo è iterabile: si può iniziare formando un comportamento di base, quindi creare nuovi “rami” – ordinati in base alla loro appetibilità – per affrontare metodi alternativi di raggiungimento degli obiettivi, consentendo all’intelligenza artificiale di avere delle strategie di fallback nel caso che un determinato comportamento dovesse fallire.

Alla fine, insomma, come dice Tanya Short dello studio indie KitFox Games: “La formula perfetta è una IA abbastanza sofisticata da farti pensare che stai interagendo con qualcosa di intelligente, ma allo stesso tempo abbastanza controllata e dai comportamenti prevedibili per evitare di finire completamente fuori strada”.