Nuova puntata dell’Around the Verse! Oggi andiamo ad approfondire il funzionamento della Mega Mappa Multigiocatore.


 

 

AGGIORNAMENTO DAGLI STUDI DI L.A

·        Navi

o   Stanno lavorando alla Drake Buccaneer: hanno creato il punto di aggancio doppio personalizzato, hanno generato i LOD, implementato i danni, il bilanciamento di volo ed i VFX.

o   Hanno effettuato grossi progressi con il nuovo modello dell’Aurora: hanno completato il whitebox, stanno finalizzando la geometria dell’abitacolo ed a breve entrerà nella fase di greyboxing.

o   Stanno portando avanti il design di una serie di altre navi e di un mucchio di fix per la 2.6.2.

·        Design Tecnico

o   Hanno completato il design dei display multifunzione per la potenza, il calore, il raffreddamento, gli scudi, le armi, le contromisure ed i missili.

§  La fase successiva consisterà nella creazione dell’interfaccia necessaria per sfruttare questi display.

§  Le funzionalità di controllo dei vari componenti della nave stanno venendo implementate dal team Ingegneristico.

§  Lo scopo di questi sistemi è di permettere ad un equipaggio capace ed affiatato di apportare al volo le modifiche necessarie, a seconda della situazione, per migliorare le probabilità di sopravvivenza della nave e fronteggiare i problemi che si riscontreranno in volo.

§  Ovviamente, è un approccio di gameplay opzionale e sarà possibile ignorarlo del tutto.

·        QA

o   Stanno controllando svariati fix per la 2.6.2.

o   Hanno aiutato il team di QA di Austin in una serie di controlli di integrità, test vari ed operazioni di pulizia e sviluppo.

§  Un controllo di integrità è un’operazione che viene effettuata per assicurarsi che non ci siano problemi nel gioco e che il client parta.

§  Tra i vari altri controlli, vi è lo “smoke test” che consiste nel verificare le funzionalità di base del gioco.

§  Invece, un test di “full sweep” comporta di verificare tutto il possibile e richiede molto più tempo dei due test precedenti.

o   Stanno formando i nuovi arrivati per velocizzare i lavori sul gioco.

o   Hanno pulito i VFX di distruzione delle navi, il Sistema Oggetti 2.0, le modifiche all’equipaggiamento ed il codice del nuovo sistema di puntamento e dell’ESP

·        Narrativa

o   Stanno creando nuove missioni per la 3.0.

o   Hanno redatto la documentazione relativa ai poster ed alle risorse sceniche che verranno utilizzate per popolare l’universo di gioco.

o   Hanno creato una cronologia in stile “Time Capsule” per la storia Xi’An e vari documenti riguardanti la loro società.

·        Personaggi

o   Stanno ricontrollando i vari gruppi etnici esistenti nell’universo di SC utilizzando la potenza nascosta dietro la demo di 3Lateral del GDC.

·        Reparto Ingegneristico

o   Hanno iniziato i lavori incentrati sulla nuova Entità Negozio, che utilizza i componenti dei dati di base e vi aggiunge il sistema di streaming degli oggetti/container per recuperare l’inventario del negozio dal backend.

o   Hanno aggiunto allo XML dei veicoli un attributo relativo alla griglia fisica interna che permetterà ai designer di ridurre l’utilizzo della memoria.

o   Hanno implementato la funzionalità per le transizioni di stato delle Entità ‘Gruppo Luce’.

§  Ora dovremmo implementare queste nuove entità su tutti i veicoli.

§  Queste modifiche comporteranno un notevole risparmio della memoria, visto che in alcuni casi taglieranno il numero delle entità luce di quasi il 90%.

o   Stanno sviluppando una nuova impalcatura per abilitare l’autopilota nell’IFCS e per permettere all’IA di gestire una serie di situazioni, come il decollo o l’atterraggio.

o   Stanno creando nuove funzionalità, strumenti di debug e stanno sviluppando delle correzioni per il Sistema delle Stanze ed i Container Atmosferici.

§  Un esempio dell’applicazione di questi sistemi sono i nuovi airlock: al momento le transizioni al loro interno sono scriptate, ma in futuro verranno gestite da queste funzionalità.

o   Hanno aggiunto alle armi dei parametri relativi al consumo ed al grado di sporcizia.

§  Si tratta di elementi collegati agli shader e quindi aventi una funzione esclusivamente estetica.

o   Hanno iniziato a lavorare al Manager della Proprietà delle Entità, che gestirà, assieme alla persistenza di backend, la proprietà ed il tempo di vita di tutte le entità in gioco.

§  È uno dei componenti fondamentali per il passaggio ad un sistema di persistenza ancora più completo e ricco.

§  Andrà ad interagire con svariati altri sistemi del motore di gioco, come il gameplay del recupero materiali, lo streaming, le missioni, il cargo e così via.

o   Stanno lavorando ad alcuni sotto-componenti della scansione ed alla rifattorizzazione della banca dati degli oggetti per supportare l’immagazzinamento di entità figlie. Questo sistema migliorerà le prestazioni e la sicurezza dei thread nell’accesso ai dati all’interno della banca dati.

§  Il lavoro relativo alla scansione è incentrato su due sotto-componenti particolari: il ping e l’angolo di focus.

§  Il ping è la funzione che permetterà ad un giocatore di inviare un impulso per rilevare gli oggetti presenti all’interno del raggio di scansione: dalle navi fino agli asteroidi ed agli eventi di ingresso o uscita di altre navi dal viaggio quantistico.

§  L’angolo di focus permetterà ai giocatori di modificare l’angolo di emissione dell’impulso per ottenere un aumento del raggio di scansione, al costo di una riduzione dell’ampiezza dell’area scansionata.

·        Team Contenuti Tecnologici

o   Hanno apportato dei miglioramenti alle prestazioni modificando i vertex del reticolo ed i formati posizionali per migliorare lo streaming dei reticoli e ridurre le dimensioni delle build.

o   Hanno anche migliorato l’integrazione con Python all’interno dell’editor, che permetterà lo sviluppo di un maggior numero di strumenti in Python per tutti gli studi. Il team adesso può scriptare vari processi sandbox, come ad esempio la generazione degli avamposti modulari, gli asteroidi, ecc.

o   Hanno convertito gli elmetti al formato .skin per sistemare il bug che ogni tanto li faceva sparire.

§  Questo cambiamento ha permesso di unificare i LOD relativi ai modelli dei personaggi.

§  Inoltre, il team ha anche creato degli strumenti che permetteranno di manipolare la pelle dei modelli ed esportarla automaticamente, riducendo così il tempo necessario agli sviluppatori per lavorare su questi elementi.

o   Hanno convertito tutti i modelli delle teste per permettere l’utilizzo dello shader della pelle umana, che ha ridotto il costo in memoria del 90%.

o   Hanno trasferito ed adattato migliaia di animazioni dal modello maschile a quello femminile per completare i suoi set delle animazioni di movimento.

o   Il team ha completato uno strumento che permetterà loro di seguire e richiamare le battute della storia di Squadron 42 provenienti dalle 1255 pagine di copione, che includono sia la trama principale che numerose storie e battute secondarie. Dopo che tutte le battute saranno state inserite nel sistema, queste verranno richiamate in base alle azioni dei giocatori ed alla situazione, così da rendere casuali le battute secondarie ed impedire che vengano ripetute sempre le stesse.

o   Il team dei Contenuti Tecnologici ha creato uno strumento dedicato al team delle Cinematiche che permetterà di rivedere le scene del gioco prima che queste vengano inserite nel motore, così da permettere una veloce esportazione delle animazioni e un’anteprima dei rendering.

·        Team dei Personaggi

o   Il team si è occupato di realizzare il modello preliminare, quello ad elevata conta poligonale e le texture ingame relative all’armatura pesante da fuorilegge, che a breve passerà alla fase di finalizzazione e di sviluppo delle animazioni.

o   Stanno implementando l’armatura leggera, media e pesante per marine destinata modello femminile, così come la sua sottotuta.

o   Stanno realizzando il modello ad elevata conta poligonale dell’armatura da esplorazione per il modello femminile.

o   Stanno realizzando le texture in gioco relative all’equipaggio del ponte della nave ed ai marine.

o   Le versioni medie e pesanti delle armature della fazione fuorilegge OMC sono entrate nella fase di sviluppo finale.

o   La tuta Titan meccanizzata è entrata nella fase di R&D assieme ad altri elementi alieni.

 

MEGA MAPPA

TLDR

·        La Mega Mappa è una nuova funzionalità che permetterà di ridurre i tempi di caricamento ed eliminare del tutto le schermate correlate.

·        La Mega Mappa non caricherà le risorse di gioco tutte insieme, ma trasmetterà soltanto i contenuti necessari utilizzando il sistema dei container oggetti e cancellando di volta in volta quelli non più necessari.

·        Ciò permetterà all’utente di passare molto più velocemente da una modalità di gioco all’altra.

·        Uno bug che hanno riscontrato con questo sistema è la possibilità di entrare in modalità “Volo Libero” con la vista offuscata dopo aver bevuto qualche drink di troppo nell’hangar.

·        Il funzionamento della Mega Mappa Multigiocatore è stato complicato dal fatto che moltissimi giocatori potrebbero ritrovarsi a visitare contemporaneamente lo stesso livello.

·        La Mega Mappa è in grado di passare dalla modalità giocatore singolo a quella multigiocatore senza aver bisogno di ricaricare.

·        A seconda della situazione e della posizione, nuovi container oggetti verranno caricati in memoria ed altri eliminati, oppure potranno essere utilizzati per scalare le informazioni mostrate.

·        Star Marine ed Arena Commander al momento utilizzano il sistema della Mega Mappa, ma hanno in programma di implementarlo anche nell’Universo Persistente.

 

TRASCRIZIONE COMPLETA

Rob Johnson (RJ): La Mega Mappa è una nuova funzionalità che stiamo aggiungendo al gioco per eliminare la frustrazione dovuta ai tempi di caricamento, in quanto permetterà di eliminare del tutto le schermate di caricamento. I problemi che ci hanno spinto a mettere a punto questa tecnologia provengono dalla scala senza precedenti dell’universo che stiamo creando. Ciò vuol dire che non potevamo caricare tutto in una singola mappa senza massacrare la memoria e le prestazioni, per cui abbiamo diviso i contenuti e li abbiamo messi in container oggetti che potevamo caricare all’occorrenza. Il problema di base che ci ha portato ad optare per questo approccio riguarda il fatto che i giocatori avrebbero dovuto aspettare una serie di schermate di caricamento prima di passare al gioco vero e proprio. La Mega Mappa era la nostra soluzione a tutto questo. La Mega Mappa viene caricata al pari di qualsiasi altra mappa standard. Inizialmente è vuota, ma una volta caricata, possiamo iniziare a riempirla con i contenuti di varie modalità di gioco ed i container oggetti. Dunque, funziona così. Prima si caricare la Mega Mappa, che è vuota, si carica il front end, che è costituito da una serie di container oggetti. Si caricano le regole di gioco del front end, che dicono al gioco come vanno le cose in quella modalità di gioco. L’utente poi sceglie la modalità di gioco con cui giocare. A quel punto, buttiamo via tutti i container oggetti. Buttiamo via le modalità di gioco, carichiamo la modalità di gioco Volo Libero e il container oggetti Stella Morente, ma lo facciamo attraverso un processo di streaming piuttosto che attraverso un caricamento di livello vero e proprio, per cui siamo in grado di eliminare la gran parte del tempo di caricamento e ridurlo a pochi secondi, rimuovendo le lunghe schermate di caricamento che avevamo prima.

Come potete vedere, persino con la Mega Mappa attiva ci sono ancora alcuni secondi di attesa dovuti al caricamento. Si tratta solo di qualche secondo rispetto ai 30 che avevamo prima, ma ce ne stiamo ancora occupando e cercheremo di eliminare questo breve tempo di attesa facendo in modo che questa funzionalità lavori in maniera asincrona. Dunque, dal punto di vista del gameplay si tratta di un’ottima notizia per i giocatori. Se vogliono cambiare qualche opzione, possono tornare al front end. Poi potrebbero andare nell’hangar. Potrebbero configurare alcuni oggetti, guardare le loro navi e quindi tornare immediatamente al front end, il tutto senza schermate di caricamento. Quindi potrebbero scegliere una modalità di gioco, come quella di corsa, e lanciarsi direttamente in partita, usando una nave qualsiasi. A questo punto, potrebbero decidere che quella nave non va bene, e quindi potrebbero tornare al front end e cambiare nave, il tutto sempre senza schermate di caricamento. C’è un bel vantaggio rispetto a prima, quando i giocatori, invece, dovevano pensare attentamente a dove andare e cose fare, perché ogni volta ci sarebbero stati dei tempi di caricamento, per poi tornare indietro e passare attraverso una nuova schermata di caricamento. Con questa nuova funzionalità sostanzialmente introdurremo nel gioco la prima applicazione del sistema di streaming di tanti container oggetti, funzione che sarà una parte fondamentale dell’esperienza del PU. Questo perché, essenzialmente, in futuro il PU stesso diventerà una sorta di Mega Mappa contenente una serie di container oggetti che verranno caricati in streaming e poi scartati man mano che ci muoveremo nella mappa. L’aspetto che rende tutto ciò alquanto complesso in termini di programmazione di gameplay è che, con il nuovo flusso dati, non distruggiamo e ricreiamo più l’entità del giocatore mentre passa tra le varie modalità di gioco, per cui con questa configurazione siamo potenzialmente in grado di rendere più semplice la sua persistenza. Alcuni… Alcuni degli attributi del giocatore persistono anche quando si passa da una modalità di gioco all’altra, proprio perché non lo stiamo più distruggendo e ricreando da zero.

Uno dei bug più interessanti che il nuovo flusso della Mega Mappa ha prodotto e che il team di QA ha scoperto di recente è che era possibile scendere giù in hangar, farsi un paio di bicchieri dal bancone, diventare alticci, cosa che in gioco causa un offuscamento della visione e poi, una volta usciti dall’hangar ed essersi seduti nella propria astronave in modalità Volo Libero, andare in giro con lo stesso stato di alterazione della visione. Questo accade perché, con il nuovo flusso dati, il giocatore non viene più distrutto e ricreato, per cui sfortunatamente gli stati applicati in altre modalità vengono passati alla modalità successiva. Probabilmente non è una buona cosa. Questo è uno dei bug che stiamo cercando di sistemare, ma è un ottimo esempio degli interessanti tipi di sfide che stiamo affrontando mentre lavoriamo su questo nuovo flusso dati.

Clive Johnson (CJ): La Mega Mappa per la modalità multigiocatore è un pochino più complicata di così. Si basa sull’implementazione di quella single player, a cui aggiunge una serie di altre cose. Fino ad un certo punto, la tecnologia è la stessa. La sfida aggiuntiva è data dal fatto che ogni livello delle nostre modalità multigiocatore esiste nel suo proprio server, perché altrimenti non sarebbe possibile gestire le decine di migliaia di giocatori che potrebbero entrare in partita in ogni momento. Quindi se vi trovate in una partita multigiocatore che è appena terminata e voleva passare ad un’altra modalità di gioco e mappa multigiocatore, allora il sistema cancellerà prima la mappa in cui vi trovate, ad esempio Stella Morente, e vi porterà sul front end, dove potrete scegliere cosa fare, per poi entrare nella mappa successiva, che potrebbe essere, ad esempio, Luna Spezzata in modalità Sciame Pirata, o altro. Dal momento che vi siete connessi di nuovo al front end, la connessione al server precedente è stata chiusa, ma dobbiamo tenere in memoria la Mega Mappa, svuotarla dei contenuti precedentemente presenti, aggiungere tutti i pezzi del front end, permettere al giocatore di fare le sue scelte e, quindi, connettervi ad un altro server mentre c’è già una mappa in memoria, per poi ritrasmettere tutti i nuovi pezzi della nuova mappa.

È un po’ come cercare di staccare il vostro computer, per poi riattaccarlo senza che ci sia un’interruzione della corrente. Non è l’approccio che abbiamo usato finora. In precedenza, al termine della partita la connessione al server veniva chiusa, si puliva tutto (una sorta di hard reset del sistema), si caricava il front end per far scegliere al giocatore cosa fare e quindi si riapriva la connessione al server successivo. In questo caso, invece, anche se stiamo soltanto tenendo in memoria la mappa, stiamo cambiando connessione e server, passando al contempo da una modalità giocatore singolo ad una multigiocatore senza fare questo reset, il che è di per sé una sfida.

Il motore di gioco è stato costruito basandosi sul presupposto che, una volta partito il sistema, questo si troverà in modalità giocatore singolo oppure in una multigiocatore e rimarrà in questa modalità fino a quando il sistema stesso non verrà spento. Adesso stiamo cambiando questo approccio per fare in modo che sia sempre dinamico, cosa che può causare un gran numero di bug. Finora abbiamo dovuto fare tantissimi tentativi, provando varie soluzioni, vedere cosa si rompeva, sistemare i problemi e ripetere il tutto, ancora e ancora.

Prendiamo un sistema come Crusader ed ampliamolo: in questo caso, potremmo fare in modo che ogni stazione, ogni matrice di comunicazione, si trovi all’interno di un container oggetti differente. Ci sarà poi un container oggetti che conterrà i riferimenti ai vari container oggetti in cui si troveranno tutti questi elementi, e questi verranno lasciati lì, sempre caricati, ma in una forma ridotta all’osso per non pesare più di tanto sul sistema. Ma quando cambierete zona, ad esempio dirigendovi verso Port Olisar, il container oggetti di Port Olisar verrà caricato ed espanso. Questo a sua volta potrebbe contenere altri container oggetti, ciascuno dei quali conterrà gli interni, oppure vari ponti della stazione o altro, i quali verranno similmente caricati in base alle richieste del sistema.

Così facendo, ci sarà una struttura di base, uno scheletro, che è definito da un container oggetti, di cui poi potremo riempire varie parti e, in un secondo momento, potremo farle collassare di nuovo per caricare altro. Questo sistema scalerà ulteriormente man mano che si scenderà di dimensioni. Diciamo ad esempio che una stanza sia un container oggetti. Assemblando insieme varie stanze possiamo ottenere un ponte. Se poi assembliamo tra di loro i ponti, possiamo ottenere una stazione spaziale, che andrà a costituire un container oggetti di livello superiore. Gli interni ed esterni della stazione spaziale potrebbero essere a loro volta altri container oggetti differenti. E tutto questo sarà collegato ad un altro container oggetti che dirà al gioco dove si troverà la stazione, e tutto questo verrà collegato da una sorta di container oggetti base di sistema che dirà al gioco dove si trovano le varie stazioni spaziali presenti in quel determinato sistema, i vari pianeti e così via. Scalerà più o meno in questo modo.

Per ora questo sistema è stato utilizzato soltanto per le mappe di Star Marine e per quelle dell’Arena Commander. Quando implementeremo questa tecnologia nel PU, lo faremo attraverso Crusader e gli altri sistemi che verranno rilasciati nel tempo. C’è ancora tanto lavoro da fare, ma la tecnologia si trova ormai ad un punto sufficientemente avanzato da permetterci di vedere i benefici che ci porterà. Star Citizen è davvero una questione di dimensioni, non è vero? Ha preso il concetto di gioco normale e lo ha reso molto più grande di qualsiasi atra cosa sia attualmente disponibile lì fuori. L’unico modo in cui sarà possibile trasformarlo in realtà, sarà concentrarsi su ciò che il giocatore necessiterà di sapere e creare su misura l’esperienza di gioco per ciascuno dei nostri utenti, anche se tutti loro saranno connessi allo stesso server. Per cui stiamo sempre cercando nuovi modi per evitare di dover caricare qualcosa, evitare che le vostre macchine debbano fare calcoli aggiuntivi. Beh, in ogni caso, il risparmio di tempo e lavoro riguarderà soltanto i vostri computer.

 

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