Le prime differenze architetturali fra un PC ed una console saltano subito all’occhio analizzando i progetti dei due sistemi ad alto livello.
Una console è progettata per costare poco e per essere riprodotta nello stesso modo in grandi volumi (decine di milioni di unità): anche un piccolo cambiamento delle specifiche si traduce facilmente, nel ciclo di vita del prodotto, in centinaia di milioni di dollari. Aggiungere 512MB di ram, ad esempio, piuttosto che una porta USB in più come un hard disk, potrebbe sembrare un cambiamento di poco conto dall’esterno, ma nell’ottima della produzione di scala, pochi dollari possono segnare la viabilità economica o meno dell’intero progetto. Queste scelte “al risparmio” si scaricano immediatamente sullo sviluppo: minore potenza computazionale, minore memoria, architetture meno flessibili, ma maggiore “efficienza” complessiva di un sistema che è più facile da prevedere.
Su console il sistema operativo è minimale, perché ha meno compiti da svolgere. Il produttore dichiara esattamente quanta memoria riserva per la sua esecuzione e quanto tempo macchina è dedicato: su 360, ad esempio, lo sviluppatore sa che parte delle risorse del terzo core della CPU è riservato al sistema operativo e non può essere usato dall’applicazione, che ha tutto il resto della macchina a sua esclusiva disposizione. E’ un nodo importante che caratterizza tutte le metodologie di sviluppo e ottimizzazioni sulle architetture dedicate: la macchina è in uso esclusivo, si conoscono esattamente le risorse a disposizione, si ottimizza per il caso peggiore e non per il caso medio. Per entrare nello specifico, una volta fissato il framerate di riferimento e il budget di memoria, è necessario solo ottimizzare quelle scene che oltrepassano questi limiti nei casi peggiori, perché migliorare una scena che già soddisfa i limiti non porta alcun beneficio. Questo procedimento è in netto contrasto con ciò che avviene su PC dove i limiti non possono essere definiti in maniera univoca. Migliore prevedibilità, sistema costante, costi contenuti sono le chiavi dello sviluppo su console.
La scrittura del codice di un titolo su console avviene su un sistema host (praticamente sempre un PC con una qualche versione di Windows), dove è installato il kit di sviluppo e le librerie proprietarie della console per la quale si sta sviluppando. Il codice e gli asset sono compilati sul sistema host, sfruttandone la potenza di elaborazione e la flessibilità, e, infine, trasferiti in un qualche modo al devkit (una console opportunamente modificata) per l’esecuzione e il debugging. Gli strumenti di sviluppo comprendono Visual Studio oppure Codewarrior come ambiente, affiancati da compilatori e tool di profiling e debugging specifici per la piattaforma da supportare.
E per il PC che cosa cambia? La settimana prossima ne sapremo di più.