Intro

La puntata di Gennaio del Town Hall per gli abbonati allo sviluppo è incentrata sui contenuti tecnici di Star Citizen.
Per questo motivo, gli ospiti sono Sean Tracy, Direttore dei Contenuti Tecnici, Forrest Stephan, Supervisore CG, e Gaige Hallman, Artista Tecnico. Il loro compito consiste sostanzialmente nello sviluppare gli strumenti necessari agli artisti per velocizzare e semplificare il loro lavoro. Sono una sorta di livello intermedio tra gli artisti, che lavorano ai contenuti estetici del gioco, e gli ingegneri, che invece si occupano di costruire la tecnologia alla base del gioco.

Nel corso degli scorsi anni avete sviluppato svariati strumenti per il gioco, come il SolEdit o l’editor per la Sussunzione. Dovete ancora crearne altri o avete terminato?

Lo sviluppo degli strumenti è simile a quello del gioco. Non è mai davvero finito.
Ogni giorno vengono creati nuovi tool o vengono modificati quelli vecchi. Questo perché ogni volta che viene sviluppata una nuova funzionalità, è necessario sviluppare gli script e tutto il necessario per velocizzare la realizzazione dei contenuti ad essa associati. O per implementare più velocemente detta funzionalità all’interno delle risorse preesistenti.

Ma i tool, proprio come il gioco stesso, devono anche ricevere costante manutenzione. Qualcuno potrebbe essere buggato, potrebbe essere troppo complicato da usare o potrebbe non essere in grado di svolgere determinate mansioni. In tutti questi casi, il team tecnico deve intervenire e migliorare lo strumento. Renderlo più facile da usare per gli artisti, più rapido nel fare il suo lavoro, più potente e più completo.
Al contrario di molti altri titoli, Star Citizen richiede di sviluppare migliaia di risorse, non decine. Per cui è importante che i tool forniti agli sviluppatori siano in grado di lavorare a questi livelli.
Per questo motivo, gli strumenti creati internamente vengono sottoposti a svariate iterazioni, tanto che alcuni di quelli attualmente in uso sono arrivati alla versione 14.

Al momento esistono tre categorie di strumenti: quelli generici, quelli sandbox, che sono associati agli editor del gioco, e quelli artistici per programmi come Maya.
Ciascuna di queste tipologie ha ambiti e scopi differenti, per cui riceve anche aggiornamenti diversi. In alcuni casi, può essere comodo realizzare degli script che automatizzino delle procedure di lavorazione, come quelle di importazione o esportazione delle risorse. In altri, può tornare utile avere un sistema che permetta di assemblare modularmente delle risorse per creare nuovi asset con un approccio procedurale.

Ma tutto questo riguarda gli strumenti di sviluppo dei contenuti, che sono quelli su cui si sono concentrati negli ultimi anni.
Al momento purtroppo c’è un grosso divario tra i tool di sviluppo e quelli di implementazione nel motore di gioco. Ciò vuol dire che vengono create molte più risorse di quante se ne riesce effettivamente ad inserire nel titolo. Di conseguenza, tali oggetti tendono naturalmente ad accumularsi, che è un fatto negativo.
Quando vengono applicate delle modifiche sostanziali a qualche sistema di gioco, spesso capita che tali risorse non vengano allineate ai nuovi standard. Ciò dà origine a svariati bug, di cui però ci si accorge soltanto in un secondo momento. Per cui in questi casi bisogna rimettere mano a tutti gli oggetti diventati obsoleti e modificarli uno per uno, cosa che ha ovviamente grosse conseguenze in termini di tempo e risorse umane da allocare.
Per questo motivo, di recente i team tecnici si stanno concentrando sulla realizzazione di strumenti di integrazione in gioco che permettano di automatizzare le procedure di validazione ed implementazione.

In linea di massima, queste cose sono normali nello sviluppo di un titolo. Ci sono sempre team che lavorano più velocemente di altri, per cui si verifica una disparità nello stato di avanzamento dei vari compiti. L’importante è stabilire una priorità su quali ambiti vadano risolti o migliorati per primi, così da velocizzare il completamento di nuovi contenuti dal punto di vista globale.

Di recente abbiamo rilasciato il trailer delle funzionalità della 3.0, di cui tu, Forrest, ti sei occupato. Ma la sua realizzazione ha richiesto la creazione di nuovi strumenti. Cosa ci puoi dire a riguardo?

Il trailer della 3.0 è stato ripreso interamente in gioco, usando strumenti come OBS, gli stessi utilizzati dalla comunità per i suoi video.

È stata un’esperienza significativamente diversa da quella maturata durante la creazione dei video di presentazione delle navi o i loro spot commerciali. Questi solitamente venivano realizzati usando l’editor di gioco ed esportando le scene che avvenivano al suo interno. Anche in questo caso si usava un approccio manuale, ovvero chi era incaricato di girare la scena doveva controllarla manualmente con i comandi di gioco.

Nel caso del trailer della 3.0, tuttavia, ciò non è stato possibile.
Con il progredire del titolo, si è anche complicata l’interfaccia dei comandi. Cose precedentemente automatiche sono state associate a comandi manuali, come l’estensione e la ritrazione del carrello. Effettuare queste azioni controllando al contempo la telecamera era estremamente complicato, per non dire quasi impossibile. Ma una delle richieste specifiche di Chris era di girare il trailer all’interno del gioco, usando la stessa build rilasciata agli utenti.
Per questo motivo, è stato necessario sviluppare degli script che permettessero di semplificare il controllo della telecamera. Le prime versioni erano estremamente basilari, tanto che i filmati risultanti erano piuttosto grezzi. Con il tempo, però, le cose sono andate migliorando.

Una volta sistemato questo aspetto, però, è stato possibile girare i video direttamente in gioco, sui server Live. A causa dei problemi attualmente presenti nella 3.0, nonché delle ottimizzazioni ancora in sviluppo, avere dei framerate decenti ha richiesto di loggare ad orari assurdi, come le due di mattina.
Ma in questo modo è stato possibile girare le scene fianco a fianco con i giocatori. Così da mostrare realmente lo stato di sviluppo attuale di Star Citizen.

Il risultato finale è piaciuto così tanto a Chris, che si è deciso di trasformare gli script creati ad hoc per questo scopo in un vero e proprio strumento. Uno che sarebbe stato rilasciato anche ai giocatori, così da facilitare la creazione di machinima e video di stampo cinematografico.
Per far questo, il team tecnico ha preso spunto da quanto realizzato da altri giochi, come il sistema di snapshot di Super Mario Odissey.

Attualmente il tool è in fase di sviluppo.

Adesso che la programmazione di rilascio del 2018 è diventata pubblica, i fan hanno visto che il Sistema di Personalizzazione dei Personaggi verrà rilasciato con l’aggiornamento 3.1. Questo è un ottimo esempio della disparità attuale tra tempi di creazione dei contenuti e quelli di implementazione. Giusto?

Più o meno. La risorse di base sono pronte fin da Ottobre, ma i team sono stati impegnati ad occuparsi di componenti a maggiore priorità.
C’è da dire, però, che la realizzazione di questa funzionalità ha richiesto tanta progettazione. Si tratta di un elemento standard di quasi tutti i giochi del momento. Ciascuno di essi fornisce un qualche livello di personalizzabilità del proprio avatar, che si tratti di scegliere gli occhi, i capelli, il volto o cose simili. Ma l’approccio perseguito cambia drasticamente da titolo a titolo.

Nel caso di Star Citizen, volevamo essere certi che la prima versione del sistema supportasse una serie di funzionalità base, che fosse scalabile e che non avesse problemi di sorta.
I lavori sono iniziati come una specie di sperimentazione, ma alla fine è stato assemblato un vero e proprio gruppo di sviluppo che ha curato i vari aspetti del sistema di personalizzazione. Molti di questi sono stati iterati, perché la tecnologia non funzionava nella maniera desiderata. Al momento ci sono ancora dei problemi da sistemare ed elementi da migliorare, principalmente per quanto riguarda l’interfaccia, che è un altro dei motivi per cui questa funzionalità non è stata implementata nella 3.0.

La prima versione di questa tecnologia, che non sarà quella definitiva, permetterà di scegliere tra un set limitato di teste, colori degli occhi e modelli dei capelli.
Non è stato possibile aggiungere altro, perché l’aspetto dei modelli dei personaggi è un elemento importante del gioco, principalmente per via delle animazioni, la futura implementazione del FOIP ed altri sistemi che girano attorno a questi componenti. Per cui non è stato possibile, almeno per adesso, introdurre dei meccanismi di personalizzazione più evoluti e complicati. Parte di questi arriveranno con le versioni future.
Per fare un esempio, si è discusso a lungo della maniera migliore per rendere i capelli. Alla fine, per questioni tecniche, si è scelto di adoperare la tecnologia di rendering su texture, la stessa che permette di effettuare le videochiamate in gioco. Il livello qualitativo di questi elementi, però, non ne ha minimamente risentito.

Un altro esempio simile è costituito dalla forma dei colli delle teste ottenute tramite mocap. Ogni personaggio, a prescindere che si tratti di quelli importanti di Squadron 42 o degli NPC dell’Universo Persistente, possiede dei tratti leggermente differenti. Il collo in particolare è un elemento critico, perché è il punto di aggancio al busto, che invece è una risorsa standardizzata. Per cui in alcuni casi si potevano riscontrare delle discrepanze esteticamente brutte.
In Squadron 42 questo problema è stato risolto modellando specificatamente il collo dei personaggi più importanti. In Star Citizen, invece, si è scelto di adottare uno standard uguale per tutti. Quest’ultima decisione non è stata facile, in quanto standardizzare solitamente equivale a perdere parte delle connotazioni specifiche dei modelli. In casi estremi, ciò poteva far sembrare tutti i personaggi simili tra loro. Per questo motivo, è stato necessario effettuare una serie di prove per verificare fino a che punto fosse possibile spingersi con questa standardizzazione.

Tuttavia, è importante ribadire il fatto che questo processo è stato ulteriormente complicato dalla complessità dei modelli dei personaggi, nonché dal fatto che su di essi si basano altri sistemi di gioco. Per cui anche la tecnologia di personalizzazione doveva essere compatibile con questi meccanismi.
Assicurarsi che ciò fosse possibile ha richiesto e continuerà a richiedere tanto lavoro e costituisce buona parte del motivo per cui il sistema di personalizzazione non è stato ancora rilasciato. Ma alla fine dello sviluppo, sarà possibile modificare ogni aspetto del volto del proprio avatar.

Chris ha detto che la Hull C ha dei problemi con il sistema di estensione della nave. Cosa ci potete dire a riguardo? Avete trovato una soluzione?

Al momento la Hull C soffre di un paio di problemi. Non è stata ancora trovata una soluzione, semplicemente perché nessuno se ne sta occupando. In questo frangente le priorità sono altre e non ci sono risorse da impegnare nella risoluzione di queste criticità.

Riguardo più nel dettaglio i problemi sopraccitati, essi sono correlati alla griglia fisica della nave ed alle prestazioni di gioco.
Il sistema attuale della griglia fisica è statico, nel senso che non può essere cambiato. Di conseguenza questa tecnologia non è in grado di supportare il movimento di estensione della Hull. Tuttavia, questo sistema è in fase di rifacimento, per cui in futuro dovrebbe poter sostenere anche questa funzionalità. Si tratta di risolvere un problema tecnico del Lumberyard, per cui le aree non vengono considerate alla stregua delle entità e quindi ciò che è possibile fare con esse è limitato.
La seconda problematica, quella delle prestazioni, è legata alla quantità di roba che le Hull saranno in grado di trasportare. Per fare un esempio, il modello più grande, la Hull E, sarà in grado di alloggiare qualcosa come 50 Hornet. Avere un quantitativo di risorse così grande in una zona così ristretta potrebbe causare un carico eccessivo per la GPU, per cui bisognerà valutare anche come trattare questo aspetto.

Di cosa vi state occupando al momento?

Sean: Al momento mi sto occupando principalmente di aspetti riguardanti la produzione. Organizzare il lavoro dei vari team, controllare il loro stato di avanzamento e programmare le mansioni di quest’anno.

Gaige: Io sto sviluppando e migliorando una serie di strumenti per i team artistici impegnati sui personaggi. Serviranno a velocizzare il loro lavoro, automatizzandone una parte, e permetterà di collegare Maya direttamente con l’editor del gioco.

Sean, è da un po’ che non si sente parlare di Faceware. Come stanno andando le cose?

Stanno andando bene. I lavori stanno procedendo, solo non riguardano l’implementazione della tecnologia, che peraltro è già presente nella 3.0, seppur disattivata.
Il FOIP attualmente risente di una serie di problemi a livello prestazionale, per cui non sarà possibile farlo uscire nel breve periodo. Soprattutto considerando lo stato attuale del gioco. Nessuno vorrebbe usare questa funzionalità, sapendo che peggiorerebbe ulteriormente le prestazioni.
Per cui si sta lavorando su questo aspetto, assieme ad altre cose. Ad esempio, manca ancora un frontend che gli utenti possano utilizzare per modificare le variabili del FOIP. In futuro, probabilmente sarà integrato alla versione finale del sistema di personalizzazione dei personaggi, ma questo è un obiettivo a lunghissimo termine. Oltre a ciò, ci sono delle questioni di design da risolvere, alcune delle quali connesse alle videochiamate interne al gioco ed all’interfaccia di questo componente.

Ma in linea di massima, la tecnologia c’è, è funzionante e ne è stata già mostrata una demo durante il GamesCom 2017. Al momento il numero di persone dedicate al suo sviluppo è limitato, poiché le priorità sono altre, ma il FOIP dovrebbe essere rilasciato con l’aggiornamento 3.3. Nel momento in cui arriverà in cima alla lista delle priorità, vi verrà assegnato un team che risolverà tutti i problemi rimanenti, così da avere un prodotto funzionale, per quanto ancora da migliorare.

Questo perché con il 2018 si è deciso di cambiare metodologia lavorativa. Ciascuna funzionalità verrà assegnata ad un gruppo dedicato, che quindi vi lavorerà come se dovesse rilasciare un prodotto finito per ambito commerciale. La scelta di operare in questo modo è nata dal fatto che, sebbene Star Citizen sia ancora in Alpha, esso viene ormai trattato da molti come se fosse un qualcosa di finito, pensato per vendere sul mercato commerciale. Cosa che in parte effettivamente è. Per cui la produzione sarà più cauta con la programmazione di rilascio e con le funzionalità da implementare nei vari aggiornamenti.

Articolo originale disponibile presso le Roberts Space Industries.