L'intelligenza artificiale nei videogames: l'osservatore silente, Parte II

Cerchiamo di capire la differenza tra un'AI che deve imparare a giocare e un'AI che deve dedurre tutte le meccaniche dietro ad un gioco.

L'intelligenza artificiale nei videogames: l'osservatore silente, Parte II
Articolo a cura di

Proseguiamo esattamente da dove ci eravamo lasciati nello scorso articolo, dove abbiamo parlato di cos'è un'AI (artificial intelligence) in un videogioco e spiegato la differenza tra questa e un semplice bot (o CPU) presente nell'attuale industria videoludica, riassumibile in breve: mentre un bot è obbligato a seguire gli script di chi l'ha programmato, un'AI varia il suo comportamento in base agli input che riceve ed è in grado di imparare con l'esperienza. Il caso in esame è Super Mario Bros., gioco usato da ricercatori del Georgia Institute of Technology per creare un algoritmo basato sul machine learning per un automated game understanding.


Automated game playing

L'automated game understanding è più recente dell'automated game playing, due campi di studi che riguardano entrambi i videogiochi ma che hanno obiettivi e presupposti diversi: il secondo e meno recente cerca di addestrare un'AI osservando decine o centinaia di gameplay ed imparando da essi. Ad esempio in un gioco competitivo come Overwatch un bot può essere addestrato facendogli analizzare un gran numero di partite di professionisti per imparare tutte le meccaniche del gioco come "ferire un avversario", "usare un'abilità speciale" o "uccidere un avversario".

Nel caso del bot di Dota2 dell'azienda OpenAI si è scelto di farlo giocare contro sé stesso per imparare a sapersi muovere durante il gioco, distinguendo le azioni importanti da quelle meno importanti. Questo aspetto è cruciale: in generale quando degli input ‘entrano' nell'algoritmo dovranno far innescare delle scelte da prendere in base alla loro importanza. Se il bot deve decidere se inseguire il giocatore avversario a piena vita o difendere la torre sotto attacco, presumibilmente dovrà scegliere la seconda opzione se ha acquisito abbastanza esperienza da capirne l'importanza. Concettualmente esiste un moltiplicatore che sarà maggiore e darà una priorità più alta alla difesa piuttosto che all'attacco. Il discorso cambia se invece l'avversario ha pochissima vita, evento che farà salire di priorità l'azione dell'inseguimento, tanto da avere la possibilità di essere più alta in lista rispetto alla difesa. Alla fine dei giochi il ragionamento è lo stesso che fa un essere umano: valuta le opzioni e sceglie, ma un'AI è estremamente più veloce.

Automated game understanding

Nel caso in esame i ricercatori americani hanno scelto la strada dell'automated game understanding che differisce dal ‘playing' perché l'algoritmo cerca di dedurre tutte le meccaniche del gioco, ovvero di costruire una sorta di game engine che emula l'engine di Super Mario Bros. analizzando il gioco nella sua interezza. L'idea è considerare come input del codice di machine learning tutto quello che succede sullo schermo, quindi studiare ogni pixel istante per istante per addestrare l'AI e farle capire come funziona il gioco. Il sistema deve cercare di capire quali sono le cause di alcune azioni: ad esempio se un blocco viene distrutto il motivo è che Mario l'ha colpito dal basso verso l'alto o ancora se il protagonista diventa ‘grande' è perché ha appena raccolto un fungo. In tal modo l'algoritmo riesce a creare delle regole che saranno tanto più veritiere quante più ore di partita è riuscito a studiare.

Questo caso di studio è molto interessante rispetto all'automated game playing perché può riuscire a pervenire ad una ‘big picture' di tutto il sistema di gioco, in quanto agisce come uno spettatore che guarda la partita e la analizza dall'esterno piuttosto che viverla in ‘prima persona' ed imparare il da farsi dai propri errori. Si potrebbe pensare che l'automated game understanding crei un algoritmo paragonabile ad un bambino che guarda le sue prime partite di un qualsiasi sport (calcio, basket, rugby ecc.): come un silente osservatore analizza quello che succede sul campo, nonché le reazioni dei tifosi dopo una determinata azione, e pian piano capisce se questa sarà positiva o negativa per l'una o l'altra squadra. Un cartellino rosso e la fuoriuscita di un giocatore dal campo è un evento che fa capire subito allo spettatore la scorrettezza del fallo, rivelando una regola fondamentale che pian piano va a costituire come un piccolo tassello il game engine, ovvero tutte le meccaniche del gioco. Il parallelo con un'AI che osserva lo schermo del gioco mentre Mario percorre un livello è presto fatto. Chiaramente sia il bambino, sia l'AI hanno bisogno di qualche piccolo aiuto iniziale: al primo bisognerà spiegare almeno il concetto di squadra, mentre l'intelligenza artificiale ha bisogno dei modelli dei personaggi per distinguerli sullo schermo (ad esempio quello di super mario e dei suoi nemici).

Nel prossimo articolo analizzeremo nel dettaglio come fa l'algoritmo a studiare quello che accade su schermo, quindi come immagazzina dati più complessi dai semplici input dello schermo, che serviranno a ricavare le meccaniche del gioco.