Cos’è l’Intelligenza Artificiale nei videogiochi?
Ancora una volta parlerò di un argomento scelto dal pubblico: l’intelligenza artificiale, che nei videogiochi è un argomento molto nebuloso ed estremamente complesso. Come al solito inizio il discorso offrendovi un’infarinatura generale. In un videogioco l’Intelligenza Artificiale ha lo scopo di simulare un comportamento intelligente, e non quello di creare una vera e propria intelligenza artificiale per come è inteso il termine in ambito accademico. L’IA, al pari di altri fattori, è uno strumento costruito per un gioco, estremamente specifico e tarato per uno scopo. Tutte le IA dei giochi possono essere definite come dei grossi condizionali ovvero se succede X, fai Y, per poi ovviamente costruirne di più avanzate, ad alto livello.
Come interagisce l’IA con il mondo di gioco? In generale ci sono due sistemi: Push e Pull. In un sistema Push, l’IA è vista come un sistema separato, che spende tempo a fare calcoli per prendere una decisione in base alle informazioni date dal gioco. Una volta raggiunta una conclusione, comunica la sua scelta a tutte le entità di gioco. Questo sistema ad esempio è usato nei giochi strategici. Il sistema Pull invece, le singole entità del gioco chiamano l’IA quando si aggiornano. Questo sistema è usato nei giochi dove non tutte le entità devono pensare nello stesso momento come un metroidvania, che attiva i nemici solo quando il giocatore è nella stanza ad esempio.
A questo punto, bisogna trovare un modo per dare informazioni all’IA sul mondo di gioco, dotarla di una percezione. Prendiamo i vecchi giochi sidescrollers: in quei giochi i nemici entrano nella schermata e seguono una routine preimpostata di volo e sparo. Non devono sapere assolutamente niente del mondo di gioco e quindi non si parla ancora di intelligenza, in quanto la sfida deriva dalla diversità dei pattern e dei nemici, non da un loro comportamento studiato ad hoc.
I sistemi più semplici tendono a seguire regole preimpostate. Prendiamo PAC-MAN. I fantasmini del gioco visti nell’insieme sembrano un sistema complesso. In realtà il gioco era impostato in modo che un fantasmino girasse sempre a destra, uno sempre a sinistra, uno in una direzione random ed un altro seguisse il giocatore. Il gioco era costruito su regole semplici sia per ragioni computazionali che per questioni di sfida. Un pattern simile è analizzabile ed anticipabile dal giocatore. Questo sistema di impostare una IA è definito sistema basato su regole.
Quando i giochi hanno iniziato a diventare più complessi, è nata la necessità che l’IA avesse più comportamenti diversi e che li attivasse in determinati momenti. Questo ha portato le IA ad essere pensate come macchine a stati finiti. Questi sono costrutti atti ad organizzare in diversi stati determinati comportamenti. Posso portare due esempi: i soldati di Metal Gear o un distributore di merendine! Un distributore ha un software organizzato come una macchina a stati grazie al quale attende i soldi e la pressione dei tasti in uno stato di ascolto, così come i soldati di MGS girano per la mappa in attesa di vedere il giocatore o di sentire un suono. Una volta ricevuto il giusto input, i soldati passeranno allo stato di allerta a quello di caccia e successivamente a quello di combattimento mentre il distributore prenderà la merendina per voi. Entrambi ritorneranno allo stato iniziale a lavoro finito.
Annidare in questo modo più comportamenti semplici offre l’idea di maggiore complessità, anche se a conti fatti i singoli stati possono avere la complessità dei fantasmini di Pac-Man. Un modo più complesso per gestire le IA si trova nel metodo GOAP, Goal Oriented Action Planning, implementato in F.E.A.R. in modo fantastico. In questo caso l’IA ha a disposizione un set di azioni ed un obiettivo ed è lei a concatenare in modo autonomo le azioni. Il criterio di solito segue una funzione di costo: qual è la sequenza di azioni più efficiente per raggiungere il mio scopo? L’impressione di avere un avversario intelligente è ottima. Ovviamente questo non è più il migliore modo per fare le cose quando c’è bisogno di elevata competenza da parte dell’IA. In quel caso bisogna effettivamente creare una IA in grado di capire ed adattarsi ai comandi del giocatore. Serve un’IA predittiva.
Per generale algoritmi predittivi bisogna tenere uno storico delle azioni del passato ed associare loro una misura del successo. Un esempio stupido: un’IA di un picchiaduro esegue un attacco e ferisce il giocatore. È un successo e quindi ci riprova. Poi il giocatore entra in parata e gli attacchi dell’IA non funzionano più. Questo provoca un cambio di strategia. Potrebbe fare una presa o un attacco da una direzione diversa. Questo loop accade velocissimo ed è in costante evoluzione. In generale questi loop vengono calcolati anche a diversi livelli di efficacia per renderli scalabili con il livello di difficoltà e questo avviene per cercare di rendere una IA meno prevedibile possibile. Blizzard sono anni che sperimenta con Starcraft II per creare un’IA in grado di battere un umano, anche usando più di un’IA insieme.
L’IA per quanto avanzata, difficilmente potrà essere migliore di un umano in un videogioco e quindi spesso viene farcita di facilitatori. In giochi come Starcraft o Civilization, l’IA a livelli elevati ha dei bonus numerici alle proprie risorse, partendo avvantaggiata, oppure non ha limite al numero di comandi che può eseguire. Bisogna stare anche attenti a non esagerare. Soul Calibur per esempio a difficoltà massima legge i comandi del giocatore e risponde prima che questi si siano verificati, rendendo l’esperienza abbastanza frustrante.
Come ogni elemento di gioco, lo sforzo fatto dietro un’IA può venire vanificato o valorizzato dagli altri elementi di game design. Prendiamo l’ultimo Zelda. Già nei giochi Bethesda, se una persona è disarmata andrà a recuperare armi. I goblin di Zelda, da un punto di vista dell’IA fanno la stessa cosa: controllano delle variabili e decidono il da farsi. Ma mentre lo fanno si guardano attorno, se trovano qualcosa esclamano ed hanno un’animazione per raccogliere l’arma. L’IA da sola fa tanto, ma senza il contorno il giocatore può non accorgersi che ci sia, ed in alcuni casi è un vero peccato.