Sul palco del CitizenCon, poco ha rivaleggiato la presentazione di Marco Corbetta (Senior Technical Director), Alistair Brown (Director of Graphics Engineering) e Michel Kooper (Lead Environment Artist), dove hanno illustrato le evoluzioni della tecnologia planetaria e le novità di questa Planet Tech V.4. Un panel lungo e dettagliato che ci ha portato alla scoperta della tecnologia planetaria, dal principio alle novità future.
LE ORIGINI
All’inizio l’obiettivo era quello di poter arrivare dallo spazio sui pianeti senza necessità di caricamenti. Marco Corbetta aveva quindi iniziato a lavorare sulla tecnologia procedurale e, nonostante i risultati iniziali fossero interessanti, già si intuiva che sarebbe stato quasi impossibile legare la proceduralità alla Lore specifica di Star Citizen. Non servivano dei pianeti generici, ma bisognava ricreare mondi con definiti elementi caratteristici, cosa che andava oltre le facoltà della classica tecnologia procedurale.
PLANET TECH V.1
La prima versione della tecnologia planetaria aveva alcuni “layers” per definire le modifiche del terreno e i cambi di altitudine. Shaders e colori venivano applicati su regole procedurali, definendo però mappe estremamente ripetitive e poco interessanti, oltre a non poter essere plasmate o modificate dagli artisti. Fin da subito era presente una prima versione dell’atmosfera e l’integrazione all’interno dell’editor.
PLANET TECH V.2
La seconda versione della tecnologia planetaria introduceva per la prima volta dei biomi all’interno dello stesso pianeta/luna. La tecnologia si basava su tre livelli informativi (layers), ognuno dei quali dava le informazioni necessarie per la disposizione di oggetti/elementi naturali, l’altezza e la conformazione del terreno, oltre il concatenamento delle texture di gioco.
I miglioramenti della v.2 riguardano anche l’introduzione di un solar system editor e un planet system editor per gli sviluppatori, oltre alla possibilità di inserire sulla superficie outpost e altri elementi costruiti ad hoc o tramite tecnologie procedurali.
È interessante far notare che questa versione 2 ha subito importanti modifiche durante il suo sviluppo. Infatti la stessa v.2 è stata protagonista dell’incredibile demo del CitizenCon 2946 (2016) e un anno dopo della problematica 3.0, che presentava un dettaglio e un feeling molto diverso. Questo era dovuto probabilmente alle numerose modifiche resesi necessarie per permettere un’esperienza di gioco accettabile online, oltre ad altri elementi necessari per ridurre lo stuttering a bassa quota.
PLANET TECH V.3
La versione 3 della tecnologia planetaria è arrivata ufficialmente dalla 3.3.5., e ha portato ad avere biomi molto più complessi, cosa che ha permesso di creare la savana di Hurston e il pianeta-città di ArcCorp. Nella versione 3 i livelli informativi (layers) sono passati da 3 a 5, e hanno migliorato anche le transizioni tra biomi, oltre ad ovvi miglioramenti dei tool di sviluppo.
VERSO LA TECNOLOGIA PLANETARIA V.4
Quale è il passo successivo? Se la tecnologia planetaria v.2 permetteva di creare rapidamente elementi di gioco, pur con molto meno controllo sui risultati, la v.3 permetteva di creare lune e pianeti molto più nel dettaglio ma anche più lentamente. Era dunque necessario riuscire ad ottenere la velocità che si aveva nella v.2 insieme al controllo della v.3.
Inoltre il team si era posto l’obiettivo sia di migliorare i biomi in modo di averne di più piccoli e meglio integrati, sia di tenere in considerazione pianeti speciali come ArcCorp, il quale aveva presentato una sfida non indifferente per la v.3. L’obiettivo in pratica era di avere un sistema da cui partire che fosse più versatile e veloce, capace di fare da fondamenta per pianeti ancora più complessi come Terra (Terra, Terra System).
QUESTIONE DI TEMPO E CONTENUTI
Per quanto presentassero elementi differenti al loro interno, le lune di Crusader presentavano sostanzialmente un unico bioma al loro interno. Quando il team ha iniziato a lavorare su Hurston è stato chiaro che sarebbe stata una sfida non indifferente: Hurston presentava una moltitudine di biomi, dalla savana alle discariche, passando per terreni acidi e zone più desertiche.
Tenendo ben presente di quanto difficile fosse stato in passato lavorare su questi contenuti, hanno realizzato questa v.4 proprio con l’obiettivo di essere più veloci nel realizzare lune e pianeti. I tool della tecnologia planetaria v.4 sono interni all’engine e facili da usare per gli sviluppatori.
PARTIRE DALLA REALTà E DAI PROBLEMI ATTUALI
Per capire come i biomi si mescolano tra loro sono partiti da un tool usato dalle persone tutti i giorni, Google Maps. Ed è stato palese come i biomi non finissero all’improvviso ma proseguissero un po’ a macchie prima finire in un bioma totalmente differente. Sono transizioni complesse, che presentano tanti elementi differenti e sono dovuti ad elementi naturali presenti geograficamente, come fiumi, montagne e colline.
La tecnologia planetaria v.3 non seguiva nulla di questa logica. La resa sulla distanza dei pianeti era poco credibile ed era dettata da una texture globale che risultava troppo poco dettagliata nel momento in cui ci si avvicinava al pianeta. Inoltre la tecnologia v.3 usava una moltitudine di file da modificare in caso di cambiamenti, che potevano arrivare anche a 500 e più per pianeta, da modificare uno ad uno in caso si volesse per esempio cambiare un po’ il colore del pianeta stesso.
CAMBIARE LE FONDAMENTA
La prima cosa che hanno fatto è stata separare la conformazione del terreno dai suoi elementi informativi: bioma, temperatura, ecc. Questo a portato ad un sistema molto più dinamico e semplice da gestire. La tecnologia planetaria v.4 può rendere le transizioni tra biomi incredibilmente realistiche, basandosi su informazioni come temperatura, umidità e condizioni meteo. È la stessa conformazione del terreno a dettare queste informazioni, rendendo ogni zona molto più unica.
Le transizioni del pianeta allontanandosi e avvicinandosi tra i vari livelli di dettaglio (LOD) ora sono molto più naturali e presenta molto meno il classico effetto pop-up, oltre a non esserci più discordanza tra ciò che si può vedere dalla distanza e ciò che invece viene visto allontanandosi.
I 500 e più file che componevano i singoli pianeti sono stati sostituiti da un unico e ordinato file che viene gestito da un tool inserito dentro l’engine e che risulta semplice da usare per gli artisti.
RIFARE TUTTO DI NUOVO
La tecnologia planetaria v.4 ha portato alla necessità di ricreare tutti i pianeti e lune già realizzati, da ArcCorp a Yela: un’impresa che ha richiesto solo un paio di mesi, in un periodo dove gli stessi tool erano ancora in sviluppo. Le tempistiche non potranno che migliorare, anche se questi due mesi non sono stati indolori: le 3 lune di Microtech (Euterpe, Clio e Calliope) non arriveranno nella 3.8 ma nella 3.9.
UNIFORMARE E SEMPLIFICARE LE INFORMAZIONI
I pianeti sono formati da quadrati (tasselli) da 4x4km, che ora nella v.4 presentano una altezza uniformata che ha permesso di avere solo due mappe informative principali: quella dell’umidità e quella della temperatura. Con “altezza uniformata” si intende che ogni quadrato può avere un’altezza massima di +1km e una profondità massima di -1km, ovvero 2 km di dislivello massimo. Questo non significa che non si potranno avere montagne più alte di 2 km, perché ogni singolo quadrato non deve necessariamente trovarsi alla medesima altezza, ma più quadrati possono andare a formare alte catene montuose o basse pianure.
TEMPERATURA E UMIDITà
Temperatura e umidità vanno invece a definire le informazioni necessarie che verranno poi interpretate dai biomi e dal sistema meteo per avere un sistema dinamico e data-driven. Sono infatti le due informazioni di umidità e temperatura a dettare il tipo e il comportamento del bioma su un pianeta o una luna, tenendo presente che ogni pianeta e luna ha la sua lista di biomi e le sue regole, che tiene conto anche dei singoli dettagli, come per esempio il tipo di albero da spawnare.
Temperatura e umidità vanno a formare un grafico 2D dove da un parte c’è la temperatura (Y) e dall’altra c’è l’umidità (X). Questo grafico gestisce i biomi e la loro conformazione e presenta circa 16.000 possibili risultati (126×126 circa), che a loro volta vengono gestiti facendo “dipingere” i biomi sulla superficie del terreno dagli artisti, tenendo presente che dipingendo in un punto che ha una certa umidità e temperatura, si dipinge contemporaneamente tutti i punti sul pianeta/luna con quella stessa umidità e temperatura. Questo permette agli artisti di definire velocemente i biomi, senza andare ad impostare manualmente tutte le 16.000 possibili condizioni.
CONCLUSIONE
Ci sono tanti altri piccoli dettagli tecnici che sono stati detti nella presentazione, per esempio come funzionano alcuni elementi di ottimizzazione o come gli oggetti vengono inseriti nei biomi nella v.4. Sono informazioni che risultano difficili da spiegare senza andare fin troppo nel dettaglio, in rami che non sono di competenza di chi scrive.
Facendo un paio di passi avanti e andando a concludere, la tecnologia planetaria v.4 rappresenta le fondamenta su cui costruire i pianeti e le lune in futuro, essendo un sistema veloce e versatile per la Cloud Imperium. E benché ci sono ancora alcune problematiche che non sono state affrontate con la tecnologia planetaria v.4, il team di sviluppo ha tutto il potenziale e la capacità di risolverle nel prossimo futuro. Andando avanti miglioreranno e diventeranno più esperti delle loro nuove tecnologie, sperimentando e sorprendendoci ancora. Di questo passo, Terra non è lontana… finalmente.