Come è ormai di dominio pubblico, S.T.A.L.K.E.R. 2 non sarà realizzato con una nuova versione del famoso e famigerato motore grafico X-Ray, sostituito dal supercollaudato Unreal Engine. Ciononostante, il nuovo capitolo manterrà l'impiego dello spettacolare sistema A-Life, che sarà anzi aggiornato a una versione 2.0 e utilizzato per realizzare il "virtua-ambiente" della Zona.
Ora, io non ho la minima idea di come i capoccia di GSC riusciranno a migliorare l'A-Life e a integrarlo in quanto creato con l'Unreal Engine, quindi non mi dilungherò su ipotesi tecniche che, semplicemente, non riesco neppure a congetturare. Qui, vorrei parlarvi di cosa sa fare l'A-Life 1.0 e, magari, sognare insieme cosa ci ritroveremo fra le mani quando, finalmente, potremo installare S.T.A.L.K.E.R. 2 sul nostro PC (o sulla nostra console, tocca abituarsi!).
Premessa doverosa: dal 2008 io non ho mai smesso di giocare a S.T.A.L.K.E.R. in qualsiasi versione possiate immaginarlo. Dalla trilogia ufficiale, "liscia" o moddata, a Lost Alpha a Call of Chernobyl, "liscio" prima e nelle varianti che descrivo al link via via. Parallelamente, ho provato anche altri videogames, quindi, pur non essendo un vero e proprio "PC gamer", ho avuto almeno un assaggio di come l'Intelligenza Artificiale (IA) possa essere implementata in alcuni giochi.
Dentro l'A-Life
Lo dico subito: l''A-Life rimane, a mio personalissimo avviso, ineguagliato. Non si tratta solo di come l'IA dei personaggi non giocanti (png) risponde alla presenza e, in particolare, al fuoco del Giocatore (tattica, strategia, impiego di armi secondarie, diversivi, fuga, copertura, finte, eccetera) ma anche, e soprattutto, a cosa fanno e a come si comportano i png se il Giocatore si limita a osservarli o, cosa ancora più figa, se il Giocatore è, letteralmente, assente.
La simulazione controllata dall'A-Life si occupa, infatti, di generare una serie di eventi non necessariamente vincolati a quel che il Giocatore fa o vede; e sfatiamo subito un mito che nasce e muore in un microsecondo: i png NON sono "intelligenti", agiscono in base a tutta una serie di parametri preimpostati, MA non scriptati, che ne regolano la "vita". Però, si tratta di parametri talmente vari, variegati e "radicati" all'interno del mondo di gioco, che i png stessi ne diventano parte integrante e, soprattutto, attiva, arrivando a condurre una propria vita autonoma, quasi completamente svincolata dal Giocatore e dalla trama del gioco.
Come ho accennato sopra, l'A-Life segue una serie di regole, che non possono essere nè eluse nè infrante. Quest'ultima considerazione è il punto debole di ogni simulazione, soprattutto quelle che riguardano l'IA, ma esistono modi, e l'A-Life ne comprende almeno un paio, di cui uno assolutamente geniale, per minimizzare l'influenza di questa limitazione. In prima analisi, le regole che l'IA deve seguire si basano sul tipo di png e sul ruolo che esso ha, o potrà avere, nei confronti del Giocatore, comprendendo reazioni a cascata, apparentemente imprevedibili ma, comunque, previste, a seconda di quali "scelte" saranno compiute dal Giocatore stesso e/o dagli altri png.
Esempio
Un esempio banale, per aiutarci a capire: un png Bandito (es.: Igor) è presente in un gruppo casuale che esegue una pattuglia in una determinata area, diciamo il Cordon. Il gruppo viene intercettato dal Giocatore che, facendo il figo, cerca di abbattere i Banditi incontrati. Li ammazza tutti, tranne Igor, ma riporta danni talmente pesanti che preferisce ripiegare e tornarsene al Villaggio dei novellini. Igor è ancora vivo e, in base alle istruzioni dell'A-Life, si incammina verso l'altro gruppo di Banditi più vicino per unirsi a loro, qualsiasi cosa stiano facendo (difesa, pattuglia, attacco, eccetera).
N.B. L'A-Life comprende comunque una serie di regole secondo cui, se il Giocatore avesse ferito Igor ma gli avesse poi offerto di curarlo utilizzando un proprio kit medico, Igor avrebbe modificato il proprio "atteggiamento" verso il Giocatore, arrivando a modificare i valori che ne regolano le "relazioni sociali".
Insomma, l'A-Life cerca non solo di simulare un comportamento realistico ma, addirittura, di emulare un processo decisionale simile a quello umano, perchè in tal modo è stato concepito e istruito dai programmatori. Peraltro, l'IA è proattiva e, invece di aspettare che il giocatore entri nelle vicinanze, prenderà le decisioni "da sola", sempre basandosi sulle regole precedentemente accennate. L'eccezione è rappresentata dai png "VIP" coinvolti nei punti focali della trama e, quindi, della storyline principale attraverso la quale il gioco si conclude. I png essenziali per la progressione della trama principale sono "statici" nel loro posizionamento e si spostano solo quando il proprio ciclo di sotto-missioni è terminato. Quest'ultima feature è pesantemente modificabile, sotto molti aspetti: è possibile rende immortali i png "VIP" oppure svincolarli dai loro "obblighi verso la trama principale", soluzione adottata in quasi tutti i mod a tema "freeplay" rilasciati prima di "Call of Chernobyl".
Online e offline
Il geniale modo cui ho accennato poco sopra per minimizzare l'impossibilità di eludere/infrangere le regole dell'A-Life è stato quello di crearne due piani di esistenza, denominati rispettivamente Online e Offline, basati sul fatto che S.T.A.L.K.E.R. non è costituito da un'unica mappa senza soluzione di continuità bensì da un'assortimento di locazioni all'interno di una stessa area.
Lo stato dell'A-Life online può essere collegato a tutte le IA entro un certo raggio (circa 150 metri in Shadow of Chernobyl "liscio" ma è tranquillamente moddabile, entro certi limiti) dalla posizione del giocatore. Tutto il resto, cioè tutto quello che si trova o che succede al di fuori di questo raggio, è considerato offline.
Sotto questo punto di vista, la figata delle figate è che l'A-Life funziona in background, in ogni istante della sessione di gioco, e prende nota di tutto ciò che accade nell'online in modo da poter apportare modifiche all'interno dell'IA offline!
Questo perchè mentre il Giocatore avanza nel gioco, i png si muovono in altri luoghi, il che significa che qualsiasi evento può verificarsi anche lontano dal Giocatore stesso.
Smart terrains
Gli smart terrains (ST, terreni intelligenti) sono zone "stratificate" nel mondo di gioco nelle quali è possibile applicare regole all'IA una volta che i png entrano in queste zone e rappresentano un secondo modo per minimizzare l'impossibilità di eludere/infrangere le regole dell'A-Life. In realtà, molte potenziali funzionalità dell'A-Life (es.: guerra fra Fazioni, difesa di accampamenti e, più in generale, tutto quel che GSC ha cercato di implementare in Clear Sky con scarso successo) sono state escluse dai capitoli della trilogia e vincolate, per ragioni di stabilità e semplicità, agli ST. In parole povere, all'interno di uno ST è possibile predefinire il respawn di determinati gruppi di png, come reagiranno incontrando il Giocatore o altri png, se/quando/perchè/come si muoveranno per andare verso una destinazione oppure verso un fine (es.: attaccare una base nemica, pattugliare, presidiare un'area, eccetera). L'impiego dei ST è relativamente meno complesso rispetto all'utilizzo del sistema online/offline e, soprattutto, è più facilmente "imbrigliabile" per evitare che sorgano conseguenze impreviste (es.: troppi png nell'area di gioco).
Dmitriy Iassenev
Il nome dietro all'A-Life è Dmitriy Iassenev e, grazie al Cielo, recentemente è tornato presso GSC per lavorare su S.T.A.L.K.E.R. 2. Possiamo solo ipotizzare su cosa, in particolare...
Qui di seguito riporto parte di un'intervista, relativa all'A-Life, che Dmitriv a rilasciato a Gamesutra nel 2008:
Potresti dire come hai implementato l'A-Life in S.T.A.L.K.E.R. ?
Abbiamo introdotto due termini che caratterizzano 2 modelli di comportamento del personaggio, diversi nei dettagli di implementazione: offline e online.
Il comportamento offline è molto semplice: il png non riproduce animazioni o suoni, non gestisce attivamente il suo inventario, non costruisce percorsi dettagliati e fluidi (sebbene costruisca percorsi secondo il grafico di navigazione globale, ma ne parleremo più avanti). Al contrario, il comportamento online è completamente dettagliato. Pertanto, il comportamento offline può essere considerato il LoD (livello di dettaglio) online.
Nel nostro sistema il giocatore agisce a un livello, altri png vivono in altri livelli, cioè sono offline, cioè usano il comportamento offline.
Inoltre, considerando l'alta densità di personaggi in un livello, non tutti i png nel livello del giocatore hanno il comportamento online, ma solo quelli che si trovano in un raggio predefinito dal giocatore (possono variare da livello a livello, ma di solito sono circa 150 metri) o su ciò che lo imposta il game designer.
Per raggiungere questo obiettivo, il sistema A-Life segue i movimenti del giocatore e dei personaggi offline e passa quest'ultimo a online / offline, se necessario.
Quali sono state le altre parti importanti del sistema per lo sviluppo di A-Life in S.T.A.L.K.E.R. ?
Ogni png ha sempre un obiettivo: scoprire il mistero della Zona. Nelle prime versioni del simulatore, un png conosceva uno o più trafficanti, che commissionavano una serie di ricerche generate in base ad attività anomale o richieste da parte di organizzazioni che volevano arricchirsi con i reperti trovati nella Zona. Il completamento di una ricerca avvicinava il png al suo obiettivo.
All'epoca c'era solo un tipo di ricerca: "portare un artefatto". Il png avrebbe intrapreso un viaggio per cercare l'artefatto, andare nell'area (approssimativa) in cui poteva essere trovato, ammesso che fosse in grado di trovare l'artefatto, riportarlo al trafficante, scambiarlo, quindi scegliere una nuova missione. Lungo la strada poteva incontrare nemici e combatterli. In modalità offline tutto questo è stato simulato: gli avversari si sono alternati spostandosi, il risultato era calcolato sulla base di una formula e tenendo conto del fattore casuale.
L'effetto finale era che un avversario poteva scappare da un altro, a volte i png venivano uccisi, a volte non si notavano nemmeno l'un l'altro oppure decidevano di evitare lo scontro.
Se il png era un Solitario e incontrava un png neutrale o un amico, potevano commerciare fra loro, guidati da uno schema di scambio dedicato. Tutto ciò ha funzionato sia in modalità offline che online. Per informare il Giocatore sull'attività offline, abbiamo usato le notizie che venivano generate se un personaggio poteva vedere un evento o le sue conseguenze.
Si prevedeva che il numero di tipi di missioni sarebbe aumentato in seguito e il comportamento del png si sarebbe diversificato a causa dell'introduzione di requisiti di cibo e sonno. Abbiamo anche pianificato che i nostri png sarebbero stati in grado di scoprire il mistero della Zona prima del giocatore, o almeno di raccogliere una certa quantità di informazioni.
Quindi abbiamo cambiato il modo in cui sono state generate le missioni. I png ora avrebbero ricevuto missioni non dai trafficanti, ma dai ST. La vita di un png funzionava così in modo tale che, intrapresa la ricerca generata da un ST, raggiungeva la destinazione che gli era stata assegnata.
Dopo essere arrivato, avrebbe ottenuto punti e intrapreso azioni nell'ST per qualche tempo. Sotto il controllo di un ST, il png avrebbe dato le proprie priorità e svolto le attività disponibili. Questo è il modo in cui il gioco ha gestito le Basi delle Fazioni, gli avamposti e via dicendo. Cioè, la migrazione dei personaggi da un posto all'altro, il loro movimento tra i livelli, tutto è stato causato dal cambiamento degli obiettivi.
A posteriori, con quali parti del sistema e / o processo di sviluppo sei stato particolarmente soddisfatto?
Sono stato molto contento del lavoro svolto quando ho seguito uno stalker muoversi da un livello all'altro e ho visto come cercava artefatti, li trovava, tornava dal trafficantge, si avvicinava a lui, commerciava, sceglieva una nuova ricerca, proseguiva - peccato che questo non sia arrivato al gioco originale!
Quando stavamo implementando una pianificazione dell'azione orientata agli obiettivi, era molto interessante guardare due png disarmati ostili che sapevano che dovevano ottenere armi e munizioni: prima corrono verso le armi, scoprono di non avere munizioni, quindi corrono verso le munizioni, il primo ad arrivare fa cogliere l'altro dal panico se è ancora lontano da armi e munizioni, il personaggio in preda al panico viene ferito e cade, l'altro si avvicina per finirlo (questa feature non è arrivata al gioco originale, dal momento che tutti i png hanno ricevuto munizioni illimitate...).
È anche stato molto interessante assistere a un combattimento tra un branco di cani e uno stalker png: è stato uno spettacolo mozzafiato osservarlo mentre fugge dai cani, sfruttando le coperture. A volte è morto rapidamente, altre volte è riuscito ad abbattere 4-5 cani, a volte tutti e 6.
Che ne dici di delusioni? C'era qualcosa in particolare sul sistema o sul suo sviluppo che avresti fatto diversamente?
Mi sarebbe piaciuto molto giocare a un gioco in cui i personaggi vivono la propria vita, ognuno ha il suo obiettivo nel gioco, ognuno ha bisogni simili a quelli umani (o alcuni specifici, per i mutanti), bisogni che il Personaggio dovrebbe soddisfare.
All'atto pratico, invece di creare un algoritmo per la scelta delle esigenze contingenti e la loro soddisfazione, è stato utilizzato un modello più semplice, che ha scaricato questo lavoro sugli ST, responsabili del cambio di compiti da parte dei png, in grado di assegnare compiti come "dormire", che, ovviamente, non è la stessa cosa.
Si può fare molto per migliorare i combattimenti, il lavoro di squadra, l'efficienza del combattimento e l'efficienza delle azioni dei personaggi. Voglio davvero passare dall'imitazione delle azioni di squadra alla vera intelligenza artificiale di squadra, anche se ciò significa solo poche azioni.
Nell'intelletto, nell'adattamento e nell'insegnamento ai personaggi lo stile di gioco del giocatore. Anche la parte emotiva sarebbe molto interessante.
Vorrei anche insegnare ai personaggi a reagire adeguatamente al mondo circostante: camminare intorno a ostacoli dinamici, a vicenda, usare il terreno (percorso e oggetti intelligenti) in vari modi, essere in grado di guidare veicoli, pilotare l'elicottero, ecc. Lì sono molte cose che non possono fare per vari motivi, ma nelle future iterazioni del nostro gioco proveremo ad aggiungere gradualmente gli elementi mancanti.
[omissis]
Fonte: Gamasutra, 12/03/2008
Conclusioni preliminari
L'X-Ray è stato il cuore pulsante della realizzazione artistica di S.T.A.L.K.E.R. mentre l'anima della trilogia è stato il sistema A-Life. Per chi riesce a cogliere la citazione, l'A-Life è stato il "ghost" nello "shell" rappresentato dall'X-Ray.
Vi sarà capitato più e più volte: salvare, avanzare, incappare in un'imboscata e i 3, 4 o più png presenti vi ammazzano. Ricaricate, avanzate, incappate nella stessa imboscata e i png utilizzato una tattica diversa, ma vi ammazzano comunque. Ricaricate, avanzate e trovate un'altro gruppo di png, magari pure amici: nessun conflitto a fuoco e via libera. La varietà è intrinseca nell'A-Life e permette di giocare e rigiocare senza stancarsi mai; in effetti, quel che a lungo andare stanca possono essere le aree di gioco, alla fin fine sempre le stesse per quanto moddabili in grafica, effetti particellari e amenità varie. Veri e propri megamod si sono concentrati proprio sull'IA (es.: mi piace sempre citate l'ambizioso M.S.O. ma mi rimane nel cuore anche il vecchio O.F.F.L.I.F.E.) per rendere il gioco più realistico, vario e imprevedibile possibile, sempre facendo i conti con i limiti del software in oggetto.
Edito: Tutto quel che ho riportato qui riguarda l'A-Life 1.0. Cosa possiamo aspettarci dalla versione 2.0? Io azzarderei: tutto quel che abbiamo già visto, consolidato, e tutto quel che avremmo dovuto vedere, ma non abbiamo visto, finalmente ottimizzato.
コメント