Intro

La puntata dell’Around the Verse di oggi è dedicata all’aggiornamento mensile su Squadron 42, con un focus sull’IA dei piloti delle navi. Ma prima di passare all’argomento centrale, ecco a voi il resoconto delle attività di sviluppo svolte nel mese di Marzo.

Intelligenza_Volo - bengal_3.jpg

Aggiornamento di Sviluppo

Con Nick Elms – Direttore Creativo

Team delle Navi

La Bengal è stato oggetto di svariati lavori.
Si tratta della nave più grande della flotta UEE, una portaerei da schieramento tattico dalle dimensioni enormi. Al momento, la nave si trova nella fase di definizione dei dettagli degli interni, tra hangar, alloggi dell’equipaggio ed altre sezioni. Durante i test di gioco, tuttavia, gli sviluppatori si sono accorti che spostarsi tra una zona ed un’altra del vascello poteva rivelarsi frustrante, date le sue dimensioni. Per questo motivo, è stato implementato un sistema di ascensori ed una monorotaia per semplificare i movimenti all’interno della nave.
Per questi lavori è stato usato lo stesso approccio già adoperato per la stazione di Shubin, anch’essa dotata di un meccanismo a monorotaia per lo spostamento degli addetti ai lavori.

Intelligenza_Volo - bengal_1.jpg

Riguardo invece la flotta Vanduul, continua lo sviluppo delle navi di questa razza aliena, nonché dei loro componenti. Il focus di Marzo sono stati i velivoli leggeri dei Vanduul, ma parte delle mansioni svolte ha riguardato anche la creazione del design associato alle torrette delle loro navi ammiraglie.
Ciascuna di queste è stata realizzata usando dei temi spiccatamente alieni, ma con movimenti familiari, come quelli dello sbocciare di un fiore. In aggiunta, l’estetica di questi componenti è stata progettata in maniera tale da integrarsi organicamente con il resto del velivolo, così da creare un look coerente ma al tempo stesso distintivo. Questo ultimo aspetto rivestirà particolarmente importanza ai fini di gameplay, dato che alcune missioni di Squadron 42 richiederanno di distruggere proprio tali torrette.

Intelligenza_Volo - bengal_6.jpg

Per rimanere nell’ambito delle flotte aliene, questo mese il team di sviluppo si è anche occupato di definire gli elementi estetici dei velivoli Xi’an.
Il loro approccio di design è sostanzialmente differente da quello delle altre razze, come ci si potrebbe aspettare da un’antica specie di veleggiatori tra le stelle. Molti concetti, come quello di spazio, tempo, gravità ed utilità nella mentalità Xi’an hanno significati e sfumature diverse. Il design dei loro vascelli serve proprio a ribadire questa differenza di fondo.

Intelligenza_Volo - bengal_7.jpg

Team delle Risorse Sceniche

Nel mese di Marzo, gli sviluppatori sono stati impegnati a creare una serie di oggetti che faranno la loro comparsa negli hangar del gioco: dalle luci alle casse, fino al cibo.
Per quanto riguarda lo sviluppo di quest’ultimo, il team ha adottato delle soluzioni procedurali per realizzare una vasta gamma di alimenti, conferendo agli stessi cibi anche una certa variabilità. Questo approccio permette di unire facilità e rapidità di creazione, rispettando al contempo gli elevati standard qualitativi di Squadron 42 e le metriche delle animazioni.

Intelligenza_Volo - bengal_9.jpg

Team delle Armi

Il team è stato impegnato a revisionare e migliorare l’aspetto dei proiettili energetici delle armi laser delle navi. L’intento è di realizzare degli elementi dotati di una maggiore visibilità e spessore grafico di quelli attualmente esistenti nel ‘Verse, così da migliorarne l’usufruibilità e spettacolarità.

Team delle Animazioni

Gli sviluppatori hanno ampliato il corredo delle animazioni e delle mosse riguardanti gli abbattimenti silenziosi in mischia, con e senza arma.

Team Grafico

Sono stati aggiornati e migliorati gli shader riguardanti la pelle dei personaggi. Questa nuova versione permette di raggiungere dei livelli di realismo ben superiori a quelle precedenti. Accoppiata con l’interpretazione degli attori di Squadron 42, realizzerà un’esperienza di gioco senza pari.

Intelligenza_Volo - bengal_10.jpg

IA di Volo

Con Niklas Munck – Produttore Associato
Andrea Carbone – Programmatore IA
Benjamin Anders – Designer di Sistema
Robbie Elms – Designer
Francesco Roccucci – Capo Programmatore IA

Il sistema della Sussunzione su cui è basata l’IA dei piloti sarà estremamente versatile e potente.
L’intenzione è di realizzare una serie di elementi che permettano di stabilire svariate sfaccettature del “carattere” di ogni pilota, nonché delle sue capacità di volo. Si andrà dall’abile veterano dal carattere irruento, che si butterà a capofitto in ogni situazione, fino al pilota inesperto, che potrebbe compiere errori o mosse stupide.
Un banco di prova delle capacità di questo nuovo sistema è stato fornito durante il Vertical Slice di Dicembre, quando venne messa in scena la “battaglia campale” tra svariate navi ed il giocatore. I risultati furono promettenti, ma per poter applicare quelle stesse funzionalità al PU e Star Citizen, bisognerà prima convertire tutte le risorse esistenti. Questo processo è attualmente in atto e parte dei suoi effetti sarà visibile nello stesso aggiornamento 3.1, di prossima uscita.

Intelligenza_Volo - sussunzione_1.jpg

Una delle novità più importanti di questo sistema è costituta dal fatto che la logica di volo non è più associata alle navi, come in passato, bensì ai personaggi non giocanti che le piloteranno.
Gli NPC presenti a bordo non saranno più dei manichini statici, ma controlleranno fisicamente il velivolo, al pari del giocatore, gestendone i vari componenti ed equipaggiamenti. Che si tratti del pilota, di un artigliere o di un operatore di una postazione tecnica, ciascuno di essi sarà in grado di interagire con gli elementi di bordo.
Parte degli sforzi attuali, che però non rientreranno tra i contenuti dell’aggiornamento 3.1, è dedicata alla differenziazione del comportamento dell’IA sulla base del vascello su cui essa si troverà. Ciò richiederà di sviluppare delle funzioni differenti in base al ruolo ed alle dimensioni del mezzo. Un NPC al comando di una Starfarer non potrà combattere usando lo stesso approccio adottato dal pilota di una Gladius.

Intelligenza_Volo - sussunzione_6.jpg

In generale, il comportamento di un’IA sarà dinamico e dipenderà dal contesto in cui si troverà e dall’azione in corso, così da aumentare la sensazione di realismo. Ma all’occorrenza, sarà anche possibile gestire le sue azioni in maniera pre-scriptata, cosa che tornerà estremamente utile in alcune missioni o durante la campagna giocatore singolo.
Nella maggior parte dei casi, però, gli NPC si limiteranno a reagire agli impulsi esterni, come la presenza del giocatore, di detriti o altre navi. All’interno della Sussunzione sono stati creati vari loop comportamentali che gestiranno la risposta dell’IA a questi eventi, in funzione anche del suo carattere e della sua fazione di appartenenza. Essi sono stati studiati in maniera tale da poter essere continuamente arricchiti ed ampliati con nuove azioni. Così da permettere agli NPC di tenere il passo con le novità di gameplay che verranno introdotte in futuro.

Intelligenza_Volo - sussunzione_2.jpg

Ad esempio, il combattimento al momento è strutturato in tre fasi distinte: acquisizione ed avvicinamento al bersaglio, ingaggio, disingaggio.
Durante il primo step, lo NPC verificherà tramite il radar la presenza del giocatore o di navi ostili nei paraggi. Nel caso in cui venga identificato un obiettivo, allora richiederà al sistema di gioco le sue coordinate ed identificherà la traiettoria di approccio migliore, in funzione della loro posizione relativa. Per far questo, l’IA determinerà da quale direzione sarà meglio attaccare il bersaglio in maniera tale da avere un vantaggio tattico, tenendo conto anche della presenza di eventuali ostacoli sul suo cammino. Dopo la computazione di questo percorso e l’avvicinamento all’obiettivo, avviene la fase di ingaggio, durante la quale l’IA apre il fuoco.
Questo loop comprende svariate funzioni necessarie per calcolare la traiettoria di tiro, tenere sotto controllo i parametri della proprio nave e di quella avversaria e stabilire quali manovre effettuare. Essere consapevoli delle condizioni delle due navi, dei loro scudi ed equipaggiamenti è un elemento importante dell’albero decisionale dell’IA. In base a questi elementi, essa può stabilire se sia meglio continuare ad attaccare il bersaglio, oppure ritirarsi il tempo sufficiente per far ricaricare i propri scudi o far raffreddare le armi. La strategia di attacco varierà anche in funzione dei movimenti compiuti dal giocatore. Inoltre, l’IA potrà anche decidere di allontanarsi temporaneamente dal bersaglio per aumentare la loro distanza relativa ed evitare possibili collisioni. Tutti questi elementi terranno ovviamente conto anche del carattere del pilota: uno esperto cercherà di effettuare manovre efficienti, mentre un Vanduul sarà estremamente aggressivo e potrebbe cercare di speronare il bersaglio. Un pirata, invece, potrebbe evitare di utilizzare i missili per non danneggiare eccessivamente la nave ed il bottino.
L’ultima fase del combattimento è quella del disingaggio. Essa serve agli sviluppatori per allentare la pressione sulla nave attaccata, fornendole così la possibilità di rispondere al fuoco a sua volta. Ovviamente, dal momento che questo sistema è stato realizzato in maniera tale da poter ricevere aggiornamenti incrementali, in futuro la varietà di comportamenti ed azioni in combattimento dell’IA verrà ulteriormente incrementata.

Intelligenza_Volo - sussunzione_3.jpg

Il livello di complessità e potenzialità di questo sistema cresce drasticamente quando si vanno a considerare velivoli multiequipaggio o situazioni di gioco coordinato.
Qualora siano presenti più personaggi e/o NPC, a prescindere che si trovino all’interno della stessa nave o in mezzi differenti, le variabili in gioco aumentano sensibilmente. L’IA al comando di una postazione specifica dovrà effettuare le sue mansioni, tenendo al contempo sotto controllo eventuali ordini o necessità del resto dell’equipaggio. In caso di abbordaggio, potrebbe abbandonare la propria postazione per rispondere agli aggressori. Oppure potrebbe recarsi in uno scompartimento del vascello per riparare qualcosa. Questo albero di relazioni, e quindi di possibili azioni, sarà tanto più ampio e complesso, quanto più sarà elevato il numero degli NPC presenti a bordo di quel velivolo. Perché essi dovranno cercare di coordinarsi il più possibile. Per cui un personaggio eviterà di andare a sistemare un componente danneggiato, se qualcun altro ci starà già lavorando sopra. Se invece un personaggio verrà ferito durante un combattimento con degli assaltatori, l’IA potrebbe prendere in considerazione la possibilità di aiutarlo, piuttosto che continuare a rispondere al fuoco. Allo stesso modo, se un NPC è stato incaricato di scortare una nave, questo cercherà di rimanerle vicino, ingaggiando qualsiasi ostile che cercherà di attaccarla e via dicendo.
Un altro elemento di ulteriore spessore saranno poi i comandi. Se un giocatore impartirà un ordine ad un NPC, questo potrebbe cercare di seguirlo al massimo delle sue capacità. Oppure potrebbe ignorarlo, qualora il loro rapporto non sia sufficiente buono o preferisca dare la priorità alla propria sopravvivenza. Sono tutti parametri che influenzeranno il comportamento dell’IA, aumentandone la flessibilità e le possibilità.

Intelligenza_Volo - sussunzione_4.jpg

Per quanto riguarda invece più specificatamente i parametri dei personaggi, queste sono divise in tre categorie: abilità, tratti e morale.
Le abilità descrivono la capacità di un NPC di compiere determinate azioni, che si tratti di pilotare un velivolo, usare una torretta, riparare un componente o sparare ad un nemico. Per il momento sono state implementate in gioco soltanto le abilità relative alle navi, ma in futuro verranno aggiunte anche quelle correlate alle carriere dell’universo, al combattimento FPS e via dicendo. Ogni NPC partirà con un certo set di abilità, che potranno essere arricchite e/o affinate nel tempo. Questo vuol dire che l’IA sarà in grado di acquisire nuove capacità e/o di migliorare quelle già in suo possesso. Quest’ultimo progresso verrà descritto tramite un sistema di livelli, per cui più alto sarà il livello di un NPC in una certa mansione, più bravo lui sarà in quel campo e più elevato sarà il numero di azioni che potrà compiere. Ad esempio, se un pilota acquisirà una sempre maggiore dimestichezza con le manovre di combattimento, il suo repertorio si amplierà di conseguenza.
I tratti, invece, sono peculiarità uniche con cui gli NPC “nasceranno” e che non cambieranno per tutto il corso della loro vita, a meno di casi eccezionali. Esse saranno associate al loro carattere ed influenzeranno il loro modo di agire. Ad esempio, un pilota rissoso potrebbe avere il grilletto facile, mentre uno pauroso potrebbe avere un’elevata tendenza a non esporsi al fuoco nemico od a fuggire dal campo di battaglia.
Infine, il comportamento di un’IA sarà influenzato anche dal morale che essa avrà. Più sarà basso, più quello NPC tenderà a combattere in maniera difensiva, fino a quando non abbandonerà del tutto il campo di battaglia. Questo parametro verrà influenzato da svariati elementi, come la morte di un compagno, condizioni di pesante svantaggio in combattimento e necessità fisiche. Cose come la fame, la sete e l’igiene, se trascurate, potranno ridurre il morale di un personaggio. Alcuni NPC però potrebbero disporre di tratti che li renderanno meno soggetti a questa perdita di morale. Oppure potrebbero avere delle caratteristiche che aumenteranno naturalmente il morale dei personaggi circostanti, come ad esempio il tratto “Leader”.

Per facilitare il lavoro degli sviluppatori, nell’editor dei personaggi è stato introdotto uno strumento definito editor dei profili dei personaggi. Esso servirà a stabilire le abilità ed i tratti dei nuovi NPC, che potranno quindi essere copiati a partire da formati prestabiliti, oppure modificati ad hoc sulla base di risorse preesistenti.

Intelligenza_Volo - sussunzione_5.jpg

Articolo originale disponibile presso le Roberts Space Industries.