Nuovo articolo di design dai ragazzi della CIG. Questa settimana ci descrivono nel dettaglio il funzionamento del nuovo sistema dei danni delle navi, il quale aiuterà anche a migliorare le prestazioni di Star Citizen!


Salute Cittadini,

come alcuni di voi potrebbero aver visto nell’ultimo episodio di Around the Verse o negli aggiornamenti mensili forniti da Foundry 42, abbiamo speso parecchio tempo per migliorare il sistema dei danni subiti dalle navi. Abbiamo già mostrato nell’Arena Commander quanto il sistema di controllo dei danni delle astronavi fosse potente e flessibile, cosa che combinata con l’incredibile lavoro grafico ha portato a risultati meravigliosi. Ma le navi costituiscono una parte importante dell’universo di Star Citizen, per cui abbiamo sentito la necessità di fare dei passi in avanti rispetto alla situazione attuale.

Pertanto, abbiamo rianalizzato nel dettaglio il sistema di danneggiamento per verificare cosa potesse essere migliorato e, sebbene distruggere pezzo per pezzo un’astronave nemica possa dare una grande soddisfazione, abbiamo pensato che avremmo potuto rappresentare meglio la zona colpita ed il tipo particolare di danno inflitto. Che si tratti di un’arma a proiettili o ad energia, di un’esplosione o di un semplice graffio sulla vostra nave a seguito di un atterraggio incerto, vogliamo che sia possibile distinguere il tipo di danno sofferto dalla nave con un semplice sguardo. Pensiamo che questo punto sia importante in Star Citizen, in quanto vogliamo che ogni astronave sia in grado di raccontare ciò che ha vissuto.

Due altre aree che intendevamo migliorare erano il tempo richiesto ai nostri artisti per creare i vari stati di danneggiamento per ogni parte della nave, e l’elevato costo in termini di memoria di questi reticoli di danno, il quale sarebbe potuto essere un problema con l’espansione del gioco. Il motivo per cui gli stati di danneggiamento richiedono così tanto lavoro è che ogni nave ha oltre dieci parti principali, e ciascuna di queste richiede almeno cinque stati per poter rappresentare i differenti livelli di danno subito. Inoltre, ogni parte principale di una nave richiede fino a cinque reticoli semplificati di danno che vengono utilizzati quando il modello è lontano dalla visuale per ottimizzare le prestazioni. Complessivamente parliamo di più di 200 reticoli per nave!

Se esaminate gli stati di danneggiamento attuali della vostra nave in Arena Commander, noterete che i primi due livelli presentano solitamente solo delle ammaccature, qualche bruciatura e forse uno o due pannelli mancanti da cui è possibile vedere i componenti interni. Soltanto quando si raggiunge il 75% o il 100% del livello di danno la forma della nave inizia a subire dei cambiamenti significativi, ma ciò nonostante il sistema continuerà ad ereditare il costo in termini di memoria degli stati precedenti.
Pertanto il nostro obiettivo è stato quello di provare ad ottenere gli stati di danneggiamento minori senza dover ogni volta creare dei nuovi reticoli, permettendoci così di risparmiare tempo e memoria. A questo scopo abbiamo deciso di registrare gli impatti subiti dall’astronave all’interno di una serie extra di texture che avvolgono l’intera nave, e di usare queste ultime negli shader per aggiungere dinamicamente ammaccature e bruciature.
Comunque, abbiamo deciso di utilizzare un modello accurato del tipo di danno subito piuttosto che inserire semplici texture di danno generico. Per fare ciò, abbiamo registrato quattro differenti quantità:

Temperatura La temperatura attuale dello scafo della nave
Bruciatura La temperatura massima con la quale lo scafo della nave è venuto a contatto
Spessore Lo spessore rimanente dello scafo esterno. La verniciatura è la prima a venir via, seguita dal metallo sottostante
Deformazione Lo forza fisica subita dallo scafo che lo ha piegato e distorto

Utilizzando questi quattro valori siamo in grado di far avvampare di calore lo scafo, produrre delle bruciature e bolle sulla verniciatura, staccarla per esporre il metallo sottostante, deformare e piegare la superficie e persino bucare lo scafo per esporre i meccanismi ed i cavi interni.
Piuttosto che modellare gli interni della nave solo in alcuni punti, adesso li modelliamo sotto gran parte dello scafo. Potrebbe sembrare che ciò richieda agli artisti un mare di lavoro, ma in realtà hanno ideato diversi metodi per aggiungere efficientemente questi dettagli interni e nel complesso la definizione degli stati di danneggiamento delle navi adesso è più veloce di prima.

La storia vissuta della vostra nave

L’introduzione di questo sistema basato su quattro differenti unità di misura del danno ha determinato un’altra conseguenza interessante: è possibile definire per ogni arma, esplosione o tipo di impatto uno schema unico di questi quattro valori, che avrà quindi degli effetti visivi unici a seconda della fonte del danno. Per cui mentre i laser faranno avvampare per qualche secondo lo scafo delle navi, bruciando la verniciatura ed esponendo il metallo, una potente arma balistica potrebbe bucarlo direttamente. Questa è solo la punta dell’iceberg delle potenzialità di questo sistema. Contiamo di aggiornare a breve il codice relativo ad armi e munizioni per creare dei comportamenti di danno unici e più realistici.

Questa tecnologia è già stata testata sulla Gladius, e potrete vedere voi stessi i magnifici risultati che abbiamo ottenuto nella versione 1.1.0. Quello che probabilmente non vedrete è il consumo della memoria per la Gladius quattro volte inferiore a quello delle altre navi, che comporta migliori performance per i nostri sostenitori. I nostri artisti sono felici di tutto questo, in quanto permetterà loro di realizzare più velocemente le astronavi e, quindi, di completare lo sviluppo del gioco in meno tempo! Vi farà piacere sapere che stiamo estendendo questa tecnologia anche a tutte le nuove navi, mentre il processo di riadattamento di quelle già uscite è attualmente in corso.

I nuovi strumenti

Abbiamo sviluppato le tecnologie aggiuntive necessarie per l’utilizzo degli effetti esplosivi e particellari nel nostro nuovo sistema di danno. Quando una parte di un’astronave si stacca, per esempio un’ala, effetti esplosivi e particellari si attivano lungo i bordi degli oggetti in separazione. Gli effetti esplosivi quando attivati causano dei buchi e delle bruciare sulla superficie della nave, mostrando così le “interiora” sottostanti, rendendo l’idea che una parte dell’astronave sia stata strappata via dal corpo. Gli effetti particellari si attivano nelle stesse condizioni, ma causano la comparsa di fumo, esplosioni e scintille. E’ stato creato uno strumento artistico specializzato, sviluppato da Matt Intrieri, per convertire gli oggetti helper in formato 3DSMAX in codice XML da aggiungere agli effetti di gioco. L’artista degli effetti visivi della CIG, Mike Snowdon, ha usato questo strumento per aggiungere gli effetti esplosivi e particellari ai bordi di ogni parte delle navi per creare degli effetti dinamici e realistici che fossero basati sulla locazione dei vari componenti.

I prossimi passi

Questo è solo una parte del lavoro che stiamo svolgendo su questa tecnologia. Stiamo sviluppando diverse funzionalità importanti di cui vedrete gli effetti in futuro. Una di queste riguarda la creazione, simulazione e rappresentazione degli effetti particellari svolte esclusivamente dalla GPU, cosa che ci darà due enormi vantaggi. Il primo riguarda le prestazioni: potremo creare un numero di particelle GPU dalle 10 alle 100 volte maggiori rispetto a quelle ottenibili con la CPU allo stesso costo. L’altro beneficio consiste nell’equivalenza perfetta con il tipo di danno subito: lo scafo surriscaldato risplenderà come dei carboni ardenti, pezzi di metallo salteranno via quando si incasseranno danni fisici e lo spazio verrà riempito da detriti quando una sezione dello scafo salterà via. Stiamo lavorando anche ad alcune importanti ottimizzazioni del sistema di danno con le funzionalità delle DirectX 11 per assicurare che le prestazioni rimangano elevate anche quando ci saranno venti astronavi all’assalto di una capital ship!

La prima cosa che abbiamo fatto dopo aver reso funzionante questo sistema è stata divertirci a scrivere i nostri nomi sulle fiancate della nave con una Gatling!
Adesso è il vostro turno di divertirvi, e non vediamo l’ora di ascoltare le vostre opinioni in merito a questa nuova tecnologia; per cui, fateci sapere cosa pensate sui forum.

Il futuro

Dopo aver approntato la nuova tecnologia di danneggiamento, stiamo continuando a ricercare nuovi metodi più realistici ed efficienti per migliorare i nostri effetti grafici in ogni campo. Aggiungeremo nuovi effetti sotto la superficie delle navi a seguito della formazione di buchi nello scafo, come scintille o equipaggiamenti danneggiati. Stiamo lavorando ai prototipi di diverse configurazioni di luci e particelle che animeranno i componenti delle navi attraverso gli stati di danneggiamento Sano, Danneggiato, Critico e Distrutto per fornire altre informazioni ai giocatori durante le battaglie ed aumentare il grado di immersione. Stiamo sviluppando una nuova macchina degli stati di danneggiamento che abbiamo chiamato GOST e sarà suo compito determinare l’esistenza di flussi di energia salutari (o meno) tra i vari sistemi della nave, che in ultima analisi andranno ad influenzare le interazioni multi-equipaggio e l’effetto dei danni della nave su queste. Considerando la complessità delle navi più grandi, che rappresenteranno quasi dei livelli galleggianti, rimangono da risolvere grossi quesiti riguardanti la gestione delle brecce nello scafo e la rappresentazione dei danni critici nel vuoto dello spazio e di come tutto ciò andrà ad influenzare i giocatori presenti all’interno delle navi. Siamo estremamente soddisfatti ed entusiasti di aver pubblicato la prima iterazione della nostra nuova tecnologia ottimizzata dei danni, e speriamo che tutti i giocatori provino la stessa cosa.


 

Traduzione a cura di Darnos.
Articolo originale disponibile su Roberts Space Industries.