La riprogrammazione di Ethan Carter - articolo
Il Digital Foundry parla con The Astronauts della transizione a PS4 e Unreal Engine 4.
Unreal Engine 3 ha goduto di vita lunga e prospera su last-gen dopo aver debuttato nel 2006, ma l'UE4 deve ancora entrare a regime nell'era delle nuove console. L'attuale generazione è cominciata da quasi due anni, ma su PS4 e Xbox One sono disponibili solo cinque giochi basati su UE4. Con il lancio di The Vanishing of Ethan Carter, il team polacco The Astronauts è diventato probabilmente il primo studio a realizzare il potenziale latente di questo middleware.
Il gioco è un porting da PC, ma il viaggio di Ethan Carter verso PlayStation 4 è stato più lungo e complesso di quanto ci si aspetti. Dopotutto, l'originale era basato su Unreal Engine 3, una tecnologia completamente differente da quella alla base del successore. Anche se la qualità grafica spingeva la tecnologia collaudata di Epic ai limiti, The Astronauts voleva realizzare il gioco con UE4 fin dall'inizio, cosa che non è stata possibile visto che il motore, semplicemente, non era pronto. Con il passaggio a Playstation 4, lo studio ha colto l'opportunità di portare l'intero progetto sulla nuova piattaforma di Epic. Questa transizione avrebbe facilitato il porting e sarebbe stata un'occasione di esercitarsi con i nuovi strumenti. Ora, 10 mesi dopo il lancio dell'originale, Ethan Carter è riemerso su PlayStation 4, seguito da una versione PC upgradata disponibile gratuitamente per tutti i possessori del gioco.
Per darci un'idea del lavoro richiesto dalla transizione, Andrzej Poznanski (lead artist di The Astronauts), si è preso il tempo di condividere con noi le sue esperienze, fornendo un prezioso punto di vista sul procedimento di sviluppo. Non si è parlato molto dei progetti per le attuali console basati su UE4, quindi eravamo ansiosi di apprendere di più delle capacità del motore, e delle sfide e opportunità che lavorare con esso implica. La tecnologia è chiaramente molto capace, ma le sue funzioni non possono essere impiegate appieno in una piattaforma limitata come PS4.
"Lo sviluppo di videogiochi è sempre stato questione di compromessi, che non sono mai stati evidenti come con i motori e gli hardware moderni”, ci dice Poznanski. “Nell'Unreal Engine 4 si possono avere illuminazione e ombre bellissime ovunque, rendering di qualità cinematografica grazie all'anti-aliasing avanzato, effetti di profondità di campo 'bokeh' e motion blur molto belli, anche illuminazione globale in scenari deformabili, ma non si possono avere tutte queste cose insieme”.
Unreal Engine 4 è basato su un renderer differito che enfatizza illuminazione dinamica e rendering basato sulla fisica (PBR), un approccio completamente estraneo al design originale di Ethan Carter su UE3. “Il PBR di UE4 funziona meglio con illuminazione totalmente o almeno parzialmente dinamica. Il PBR era problematico con la nostra illuminazione completamente statica, e le texture non-PBR non aiutavano”, rivela Poznanski. "Pensavamo che un maggiore realismo non sarebbe stato adeguato al nostro gioco. Avevamo lavorato duro per creare quell'atmosfera leggermente surreale e non volevamo rovinarla, per cui non abbiamo rimesso mano a molti contenuti, ma più che altro abbiamo regolato l'illuminazione per farla funzionare con la conservazione energetica del PBR e fatto uso di una diffusione più naturale della luce offerta da UE4."
Questa presentazione unica è principalmente il risultato di un'illuminazione globale statica di alta qualità, dalla risoluzione sufficientemente alta da eliminare il bisogno di utilizzare qualsiasi forma di occlusione ambientale screen-space. È interessante apprendere che per ottenere l'aspetto desiderato è stato necessario optare per un comportamento non realistico dei materiali nel sistema d'illuminazione.
Un esempio di ciò sono le lightmap statiche: durante la loro implementazione, i riflessi speculari erano completamente assenti a causa del fatto che UE4 è progettato per usare questi elementi principalmente per il rimbalzo indiretto della luce. La soluzione di questo problema va contro i principi del modello d'illuminazione del motore. Leszek Godlewski, programmatore del motore, spiega: “Ho 'sistemato' la cosa aggiungendo un riflesso speculare Phong fasullo. Mi sento veramente scorretto per averlo fatto, perché viola il principio della conservazione dell'energia e usa una distribuzione speculare non-PBR, ma agli artisti andava bene”.
È diventato presto evidente che il flusso di lavoro necessario per portare il gioco sul nuovo motore sarebbe stato molto diverso dal tipico approccio utilizzato per realizzare un titolo da zero su UE4. Creare nuovi strumenti e tecniche lavorando con codice non-standard è un procedimento difficile che può spesso rovinare delle cose durante lo sviluppo. Un esempio include l'implementazione dei riflessi: il supporto per i riflessi planari, che il gioco originale utilizza per l'acqua, è stato rimosso da UE4. Risolvere il problema con gli strumenti dell'UE4, che utilizza delle cube-maps, produceva riflessi imprecisi e di conseguenza per correggere il tutto è stato necessario un hack, con conseguenze sulla qualità dei riflessi in confronto all'implementazione originale.
I The Astronauts sono inequivocabilmente positivi riguardo al processo di sviluppo su PS4: “È stata la miglior esperienza di sviluppo su console che abbia mai avuto”, dice Poznanski. "In confronto alla generazione precedente, l'hardware attuale è molto più bilanciato: non abbiamo incontrato alcun collo di bottiglia. Non abbiamo dovuto fare acrobazie per sfruttare appieno il potenziale dell'hardware, ed è stato un vero piacere liberare le nostre menti dalle preoccupazioni dei driver PC".
Anche l'accesso a un grosso quantitativo garantito di memoria è stato utile. Un problema della versione originale PC stava nel sistema di streaming dei dati di UE3, noto per scatti e pop-in che colpiscono in particolare scenari più ampi come quelli di Batman: Arkham City e, ovviamente, Ethan Carter. La versione PlayStation 4 riesce a evitare molte (ma non tutte) incertezze di questo tipo che si verificano durante l'esplorazione.
"Anche se UE4 è dotato di una serie di cambiamenti che assicurano uno streaming più regolare, siamo riusciti a ottimizzare i nostri contenuti e a utilizzare la memoria di PS4 in un modo che raramente mette il sistema di streaming sotto sforzo”, spiega Poznanski.
È un approccio interessante, visto che lo streaming dei dati era essenziale nella scorsa generazione a causa del quantitativo limitato di memoria disponibile su console. Su PS4 l'aumento di memoria permette di immagazzinare un quantitativo maggiore di dati ed eliminare il bisogno di streaming costante. A differenza della versione PC, Ethan Carter carica la maggior parte dei dati al lancio, e quando si raggiunge il menu principale il gioco scorre fluidamente. Detto ciò, ci sono ancora dei casi in cui abbiamo incontrato piccole esitazioni nel caricamento di determinati file sonori o nell'attivazione di eventi specifici.
Anche se l'obiettivo principale era di portare la visione originale su Unreal Engine 4, il nuovo motore ha permesso tutta una serie di benefici grafici. È stato utilizzato un motion blur di qualità molto superiore che rende più fluidi il movimento del personaggio e la rotazione dell'inquadratura. Luci puntiformi ad alta intensità, come quella del sole, appaiono più ricche e realistiche in confronto al gioco originale. I raggi solari si infiltrano ora realisticamente nelle piccole finestre di una vecchia chiesa, un tocco grafico completamente assente nell'originale. La vegetazione appare più nitida e definita in lontananza, la diffusione delle ombre è leggermente più sfumata e i raggi crepuscolari hanno un aspetto più naturale. Nella maggior parte delle aree i cambiamenti apportati hanno come risultato un piccolo ma apprezzabile salto di qualità.
Il rovescio della medaglia è che altri elementi specifici dell'UE4 sono stati messi da parte in favore di soluzioni preferite dagli artisti. Uno di essi è la qualità dell'immagine. Su PS4, Ethan Carter opera a 1920x1080 con un passaggio di anti-aliasing FXAA. I risultati sono puliti ma mancano di stabilità temporale sugli oggetti distanti. Ringhiere, bordi degli oggetti statici e motivi complessi esibiscono sfarfallii notevoli mentre ci si sposta per lo scenario.
La soluzione di AA temporale inserita da Epic nel motore è validissima, ma è stata ritenuta un po' troppo aggressiva per lo stile grafico di Ethan Carter, spingendo il team a cercare un'alternativa. Sono stati presi in considerazione FXAA e SMAA T2x, ma con quest'ultimo le prestazioni erano peggiori. Nel confronto abbiamo utilizzato una combinazione di FXAA e MSAA 2x per le acquisizioni PC, ottenendo un'immagine generalmente più stabile. In alcuni punti, la presentazione su PS4 è comunque comparabile a quella PC a impostazioni massime: Ethan Carter utilizza su console un filtro anisotropico che previene la sfocatura delle texture visualizzate obliquamente. Il filtering di bassa qualità è un punto dolente comune nei titoli per console current-gen, e ci siamo chiesti cosa differenziasse il lavoro di The Astronauts dagli altri.
"Utilizziamo un filtering anisotropico di alto livello, ma per essere corretti con gli altri sviluppatori non abbiamo speso cicli e cicli di calcolo su IA, scenari distruttibili o shader delle armi”, dice Poznanski. "Dietro all'aspetto del nostro gioco c'è una quantità di lavoro pazzesca e non voglio sminuirla, ma credo che abbiamo avuto più possibilità di migliorare la grafica rispetto ad altri giochi".
Abbiamo quindi un accenno delle potenziali difficoltà nell'utilizzare un filtro anisotropico di buon livello su console, e ciò suggerisce perlomeno che non ci sono barriere (prestazioni a parte) che ne prevengano un'implementazione decente.
Dalla nostra prospettiva, se c'è un elemento che rovina la prestazione è la variabilità del frame-rate. Come altri titoli per console current-gen, Ethan Carter gira a frame-rate sbloccato. Ciò rende l'esperienza molto altalenante, con un numero di fps che va da poco più di 30 a 60 in base alla direzione in cui è puntata l'inquadratura. Per la maggior parte del tempo il frame-time resta a 33ms o meno. Con un cap attivo, ciò si tradurrebbe in 30fps molto stabili.
"Credo che la situazione sia la stessa di Infamous. Internamente il frame-rate dinamico ci piaceva e non ci ha mai dato fastidio, al contrario. Quindi abbiamo pensato di mantenerlo nel gioco finale”, ribatte Poznanski. "Ma alcuni giocatori preferiscono un frame-rate stabile. Lo capiamo. Quando si ha un calo da 60fps a 30fps, si passa da un frame-rate ottimo allo standard, ma è pur sempre un calo. E sembra un peggioramento molto più grande di quanto non sia. Quindi, anche se la maggior parte dei giocatori non ha problemi con il frame-rate sbloccato, aggiungeremo un'opzione per limitarlo e forse imposteremo il valore di base a 30fps”.
Nonostante l'attenzione prestata a PlayStation 4, gli sviluppatori non hanno dimenticato i loro utenti PC. Ci sono piani per lanciare in un futuro prossimo un aggiornamento della versione PC di Ethan Carter, portando il codice base UE4 con dei miglioramenti che favoriranno chi possiede una macchina da gioco di fascia alta. O, per dirla come Poznanski:
"Tutto ciò che i giocatori PC si aspettano, vale a dire il supporto per i 4K, frame-rate più alti su hardware costoso, tante opzioni grafiche da calibrare. In generale, la filosofia è di assicurarci che chi possiede un sistema esagerato, come tre proiettori o qualcosa del genere, possa adattare il gioco alle sue necessità senza troppi problemi. Con la versione UE3 siamo andati a briglia sciolta, offrendo anche uno slider per l'ampiezza della visuale, ma c'era ancora spazio per altro. Vogliamo assicurarci che la versione UE4 sia flessibile al massimo”.
Detto ciò, il passaggio al renderer differito di Unreal Engine 4 è problematico per l'MSAA, il che rende una funzione della versione originale indisponibile per quella rivisitata. “Stiamo ancora ritoccando gli algoritmi per il nostro personale MSAA, ma è già promettente e probabilmente sarà la nostra soluzione principale”, fa notare Poznanski. "UE4 è dotato di un AA temporale molto stabile, che però ammorbidisce troppo l'immagine per i nostri gusti. Con l'over-sampling, comunque, è incredibile”.
Adrian Chmielarz, direttore creativo del gioco, ha parlato poi con passione dell'eventuale supporto per la realtà virtuale. Anche ammettendo che per la realtà virtuale ci vorrebbe un Ethan Carter “molto diverso”, Chmielarz è entusiasta dell'idea. È qualcosa che vorrebbe chiaramente fare, e spera che il risultato sia un qualche tipo di spin-off. Ci piacerebbe vedere una versione del gioco in VR, ma è chiaro che sarebbe quasi impossibile supportare Morpheus senza una rivisitazione radicale del gioco attuale.
Al momento, comunque, è difficile non rimanere colpiti dal lavoro fatto da The Astronauts per portare Ethan Carter su console passando ad Unreal Engine 4. Gli utenti PS4 hanno a disposizione un'eccellente versione di quest'avventura onirica, una strana esperienza che vale la pena di considerare se apprezzate esplorazione e mistero. L'esecuzione tecnica e la qualità rivaleggiano con la versione PC originale, con l'eccezione di alcuni cambiamenti dovuti al passaggio a UE4 e dell'anti-aliasing meno stabile. Inoltre, le migliorie grafiche rese possibili dall'UE4 sono affascinanti.
La cosa più importante, forse, è che questa è una pietra miliare importante per Epic e Unreal Engine 4. Anche se The Vanishing of Ethan Carter utilizza il motore in maniera non proprio convenzionale, è bello avere su console un titolo solido sviluppato con UE4. I primi titoli basati su questa tecnologia avevano sollevato dei dubbi sulle sue effettive possibilità di utilizzo su PS4 e Xbox One, ma sembra che ci sia stata una svolta. Vi sono molti titoli in sviluppo basati su questo middleware, come Street Fighter V, Fable Legends, Kingdom Hearts 3 e Rime. UE3 ha dominato la last-gen, e anche se il suo successore non sta ottenendo la stessa attenzione, è bello sapere che ci sono tutte le potenzialità per ottenere visuali eccezionali su hardware console.