Intro

La puntata di questa settimana dell’Around the Verse è incentrata sull’aggiornamento mensile sullo sviluppo di Squadron 42. Argomento dell’episodio è la creazione e l’implementazione nel gioco del sistema dell’IA, la Sussunzione, le cui capacità sono esemplificate dal comportamento dell’equipaggio NPC della Idris UEES Stanton.

 

Aggiornamenti di Sviluppo

Phil Meller – Designer Capo di Squadron 42

Buon parte degli ultimi lavori svolti per Squadron 42 riguardano l’ottimizzazione del gioco per il miglioramento delle prestazioni. La ragione dietro questi lavori risiede nella necessità di velocizzare il rilascio degli aggiornamenti del PU. Tuttavia, dal momento che SC e SQ42 condividono buona parte del sistema e delle risorse di gioco, queste modifiche verranno inserite anche nella campagna giocatore singolo.

Il principale ambito di interesse di queste ottimizzazioni riguarda le animazioni e gli aggiornamenti dello scheletro dei personaggi. Spesso, gli oggetti del ‘Verse vengono aggiornati anche quando non ve ne è la necessità, oppure quando non devono essere riprodotte nuove animazioni. Ciò costituisce per il motore di gioco un inutile peso aggiuntivo di cui gli sviluppatori intendono liberarsi.

A questo scopo, è stato sviluppato un nuovo strumento di debug della renderizzazione che permette di verificare lo stato di ogni entità del gioco e controllare gli aggiornamenti che queste ricevono. Grazie ad esso, è possibile stabilire con esattezza quando personaggi ed oggetti ricevono aggiornamenti ‘invisibili’. Questi solitamente sono costituiti da eventi che non determinano la riproduzione di un’animazione. Oppure che si verificano quando l’elemento di interesse non è visibile al giocatore. Tra di essi spesso si annidano aggiornamenti ridondanti che non apportano nulla di utile al gioco, che sono stati quindi rimossi o limitati per evitare sprechi di risorse.

Idris_Vivente - aggiornamenti_1.jpg

L’aspetto negativo di questi interventi è che, in alcuni casi, si è riscontrata la rottura di determinate animazioni. Ciò ha riguardato in particolar modo le animazioni che dovevano essere riprodotte fuori dalla sfera visiva del giocatore. Il team di QA è stato costretto ad intervenire manualmente per correggere tali errori.

Oltre a questo, le attività di ottimizzazione attualmente in corso sono incentrate sul prosieguo della conversione dei vecchi componenti al nuovo sistema Oggetti 2.0, che sfrutta il nuovo meccanismo degli aggiornamenti di gruppo. Questo processo è stato sfruttato anche per rimuovere dai vecchi oggetti qualsiasi porzione di codice ridondante, inutile o lenta.

Parallelamente a tali mansioni, continua lo sviluppo del sistema di Streaming dei Contenitori Oggetti.
Esso servirà a permettere la riproduzione di un maggior numero di contenuti all’interno dei sistemi solari, senza però incrementare l’utilizzo della RAM. Quando i giocatori si sposteranno in altre zone, questo meccanismo caricherà in memoria i dati correlati ed eliminerà quelli non più utili. Il tutto avverrà senza blocchi o schermate di caricamento.
I compiti attuali consistono nell’assicurarsi che il processo di caricamento delle entità non causi problemi o conflitti tra i thread di gioco. Questo vuol dire che ogni singolo elemento, dalle armi ai motori, fino anche ai protocolli di aggiornamento di rete, deve essere caricato in maniera sicura e senza blocchi o interruzioni. Una volta che questi lavori saranno stati terminati, il team inizierà ad occuparsi dei meccanismi necessari per caricare in background in maniera sicura interi Contenitori Oggetti.

Idris_Vivente - aggiornamenti_2.jpg

Riguardo il mobiGlas, Squadron 42 utilizzerà una versione alternativa, di stampo militare, del dispositivo di gestione personale. Questa variante disporrà di una UI ed elementi grafici differenti, ispirati al mondo militare reale ed a quello sci-fi, che organizzeranno le informazioni in maniera diversa e migliore. In particolar modo, la struttura del mobiGlas di SQ42 è stata studiata per rendere più evidenti alcuni dati e semplificare l’utilizzo della Mappa Stellare.

Continuano anche i lavori sui contenuti di gioco, più specificatamente quelli relativi alla Idris su cui il giocatore passerà buona parte del suo tempo.
Dal momento che SQ42 avrà un grosso focus cinematografico, il team è impegnato a migliorare la qualità delle animazioni degli NPC, nonché a svilupparne di nuove. Gli ultimi interventi in questo campo riguardano la lavorazione dei movimenti dell’ufficiale armi navali della Idris. Gli sviluppatori hanno ricontrollato tutti i dati ottenuti dalle riprese di perfomance capture per associarli a varie macchine di stato, così da implementare le animazioni correlate alle pose più comuni del personaggio. Quelle già integrate, invece, sono state portate al livello qualitativo standard del gioco.

Sempre rimanendo in questo ambito, sono in sviluppo nuove animazioni per le azioni di Ispezione e trasporto delle armi del giocatore.

Idris_Vivente - aggiornamenti_3.jpg

Inoltre, il team sta continuando ad estrapolare i dati provenienti dalle riprese di mocap per realizzare delle animazioni di movimento uniche per i vari personaggi di SQ42.
Per far questo, gli artisti devono prima assemblare i set di movimento, ripulirli e collegarli agli NPC a cui si riferiscono. In questa fase vengono definiti i loop di animazione, ovvero i cicli di ripetizione dei movimenti. Lo scopo è di realizzare cicli il più lunghi possibile. Così da mantenere una certa variabilità nelle animazioni, senza però andare a pesare troppo sul motore di gioco. Successivamente, le risorse vengono esportate nel motore di gioco e le animazioni vengono ulteriormente rifinite.

Sul fronte dell’IA, sono stati apportati dei miglioramenti agli aggiornamenti di stabilità della Sussunzione e, in generale, al flusso delle attività di gruppo degli NPC. Grazie ed essi è stato possibile configurare scene complicate coinvolgenti più IA, come nel caso delle discussioni in sala mensa.

Idris_Vivente - aggiornamenti_4.jpg

In aggiunta a questo, continuano le mansioni di implementazione delle routine dei personaggi di Squadron 42.
Particolare attenzione è stata data al quartiermastro della Idris Stanton, Auguste Beck, che adesso dispone di flusso di azioni più credibile. Dal momento che il suo compito consiste nel verificare lo stato delle merci del magazzino e la loro distribuzione, sono state implementate svariate logiche di comportamento che le permetteranno di girare tra le casse e verificare la quantità dei materiali presenti a bordo, oltre che discutere con altre IA.

Infine, il team sta integrando le tecnologie sviluppate per il Vertical Slice di Dicembre 2017, allo scopo di inserire nuove attività e momenti di vita quotidiana a bordo della Stanton. Queste serviranno da inframezzo alle missioni del gioco.

Idris_Vivente - aggiornamenti_5.jpg

Idris Vivente

Con Declan Troughton –Senior Designer
        Francesco Roccucci – Capo Programmatore dell’IA
        Daniel Baker – Designer 
        Ross Wilding – Senior Designer

La UEE Stanton, la Idris su cui sarà ambientata la campagna giocatore singolo di Squadron 42, sarà un ambiente vivo e reattivo.
Essa è stata pensata in maniera tale da fornire un contesto di gioco realistico, abitato da personaggi aventi personalità, storie e mansioni differenti. Gli NPC presenti a bordo della Stanton sono caratterizzati in maniera unica e disporranno di routine differenti, ciascuna calibrata sul ruolo specifico e persino sui turni di lavoro di quel personaggio. Per cui in alcuni capitoli del gioco sarà possibile vedere una determinata IA impegnata a compiere il suo dovere da qualche parte nella nave, mentre nel capitolo successivo potrebbe aver concluso il suo turno e starà dormendo, oppure sarà in sala mensa a chiacchierare con altri NPC.
Queste routine copriranno l’intero arco delle 24 ore giornaliere e cambieranno di giorno in giorno, per cui tutte le IA saranno sempre presenti a bordo della Stanton e non scompariranno una volta terminato il loro compito.

Ma il fatto che ogni NPC possieda un proprio carattere ed un proprio modo di fare, vuole anche dire che personaggi differenti risponderanno in maniera diversa agli eventi del gioco. Così come anche alla presenza ed alle azioni del giocatore, sia durante le missioni che nei momenti di pausa. Pertanto quando un NPC incrocerà un giocatore, egli potrà salutarlo o meno a seconda del suo rapporto con lui e delle esperienze pregresse. Gli avvenimenti in gioco, l’atteggiamento che gli utenti terranno nei confronti dell’equipaggio della Idris potrebbero cambiare drasticamente la maniera in cui gli NPC vi considereranno a vostra volta. In alcuni casi, ciò potrebbe persino portare all’attivazione di quest secondarie non altrimenti effettuabili.

Idris_Vivente - sussunzione_1.jpg

In termini più ampi, l’intero sistema della Sussunzione è stato studiato in maniera tale da creare una simulazione il più possibile realistica dei comportamenti che gli NPC potrebbero avere in risposta a svariati elementi.
Ad esempio, un’IA fuori turno potrebbe decidere di andare a giocare ad un arcade se sarà annoiata, oppure potrebbe andare a mangiare se avrà fame. Un soldato che sarà di turno, invece, potrebbe andare a sedersi al corpo di guardia. Oppure potrebbe andare a fare allenamento fisico o pratica di tiro se questo sarà già occupato.
Per rendere possibile tutto questo, è stato necessario sviluppare una serie di strumenti e funzionalità che permettessero ai designer di creare i comportamenti necessari. Così che gli NPC presenti nella sala mensa non si limitassero soltanto a mangiare, ma potessero anche chiacchierare tra loro, per esempio.

Oltre a questo, poi, sono stati sviluppati gli strumenti più specifici per le missioni di gioco.
Contrariamente ai momenti di inframezzo, in queste occasioni spesso è importante che l’azione segua un corso prestabilito. Per cui era fondamentale che i designer avessero anche la capacità di ordinare all’IA di compiere azioni precise. Oppure di gestire in una certa maniera la telecamera, così da guidare meglio la narrazione e realizzare dei filmati altamente cinematografici. Senza però togliere del tutto al giocatore il controllo sugli eventi.

Inoltre, ci sono casi in cui è necessario manipolare il comportamento dell’IA, senza però assegnargli delle azioni predefinite. Queste ‘istruzioni’ generiche vengono definite incarichi e servono a variare la logica degli NPC in circostanze particolari, come durante le missioni.
Ad esempio, durante un certo combattimento un designer potrebbe dare ad un’IA l’incarico di proteggere il giocatore, per cui potrebbe rispondere aggressivamente a qualsiasi attacco al velivolo dell’utente. Oppure si potrebbe dire agli NPC di guarda sul ponte della Stanton di recarsi all’hangar per fare da scorta ad un gruppo di prigionieri in arrivo. In questo modo, i designer potranno gestire meglio l’azione e le scene che vedrà il giocatore, per poi dire alle IA di tornare al loro posto.

Idris_Vivente - sussunzione_6.jpg

Per poter ottenere questi risultati, è stato necessario rifattorizzare buona parte degli NPC già sviluppati per la Stanton. Dagli ingegneri ai soldati, agli ufficiali fino anche agli addetti alle pulizie. Di ciascuno di essi è stata completamente rivista la routine di lavoro e la logica di comportamento, così da introdurre un’elevata variabilità nelle mansioni che compiranno.
Per fare un esempio della complessità e delle potenzialità attuali di questi sistemi, si può prendere come esempio l’evenienza in cui a bordo della Stanton si rompa qualcosa. In questi casi, il primo ad intervenire sarà il capo ingegnere, che una volta ricevuta la segnalazione si recherà sul posto per esaminare il danno. Completata l’analisi preliminare, egli chiamerà un meccanico che si preoccuperà di effettuare le dovute riparazioni.

Grazie alla Sussunzione, tutto questo avverrà in maniera automatica, senza eventi prescriptati. Le azioni delle IA sono divise grosso modo in due filoni principali: le attività della Sussunzione e le sotto-attività. Le prime definiscono il ruolo e la logica dei personaggi, mentre le seconde stabiliscono le azioni che quegli NPC potranno compiere: dalle riparazioni, al chiamare altre IA e via dicendo.

Oltre a questo, gli NPC avranno anche la capacità di reagire spontaneamente alle azioni del giocatore.
Se ad esempio un utente si fermerà vicino ai motori della nave e li fisserà per un certo lasso di tempo, un meccanico presente nelle vicinanze potrebbe intervenire e spiegare il loro meccanismo di funzionamento. Ciò sarà reso possibile dal fatto che la Sussunzione avrà accesso a svariate informazioni legate al giocatore. Come le linee di raycast, che permettono al motore di gioco di identificare il punto o l’oggetto che l’utente starà guardando, dandogli la possibilità di interagire con esso.
In altri casi, invece, gli NPC potrebbero reagire ad attributi particolari dell’avatar del giocatore. Se ad esempio sarà passato parecchio tempo dall’ultima volta che il vostro avatar si sarà fatto una doccia, qualche IA potrebbe farvelo notare. Tutti questi accorgimenti permetteranno di variare l’esperienza di gioco con eventi ed attività più o meno casuali e, si spera, non ripetitivi.

Idris_Vivente - sussunzione_7.jpg

Ma più in generale, gli NPC saranno consapevoli dell’ambiente circostante e di ciò che starà accadendo al suo interno, o degli oggetti che vi saranno presenti.
Una tecnologia fondamentale per questo sistema logico è quella che va sotto l’acronimo di SPOIL, ovvero Systemic Point of Interest Look. Lo Sguardo di Punto di Interesse Sistemico è un sottosistema della Sussunzione che permette all’IA di tenere sotto controllo tutti quegli elementi che la potrebbero interessare. Un meccanico potrebbe essere particolarmente attento alle condizioni dei componenti di una stanza, mentre un pilota di caccia in pattugliamento potrebbe essere interessato a qualsiasi segnale sconosciuto venga rilevato dal radar. Per cui NPC differenti reagiranno in maniera diversa anche agli ‘stimoli’ esterni che riceveranno dall’ambientazione in cui si troveranno.
Inoltre, questa tecnologia servirà anche a variare i set di animazioni che verranno riprodotte dall’IA. Dal momento che SPOIL sarà collegato anche al movimento dei personaggi, la vista di un certo oggetto potrebbe innescare animazioni particolari. Ad esempio, un ufficiale potrebbe grattarsi la testa mentre passerà davanti ad un monitor, per poi dargli un’occhiata fugace. Un capitano sul ponte di comando, invece, potrebbe intenzionalmente passare di postazione in postazione per controllare lo stato delle cose, dando ordini ai vari sottufficiali presenti. Ciò aiuterà ad aumentare la variabilità dei comportamenti degli NPC, oltre che il loro realismo, senza l’intervento continuo degli sviluppatori.

Idris_Vivente - sussunzione_8.jpg

SPOIL servirà anche per realizzare il meccanismo delle wild lines, o frasi in libertà.
Come già anticipato, quando un giocatore passerà vicino ad un personaggio, questo potrebbe interrompere l’azione in corso e rivolgersi verso di lui. L’attivazione di questi eventi dipenderà dal rapporto che avrete con lo NPC in questione, nonché dal contesto in cui vi troverete. Nel caso in cui però ciò accada, l’IA potrebbe limitarsi a scambiare qualche parola con voi, oppure potrebbe avviare una vera e propria conversazione.
Questi dialoghi solitamente non saranno prescriptati e verranno attuati dal motore di gioco in maniera procedurale e semicasuale, da cui il nome di “frasi in libertà”. Ogni NPC avrà un proprio repertorio di battute che verranno riprodotte in funzione dell’andamento della campagna di gioco o dalla situazione in cui il giocatore li incontrerà. Si andrà dai semplici saluti, fino ai commenti sull’esito dell’ultima missione.

Idris_Vivente - sussunzione_9.jpg

Sebbene tutte queste funzionalità aiuteranno a realizzare un’esperienza di gioco varia, realistica ed altamente coinvolgente, il numero di personaggi inizialmente previsto per la UEE Stanton era troppo ridotto.
I programmi originali prevedevano un equipaggio che avrebbe annoverato dalle 30 alle 50 persone. Con questi numeri, però, c’era il rischio che la nave risultasse troppo vuota e deserta, soprattutto nei momenti di intermezzo tra una missione e l’altra. Di conseguenza, si è scelto di portare l’equipaggio ad un totale di 81 persone, giocatore incluso.

Nel complesso, la Sussunzione permetterà di ottenere un’esperienza di gioco appagante, variegata e coinvolgente. Ogni giocatore potrà gestire in maniera differente la propria campagna e l’interazione con gli NPC del gioco, con conseguente diverse.
Coloro che sono interessati a vivere la storia così come è stata studiata dagli sceneggiatori, potranno godersi il flusso degli eventi senza troppi problemi. Quanti invece vorranno provare ad influenzarla, potranno farlo e vedranno il gioco reagire di conseguenza. Il sistema che regola il comportamento delle IA è stato studiato in maniera tale da essere il più robusto e versatile possibile, per cui si adeguerà alla situazione e la asseconderà senza troppi problemi.

Idris_Vivente - sussunzione_10.jpg

Articolo originale disponibile presso le Roberts Space Industries.