Skip to main content

Metro Redux: com'è veramente sviluppare per PS4 e Xbox One - intervista

Una discussione aperta con 4A Games sulla nuova generazione di console.

Per quanto riguarda le interviste tecniche, questa è fenomenale. Chi ha letto le interviste riguardanti Metro 2033 e Metro Last Light sa già che Oles Shishkovstov, chief technical officer di 4A Games, non è ritroso riguardo a ciò che lo interessa, e nella transizione alla nuova generazione di console ci sono chiaramente molti argomenti importanti di cui discutere.

È questa franchezza che va dritta al punto a rendere le interviste a Oles così corroboranti. 4A Games è il primo sviluppatore disposto a parlare in maniera approfondita e aperta dello sviluppo sulle nuove console, discutendo i problemi e le opportunità fornite da hardware e software alla base di PlayStation 4 e Xbox One. Oles ha fatto luce su alcuni punti, in passato oggetto di voci e speculazioni, illustrando le difficoltà affrontate in particolare da chi sviluppa per Xbox One, offrendoci un accenno del lavoro che Microsoft sta facendo dietro le quinte per migliorare i kit di sviluppo.

Ci sono molte informazioni da assimilare: ovviamente la differenza di prestazioni tra Xbox One e PlayStation 4, un giudizio sincero sulla ESRAM della console di Microsoft, le implicazioni della condivisione di memoria e banda tra CPU e GPU, e osservazioni su hardware PC e DirectX 12. L'intervista contiene anche alcune rivelazioni. Sapevate che Microsoft permette ora agli sviluppatori di bypassare le DX11 e comunicare direttamente con l'hardware in maniera simile a quanto accade con le GNM API di Sony? E quanto fosse rilevante per gli sviluppatori il ritorno delle risorse della GPU riservate a Kinect?

Questo articolo precede la nostra analisi comparativa di Metro Redux, rinviata a causa di una patch dell'ultimo minuto per la versione PC. Nel frattempo abbiamo incluso del materiale delle versioni console sul quale stiamo lavorando. Per una copertura approfondita delle versioni console vi rimandiamo agli articoli sul confronto delle versioni last-gen con le Redux e l'analisi delle prestazioni di queste ultime. Alla luce dei fatti non abbiamo remore nel consigliarvi il gioco.

Digital FoundryNella nostra ultima intervista eri eccitato dalle possibilità offerte dalle console next-gen. Ora avete rilasciato i vostri primi giochi su Xbox One e PlayStation 4. Sei ancora elettrizzato dal potenziale di queste console?
Oles Shishkovstov

Credo che ciò che abbiamo ottenuto con le nuove console sia veramente ottimo visto il poco tempo che abbiamo avuto con i kit di sviluppo nello studio, appena quattro mesi di esperienza pratica su Xbox One e sei con PlayStation 4 (credo che i problemi che abbiamo avuto per far arrivare i kit di sviluppo all'ufficio di Kiev siano ormai noti).

Il fatto è che non abbiamo ancora cominciato a utilizzare appieno tutta la potenza di calcolo che abbiamo a disposizione. Ad esempio non abbiamo utilizzato contesti di calcolo parallelo a causa della mancanza di tempo e dello stato 'alpha' del supporto sulle console al tempo. Ciò significa che c'è molto potenziale ancora da utilizzare, che dovrebbe tradursi in visuali e gameplay migliori una volta che avremo preso confidenza con l'hardware.

Metro 2033 è il gioco che ha goduto di più lavoro di rimasterizzazione tra i due. In questo video confrontiamo la versione originale per Xbox 360 con quella rivisitata per Xbox One.Guarda su YouTube
Digital FoundryXbox 360 e PS3 erano design molto ambiziosi per il 2006/7. Xbox One e PS4 sono macchine molto più caute sul lato economico: hanno ciò che occorre per durare quanto i loro predecessori?
Oles Shishkovstov

Ovviamente non sono dotate dell'hardware più avanzato che si possa comprare oggi (anche se a prezzi folli) per PC, ma sono delle macchine ben bilanciate e superiori in termini di prestazioni a ciò di cui sono in possesso la maggior parte delle persone. Non dimentichiamo che la programmazione di basso livello permette solitamente di ottenere il doppio delle prestazioni che avremmo da un PC dalle specifiche equivalenti. Ottenerle richiede però un po' di tempo!

Per rispondere alla domanda, potrebbero durare altrettanto. Ricordiamoci che quando PS3 arrivò nei negozi fu lanciata anche la Nvidia G80, al tempo due volte più veloce dell'RSX…

Digital FoundrySiamo praticamente di fronte a un'integrazione intelligente di componenti PC già esistenti. Per la prima volta abbiamo la parità tra le architetture delle piattaforme principali: quanto è importante questo per voi?
Oles Shishkovstov

Beh, l'architettura simile delle GPU è veramente una buona cosa. Il motivo è che le GPU moderne sono degli apparecchi veramente complessi con picchi prestazionali non ovvii. Non si può più dire di essere limitati da fattori come ALU, ROP, filtering delle texture e così via. Non c'è una risposta semplice e corretta. Potremmo essere limitati in una certa misura dalle unità aritmetiche e logiche e in parte dal texture addressing e in parte dalla banda, tutto allo stesso tempo… padroneggiare queste cose richiede del tempo.

Per quanto riguarda la CPU la cosa non ha veramente importanza, purché ci sia sufficiente potenza di calcolo. Per quanto riguarda la gerarchia della RAM e le sue prestazioni, è diversa tra le piattaforme.

Digital FoundryCome avete stimato le capacità delle console dopo essere entrati in possesso dei kit di sviluppo?
Oles Shishkovstov

Beh, abbiamo convertito i giochi e fatto molti test!

Un piccolo esempio che posso fare: Metro Last Light (su entrambe le console last-gen) è caratterizzato da alcuni procedimenti di generazione di texture fortemente vettorizzati e ottimizzati a mano. Ciascuno di essi richiede 0.8ms sulla singola SPU di PS3 e circa 1.2ms su un singolo hyper-thread di Xbox 360. Dopo la prima profilazione su PS4 (già vettorizzato tramite AVX+VEX) ha richiesto più di 2ms! Ciò depone male per un fotogramma da 16ms. Il fatto è che l'unico scopo di quel procedimento era di alleggerire di alcuni cicli il lavoro delle (vecchie) GPU, il che è controproducente sulle nuove console. Quel percorso è stato semplicemente disattivato nel codice.

L'edizione Redux di Metro 2033 a confronto su PlayStation 4 e Xbox One.Guarda su YouTube
Digital FoundryI problemi riguardanti il minor numero di unità computazionali, la banda e l'ESRAM di Xbox One sono ben documentati. Le differenze di risoluzione nei titoli multi-piattaforma sono comuni e in alcuni titoli abbiamo rilevato anche 720p contro 1080p. Qual è la tua opinione sulle differenze tra Xbox One e PlayStation 4?
Oles Shishkovstov

Beh, hai praticamente risposto alla tua stessa domanda: PS4 è un po' più potente. Hai dimenticato di menzionare i ROP, e non dimentichiamo che CPU e GPU condividono la banda con la DRAM (su entrambe le console). Durante la profilazione di Xbox One ho assistito in molti casi a prestazioni sufficientemente veloci da parte della GPU, ma solo quando la CPU è praticamente inattiva. Purtroppo ho assistito anche a situazioni opposte, in cui la CPU offre le prestazioni attese ma solo a GPU inattiva, anche se il processore in teoria ha un accesso alla memoria prioritario. Per questo la decisione di Microsoft di incrementare le velocità di clock appena prima del lancio è stata assennata, visto il design ormai immutabile.

Calcolare il numero di pixel non è comunque il miglior modo per misurare la differenza tra le console. Ci sono molti altri fattori più importanti che influenzano la qualità dell'immagine oltre alla risoluzione. Potremmo ottenere il 40% di pixel in più da PS4, ma il risultato non sarebbe migliore del 40%... i tuoi stessi occhi possono confermartelo.

Digital FoundryLavorare con la ESRAM è veramente così difficile?
Oles Shishkovstov

In realtà la difficoltà non viene dalla ESRAM, ma dalla piccola quantità presente di quest'ultima. Per quanto riguarda le sue prestazioni, sono sufficienti per la GPU presente nell'Xbox One. È vero che la banda massima teorica, paragonabile in qualche misura a quella di PS4, può essere ottenuta raramente (di solito con operazioni simultanee di lettura e scrittura, come il blending a FP16), ma in pratica abbiamo assistito solo ad alcuni casi in cui è stata un fattore limitante.

Digital FoundryDirectX 11 vs GNMX vs GNM: qual è la tua opinione su punti di forza e debolezze delle API a disposizione degli sviluppatori per Xbox One e PlayStation 4? In prossimità del lancio ci sono state alcune lamentele nelle prestazioni dei driver di Xbox One e overhead della CPU su GNMX.
Oles Shishkovstov

Mettiamola così: abbiamo visto scenari in cui un singolo core della CPU è arrivato a pieno carico solo gestendo le draw-call (sicuramente a causa del driver 'mono' con l'utilizzo di parecchie chiamate ad alta velocità). Su PS4, negli stessi scenari è stato difficile trovare quelle draw-call nei grafici di profilazione perché impiegano pochissimo tempo e sono quindi appena visibili.

In generale non capisco perché abbiano scelto le DX11 come punto di inizio per la console. È una console! Perché preoccuparsi di un elemento obsoleto? Su PS4 la maggior parte dei comandi della GPU sono appena alcune DWORD scritte nel command buffer, diciamo qualche ciclo di clock della CPU. Su Xbox One il tutto potrebbe essere un milione di volte più lento a causa di tutte le operazioni di registro eseguite dalle API.

Microsoft però non sta dormendo. Ogni XDK rilasciato prima e dopo il lancio di Xbox One ha portato con sé draw-call sempre più veloci. Sono state aggiunte molte funzionalità con cui aggirare le limitazioni delle DX11. Hanno perfino reso disponibile delle API in stile DX12/GNM, che però non abbiamo utilizzato in Redux a causa dei limiti di tempo.

Metro Last Light Redux a confronto su PlayStation 4 e Xbox One.Guarda su YouTube
Digital FoundryI giochi della serie Metro hanno la reputazione di spingere le visuali al limite, ma anche i PC di fascia alta possono faticare a mantenere i 60fps. Ho giocato Metro Last Light per ore su PS4 e Xbox One, e i 60fps sono praticamente costanti. Ovviamente alcune delle opzioni più avanzate su PC sono ridotte o alterate, ma in un'epoca in cui neanche Naughty Dog è riuscita a far girare il suo titolo last-gen a 1080p60 su PS4 in maniera fluida, qual è il segreto del vostro successo?
Oles Shishkovstov

Non ci sono segreti. Ci siamo solo adattati all'hardware.

GCN non ama gli interpolatori? Ok, via lo spazio tangente in vettori, sotto con quello per pixel. Un processo della CPU diventa troppo veloce su una CPU con esecuzione fuori ordine? Uniamo questi processi. Troppo lenti? Parallelizziamoli. Forse la GPU non lavora bene con molte radici quadrate ma va meglio con calcoli integrali? Useremo dei vecchi trucchi integrali. E così via.

Questa è l'arte dell'ottimizzazione, e non c'è altro. A proposito, la versione PC beneficia direttamente di queste ottimizzazioni, specialmente dal lato CPU, come tutte le piattaforme dotate di CPU con esecuzione fuori ordine.

Digital FoundryDi sicuro la soluzione più facile sarebbe stata bloccare il gioco a 1080p30 e concentrarsi nell'inserire più funzioni di rendering avanzate possibili. Perché puntare a 60fps piuttosto che a 30fps?
Oles Shishkovstov

Perché possiamo! In effetti, per il prossimo progetto ancora non annunciato i designer vogliono ancora di più (come sempre), ed è possibile che punteremo a 30fps.

Abbiamo lanciato un gioco solido a 60fps con la qualità a metà strada tra le impostazioni alte e molto alte della versione PC. Diciamo di riservare circa il 30% del frame-time per il post processing (si tratta di un valore praticamente costante), saremmo a circa 11ms per visualizzare il fotogramma. Ora immagina di farlo a 30fps, avremmo visuali 2 volte e mezzo più ricche, migliori.

Digital FoundryMetro Redux non è un semplice porting, è stato migliorato. Come avete scelto le migliorie da apportare? Il design delle console ha avuto a che fare con queste scelte?
Oles Shishkovstov

Dal lancio di Metro Last Light abbiamo raccolto dei suggerimenti dai giocatori al fine di includerli in Metro Redux. La potenza delle nuove console ci ha permesso di migliorare i giochi nei settori più critici riguardo al gameplay, specialmente le sparatorie e il feeling generale. Ad esempio, le sequenze di intermezzo e i combattimenti sono diventati più fluidi e i controlli molto più reattivi. Inoltre la nuova incarnazione di Metro 2033 include molti aggiornamenti introdotti da Metro Last Light: nuove armi e relativi upgrade, modalità stealth e abbattimenti più accessibili, IA migliorata dal comportamento più realistico, grafica migliore etc.

Digital FoundryDi quali dei nuovi elementi delle edizioni Redux siete più soddisfatti?
Oles Shishkovstov

Siamo molto contenti che i giochi siano più bilanciati: si giocano meglio, girano più velocemente e sono visivamente più freschi. E anche del fatto che siamo riusciti a raccogliere tutto il mondo di Metro in un unico pacchetto contenente tutti i DLC, le modalità e I livelli di difficoltà.

Analisi delle prestazioni di Metro 2033 su Xbox One e PlayStation 4. Entrambe le versioni operano a 60fps, con solo qualche occasionale e impercettibile calo nel frame-rate.Guarda su YouTube
Digital FoundryCi sono state molte discussioni tra i giocatori sul fatto che gli sviluppatori debbano realizzare nuovi giochi invece di convertire quelli già esistenti per Xbox One e PS4, qual è la tua risposta?
Oles Shishkovstov

Stiamo facendo entrambe le cose. Abbiamo lavorato su un nuovo gioco oltre che Redux. Avevamo le risorse per gestire Redux mentre il progetto successivo era in fase iniziale di pre-produzione, anche se ora il team di Redux è necessario sul progetto mentre acceleriamo! Avete comunque già visto che Metro Redux non è solo una conversione, ma una nuova esperienza, specialmente il capitolo 2033!

Digital FoundryIl vostro prossimo gioco sarà realizzato da zero a beneficio del nuovo hardware a causa del tempo speso nella creazione di Redux?
Oles Shishkovstov

Decisamente.

Digital FoundryAvete migliorato entrambi i Metro, ma le versioni Redux sono praticamente i due stessi giochi nella loro essenza. L'ultima volta che abbiamo parlato hai fatto degli accenni al futuro, in particolare a delle animazioni dei personaggi basate sulla fisica. Ora che avete fatto pratica sulle console next-gen puoi dirci su che altro state lavorando?
Oles Shishkovstov

Per il gioco su cui stiamo lavorando ora, i designer sono passati a un'esperienza più in stile sandbox, meno lineare ma comunque con una forte componente narrativa. Non scenderò nei dettagli, ma ciò richiede anche del lavoro da parte dei programmatori. Inoltre stiamo migliorando la grafica sotto aspetti molto differenti, ad esempio di recente abbiamo creato un'occlusione ambientale globale basata sulla fisica (invece che sull'ambiente, come la SSAO). Non parlerò della renderizzazione basata sulla fisica (PBR) al momento, perché siamo ancora nella fase in cui gli artisti stanno adattando la propria mentalità ad essa.

Digital FoundryQual è il vostro approccio a DirectX 12 e Mantle? È tutta una questione di collegare maggiormente lo sviluppo di videogiochi per PC a quello per Xbox One e PlayStation 4?
Oles Shishkovstov

Oltre a comunicare molto più da vicino con l'hardware, queste API rappresentano un cambiamento nel design delle API. Le DX 11 erano come un 'terrò traccia di tutto per te'. Le DX 12 dicono 'ora è una tua responsabilità', quindi potrebbe essere una barriera molto più sottile. Per quanto riguarda Mantle, secondo la mia opinione sono delle API temporanee.

Digital FoundryIn che misura le DX12 si dimostreranno utili su Xbox One? Non c'è già una bassa overhead della CPU nella gestione della GPU?
Oles Shishkovstov

No, sono importanti. Il tracciamento di tutte le dipendenze richiede una grossa fetta della potenza di calcolo della CPU. Se parliamo della generazione di comandi multi-threaded, il modello DX 11 è stato essenzialmente un 'flop', mentre quello delle DX 12 dovrebbe essere giusto.

I test del frame-rate sul più impegnativo Metro Last Light vedono PlayStation 4 e Xbox One mantenersi sui 60fps: la stabilità è un grosso punto a favore del gioco.Guarda su YouTube
Digital FoundrySi è parlato molto della liberazione delle risorse della GPU destinate a Kinect nell'XDK di giugno: so che siete passati da 900p a 912p, un incremento piuttosto modesto. Quanto è stato importante quell'aggiornamento? È stato sopravvalutato?
Oles Shishkovstov

Beh, il problema è un po' più complesso. Non è che ci sia stato detto 'ecco, prendete quel 10% di prestazioni che vi avevamo rubato'. In realtà è variabile, a volte puoi usarne l'1.5% in più, a volte il 7% e così via. Avremmo potuto puntare a una risoluzione più alta, ma questa volta abbiamo optato per un frame-rate stabile al 100% con sincronia verticale. Non voglio dire che non avremmo potuto fare di più con più tempo a disposizione, e come ho detto nella precedente risposta l'XDK e il software di sistema continuano a migliorare di mese in mese.

Digital FoundryDiresti che chi sviluppa videogiochi su PC prende i livelli prestazionali di Nehalem come obiettivo? DX12 e Mantle indicano che è tutta una questione di ottenere di più da quel livello di performance piuttosto che sull'acquisto di processori più potenti da parte dei giocatori?
Oles Shishkovstov

Beh, le prestazioni delle CPU si sono essenzialmente bloccate a causa di vari fattori, tra cui quello economico. Direi che gli sviluppatori di giochi PC dovrebbero prendere come riferimento le CPU delle console.

Digital FoundryI trend di sviluppo delle console hanno impatto sul gaming PC. Se dovessi costruire un PC da gioco con un occhio al futuro quali scelte faresti?
Oles Shishkovstov

È difficile rispondere senza scendere nelle 'guerre tra fan'. Prendete i componenti più potenti che il vostro budget vi permette, con un occhio di riguardo per la GPU.

Digital FoundryUn po' di tempo fa Nvidia ha annunciato un sistema di memoria unificata per PC: quant'è importante per il futuro della piattaforma?
Oles Shishkovstov

Il problema con la memoria unificata è la coerenza. Anche su console, in cui vediamo dei sistemi su circuito integrato (SoC) altamente integrati, abbiamo l'opzione di mappare gli intervalli di indirizzo di memoria essenzialmente come 'per la CPU', 'per la GPU' e 'pienamente coerente'. E quest'ultima soluzione non è molto utile in quanto è uno spreco di performance. Per il PC tradizionale, passare per un qualche tipo di bus esterno solo per lo snoop delle cache sarà veramente lento.

Digital FoundryUn parere su SteamOS? Last Light su Linux gira su una vecchia OpenGL, ma so che avete una versione più avanzata in lavorazione…
Oles Shishkovstov

Sì, l'originale Metro Last Light per Linux era basato su OpenGL 3.2, stabile ma senza supporto per funzionalità più complesse. Per Redux stiamo essenzialmente replicando la versione DX11 con una corrispondenza quasi identica nelle funzionalità. Lo svantaggio di questo approccio è che la GPU dovrebbe avere un 'core profile' almeno OpenGL 4.

Digital FoundryCon il Tegra K1 di Nvidia su mobile abbiamo ora una potenza di calcolo ragionevole combinata con le capacità grafiche delle console last-gen, più accesso completo alle API OpenGL: vedi i dispositivi mobile come una potenziale piattaforma per i giochi che avete già realizzato?
Oles Shishkovstov

Decisamente. Il K1 è semplicemente una stella nel mondo mobile. Vorrei che il cielo fosse pieno di stelle per renderlo economicamente possibile per noi!