Nuovo appuntamento con l’Around the Verse dagli studi di Austin, con una puntata dedicata alla prima parte del processo di conversione delle navi al Sistema Oggetti 2.0!


  

AGGIORNAMENTO DAGLI STUDI – AUSTIN

Team di Design

·        Stanno lavorando alle macchine di stato dei primi NPC che verranno implementati in gioco.

o   Le macchine di stato sono sottosistemi che regolano l’organizzazione delle risorse di animazione e la loro gestione.

o   Le macchine di stato permettono di regolare il comportamento degli NPC in relazione agli eventi in gioco (es: le azioni del giocatore), oltre a dire al sistema quando e dove si dovranno realizzare le transizioni da un’animazione all’altra.

·        Stanno sviluppando il sistema dei radiofari di navigazione, che permetteranno ai giocatori di creare le proprie rotte di volo all’interno di un sistema solare o di definire dei percorsi particolari sulla terraferma.

o   Questi radiofari potranno essere sfruttati come punti di riferimento per il volo quantistico.

o   Verranno lanciati utilizzando i sistemi missilistici, ma al contrario dei missili non percorreranno lunghe distanze prima di fermarsi e diventare operativi.

o   Si tratta di risorse temporanee che hanno un tempo di vita fisso e limitato, cosa che costringerà i giocatori ad effettuare manutenzione costante (e costosa) per rifornirli di energia/ripararli ed evitare che le rotte da loro tracciate spariscano.

o   Sarà possibile anche condividere questi radiofari con altri giocatori, che li potranno utilizzare a loro volta.

o   Tuttavia, sarà anche possibile hackerare i radiofari altrui per utilizzarli senza permesso.

o   Trattandosi di elementi fisici, potranno anche essere distrutti.

o   I radiofari ed i meccanismi di gioco loro associati permetteranno di realizzare vari gameplay: ad esempio, sarà possibile vendere le coordinate del radiofaro, hackerarlo o chiamare dei pirati per organizzare un agguato, oppure semplicemente distruggerlo per bloccare la rotta.

·        Gli uffici di Derby stanno rifinendo Miles Eckhart ed altri NPC che assegneranno le nuove missioni della 3.0.

o   Al momento stanno terminando la sua macchina degli stati e lo stanno implementando nel Sistema della Sussunzione.

o   Miles potrà essere sbloccato guadagnando reputazione tramite altre quest e fornirà ai giocatori diverse tipologie di missioni.

Team PU

·        Tony Zurovec ha completato la conversione della tecnologia di Sussunzione all’ambiente Linux per integrarla nel sistema di backend.

·        Ha anche completato il servizio di shopping, che deve essere integrato nel gioco.

·        È in corso la revisione e la creazione di nuovi scenari missioni per la 3.0.

Team Artistico delle Navi

·        Josh Coons è stato impegnato con la creazione dei Livelli di Dettaglio (LOD) della Cutlass Black, per ottimizzare le prestazioni di rendering in base alla distanza dall’osservatore. Questo processo è laborioso, dato che i LOD vengono creati in gran parte a mano.

Team Ingegneristico

·        Stanno supportando la creazione ed implementazione del servizio di shopping.

·        Gli Ingegneri hanno creato un servizio di gateway della Diffusione, per permettere ai servizi esterni ed a quelli non inerenti a quest’architettura di comunicare con il gioco come se fossero dei servizi di Diffusione.

o   Continuano i lavori sull’architettura di Diffusione, che al momento sono incentrati sull’integrazione del sistema nel flusso principale di sviluppo del gioco.

·        Stanno sviluppato un nuovo strumento per la creazione di servizi tramite una semplice Interfaccia Utente (UI), che permetterà agli Ingegneri di aggiungere, rimuovere o modificare i componenti ed assegnare il controllo di gestione delle risorse. In questo modo, sarà possibile risparmiare enormi quantitativi di tempo.

o   Tramite Ooze sono state aggiunte delle estensioni specifiche per Star Citizen che conferiscono alla Diffusione un migliore accesso ai servizi di gioco.

o   Nel lungo termine, ciò permetterà di supportare funzionalità e componenti di gioco più complessi.

o   Ooze è il linguaggio di scripting scritto dall’Ingegner Server Capo, Jason Ealy, che viene utilizzato per gestire l’architettura della Diffusione.

·        Continuano i lavori sulla funzionalità di “Router Mesh”, che distribuirà i servizi su più router e creerà dei percorsi di comunicazione ridondanti tra gli altri servizi.

o   L’obiettivo di questa tecnologia è di fornire un elevato livello di disponibilità ed elevate prestazioni dei servizi.

o   In questo modo sarà ad esempio possibilità isolare i servizi a più alto utilizzo di banda da quelli che ne usano meno o dai servizi più importanti, migliorando nel complesso le prestazioni del sistema.

Team di Animazione del PU

·        Sono state terminate le animazioni per il trasporto oggetti a due mani, che includono le animazioni relative alle posture in piedi, accucciati ed in assenza di gravità.

o   In piedi, i giocatori potranno raccogliere scatole di dimensioni 25, 50 e 75cm per lato, che costituiscono la nuova metrica per le scatole.

o   In posizione accucciata, i giocatori potranno raccogliere scatole di dimensioni 25 e 50cm.

o   In assenza di gravità, i giocatori potranno raccogliere scatole di dimensioni 25, 50 e 75cm e potranno spostarle in giro nello spazio.

·        I giocatori potranno raccogliere oggetti da terra per sollevarli e sistemarli su scaffalature alte 175cm.

·        Steve Bender ha effettuato delle nuove riprese di mocap per le animazioni di inizio e fine movimento per il set di animazioni con il fucile in spalla ed ha ripreso Sandi Gardiner mentre faceva degli esercizi per le animazioni del modello femminile.

o   Inoltre, ha filmato anche una varietà di altre situazioni, come ad esempio le animazioni relative ai movimenti nei bar: ordinare e ricevere un drink, o acquistare oggetti da un negoziante.

Team di Animazione delle Navi

·        Continuano i lavori di arricchimento dell’esperienza dell’abitacolo.

·        Stanno aggiornando le posture per amalgamare le animazioni di reazione alle forze G.

o   Stanno utilizzando un filtro passa basso per rendere più fluidi i movimenti della telecamera e stanno modificando la geometria dell’abitacolo per permettere al giocatore di premere i pulsanti presenti.

·        Inoltre, stanno implementando la possibilità di inviare e ricevere comunicazioni mentre si è volo.

Team DevOps

·        Stanno ottimizzando il sistema di compilazione e pubblicazione delle build.

·        Ahmed ed il suo team hanno raccolto i feedback provenienti da tre punti della rete per compararli ai dati interni e trovare nuovi modi per migliorare le prestazioni.

Team QA

·        Stanno cercando di capire quali siano i bug su cui lavorare e quali, invece, possano essere ignorati, dal momento che le nuove tecnologie renderanno obsoleti molti dei bug riscontrati in passato.

o   In questo modo, gli sviluppatori risparmieranno tempo che, altrimenti, avrebbero rischiato di spendere a sistemare bug non più importanti.

·        I test più importanti del mese si sono concentrati sulle funzionalità di serializzazione delle risorse, i contenitori risorse multithread e la coda di trasporto di rete.

o   Continuano anche i test riguardanti le collisioni con le lune.

·        Sono iniziati i test riguardanti nuovi veicoli, navi ed oggetti FPS, come ad esempio la SMG Behring P8SC.

·        Stanno testando i nuovi sistemi della fatica e del respiro procedurale, oltre che il controllore di volo.

·        Stanno correggendo dei bug ed implementando una serie di migliorie per il launcher.

·        Stanno aiutando il team di animazione con la pulizia dei file delle riprese mocap, la loro configurazione ed implementazione ed i test dei bug dei vari editor utilizzati dalla CIG.

Team delle Relazioni con i Giocatori

·        Si stanno preparando per la 3.0 e stanno lavorando alla nuova esperienza dei giocatori, che verrà aggiornata nel sito per rispecchiare i nuovi contenuti che saranno disponibili in gioco.

·        Nelle prossime settimane infoltiranno le fila degli Evocati.

 

TURBULENT

·        Stanno riprogettando il sito RSI per consolidare l’esperienza di navigazione, aggiungere le informazioni relative ai nuovi contenuti giocabili e fornire sia ai nuovi che ai vecchi giocatori una panoramica completa di ciò che Star Citizen ha da offrire.

o   Lo stile e la struttura del nuovo sito sono stati definiti prendendo ispirazione da altri siti particolarmente interessanti, nonché dai molti contributi della comunità che hanno aiutato i nuovi giocatori ad ambientarsi nel mondo di Star Citizen.

o   Implementeranno un nuovo modulo pensato appositamente per guidare i nuovi giocatori ed insegnare loro come giocare a Star Citizen. Sarà una sorta di guida che andrà ad analizzare nel dettaglio i vari componenti del gioco, introducendo i nuovi arrivati alle moltissime possibilità di gameplay disponibili.

o   Questa porzione del sito è stata pensata per essere il più modulare possibile, così che possa essere modificata e riadattata a seconda delle esigenze, dei cambiamenti e delle nuove funzionalità che verranno introdotte in gioco con il passare del tempo.

·        Stanno per rilasciare la versione 0.3.5 dello Spectrum.

o   Una delle nuove funzionalità che saranno disponibili con la 0.3.5 sarà la possibilità di scegliere se visualizzare le discussioni in ordine cronologico o con il sistema annidato in stile Reddit, nonché di impostare la preferenza per una o l’altra modalità di visualizzazione.

o   Un’altra nuova funzionalità riguarderà lo stato di lettura delle discussioni: gli utenti potranno saltare direttamente ai messaggi che non hanno ancora letto, che saranno indicati da un’apposita icona gialla.

o   Stanno anche cambiando i tag per permettere una migliore personalizzazione ed introdurre la possibilità di aggiungerli tra i segnalibri.

o   Stanno migliorando la funzionalità di ricerca per permettere di filtrare le discussioni ed i messaggi in base all’autore o al ruolo.

§  La funzionalità di ricerca sarà disponibile anche da mobile.

·        La versione 0.3.6 introdurrà una revisione dei mini profili, che, dopo il rilascio di nuovi sottosistemi come quello degli amici, offriranno anche delle nuove possibilità di interazione.

o   Inoltre, con la 0.3.6 sarà possibile assegnare e personalizzare i ruoli all’interno delle org, anche attraverso i mini profili.

o   Tra le altre funzionalità che verranno implementate con questo aggiornamento, ci saranno nuove possibilità di formattazione.

o   Il rilascio della funzionalità di messaggistica di gruppo è attualmente previsto per la versione 0.3.6, ma potrebbe essere rimandato alla 0.3.7.

·        Stanno ancora lavorando all’integrazione in gioco di Spectrum ed al servizio VOIP.

 

CONVERSIONE DELLE NAVI AL SISTEMA OGGETTI 2.0 – PARTE I

TLDR

·        Per supportare le funzionalità a lungo termine previste per il gioco, dovevano convertire tutte le navi attualmente disponibili al nuovo Sistema Oggetti 2.0.

o   Per far questo, è stato necessario aggiornare i componenti perché potessero essere inseriti nella nuova architettura e fossero compatibili con il nuovo Sistema di Interazione.

·        Queste mansioni non coinvolgono soltanto il dipartimento Ingegneristico, ma ogni singolo team di sviluppo della CIG.

·        La vecchia infrastruttura 1.0 non era malaccio ai tempi del suo rilascio, ma con l’arrivo delle nuove funzionalità di gioco, che presentano un livello di complessità elevato, avrebbero rischiato di ritrovarsi in una situazione estremamente caotica con tantissimi sistemi logici diversi ed una varietà di elementi di raccordo e controllo, i quali avrebbero richiesto un lavoro di manutenzione immane e sarebbero stati un incubo da modificare e migliorare in caso di necessità.

·        Di contro, il Sistema Oggetti 2.0 permetterà un approccio più modulare ed i componenti andranno ad influenzare il gameplay in maniera logica ed intuitiva: ad esempio, dei serbatoi di carburante quantistico più grandi permetteranno di trasportare più carburante e, quindi, viaggiare per distanze maggiori prima di doversi fermare a fare rifornimento.

·        Il nuovo Sistema di Interazione collega le interazioni disponibili in un certo ambito con degli elementi specifici (pulsanti, schermi, ecc), introducendo così una metodologia controllo più logica e contestuale.

·        In previsione di questa conversione, ogni team sta ricontrollando tutte le animazioni, le texture, le versioni danneggiate dei materiali, gli UV2 e persino le risorse sceniche.

·        Un esempio delle potenzialità del nuovo Sistema Oggetti 2.0 è costituito dalle luci: in passato, le luci erano semplicemente collegate a dei punti di Trasporto Oggetti, senza che il Sistema Oggetti 1.0 fosse consapevole della loro presenza. Ciò poteva portare a situazioni in cui la luce era ancora visibile anche quando il componente della nave su cui era agganciato era stato distrutto o perduto. Adesso, il gestore di controllo è consapevole della loro presenza e le luci verranno gestite ed alimentate direttamente dalla nave stessa.

o   Inoltre, grazie anche al nuovo sistema delle Entità Gruppo Luce, adesso hanno un nuovo componente, chiamato Controllore delle Luci, che regolerà l’assegnazione delle varie luci ai sottosistemi a cui sono agganciate, permettendo così, ad esempio, di accenderle e spegnerle in base alla pressione di uno o più pulsanti.

·        Ogni nave dovrà essere completamente convertita al nuovo Sistema Oggetti 2.0.

o   I giocatori saranno in grado di controllare anche animazioni che in passato avvenivano in maniera automatica.

o   Un esempio è l’animazione di ingresso nelle astronavi: con il Sistema Oggetti 2.0 sarà possibile controllare in maniera indipendente l’estensione della scaletta, l’apertura dell’abitacolo ed il comando di salita a bordo.

o   In alcuni casi hanno dovuto modificare le vecchie risorse, aggiornandone il codice, prima delle loro implementazione nel Sistema Oggetti 2.0, mentre in altri hanno dovuto modificare le risorse stesse per adattarle al nuovo codice.

·        Devono conservare le modalità di gameplay tanto amate dalla comunità attraverso il duro lavoro e le operazioni di bilanciamento portate avanti dai designer.

·        Il Sistema Oggetti 2.0 introdurrà nuove funzionalità per le navi multiequipaggio.

·        Grazie a Sistema Oggetti 2.0 sarà possibile aggiornare lo stato in gioco sia dei singoli oggetti, che quello di un intero gruppo di oggetti mediante più thread indipendenti.

·        Uno dei miglioramenti più consistenti che sperano di implementare riguarda l’IFCS, il cui aggiornamento in gioco non sarà più collegato al thread della fisica, il cui lavoro a volte poteva essere ostruito o rallentato proprio da questi aggiornamenti di stato.

 

TRASCRIZIONE COMPLETA

Kirk Tome (KT): Salve, io sono Kirk tome e sono il capo designer tecnico qui alla Cloud Imperium Games.

Mark Abent (MA): Il mio nome è Mark Abent. Sono un programmatore di gameplay senior e sono anche conosciuto come il Bugsmasher… [Ride] Si, è pacchiano, ma è fantastico [Ride].

Ashram Kain (AK): Salve, il mio nome è Ashram Kain. Sono un produttore qui a Los Angeles e mi occupo principalmente del team di ingegneristico e di quello di design tecnico. Parte del mio lavoro prevede di collaborare con questi due team per convertire tutte le nostre navi alla nuova infrastruttura, il Sistema Oggetti 2.0, che andrà a supportare la moltitudine di funzionalità che vogliamo implementare nelle nostre navi durante lo sviluppo del gioco. La ragione per cui siamo stati costretti ad effettuare questa conversione è che, aggiornando tutte le navi a questa nuova infrastruttura, potremo supportare le varie tipologie di funzioni e caratteristiche che vogliamo implementare nel lungo termine.

KT: Nel caso delle navi già esistenti, dobbiamo aggiornare i vari componenti, i sedili, la maniera in cui è possibile entrare nelle navi ed interagire con i vari oggetti o sistemi presenti a bordo, così che siano compatibili con il nuovo Sistema di Interazione. Nel caso dei nuovi sistemi, invece, li dovremo implementare in maniera tale che siano già compatibili con la nuova architettura.

AK: Realizzare un’astronave ed inserirla nel gioco è abbastanza semplice… Non è esattamente semplice, ma se la paragoniamo a quello che stiamo cercando di fare, allora sì, è una passeggiata. Ma se vogliamo avere un’astronave dotata di componenti modulari ed aggiornabili, scambiabili, modificabili o danneggiabili… Se vogliamo che le navi possano spegnersi, perché magari uno dei componenti interni smette di funzionare, oppure esplodere per via dei danni accumulati da importanti componenti interni… Non è un comportamento che possiamo realizzare con un sistema preassemblato. Dobbiamo realizzare da zero quanto necessario. In tutta sincerità, questa conversione coinvolge tutti i team dell’intero studio. Non c’è un team che non stia partecipando ai lavori, e quando dico tutti, intendo tutti, dal team di marketing fino ai ragazzi della fisica che lavorano in Germania. Tutti collaborano a questo processo, perché la conversione va a toccare tutti gli aspetti del gioco. Viene gestita principalmente dal team di Design Tecnico e da quello Ingegneristico di LA attraverso le figure di Mark Abent e di Kirk Tome.

MA: Come voi ragazzi già saprete, l’attuale build in uso sfrutta l’infrastruttura 1.0, che è quella utilizzata fin dal rilascio del modulo dogfight nel… Durante l’era dei dinosauri. Quel sistema funzionava davvero bene, era ottimo per un gioco sparatutto con le navi, in cui c’era soltanto un tizio che sedeva in un caccia e, al massimo, un copilota che lo affiancava, ma quando abbiamo iniziato ad introdurre le navi più grandi e complesse, più tutti gli oggetti che abbiamo creato… Il sistema ha iniziato a prendere l’aspetto di una bestia gigantesca, un behemoth, che era difficile da gestire. Il problema principale riguardava proprio le nostre navi: nel primo Sistema Oggetti, ogni singolo oggetto collegato a ciascuna nave aveva le sue chiamate ed i suoi eventi. Per cui quando un tizio saliva a bordo di una nave, riceveva tantissimi messaggi del tipo “Hey, è stato aggiunto questo oggetto”, “È stato aggiunto quest’altro”, “Hai il controllo su questo componente”, “Hai il controllo su quest’altro componente”. Ma se sulla stessa nave c’era un secondo sedile, anche quest’ultimo riceveva gli stessi eventi ad avvisi del primo, perché quel sistema funzionava così. Ora mettiamo di avere cinque sedili: ciascuno di essi riceverà gli stessi eventi degli altri ed il sistema dovrà cercare di capire chi ha controllo su cosa e dove, ed in più c’erano altri elementi ancora più complicati, come il visore, lo HUD o la UI. Poi c’era l’IA, i vari moduli in ascolto che cercavano di capire chi avesse controllo su cosa e come, e se poi aggiungiamo il multiplayer, in cui questo o quell’avvenimento si poteva verificare prima di un altro, e successivamente andavano riconnessi… Qualsiasi cosa poteva accedere in qualsivoglia ordine. A quel punto, cercare di assicurarci che tutto funzionasse a dovere era diventato un caos assoluto. Come potrete immaginare, abbiamo riscontrato tantissimi bug, alcuni molto divertenti, ma inoltre non era neppure possibile effettuare tutta la manutenzione necessaria, soprattutto perché ciascuno di quegli oggetti era una cosa a sé stante e dotata di una propria logica. Ad esempio, anche se avevamo sviluppato una certa logica per le armi, se volevamo usarne una singola parte per un nuovo tipo di arma che non sparava proiettili, ma alcuni… Diciamo che vogliamo sparare degli M50. In quel caso, era necessario copiare e incollare la logica in quell’oggetto, con tutti i bug che potevano saltare fuori, perché a questo punto dovevamo supportare due diversi set di blocchi logici. Questa era la situazione dell’intera infrastruttura 1.0, che è rapidamente diventata un casino incredibile. Torniamo al blocco logico di partenza di cui abbiamo parlato nell’esempio precedente. Ora prendiamo quei pezzi di logica e trasformiamoli in… Quelli che chiamiamo i componenti. Questo pezzo di logica gestisce la geometria. Tiriamolo fuori. Attacchiamolo ad un componente che gestisce la geometria. Quest’altro pezzo di codice gestisce la fisica. Tiriamolo fuori ed agganciamolo ad un componente fisico. L’idea è di ridurre questi singoli elementi alla loro struttura di base e trasformali in una lista di blocchi o componenti nudi che definiscano il comportamento dell’oggetto a cui vengono collegati. Con un sistema simile, potrei prendere questo pezzo e metterlo qui. Prenderne un altro e metterlo in quest’altro punto ed ottenere, così, una nuova arma o un nuovo oggetto logico. Questa è il concetto alla base dell’infrastruttura del Sistema Oggetti 2.0.

KT: Il Sistema Oggetti 2.0 introduce tantissime tipologie di componenti differenti per rendere le navi compatibili con la nuova architettura. Gli oggetti di cui stiamo migliorando le funzionalità di gameplay sono sistemi come quello di alimentazione e generazione dell’energia, il sistema di raffreddamento e quello degli scudi. Utilizzeremo il nostro nuovo sistema delle stanze, per cui quando staccherete l’alimentazione ad una stanza in particolare, tutte le luci contenute al suo interno si spegneranno automaticamente, oppure quando aprirete una porta che è connessa ad un’altra entità stanza, ci sarà una fuoriuscita di atmosfera. Saremo in grado di fare cose del genere, come ad esempio inserire un blocco porta tra due stanze, così che sia possibile connetterle semplicemente utilizzando un airlock, il quale a sua volta sarà a conoscenza delle condizioni atmosferiche delle due stanze e potrà reagire di conseguenza quando lo aprirete. Oppure potremo implementare nuovi modi con cui il volo atmosferico sarà in grado di influenzare la velocità con cui consumerete il carburante, modificare la maniera in cui i propulsori utilizzeranno l’energia ed il carburante per volare, oppure sistemi migliori per gestire varie funzionalità, come ad esempio i motori quantistici. Potremo bilanciare il consumo del carburante della nave durante gli spostamenti tra un punto di navigazione e l’altro, così che le navi più grandi, che magari possiedono anche un serbatoio di carburante quantistico di capacità maggiore, possano viaggiare… Possano spostarsi su tratte più lunghe senza finire il carburante, mentre le navi più piccole dovranno fermarsi a fare rifornimento prima del prossimo salto. Questi sono alcuni dei parametri che andremo ad aggiornare e renderemo un po’ più trasparenti, così che i giocatori possano capire meglio cosa stia succedendo.

MA: Ok, adesso abbiamo i controlli di un po’ tutto, funzionano bene, sono fighi, ma il problema è: come possiamo interagire con questi controlli? È a questo punto che subentra un altro set di tecnologie che abbiamo sviluppato di recente, che prendono il nome di Sistema di Interazione. Prima avevamo un vecchio sistema di interazione che faceva qualcosa quando si premeva un pulsante, ma adesso abbiamo un sistema molto più contestuale, in cui possiamo registrare tutte le varie interazioni, o i punti di interazione, così da poter realizzare una lista di possibili azioni e collegarle al codice. Per cui quando guarderò una porta, potrei avere a disposizione due interazioni, che potrebbero essere apri e chiudi, ed il codice registrerà l’evento e saprà cosa farci. Mettendo insieme questi sistemi, potremo realizzare ad esempio un sistema di controllo per l’accesso ai sedili. In passato abbiamo riscontrato un problema con le torrette della Constellation: quando si saliva su una delle due per prenderne il controllo, l’altra doveva venire bloccata, ma ciò non era possibile con il vecchio sistema. Per cui dovevamo… In realtà, nel sistema attuale lo si può fare. Se state utilizzando la torretta superiore, potrete utilizzare anche quella inferiore, e se proverete a farlo, potrete vedere le animazioni incasinarsi tra di loro, questo perché i due sedili non sono consapevoli dello stato dell’altro. Ma adesso abbiamo un sistema di controllo dell’accesso ai sedili che sarà sempre a conoscenza della loro condizione. Sostanzialmente si tratta di una macchina di stato dei sedili. Per cui se salirete su una delle due torrette, l’altra verrà bloccata. E per farlo utilizziamo il Sistema di Interazione. Entrambe le torrette dispongono di un’interazione di ingresso/uscita e di un box fisico invisibile, ma voi vedrete soltanto un elemento luccicante che vi dirà che potrete entrare in questa o quella torretta. Se vi avvicinerete, vedrete un testo galleggiante con sopra riportato “Voglio salire sulla torretta superiore”/”Voglio salire sulla torretta inferiore”. E quando entrerete nella torretta superiore, il codice effettuerà una chiamata che dirà al sistema di iniziare a muovere la torretta verso il basso e di renderla accessibile, mentre bloccherà l’altra torretta. Per cui se qualcun altro proverà ad entrare nell’altra torretta mentre voi starete entrando in quella superiore, non avrà più a disposizione l’interazione correlata, proprio perché la torretta inferiore rimarrà bloccata fino a quando non sarete saliti su quella superiore. Fatto questo, il sistema avviserà il giocatore che potrà interagire nuovamente con la torretta inferiore.

AK: Questo processo non è soltanto un lavoro ingegneristico o di design. Stiamo cercando di revisionare l’intera struttura di creazione delle navi, il che vuol dire che stiamo cercando di riconsiderare la maniera in cui le porte, delle semplici porte, sono implementate all’interno ed all’esterno della nave, e questo compito riguarda il team artistico. Queste fasi quindi coinvolgono sia gli artisti che i modellatori, che devono anche andare a ricontrollare alcuni dei materiali relativi ai danni delle navi, gli UV2 che utilizziamo per i nostri stati di danneggiamento… A questa conversione lavorano letteralmente tutti i team di sviluppo. Uno di quelli che viene maggiormente interessato da tutto ciò è, inaspettatamente, il team delle risorse sceniche, che deve sviluppare elementi come i componenti del generatore di energia, oppure le fonti di energia modulari. Questo perché abbiamo bisogno di svariati oggetti che vadano a costituire questo o quel componente, e tale lavoro rientra nelle loro competenze. Per cui dobbiamo pensare ad un po’ di tutto, anche a quegli elementi che non avete mai visto a bordo delle navi, sebbene in realtà ci siano già, magari un po’ nascosti. E quando inizieremo a rilasciare questa tecnologia, iterandola ed arricchendola sempre di più, potrete vedere e toccare ciascuno di questi componenti situati all’interno delle navi, con cui potrete anche interagire.

MA: Uno dei meravigliosi esempi di come cambieranno le cose con il nuovo Sistema Oggetti 2.0 sono le luci delle astronavi: con il sistema 1.0 o i vecchi modelli dei velivoli, le luci venivano attaccate direttamente ad un punto di trasporto oggetti, che quindi creava un componente chiamato… Sostanzialmente renderizzava tutte le luci situate sulle navi. Era figo, le luci erano ben visibili, ma quando, ad esempio, si perdeva una delle ali, le luci ad essa attaccate continuavano a funzionare come se nulla fosse. Per sistemare questo problema abbiamo trafficato un po’ con il sistema, facendo in modo che registrasse la perdita dei pezzi della nave e, conseguentemente, spegnesse le luci. Ma in realtà non c’erano cambiamenti nella distribuzione dell’energia, non era possibile controllare questi aspetti: era tutto sempre attivo.

Invece, con il Sistema Oggetti 2.0 possiamo sfruttare la tecnologia dei Contenitori Oggetti: l’interno delle nostre navi è stato praticamente trasformato in un mini livello che possiamo inserire direttamente all’interno dei mezzi di trasporto. In realtà è una tecnologia che abbiamo da un po’ di tempo, la usavamo già in parte con il sistema 1.0, principalmente per posizionare i letti, i sedili e quant’altro fosse necessario all’interno delle navi. Ma ora stiamo usando la stessa tecnologia anche per le luci… Quelle stesse luci che erano già presenti sulle navi.

Sostanzialmente abbiamo messo da parte il vecchio sistema ed abbiamo dato ai designer la possibilità di creare le luci direttamente all’interno dei Contenitore Oggetti e, utilizzando un’altra tecnologia, quella dei Gruppi Luce, è possibile comunicare al motore di gioco che queste luci sono parte integrante dei sistemi interni della nave stessa. Sia le luci situate all’esterno, che quelle posizionate all’interno, che sono state divise in due gruppi differenti. Quando esportiamo un livello, assieme ad esso vengono esportati anche tutti i punti di attacco oggetti, ma le luci sono attaccate direttamente a questi elementi, il cui stato di alimentazione è ora regolato dal “Gestore di Controllo”. Questo vuol dire che ricevono energia dalla nave stessa, che quindi può controllarne lo stato di accensione o spegnimento.

Per cui adesso le luci vengono registrate da un componente chiamato il “Gestore di Controllo”, vengono registrate dal punto di trasporto oggetti e possono richiedere energia dalla nave, possono richiedere calore, e se non lo ricevono… Possiamo spegnerle. Ora siamo in condizioni di fare tutto quello che vogliamo con esse, ma in aggiunta abbiamo anche un componente chiamato “Controller delle Luci”, il quale regola il “Gestore di Controllo”, che a sua volta registra la presenza e lo stato delle luci. Per cui se un giocatore si siederà in un sedile e prenderà il controllo del Gestore, potrà accendere e spegnere tutte le luci presenti all’interno della nave.

AK: Non è un processo semplice, non possiamo sederci a tavolino e dire: “Ok, questa nave la modificheremo così, e poi quest’altra, e poi quest’altra ancora”. Non è così che funziona. Tutti questi sistemi sono così profondamente interconnessi che quando incontriamo un bug su una nave, non possiamo semplicemente fermarci ed aspettare che venga risolto. Dobbiamo spostarci su un’altra nave, ed al momento stiamo lavorando a ritmo serrata su tantissimi componenti diversi e complicati, ma tenere traccia di tutti questi bug e riuscire a prevedere i tempi necessari per il completamento dei lavori è una vera sfida.

Lo scopo della pianificazione non è tanto quello di stabilire un piano che ci dica come arrivare ad un certo punto; questa è la parte semplice del lavoro. Piuttosto, è essere in grado di mostrare dove pensiamo di riuscire ad arrivare in base a quanto stiamo facendo ed a quello che abbiamo già fatto. Ma in questo caso, si tratta di lavori che non sono mai stati affrontati prima.

KT: L’altro grosso problema è che dobbiamo rivedere e riadattare da zero ogni singola nave. Alcuni degli aggiornamenti prevedono di convertire al nuovo sistema i sedili delle navi e creare una nuova plancia, che è poi quella parte della nave con cui interagite quando vi sedete nell’abitacolo. Questo perché dobbiamo creare degli elementi di interazione visiva che vi permetteranno di attivare i sistemi, i propulsori e decollare. Queste sono tutte interazioni che, in passato, avvenivano automaticamente, mentre adesso daremo ai giocatori la possibilità di controllarle direttamente per realizzare un’esperienza di gioco più viscerale.

Ciò vale anche per le altre postazioni in cui vi potreste sedere: una stazione ingegneristica vi potrebbe permettere di ridirezionare l’energia della nave a certi componenti semplicemente premendo un pulsante. Oppure potreste riconvogliarla a dei sottosistemi impegnati nella riparazione di qualcosa, scambiare i singoli componenti della nave, ecc. Per cui in alcuni casi dobbiamo prendere i vecchi componenti ed aggiornarne il codice perché sia compatibile con il nuovo sistema, mentre in altri casi dobbiamo aggiornare i componenti stessi per farli meglio aderire al nuovo standard del codice. Ma nella maggior parte delle situazioni, dobbiamo apportare entrambe queste modifiche.

Per cui dovremo estrarre la plancia dalla geometria della nave, trasformarla in un elemento a sé ed impostare i punti di interazione, così che quando un giocatore si siederà nel sedile… Avrà un’indicazione di dove guardare per realizzare tali interazioni.

AK: Coordinare tutti questi team è una vera sfida, perché stiamo parlando di quasi 400 persone che devono essere consapevoli di cosa sta succedendo durante lo sviluppo, e la parte più complicata è coordinare tutti questi team, che non stanno necessariamente seguendo i compiti o i lavori individuali di ogni singola persona. Dobbiamo assicurarci che ogni team sia a conoscenza di quello che sta succedendo e di cosa stiamo aggiornando in produzione, perché non vogliamo che si rompa qualcosa che possa bloccare il lavoro di qualcuno.

Un buon esempio di tutto questo è il team della IA: dobbiamo riuscire a portare a termine per tempo i vari componenti e pezzi di questa funzionalità, perché il team dell’IA deve avere la possibilità di implementarli ed integrarli all’interno dei loro sistemi. Così da poter inserire delle persone all’interno di queste navi e fare in modo che possano pilotarle ed interagire con esse. Quando si inizia a lavorare alle parti più complicate del Sistema Oggetti, le cose si fanno ancora più frustranti, perché queste navi dispongono di tantissime possibilità di interazione, per cui dobbiamo assicurarci che tutto funzioni a dovere, che è poi l’aspetto cruciale che permetterà agli sviluppatori di interfacciarsi con queste navi proprio mentre le modifichiamo ed integriamo all’interno del Sistema Oggetti 2.0.

Poi ci sono altri aspetti secondari a cui solitamente non si pensa quando si lavorano a queste cose. Come si interfaccia questo sistema con le stazioni? Come si comporterà quando un giocatore acquisterà, venderà o semplicemente avrà nella stiva tantissimi oggetti? Cosa succederà quando li sposterà nell’inventario personale, per poi metterli nell’inventario del giocatore? E come vogliamo che sia possibile effettuare questi trasferimenti? Fino a che punto vogliamo che sia possibile fare queste cose? Come si interfaccia l’economia con tutti questi altri elementi? Per cui bisogna fare in modo che tutti siano consapevoli sia degli obiettivi a lungo termine che di quelli a breve termine che stiamo cercando di raggiungere per la 3.0 e la 3.1. È questa la nostra sfida più grande.

KT: Ci saranno anche delle modifiche di bilanciamento che i giocatori sicuramente noteranno e che li incentiveranno, ad esempio, a provare gli oggetti aggiornati, in particolar modo le navi, proprio perché stiamo utilizzando un nuovo sistema di interazione. È la prima cosa che noteranno quando entreranno in una nave e si siederanno nell’abitacolo: la differenza sarà sostanziale.

AK: Il gameplay è una delle sfide più interessanti di questa conversione, perché dobbiamo sia conservare il gameplay che la comunità ama, sia gli elementi di bilanciamento ed il duro lavoro compiuto dai designer sulle navi. Da un altro punto di vista, dobbiamo implementare un nuovo modo di pensare le navi e di bilanciarle. Dobbiamo introdurre nuove meccaniche di funzionamento dei propulsori, stiamo ricostruendo parte dello IFCS per integrarlo nel Sistema dei Componenti Oggetti. Questo vuol dire che dobbiamo anche riconsiderare il suo bilanciamento.

Improvvisamente, quando ci si inizia ad occupare del bilanciamento degli scudi, dell’energia e dei gruppi di fuoco, un caccia non è più soltanto un caccia, perché questa gestione va effettuata in… In tempo reale. Con il Sistema Oggetti 2.0 inseriremo anche nuove possibilità di gioco per le navi multiequipaggio. Non si verificheranno più situazioni del tipo:” Oh, fammi fare un giro sulla tua Caterpillar”, ma piuttosto ci troveremo davanti a casi del tipo:” Ho bisogno di qualcuno che si occupi degli scudi e dell’energia alla postazione ingegneristica, perché mi sono infilato in una grossa battaglia”.

MA: Un altro elemento importante sono le prestazioni. Con il sistema suddiviso in tanti componenti, ciascuno di questi… Un sedile sarà composto dalla sua geometria, il suo comportamento fisico ed un’altra serie di elementi logici. Ciascuno di questi potrà essere aggiornato in maniera indipendente o assieme a tutti gli altri tramite un aggiornamento di gruppo, il che vuol dire che ogni tanto, in momenti specifici, potremo lanciare alcuni thread per aggiornare tutte le informazioni di gioco. Potremmo lanciarne qualche migliaio in un certo momento, un altro migliaio poco dopo ed un altro migliaio dopo qualche tempo, così da aggiornare quanto necessario.

Uno dei più importanti miglioramenti che speriamo di integrare riguarderà il controller di volo fisico realizzato da John Pritchett, lo IFCS. Giusto di recente abbiamo spostato il suo blocco di aggiornamento dalle chiamate del thread fisico principale, dal momento che a volte ostacolava la componente fisica del gioco, e lo stiamo spostando in questa funzionalità di aggiornamento di gruppo per fare in modo che continui a funzionare come prima. Semplicemente, non verrà lanciato in uno di quei thread fisici. Per cui si può che dire, ormai, stiamo utilizzando un sistema di threading multicore.

AK: Questo è uno dei lavori più grandi e complessi di cui mi sia mai occupato per un gioco, in particolar modo per un gioco multiplayer. Questo è un sistema che… Voglio dire, pensate ai giochi multiplayer che ci sono lì fuori. In World of Warcraft potrete possedere una mount per gli spostamenti, oppure in Elders Scrolls Online potrete avere una casa, ma non potrete usarla per volarci in giro per il mondo. Non potrete possedere venti case e non dovrete preoccuparvi dei danni che potrebbero subire, o di come gli altri giocatori si interfacceranno con esse. Ma è un aspetto di cui dobbiamo tenere conto.

Quando parliamo del Sistema Oggetti… Non parliamo soltanto delle cose che possiamo inserire in una nave, o di quelle che potreste trovare in una stazione o su un pianeta. Parliamo dell’intera struttura degli oggetti e delle entità nella persistenza di gioco, che devono avere un quantitativo di informazioni sufficiente per renderle una parte importante dell’esperienza di gioco. Credo che i giocatori capiranno l’incredibile versatilità e potenza di questa tecnologia.

 

MA: Per concludere, questa è una delle modifiche strutturali di maggior rilevanza che vogliamo implementare nel gioco, ma ovviamente avrà anche delle grosse ripercussioni su un po’ tutto. Ricollegatevi la prossima settimana per conoscere le cose orribili e divertenti che abbiamo dovuto fare durante il passaggio dal vecchio al nuovo Sistema Oggetti.

Traduzione a cura di Darnos.
Trascrizione completa in Inglese disponibile presso Relay.
Articolo originale disponibile presso le Roberts Space Industries.