Jason Booth, programmatore della Harmonix Studio (Rock Band) affronta sul suo blog il problema dei port, e spiega perchè i giochi nella versione PS3 sono spesso meno performanti o graficamente peggiori di quelli nella versione 360.
Falsi miti e interpretazioni ingannevoli sulla PS3
Jason Booth - Giovedì, 25 Ottobre
Io leggo vari forum sui giochi di tanto in tanto, e spesso vedo giocatori che si lamentano dei "pigri porting" dei giochi sulla PS3. Spesso questi menzionano quanto la PS3 sia la più potente delle console e danno la colpa agli sviluppatori che lavorano sulla console per aver fatto un cattivo lavoro. Sony ha ingannato tutte queste persone con un incredibile raggiro di marketing, e mi meraviglio spesso di quanto potente si dimostri questo tipo di retorica. Per quelli che non ne sono consapevoli, andrà ad analizzare e spiegare esattamente perchè i port verso la PS3 non saranno mai buoni come la corrispondente versione 360, e perchè molte delle esclisive PS3 continueranno a deludere. Innanzitutto, cominciamo con lo spazzare via alcuni falsi miti comuni:
"La PS3 è più avanzata graficamente della 360"
Il "fill rate" è una delle principali misure delle performance grafiche - in pratica è un numero che descrive quante operazioni sui pixel puoi eseguire. Il fill rate della PS3 è significativamente più basso di quello della 360, e questo significa che i giochi devono o girare ad una risoluzione inferiore o usare effetti di shader semplificati per ottenere le stesse prestazioni. Inoltre la computazione degli shader sulla PS3 è significativamente più lenta che sulla 360, il che significa che una normal map richiede più fill rate per essere disegnata sulla PS3 di quanto ne richieda sulla 360. E non sto parlando di piccole differenze qui, parliamo di circa la metà della potenza nel tirare fuori pixel.
"Ok, va bene... ma il Cell è, come dire, super potente"
In teoria, certo, ma in realtà non funziona in questo modo. Il codice dei giochi semplicemente non si divide facilmente tra più processori. Puoi probabilmente trovare un modo per dividere alcune cose facilmente - ad esempio mettere l'audio su un processore, le animazioni su un altro, etc. ma generalmente la divisione lascerà sempre alcune delle SPU ferme o sottoutilizzate. E soprattutto, di solito non è la velocità della CPU che limita la grafica nei giochi, è il fill rate.
"Ehm... il Blu Ray!"
Grande per vedere i film, ma non così grande per i giochi. Caricare i dati dal drive Blu-Ray richiede due volte più tempo rispetto a quanto richiede caricare gli stessi dati dal drive DVD della 360. Questo si traduce in tempi di caricamente più lunghi, e, che dio ce ne scampi, se tu stai facendo streaming dal disco, questo limita la quantità di dati che puoi caricare.
"Ma ha molto più spazio di un DVD"
Ok, colpito... ha effettivamente più spazio, e quindi c'è il potenziale di usarlo per fare qualcosa di cool, ma è poco probabile che sarà realizzato in modi utili. Ci sono tonnellate di tecniche di compressione disponibili per i dati e personalmente preferisco essere in grado di ottenere i miei dati più velocemente che averne di più. Molti sviluppatori che usano l'intero Blu-Ray lo fanno per aggirare altri problemi della PS3 come il lenti tempi di caricamento - per esempio, in Resistance: Fall of Man, ogni componente della grafica è memorizzato una volta per ogni livello. Così invece di memorizzare una sola copia di una texture, la stai memorizzando 12 volte. Se prendessi il gioco e rimuovessi tutti i dati duplicati, questo probabilmente entrerebbe senza problemi in un DVD. Loro hanno fatto questo per velocizzare i tempi di caricamento, che, come ho spiegato prima, sono drammaticamente lenti sulla PS3. Così in questo caso, lo spazio extra è completamente sprecato.
"Una volta che gli sviluppatori comprenderanno a fondo la PS3 sfrutteranno al massimo l'hardware e sarà fantastico"
Sospetto che un piccolo numero di sviluppatori esclusivi PS3 ottimizzeranno e sfrutteranno a fondo l'hardware per fare qualcosa di cool. Comunque, questa sarà una eccezzione alla regola, e probabilmente riguarderà giochi che sono specificamente progettati per quest'hardware e finanziati da Sony. Se questi si riveleranno essere divertenti, è un altra questione.
Molta della ricerca intorno alle performance della PS3 che ci sono in giro sono concentrate sul rendere più facile per gli sviluppatori ottenere lo stello livello di prestazioni che si ottengono naturalmente dalla 360. Per esempio, alcuni sviluppatori stanno usando queste SPU extra sul Cell per preparare i dati per la rendering pipeline. Praticamente prendono i dati che normalmente manderebbero direttamente al chip grafico, li mandano prima alla SPU che li ottimizza in qualche maniera, e poi li mandano al chip grafico. Così, ancora una volta, vediamo un "vantaggio" in hardware venire usato per compensare uno svantaggio in un altra "area", un tema ricorrente con la PS3. E questo introduce un extra fotogramma di latenza nell'equazione, rendendo la risposta dei controlli più lenta.
Così, il tema comune è questo, gli sviluppatori devono spendere significativamente più tempo e risorse per tirare fuori dalla PS3 quello che la 360 può fare già con facilità e con molto meno codice. Vediamo come questo si traduce nella realtà pratica per il momento:
Perchè le versioni PS3 di solito impallidiscono a confronto di quelle 360, e perchè le esclusive di solito deludono
Come spiegato sopra, ottenere l'equivalente delle prestazioni fuori dalla PS3 richiede molto lavoro specifico per la piattaforma e, in molti casi, anche con tutti questi trucchi, continui a non vedere prestazioni equivalenti. Per questa ragione molti giochi PS3 hanno shader semplificati e girano ad una risoluzione nativa minore delle versioni 360. Sopra tutto questo si aggiunge il fatto che l'incentivo per fare questo lavoro si sta riducendo: la PS3 non sta vendendo.
Il codice richiesto per far funzionare la PS3 molto probabilmente sarà utile solo sulla PS3, poichè quel genere di trucchi di cui hai bisogno per ottenere le prestazioni sono unici per la quella piattaforma e difficilmente saranno utili per qualsiasi altra architettura ora o in futuro. Questi problemi nascono tutti da un design dell'hardware sbilanciato, e ogni hardware futuro che sarà così sbilanciato sarà probabilmente sbilanciato in un modo unico.
Infine c'è il problema delle risorse. Il Game Development, lo sviluppo dei videogiochi, è, al cuore, una sfida per il management delle risorse. Date le limitate risorse a disposizione, devo impegnare questi 5 ingegneri a lavorare su ottimizzare la versione PS3 per farla sembrare migliore, o li devo usare per rendere il game play migliore o per risolvere bug? Devo cambiare il mio design per accomodare quello che l'hardware della PS3 fa bene, o semplicemente far girare il gioco ad una risoluzione leggermente minore sulla PS3 per compensare? Gli sviluppatori che si sforzano di spingere l'hardware della PS3 hanno spesso sacrificato il loro gioco nel processo.
Falsi miti e interpretazioni ingannevoli sulla PS3
Jason Booth - Giovedì, 25 Ottobre
Io leggo vari forum sui giochi di tanto in tanto, e spesso vedo giocatori che si lamentano dei "pigri porting" dei giochi sulla PS3. Spesso questi menzionano quanto la PS3 sia la più potente delle console e danno la colpa agli sviluppatori che lavorano sulla console per aver fatto un cattivo lavoro. Sony ha ingannato tutte queste persone con un incredibile raggiro di marketing, e mi meraviglio spesso di quanto potente si dimostri questo tipo di retorica. Per quelli che non ne sono consapevoli, andrà ad analizzare e spiegare esattamente perchè i port verso la PS3 non saranno mai buoni come la corrispondente versione 360, e perchè molte delle esclisive PS3 continueranno a deludere. Innanzitutto, cominciamo con lo spazzare via alcuni falsi miti comuni:
"La PS3 è più avanzata graficamente della 360"
Il "fill rate" è una delle principali misure delle performance grafiche - in pratica è un numero che descrive quante operazioni sui pixel puoi eseguire. Il fill rate della PS3 è significativamente più basso di quello della 360, e questo significa che i giochi devono o girare ad una risoluzione inferiore o usare effetti di shader semplificati per ottenere le stesse prestazioni. Inoltre la computazione degli shader sulla PS3 è significativamente più lenta che sulla 360, il che significa che una normal map richiede più fill rate per essere disegnata sulla PS3 di quanto ne richieda sulla 360. E non sto parlando di piccole differenze qui, parliamo di circa la metà della potenza nel tirare fuori pixel.
"Ok, va bene... ma il Cell è, come dire, super potente"
In teoria, certo, ma in realtà non funziona in questo modo. Il codice dei giochi semplicemente non si divide facilmente tra più processori. Puoi probabilmente trovare un modo per dividere alcune cose facilmente - ad esempio mettere l'audio su un processore, le animazioni su un altro, etc. ma generalmente la divisione lascerà sempre alcune delle SPU ferme o sottoutilizzate. E soprattutto, di solito non è la velocità della CPU che limita la grafica nei giochi, è il fill rate.
"Ehm... il Blu Ray!"
Grande per vedere i film, ma non così grande per i giochi. Caricare i dati dal drive Blu-Ray richiede due volte più tempo rispetto a quanto richiede caricare gli stessi dati dal drive DVD della 360. Questo si traduce in tempi di caricamente più lunghi, e, che dio ce ne scampi, se tu stai facendo streaming dal disco, questo limita la quantità di dati che puoi caricare.
"Ma ha molto più spazio di un DVD"
Ok, colpito... ha effettivamente più spazio, e quindi c'è il potenziale di usarlo per fare qualcosa di cool, ma è poco probabile che sarà realizzato in modi utili. Ci sono tonnellate di tecniche di compressione disponibili per i dati e personalmente preferisco essere in grado di ottenere i miei dati più velocemente che averne di più. Molti sviluppatori che usano l'intero Blu-Ray lo fanno per aggirare altri problemi della PS3 come il lenti tempi di caricamento - per esempio, in Resistance: Fall of Man, ogni componente della grafica è memorizzato una volta per ogni livello. Così invece di memorizzare una sola copia di una texture, la stai memorizzando 12 volte. Se prendessi il gioco e rimuovessi tutti i dati duplicati, questo probabilmente entrerebbe senza problemi in un DVD. Loro hanno fatto questo per velocizzare i tempi di caricamento, che, come ho spiegato prima, sono drammaticamente lenti sulla PS3. Così in questo caso, lo spazio extra è completamente sprecato.
"Una volta che gli sviluppatori comprenderanno a fondo la PS3 sfrutteranno al massimo l'hardware e sarà fantastico"
Sospetto che un piccolo numero di sviluppatori esclusivi PS3 ottimizzeranno e sfrutteranno a fondo l'hardware per fare qualcosa di cool. Comunque, questa sarà una eccezzione alla regola, e probabilmente riguarderà giochi che sono specificamente progettati per quest'hardware e finanziati da Sony. Se questi si riveleranno essere divertenti, è un altra questione.
Molta della ricerca intorno alle performance della PS3 che ci sono in giro sono concentrate sul rendere più facile per gli sviluppatori ottenere lo stello livello di prestazioni che si ottengono naturalmente dalla 360. Per esempio, alcuni sviluppatori stanno usando queste SPU extra sul Cell per preparare i dati per la rendering pipeline. Praticamente prendono i dati che normalmente manderebbero direttamente al chip grafico, li mandano prima alla SPU che li ottimizza in qualche maniera, e poi li mandano al chip grafico. Così, ancora una volta, vediamo un "vantaggio" in hardware venire usato per compensare uno svantaggio in un altra "area", un tema ricorrente con la PS3. E questo introduce un extra fotogramma di latenza nell'equazione, rendendo la risposta dei controlli più lenta.
Così, il tema comune è questo, gli sviluppatori devono spendere significativamente più tempo e risorse per tirare fuori dalla PS3 quello che la 360 può fare già con facilità e con molto meno codice. Vediamo come questo si traduce nella realtà pratica per il momento:
Perchè le versioni PS3 di solito impallidiscono a confronto di quelle 360, e perchè le esclusive di solito deludono
Come spiegato sopra, ottenere l'equivalente delle prestazioni fuori dalla PS3 richiede molto lavoro specifico per la piattaforma e, in molti casi, anche con tutti questi trucchi, continui a non vedere prestazioni equivalenti. Per questa ragione molti giochi PS3 hanno shader semplificati e girano ad una risoluzione nativa minore delle versioni 360. Sopra tutto questo si aggiunge il fatto che l'incentivo per fare questo lavoro si sta riducendo: la PS3 non sta vendendo.
Il codice richiesto per far funzionare la PS3 molto probabilmente sarà utile solo sulla PS3, poichè quel genere di trucchi di cui hai bisogno per ottenere le prestazioni sono unici per la quella piattaforma e difficilmente saranno utili per qualsiasi altra architettura ora o in futuro. Questi problemi nascono tutti da un design dell'hardware sbilanciato, e ogni hardware futuro che sarà così sbilanciato sarà probabilmente sbilanciato in un modo unico.
Infine c'è il problema delle risorse. Il Game Development, lo sviluppo dei videogiochi, è, al cuore, una sfida per il management delle risorse. Date le limitate risorse a disposizione, devo impegnare questi 5 ingegneri a lavorare su ottimizzare la versione PS3 per farla sembrare migliore, o li devo usare per rendere il game play migliore o per risolvere bug? Devo cambiare il mio design per accomodare quello che l'hardware della PS3 fa bene, o semplicemente far girare il gioco ad una risoluzione leggermente minore sulla PS3 per compensare? Gli sviluppatori che si sforzano di spingere l'hardware della PS3 hanno spesso sacrificato il loro gioco nel processo.