PC e Console sono due bestie estremamente differenti sia a livello di architettura sia per le problematiche che pongono di fronte allo sviluppatore, che vanno affrontate con strumenti e approcci differenti.
Da una parte una macchina molto flessibile, le cui performance sono generalmente ottime prendendo come riferimento configurazioni anche medie, ma che non è stata pensata esclusivamente per l’esecuzione di software videoludico, con tutte le conseguenze del caso.
Dall’altra parte di questa metaforica barricata ci sono le console, architetture chiuse, relativamente fisse nell’arco del loro ciclo di vita, dimensionate e ottimizzate per un solo scopo: i videogiochi e la multimedialità.
Qual è più semplice da affrontare?
Nessuna delle due: sono architetture differenti che pongono problemi diversi.
La flessibilità e la potenza di un PC permettono potenzialmente l’implementazione di tecniche di rendering più raffinate e precise, che possono coadiuvare un’esperienza di gameplay più profonda e complessa.
Il termine “potenzialmente” e’ la chiave del discorso: alla flessibilità è sempre associato un costo più o meno alto. Nel caso dello sviluppo su PC il costo della flessibilità si traduce nel dover supportare letteralmente milioni di configurazioni diverse (CPU, GPU, memoria, hard disk), magari non al passo con i tempi, che pongono limiti allo scopo dell’esperienza ludica che si cerca di costruire.
Un esempio relativamente banale è l’implementazione di un sistema di streaming in un mondo vasto: su PC non è garantito in nessun modo né il tempo di accesso all’hard disk, né la banda di trasferimento a disposizione.
E’ necessario quindi capire quanto dettagliato deve essere il mondo, di modo che possa essere di volta in volta trasferito dalla memoria di massa alla memoria centrale senza interrompere il flusso del gioco, oppure costruire un sistema scalabile che diminuisca la quantità di dati necessaria alla visualizzazione per andare in contro a sistemi con hard disk meno performanti: un’ulteriore complessità da gestire.
Su PC aumenta inoltre il tempo speso nella fase di testing (milioni di possibili configurazioni hardware e software) e nella fase di ottimizzazione. Su PC si spende molto più tempo ad ottimizzare semplicemente perché è molto più complesso per via del numero di variabili in gioco, al contrario delle credenze popolari.
Una console è, al contrario, un sistema fisso e chiuso: CPU, GPU, memoria centrale e di massa, le loro caratteristiche, sono conosciute in partenza e non variano (sensibilmente) per tutta la durata del ciclo di vita della piattaforma.
Molti dei problemi visti in precedenza spariscono: un sistema di streaming, nell’esempio appena portato, conosce in anticipo quanta memoria centrale ha a disposizione, il tempo di accesso della memoria di massa e la sua velocita’ di trasferimento; può essere quindi dimensionato esattamente per portare correttamente il mondo da visualizzare dal DVD (aiutato eventualmente dall’HD) alla memoria centrale in ogni condizione di gioco.
Il compito del testing è facilitato: una sola configurazione hardware e software (magari con l’aggiunta di un HD) da provare e riprovare. Sembra un paradiso e in parte lo è. I problemi, e sono grossi, nascono nel momento in cui si deve racchiudere nell’esigua quantità di memoria fornita, ad esempio, un mondo che su un PC di fascia media potrebbe godere di uno spazio anche quattro volte superiore.
Le console più performanti, infatti, sono dotate di 512mb di memoria centrale, che richiedono proverbiali salti mortali e lunghe settimane di performance tuning. Ma il discorso non si ferma alla memoria: CPU e GPU per quanto dedicate al compito, col passare degli anni segnano il passo, dove le aspettative del videogiocatore, al contrario, sono sempre superiori.
Questi i problemi, le soluzioni? Nelle settimane prossime vedremo piu’ da vicino alcuni degli strumenti di sviluppo usati su PC e Console, la differenza fra un devkit e la console venduta al pubblico, la differenza fra le architetture PC e le varie Console, come si affronta l’ottimizzazione su PC piuttosto che su Console.