Skip to main content

Infinity Ward risponde al Resolutiongate - intervista

Mark Rubin spiega i 720p nativi di Call of Duty: Ghosts su Xbox One.

Call of Duty: Ghosts si è trovato nel fuoco incrociato durante la prima battaglia della console war next-gen. La differenza dei 1080p su PS4 e 720p su Xbox One per il nuovo COD di Infinity Ward è stata un duro colpo per Microsoft. La notizia assume poi proporzioni ancora maggiori perché riguarda una serie diventata sinonimo di Xbox sulla current-gen.

Fin da quando il produttore esecutivo di Infinity Ward ha twittato le risoluzioni di Call of Duty: Ghosts, si sono accesi dibattiti sulle differenze tra le versioni PS4 e Xbox One del gioco. In un'intervista rilasciata a Eurogamer, Mark Rubin offre la versione dello sviluppatore sull'argomento, definendo “incubo ingegneristico” i cambiamenti nei kit di sviluppo utilizzati per i titoli di lancio next-gen, e ribadendo che lo studio ha fatto tutto il possibile per ottimizzare la versione Xbox One nei mesi precedenti al lancio.

Rubin afferma che se c'è qualcosa da biasimare nell'hardware di Xbox One, si tratta del sistema di allocazione delle risorse. Come spiegato dal Digital Foundry nel recente articolo 'Resolutiongate: le ricadute dei 720p di Xbox One', la console di Microsoft riserva il 10% delle risorse della GPU al sistema operativo. Come detto da Richard Leadbetter, funzioni come il tracciamento dell'utente da parte di Kinect “impiegano preziose risorse inaccessibili agli sviluppatori”. Rubin discute di questo problema e di altro ancora nell'intervista che segue, suggerendo che i futuri Call of Duty potrebbero non soffrire di problemi simili su Xbox One in virtù di ottimizzazioni da parte degli sviluppatori e dello sblocco delle risorse in questione da parte di Microsoft.

Eurogamer: Creare un titolo di lancio next-gen suona come un incubo. Puoi spiegarci esattamente gli ostacoli che avete dovuto affrontare?

Mark Rubin: Lo è specialmente per i nostri programmatori. Fortunatamente Xbox One e PS4 sono molto simili ai PC, più della precedente generazione. Ciò ha aiutato moltissimo. Se i sistemi fossero stati dotati di architetture proprie, come la current-gen, questa conversazione sarebbe stata diversa, invece lo sviluppo è stato stavolta molto più semplice. Ho vissuto il lancio della current-gen con COD 2 a Infinity Ward. Il lancio è avvenuto solo su PC e Xbox 360, ma quella è stata la nostra prima console. C'era molto da imparare ed è stata una sfida interessante.

Sviluppare per PC, due piattaforme current-gen e due next-gen è stata una sfida enorme. Lavorare con l'hardware teorico sarebbe stato un disastro se… onestamente, la cosa più difficile con cui avere a che fare non è l'architettura. È il sistema operativo delle piattaforme. Sono i kit di sviluppo e gli strumenti con cui si lavora a cambiare, non l'hardware in sé.

Eurogamer: Qual è esattamente il problema con i sistemi operativi?

Mark Rubin: Ci sono delle cose negli OS che interagiscono col gioco. Ad esempio la chat vocale è spesso supportata dall'hardware piuttosto che dal software, e si usa appunto il canale hardware. Quando cose del genere cambiano, in quanto in fase di sviluppo presso i costruttori, e le risorse utilizzate da questi sistemi cambiano di conseguenza, il difficile è tentare di lasciarne a sufficienza al sistema utilizzandone al contempo il più possibile.

Una delle sfide più grandi riguarda la gestione della memoria o dei thread. Ci sono X thread in una CPU: in quale di essi sono gestiti i sistemi di Microsoft o Sony? Come funziona? Non abbiamo ancora alcune opzioni corrispondenti nei kit di sviluppo, e quando diventano disponibili scopri ad esempio che hanno bisogno di 3MB di RAM… e che tu ne hai allocate solo due! Non puoi prendere semplicemente 1 MB da dove capita, devi sottrarlo a qualcos'altro e bilanciare di conseguenza.

Se a un certo punto vengono aggiunti anche solo pochi MB alle risorse richieste o se un processo deve essere gestito interamente in un singolo thread, ciò provoca un grosso cambiamento per il nostro motore. Se si tratta di qualcosa non multi-threaded, tutto deve andare su un solo thread e dobbiamo trovare lo spazio sufficiente in modo che ciò non crei un collo di bottiglia in esso. A volte dobbiamo spostare parecchie cose su un altro thread per poter gestire il traffico.

Ecco cosa fanno spesso i programmatori: gestire il traffico su thread della CPU e memoria, allocare la memoria e anche questo in funzione del tipo di memoria, dinamica o meno. A volte capita di allocare 3MB dall'inizio per una determinata cosa, e nel caso sia dinamica non importa da dove provengano quei 3MB.

Tutto questo può cambiare in corsa, mentre stai tentando di sviluppare per adattarti a due sistemi: Sony e Xbox. Un grosso incubo ingegneristico.

Wow. Suona più difficile di quanto credessi.

"Quando è stato detto ai PR, si è trattato di un caso più grande che per gli stessi programmatori che stavano lavorando al progetto."

Mark Rubin, produttore esecutivo di Infinity Ward
Guarda su YouTube

Eurogamer: Quella che hai descritto è la ragione per cui la versione Xbox One di Call of Duty: Ghosts è a risoluzione nativa di 720p su Xbox One e 1080p su PS4?

Mark Rubin: In un certo senso. Non so se sia possibile indicare una causa in particolare. All'inizio non sapevamo esattamente a quale risoluzione potessimo arrivare perché non avevamo hardware o software per supportarla. Abbiamo provato a concentrarci sui 1080p e sentivamo di essere al limite delle prestazioni… abbiamo cercato di prendere la decisione migliore per mantenere un gioco bello da vedere e fluido su ciascuna piattaforma.

Non c'è una ragione specifica per cui non siamo potuti arrivare a 1080p nativi su Xbox One, come ad esempio troppe risorse allocate alla chat vocale. Non c'è un unico rapporto di causa ed effetto. Abbiamo preso individualmente i due sistemi e ci siamo detti, 'ok, realizziamo il miglior gioco possibile per ogni piattaforma'.

Credo che entrambi siano bellissimi. Alcune persone potrebbero notare la differenza avendo le due versioni fianco a fianco, alcune no. La versione Xbox One gira a 1080p, solo che viene scalata verso l'alto dall'hardware.

Ed è stata una decisione presa nelle fasi finali, circa un mese fa.

Eurogamer: Aiutami a mettermi nei tuoi panni quando ti è stato comunicato che sarebbe dovuto essere così. Suppongo che il tuo team ti abbia spiegato che non c'era altra soluzione. Come avete reagito internamente al team? Gli ingegneri di Microsoft non avrebbero potuto aiutarvi?

Mark Rubin: Non è una cosa che accade in un giorno, è un procedimento lungo. Abbiamo lavorato sempre con entrambe le piattaforme. I tecnici di Microsoft sono stati presenti durante tutto lo sviluppo, non c'è stato un singolo evento. Non si è trattato di un meeting ma di una cosa che si è sviluppata nel corso del tempo. Tutti sono stati coinvolti.

Ovviamente, quando i PR l'hanno scoperto, si è trattato di un caso più grande che per i programmatori che stavano lavorando al progetto. Dovreste chiedere a loro.

Eurogamer: Ciò che tutti chiederanno è se questo non sia semplicemente il risultato di una maggiore potenza di PS4 nei confronti di Xbox One e se si tratti del massimo che potete fare con l'hardware che avete, oppure se in futuro potrete far girare i titoli per Xbox One a 1080p nativi.

Mark Rubin: È molto probabile che potremo raggiungere i 1080p nativi. Ho visto il gioco girare a 1080p nativi, è solo che non siamo riusciti a portare il frame-rate al livello che avremmo voluto.

E non si tratta di una mancanza di sforzo. Abbiamo avuto l'hardware teorico per molto tempo, e quello non cambia più di tanto. Si tratta più dell'allocazione delle risorse, che è differente tra le console. L'ottimizzazione di quell'intricata matassa di risorse, che siano thread, GPU o memoria, potrebbe teoricamente andare avanti per sempre.

Sicuramente vedo, spero, che entrambe le piattaforme saranno molto migliori la prossima volta che ci lavoreremo su. Per fare una semplice analogia, confrontate Call of Duty 2 con COD 4. È un enorme passo in avanti in termini di grafica, ci vuole del tempo per districarsi tra certe cose.

Il primo titolo di lancio di una nuova console è sempre una sfida. Le cose funzionano così. Per chi è preoccupato della maggiore potenza di un sistema rispetto all'altro, sappiate che è una partita che dura a lungo.