7

L'Intelligenza Artificiale nei Videogame

Credete che le macchine siano più intelligenti dell'Uomo? Forse di alcuni sì, ma la strada da fare nei videogame è ancora tanta!

SPECIALE di Stefano Brighenti   —   28/04/2007
L'Intelligenza Artificiale nei Videogame

Script e Routine

Paradossalmente l’Intelligenza Artificiale è uno degli elementi costitutivi più importante di un titolo: se sul piano grafico si sta raggiungendo il traguardo della verosimiglianza con il mondo reale, di cui probabilmente sarà Crysis a gloriarsi, gli avversari controllati dalla nostra CPU restano ancora ancorati al medioevo videoludico, ricorrendo a delle semplici routine o, ancora peggio, a degli script preconfezionati.
Gli script sono essenzialmente delle istruzioni con una struttura condizionale: se si verifica un determinato evento, allora verrà eseguita una determinata azione; se ad esempio, il giocatore attraversa una soglia (in gergo, attivare un trigger o “interruttore”), allora si attiverà lo script ad essa collegato, facendo eseguire una o più azioni ai bot.

L'Intelligenza Artificiale nei Videogame
L'Intelligenza Artificiale nei Videogame

Script e Routine

Il limite è evidente: questi script, che generalmente richiamano a dei comportamenti assolutamente razionali e “umani”, possono verificarsi unicamente nel caso in cui siano specificamente previsti dagli sviluppatori; in caso contrario, il bot continuerà con le sue istruzioni primarie.
Eredi virtuali degli script sono le routine, vale a dire un insieme di istruzioni che eseguono una determinata azione, o più azioni: queste possono essere attivate (in gergo si esegue un’azione di recall sulla routine) in un qualsiasi momento, sia esso il primo caricamento della mappa oppure successivamente.
Le routine hanno permesso agli sviluppatori di istruire i bot con una serie di azioni più complesse, che però restano vincolate, in definitiva, alla sempreverde condizione determinante, vale a dire l’input dato dal giocatore: così i nostri avversari potranno eseguire le loro azioni di default (pattugliare un determinato settore seguendo dei waypoint), reagire all’azione dell’utente (esploso un colpo d’arma da fuoco che porta all’interruzione della precedente istruzione) e iniziare l’ingaggio, attivando delle nuove routine espressamente dedicate.
Il discorso sarebbe decisamente più articolato e complesso, ma per ragioni di semplicità e attinenza alla natura dell'articolo non siamo interessati a trattare nel dettaglio questo discorso: tuttavia consigliamo, a chi ne fosse interessato, di leggere un interessante saggio pubblicato dal Professor Jakulin della Columbia University, reperibile a questo indirizzo.

Il Male?

Non facciamo, tuttavia, di tutta l’erba un fascio: gli script non rappresentano il Male Assoluto per l’Intelligenza Artificiale, anche perché permettono agli sviluppatori di introdurre nel gioco delle sequenze cinematografiche di grande effetto, come quelle viste in Call of Duty 2.

le routine hanno permesso agli sviluppatori di istruire i bot con una serie di istruzioni più complesse, che però restano vincolate, in definitiva, alla sempreverde azione determinante, vale a dire l’input dato dal giocatore

Il Male?

Come molto più spesso accade, il principale errore in cui le software house cadono è di mera valutazione: in un titolo dove l’utente resta essenzialmente vincolato dentro dei binari predefiniti, come in DooM 3, sviluppare una complessa IA dinamica sarebbe stato inutile, perché difficilmente il giocatore avrebbe potuto lanciarsi in azioni non prevedibili, essendo vincolato dal design dei livelli: viceversa, in un titolo free roaming, come può essere un GdR o un qualsiasi action in stile GTA, le routine sono quasi d’obbligo, mentre molto spesso si notano dei giochi di ruolo che si rivolgono ancora agli script, come nel recente Gothic 3 di Piranha Bytes.
Il nostro interesse si sposta, a questo punto, all’analizzare l’Intelligenza Artificiale di alcuni titoli dall’elevato budget e dall’ottimo successo di vendite che hanno mostrato risultati altalenanti: si tratta di un’analisi che non tiene assolutamente conto di tutti gli altri elementi, quali grafica, coinvolgimento, prezzo, gameplay e e via discorrendo, ma che si focalizza unicamente sull’aspetto del Quoziente Intellettivo degli avversari; di conseguenza, anche se l'analisi risulta particolarmente severa, questa si limita unicamente ad un solo singolo aspetto e non rappresenta la valutazione totale del gioco in questione.

Far Cry

Impossibile non citare uno dei più riusciti sparatutto degli ultimi anni, il gioco che ha letteralmente rivoluzionato l’intero genere unendo una vasta libertà d’azione con una giocabilità senza pari.
Il titolo dei teutonici Crytek non sorprende unicamente per le bellezze esotiche che mostrava sullo schermo, ma anche per il comportamento particolarmente arguto dei nostri avversari.

L'Intelligenza Artificiale nei Videogame

Per chi si fosse dedicato al cucito in quegli anni, Far Cry è un FPS con mappe particolarmente vaste, sia ambientate all’aperto che dentro delle strutture; gli sviluppatori si ritrovavano quindi davanti al complesso dilemma di come strutturare l’Intelligenza Artificiale dei bot: inutile dire che questa doveva variare a seconda del tipo di mappa, visto che all’interno di una struttura si richiede una percezione decisamente maggiore dell’ambiente, così da poter far sfruttare i punti di copertura, e la capacità di coordinarsi anche tra diverse squadra; all’esterno, viceversa, l’attenzione si doveva spostare sull'umanità (intesa come non-onniscienza) degli avversari, rendendoli non sempre consapevoli della posizione del giocatore.
Il dilemma fu risolto in maniera assolutamente geniale: gli sviluppatori identificarono ogni elemento dello scenario (una jeep, un muro, delle scatole, un edificio) con dei marker unici, così da trasmettere al vostro avversario una sorta di conoscenza dell’ambiente circostante; in questo modo un nemico da voi ingaggiato saprà che può trovare riparo dietro al muro a lui vicino, mentre se si trova vicino ad una radio (identificata da un altro marker), potrà chiamare rinforzi, attivando un trigger che spawna dei nemici nei pressi della vostra zona.

L'Intelligenza Artificiale nei Videogame

Inoltre, ogni marker viene associato a delle caratteristiche uniche: un mezzo di trasporto, ovviamente marcato per farlo conoscere al bot, presenterà una serie di istruzioni eseguibili, come la possibilità di salirci sopra, di utilizzare un’arma montata su di esso o ancora usarlo come riparo: questo ha permesso di evitare che un nemico tentasse invano di guidare un barile oppure di utilizzare un filo d’erba (ipoteticamente, visto che l’erba non era marcata) come riparo.
L’affidarsi a questa struttura di IA presentava, ovviamente, il rischio che si generassero dei nemici perennemente a conoscenza della vostra posizione, rendendo il gameplay particolarmente frustrante: per ovviare al problema, Crytek ha scelto di istruire ogni bot con diversi variabili percettive: non solo più il field of view (campo di visuale, se il giocatore lo varca viene notato e si attiva l’istruzione d’ingaggio), ma anche di un raffinato udito, in grado così di generare, nel bot, un’ipotetica posizione del giocatore.
Se ad esempio, lanciavate un sasso, questo atterrando generava un rumore, attirando l’attenzione dei vostri avversari che si dirigevano nella direzione da cui proveniva: tuttavia, mancando la conferma visiva, senza la quale non possono procedere all’ingaggio, ritornavano alla loro attività una volta terminata l’istruzione di controllo.
Tirando le somme, l’Intelligenza Artificiale sviluppata da Crytek riuscì a fornire un ottimo livello di sfida anche ai giocatori più esperti, mentre contemporaneamente contribuiva a generare un maggior senso di coivolgimento grazie ad un comportamento particolarmente umano degli avversari.
Avremo modo di provarne una versione potenziata nell’imminente Crysis.

F.E.A.R.

Restando in tema di FPS, l’altra punta di diamante è rappresentata dal fantastico titolo di Monolith, passato alla storia non solo per la sua grafica e per la trama degna di un film (che stanno girando, tra l’altro), ma anche per offrire un livello di sfida decisamente superiore, staccando di diverse spanne qualsiasi altro sparatutto concorrente.
La struttura, pur rifacendosi a quella dei marker proposta da Far Cry, doveva tuttavia fortemente adattarsi ad un level design completamente diverso: le mappe di F.E.A.R. erano strutturate come una continua sequenza di stanza-corridoio-stanza (sullo stile di DooM, per intenderci), dove si svolgevano gli scontri tra giocatore e avversari controllati dalla CPU.

L'Intelligenza Artificiale nei Videogame
L'Intelligenza Artificiale nei Videogame

F.E.A.R. utilizza la migliore struttura d'IA mai vista, unendo sapientemente script precalcolati con routine decisamente complesse

F.E.A.R.

Di conseguenza Monolith dovette modificare la struttura a marker per conferire ai bot non solo la percezione dell’ambiente, ma anche la facoltà di valutare se attivare (a piacere, o se preferite, casualmente) degli script preconfezionati: in termini più semplici, i vostri avversari, entrando in una stanza, potevano decidere di costruirsi un riparo rovesciando una scrivania, oppure dirigersi verso una posizione di fuoco migliore; l’aspetto interessante è che non si trattavano di azioni scriptate precaricate, quindi non eseguite sempre e comunque, ma che potevano essere attivate o meno.
Pertanto anche lo stesso scontro, se ripetuto più volte, non era mai identico al precedente, proprio perché vi erano delle nuove azioni attivate e delle altre invece che venivano ignorate; i bot, inoltre, perdevano definitivamente la loro precedente condizione di onniscienza, permettendovi di elaborare nuove e interessanti strategie: se, dopo un rapido scontro, il giocatore si spostava furtivamente, i nemici si dirigevano verso l’ultima posizione conosciuta, magari offrendovi la possibilità di colpirli senza correre troppi rischi.
Abbiamo ripreso una vecchia intervista, che potete scaricare a questo indirizzo direttamente dalla nostra Area Files, dove gli sviluppatori parlano del loro sistema d'Intelligenza Artificiale; come potete notare dagli intermezzi in-game (e dalle parole di Rob Loftus), F.E.A.R. non si affida unicamente ad un sistema scriptato: notate come i bot si adattano all'ambiente di gioco cooperando attivamente tra loro e sfruttando ogni sorta di riparo possibile, come un barile o un divano.

Gli script di coordinamento sono collegati a delle animazioni appropiate
Gli script di coordinamento sono collegati a delle animazioni appropiate

I programmatori, decisi proprio a staccare il loro prodotto dalla massa, hanno inoltre istruito i bot per coordinarsi tra loro: per raggiungere questo risultato, ogni bot venne contrassegnato da un nome o una sigla (nulla di complesso, si denomina un'entità) ed istruito particolarmente, con la classica struttura condizionale: mentre BOT-A si muove di posizione, raggiungendo un nuovo waypoint, BOT-B ingaggia il giocatore, simulando così un fuoco di copertura: si trattava quindi di script, sostanzialmente, ma che integrati all’interno di routine particolarmente elaborate riuscirono a far vincere a F.E.A.R. numerosi premi e continui elogi dalla critica e dal pubblico: non per niente è stato tra i migliori titoli del 2005.

S.T.A.L.K.E.R.: Shadow of Chernobyl

La situazione non è però tutta rose e fiori: il recentissimo STALKER, a detta degli sviluppatori, doveva affidarsi ad un rivoluzionario sistema d’intelligenza artificiale, denominato A-Life, per simulare un comportamento realistico del mondo che circondava il giocatore.
Entusiasmante su carta, ma decisamente scadente all’atto pratico: il tanto decantato sistema non era altro che una lunga serie di script (nemmeno particolarmente riusciti), attivati da dei semplicissimi trigger (o interruttori, per i meno anglofoni): il trigger altro non è che un'area, di qualsiasi forma, posizionata sulla mappa di gioco, che attiva uno o più script ad essa associati ogni volta che si verifica una determinata condizione: se, ad esempio, il giocatore entra nell’area delimitata dal trigger, allora esegue lo script che genera una serie di entità variabile, ad esempio degli umani e dei mostri mutanti; essendo questi ultimi identificati come nemici dai primi, ecco che allora nasceva un vero e proprio scontro a cui il giocatore poteva prendere, o meno, parte: e da qui la fasulla sensazione di trovarsi in un mondo vivo e che muta senza l’intervento del giocatore (che invece c’è, visto che è stato lui ad attivare il già citato trigger).

L'Intelligenza Artificiale nei Videogame
L'Intelligenza Artificiale nei Videogame
L'Intelligenza Artificiale nei Videogame

come potete vedere dalle sequenze, le entità sembrano come all'interno di un recinto invisibile.

S.T.A.L.K.E.R.: Shadow of Chernobyl

Il problema di questi trigger è che se non sono ben studiati, possono funzionare come "aree" delimitanti, vale a dire l'entità generata eseguirà la propria azione ma solo ed esclusivamente dentro quell'area, non sconfinando nemmeno se la logica lo vorrebbe: capita così che un terribile cane geneticamente mutato, che poco prima vi aggrediva ferocemente, smetta di attaccare perché siete fuori dalla sua portata anche se solo di pochissimi centrimetri: come potete chiaramente vedere da questo video presente nella nostra Area Files, il cane in questione sembra racchiuso all’interno di un recinto invisibile, ovvero il tecnicamente definito trigger.
Si poteva facilmente immaginare che il sistema A-life non fosse quanto decantato: in un GdR con elementi da sparatutto (o viceversa, che dir si voglia), il rischio che entità importanti per il gioco potessero venir uccise da un qualche respawn mal calibrato erano troppo elevate e il renderle immortali, oltre a presentare ovvi problemi sotto il profilo del gameplay, poteva rivelarsi una pericolosa arma a doppio taglio (immaginate di raccogliere una quest per eliminare il personaggio riconosciuto dal gioco come invincibile).
Il problema di fondo è dato dalla combinazione degli script uniti ai trigger: in alcuni titoli, come il vecchio Operation Flashpoint, il sistema aveva funzionato in maniera eccellente, ma per il semplice fatto che non si ricorreva ad un respawn forzato e continuo: una volta generata, l’entità non poteva più essere richiamata e rigenerata nella mappa; viceversa in STALKER, per rendere l’ambiente vivo (altrimenti il mondo di gioco si sarebbe spopolato dopo pochi istanti), gli sviluppatori hanno impostato un coefficente di respawn (azione per cui una o più entità vengono riposizionate per un numero indefinito di volte) che può portare a trovarsi a dover liberare una zona, o un edificio, che giusto pochi minuti prima avevate completamente sgomberato.
Un elemento che, a nostro avviso, mina seriamente la giocabilità di un buon titolo.

Gothic 3

Non sono solo gli FPS a soffrire di una IA scadente, ma anche qualche gioco di ruolo: mentre Oblivion, tra alcuni difetti, aveva sorpreso per il suo sistema di gestione della “vita quotidiana”, il suo diretto concorrente, sviluppato da Piranha Bytes, aveva ampiamente deluso sotto questo profilo, presentando un’intelligenza artificiale risalente ai primi degli anni '90.

L'Intelligenza Artificiale nei Videogame
L'Intelligenza Artificiale nei Videogame

l'IA di Gothic 3 conosceva solo due istruzioni: attacca da vicino o attacca da lontano

Gothic 3

Trattandosi di un GdR era implicito non aspettarsi raffinatezza e comportamenti particolarmente umani, ma le creature del mondo di Myrthana, salvo qualche routine particolarmente riuscita (come la necessità di cacciare), conoscevano unicamente due tipi di istruzione, caricate a seconda del tipo d’arma utilizzata: se si trattava di un’arma da corpo a corpo, allora l’entità assaltava direttamente il giocatore, altrimenti restava a distanza nel tentativo di colpirlo con il suo arco o balestra.
Poco importavano quindi, fattori fondamentali come l’equipaggiamento del giocatore, la sua esperienza, la sua posizione (sopraelevata o a livello del terreno) e via discorrendo: potevate assistere ad un inerme contadino attaccarvi con una padella, votandosi quindi a morte certa, anche se indossavate una corazza da Paladini e uno spadone magico a due mani; oppure decine di orchi decimati dal vostro arco, solo perché eravate riusciti a salire su una cassa.

e anche attaccando da lontano, il risultato era lo stesso
e anche attaccando da lontano, il risultato era lo stesso

Le entità nemiche tornavano ad essere onniscienti, conoscendo quindi sempre e comunque la vostra posizione, indipendentemente dalla vostra furtività e dalle vostre abilità da gioco di ruolo: fortunatamente non vi trovavate mai a scappare preoccupati da folle inferocite, perché dopo pochi secondi (grazie ad un semplice counter, che partiva dall’attivazione dell’istruzione d’ingaggio), l’entità interrompeva l’inseguimento permettendovi di scappare tranquillamente, ritornando poi alla sua normale attività, come se nulla fosse accaduto.
Questo quindi vi permetteva di commettere i più efferati crimini, fuggire di qualche metro e tornare tranquillamente indietro, senza che nessun NPC vi dicesse nula: senza dubbio, pur avendo Gothic 3 notevoli pregi, gli sviluppatori avevano completamente ignorato l’aspetto dell’intelligenza artificiale, regalando così una facile vittoria al suo diretto antagonista Oblivion.

Il Futuro è Aiseek?

Non solo ombre per il futuro, ma anche qualche spiraglio di luce che lascia ben sperare: recentemente un’azienda israelina, Aiseek LTD, sta sviluppando un nuovo processore dedicato (vale a dire, probabilmente, una sorta di scheda PCI come lo è AGEIA per la fisica) che dovrebbe garantire non solo un minor carico di calcolo per la CPU (attualmente è questo componente che gestisce tutti gli script e routine), ma anche permettere agli sviluppatori di muovere i primi passi nel mondo inesplorato dell’IA dinamica.
I punti di forza di questo nuovo processore sono, essenzialmente, basati su tre fattori fondamentali: il movimento, un’accurata simulazione della percezione sensoriale e l’analisi del terreno.

Tra quanto un'IA dinamica?
Tra quanto un'IA dinamica?

Se per il fattore del movimento non sono trapelate eccessive informazioni, salvo l’azzardata affermazione che ogni problema di path finding sarà presto un triste ricordo, per quanto riguarda la simulazione sensoriale, i programmatori affermano che entreranno in campo nuove variabili: se l'NPC si troverà a dover controllare un’ampia porzione di spazio, estesa anche in profondità, molto difficilmente riuscirà a notare un piccolo oggetto statico o in lento movimento; al contrario, se il suo raggio di visuale è orientato verso una porta, sarà praticamente impossibile non notare anche il più piccolo movimento (sempre, ovviamente, tenendo conto della quantità di luce presente).
Per quanto riguarda l’analisi del terreno, attualmente ci si trova in un ambito ancora poco sviluppato, visto che i titoli a sfruttare un ambiente dinamico (cioè liberamente modificabile dall’utente, parzialmente o totalmente, in maniera rilevante) sono veramente pochi, tra cui l’ormai dimenticato Red Faction e il suo scadente seguito.
Le premesse, come sempre accade, ci sono tutte, ma solamente in un prossimo futuro potremo dire se è davvero necessario affidarsi ad una scheda dedicata, oppure se non sia meglio ricorrere ad un middleware (come l’Havok per la fisica): certo è che, allo stato attuale, siamo ancora lontani da un qualche risultato.
Potete ammirare le prodezze del nuovo processore dedicato in alcuni video: nel primo (questo è il link alla nostra Area Files per scaricare il video) potete vedere come Aiseek gestirà uno scontro tra due diverse fazioni all'interno di un terreno interamente dinamico: notate come le unità riescono ad adattarsi coerentemente con le continue modifiche al livello, senza presentare alcun problema di path finding. Nel secondo video (questo è il link alla nostra Area Files per scaricare il video) si nota come, in un probabile futuro GdR, sarà possibile espandere il concetto di libertà di scelta; tutte ottime dimostrazioni, ma aspettiamo di vedere qualcosa di più concreto prima di lanciarci in ulteriori commenti.

Non vi sono dubbi che l’universo informatico sia in continua evoluzione: fino a pochi anni fa era inconcepibile parlare di DirectX 10 o di shader unificati e tutti eravamo presi a decantare le (meritate) lodi a Far Cry e ai suoi bump mapping; l’audio poi è passato da essere un volgare bicanale, con due semplici casse, fino ad arrivare a dei veri e propri impianti da cinema con sette satelliti, un subwoofer e con tecnologie particolari come l'EAX, mentre il gameplay si è raffinato introducendo engine per la gestione della fisica come l’Havok o addirittura schede PCI dedicate allo scopo come AGEIA.
Ma in mezzo a queste continue evoluzioni, a cui il finanziariamente dissanguato giocatore riesce appena a star dietro, un piccolo ambito non è mai stato stravolto completamente, ed è ancora in attesa della sua rivoluzione: l’Intelligenza Artificiale.