La Programmazione su Playstation 2

Il nostro speciale dedicato alla programmazione sulla console Sony Playstation 2

La Programmazione su Playstation 2
Articolo a cura di

Sono passati poco più due anni da quando PlayStation 2 ha debuttato nel mondo dell'home entertainment, ventisei mesi nei quali l'innovativo hardware Sony è stato al centro delle attenzioni di un pubblico sempre più vasto. Protagonista assoluta di elogi, dibattiti, critiche, polemiche, smentite e quant'altro, PS2 è riuscita a raggiungere in soli due anni l'invidiabile cifra di trenta milioni di console vendute world wide, e questo a scapito di quanti avevano mosso accuse infondate circa presunti errori progettuali commessi da Ken Kutaragi, già ideatore di Playstation. Resta comunque inopinabile che il primo anno di vita di PS2 sia stato costellato da tutta una serie di problematiche inerenti alla sua programmazione e riconducibili ad una complessità insita già nel concept stesso con cui l'hardware è stato progettato, oltre che nella sua stessa architettura. Molte difficoltà non sono rimaste circoscritte al periodo in questione e produzioni recentissime come l'eccellente Virtua Fighter 4 hanno messo in evidenza tutta una serie di difetti grafici quali aliasing, texture dei fondali poco definite, rinuncia ad un impianto di illuminazione dinamico e via dicendo. Un altro problema che ha caratterizzato diversi titoli PS2 risiede nel fastidiosissimo effetto flickering (sfarfallio dell'immagine) che tanto ha lasciato sospirare gli utenti. Le difficoltà insite nella programmazione del sistema hanno dunque indotto ad ipotizzare erroneamente che PS2 fosse afflitta da alcuni difetti. Tuttavia, più che imputare le cause di molti problemi ai presunti errori progettuali dell'hardware, è necessario comprenderne la sua complessità strutturale, dettata non dalla voglia di creare difficoltà agli sviluppatori, ma di aprire nuove frontiere nella programmazione del software, con l'abbandono di tutti quegli schemi consolidati ormai considerati obsoleti. Ad esempio, per quanto riguarda l'anti-aliasing, Playstation2 è in grado di utilizzarne due differenti tipologie dette Full Scene e True Edge (schermo intero o circoscritto ad una determinata zona). Motivo per cui tali algoritmi siano stati completamente assenti nella maggior parte dei giochi la cui programmazione va dal periodo precedente la commercializzazione della macchina al periodo immediatamente successivo, è riconducibile al fatto che gli algoritmi di antialiasing vanno implementati all'inizio del codice di ogni pacchetto software. Pertanto, molte softco che si trovavano già in uno stadio di programmazione medio-avanzato hanno ritenuto poco opportuno programmare daccapo il codice per implementare le routine necessarie all'utilizzo dell'anti-aliasing. A tal proposito, Phil Harrison, leader di SCEA, ha commentato:


"I motivi per cui i primi giochi PS2 non sono dotati di
anti-aliasing sono esclusivamente software. La console possiede
un anti-aliasing hardware, ma per qualche arcano motivo gli
sviluppatori non lo hanno utilizzato. [....I problemi riscontrati]
non dipendono certo dalla quantità di RAM Video (4
Megabyte ndr), ma dalla necessità di implementare l'anti-aliasing
all'inizio dello sviluppo del motore grafico. Forse i programmatori
si sono accorti di tale feature solo dopo aver iniziato a
programmare e sarebbe stato controproducente ricominciare
tutto daccapo."




Tra le altre cose va considerato che le due tipologie di anti-alias poc'anzi presentate sono tra le più leggere che si possano trovare su una piattaforma da gioco o una scheda video di ultima generazione. Ad ogni modo, per quanto l'anti-aliasing possa essere leggero, resta sempre e comunque un effetto particolarmente pesante da digerire per ogni sistema. L'interpolazione dei vari pixel di un bordo con un numero esponenziale di pixel di riempimento richiede una considerevole quantità di risorse. Basti pensare che nei motori di rendering di programmi come Ligthwave 3D o Maya (noti pacchetti di grafica tridimensionale), l'utilizzo di anti-aliasing ad un livello bassissimo quintuplica il tempo necessario a renderizzare ogni singolo fotogramma di un'animazione. In PS2 l'incidenza sulle risorse richieste al sistema è di gran lunga inferiore, ma con una non efficace progettazione delle routine necessarie, la feaure finisce con il pesare sull'intero engine grafico, a questo punto non efficiente e pertanto soggetto a notevoli rallentamenti. Di conseguenza molti programmatori hanno deciso di aggirare il problema massimizzando il numero dei poligoni presenti su schermo, a scapito dell'anti-aliasing. Non va comunque dimenticato che con tutti gli effetti attivi, anti-aliasing incluso, PS2 è in grado di restituire oltre venti milioni di poligoni al secondo, pertanto le difficoltà circa la "feauture" sono in realtà risolvibili e molti degli sviluppatori più capaci ci stanno riuscendo agevolmente.

Ad ogni modo Sony stessa non è esente da critiche circa i
problemi riguardante la feature in questione; nel primo periodo
di vita di PS2 non ha supportato a dovere i vari sviluppatori,
i quali si sono ritrovati con dei Tool incompleti e per le
mani un sistema completamente nuovo, progettato per funzionare
in maniera profondamente differente da sistemi come il vetusto
Dreamcast o il recentissimo X-Box. Di conseguenza diverse
softco (Namco, EA, Blizzard ecc) hanno dovuto sopperire alla
necessità di implementare per proprio conto degli algoritmi
sufficientemente validi che potessero fare un uso eccellente
di antialias, e con ottimi risultati (basti pensare alla versione
PAL di Tekken Tag, a Tekken
4 o a Summoner, per non
parlare di Baldur's Gate: Dark Alliance
e diverse altre produzioni). Alla fine molti sviluppatori
sono riusciti ad implementare routine proprietarie che hanno
contribuito a rendere priva di aliasing l'immagine globale
di un videogame, donandole un aspetto morbido e continuo,
dimostrando in tal modo le capacità del sistema nell'utilizzo
della feature.

Le difficoltà iniziali insite nella programmazione di PS2 non hanno riguardato solo alcuni "glitches" (difetti grafici minori), ma in molti casi hanno fatto sentire il loro peso nell'intero sviluppo di un videogame, dalla quantità di poligoni riproducibili su schermo fino alla progettazione di mondi virtuali governati da leggi fisiche verosimili e coerenti. Come abbiamo già ripetuto più volte, PlayStation 2 è un sistema radicalmente differente dai concorrenti. Il principio fondamentale che ha dominato la sua progettazione è stato il costruire una nuova macchina, che abbandonasse completamente la mentalità con cui venivano (e vengono) tuttora costruite le console ed esplorare una nuova dimensione, al fine di massimizzare le performance del sistema. Il monolite nero è basato su componenti appositamente progettati, sviluppati con tecnologie dei semiconduttori della nuova generazione che hanno permesso la realizzazione di una macchina in cui i dati possono circolare in maniera libera e sicuramente più efficiente. A patto che si sia disposti a lasciarsi alle spalle tutte quelle tecniche di programmazione comuni ai PC ed alle console in generale. Esprimendosi a tal proposito, sempre Harrison ha affermato:


"Sono Convinto che la causa [dei problemi riguardanti
la realizzazione degli engine] sia l'utilizzo di motori grafici
basati su concetti obsoleti. Sui sistemi precedenti PS2 (e
successivi nel caso di XBox. Ndr) si parte dall'asserto
che le geometrie si debbano trovare in una zona A di memoria
e le texture in un'altra, chiamiamola B. Ciò non consente
di sfruttare PS2 in maniera efficiente poiché essa è stata
concepita per funzionare in maniera diversa. Finché i programmatori
continueranno a lavorare in maniera vecchia, i titoli PS2
saranno comunque superiori a quelli del Dreamcast (l'intervista
in questione risale a prima della scesa in campo di Microsoft
con X-Box. ndr), ma non in maniera schiacciante. PS2
potrà essere sfruttata al massimo quando sarà compresa alla
perfezione l'architettura del bus ed il modo in cui i dati
possono circolare nel sistema. Tali caratteristiche consentono
di risolvere problemi epocali dei sistemi informatici. Nessun
altro sistema può farlo."





Hardware come PSone, Dreamcast e Naomi o X-Box godono di un'architettura concettualmente simile a quella dei personal computer, dai processori alla RAM. Non stupisce quindi che le metodologie di programmazione siano idealmente simili tra di loro, facendo si che gli sviluppatori abbiano un facile accesso ai sistemi. Questo consente l'ideazione di codici essenzialmente tradizionali, dalla progettazione relativamente semplice (se confrontati a PS2). Quando degli sviluppatori si gravano del compito di effettuare un porting da un sistema come Naomi (o Dreamcast dir si voglia) su PS2, inevitabilmente si trovano in forte difficoltà a causa di un approccio al monolite nero mediante metodologie non affini all'essenza dell'hardware, con il risultato di giochi tecnicamente inferiori agli originali, seppur il sistema sia indiscutibilmente più potente. Ecco spiegato il perché i porting di capolavori come Crazy Taxi e Virtua Figther 4 si siano rivelati esteticamente "denutriti" rispetto alle controparti DC e Naomi. Con la progettazione di PS2 Ken Kutaragi non si è imposto il superamento di alcuni limiti. Ha abbandonato un modo di pensare per inventarne un altro completamente innovativo, i cui limiti sono rappresentati da tecniche di programmazione obsolete, se paragonate al concept di PS2. Pretendere di programmare sul sistema Sony mediante tutta quella serie di schemi tradizionali, significa ottenere risultati limitati e limitanti per il sistema stesso, reso incapace di esprimere il suo vero potenziale. Ecco spiegato il perché PS2 sia concettualmente superiore addirittura ad X-Box, fermo restando la reale superiorità tecnica di quest'ultimo. Pertanto, se da una parte è vero che ogni tecnologia effettivamente nuova richieda un determinato tempo di apprendimento, dall'altra va considerato il fatto che molti sviluppatori non riescano ad abbandonare i classici schemi della programmazione, mettendo in luce una parziale (e a volte completa) mancanza di versatilità nella programmazione su PlayStation 2. Tra gli addetti ai lavori è ormai indiscutibile che "la regina nera" sia una tecnologia essenzialmente nuova, la cui architettura è ben lontana da quella delle console preesistenti (Psone, Saturn, DC, N64) o successive (X-Box e Gamecube). Nei sistemi tradizionali gli sviluppatori cercano di razionalizzare il lavoro affinché gli sforzi della CPU siano finalizzati al calcolo vettoriale. Inoltre i giochi si basano su dei pattern (percorsi precostituiti) creati per controllare in maniera rigida il comportamento di situazioni, eventi o personaggi. PS2 è stata invece concepita affinché la cpu possa occuparsi contemporaneamente del calcolo 3D, del comparto audio e del controllo di situazioni, eventi e personaggi non sulla base di pattern prestabiliti, ma facendo uso di elementi procedurali (elementi casuali reiterati tra loro in base alla simulazione fisica delle leggi che controllano il nostro universo). Questo è possibile tanto per l'aspetto grafico quanto per quello più strettamente legato al comportamento fisico e reattivo di oggetti e personaggi. Ciò significa la non definizione preventiva di tutti i comportamenti di oggetti e personaggi (ora liberi da schemi) ma più semplicemente la realizzazione di routine che definiscano le leggi fondamentali all'interno delle quali il comportamento degli elementi sarà procedurale. Riuscire a sfruttare realmente PS2 in tal senso significherebbe realizzare videogiochi i cui elementi sarebbero soggetti ad una miriade di variabili e all'incremento esponenziale delle possibilità, dettato dalla combinazione delle variabili stesse. Alla luce di quanto detto, si evince chiaramente che le difficoltà inerenti alla gestione del sistema sono quindi riconducibili ad una complessità direttamente proporzionale all'innovazione che l'architettura incarna. Al momento il potenziale di PS2 non è impiegato nel migliore dei modi e giochi come l'ottimo Pro Evolution Soccer sfruttano circa il 20 - 23% delle risorse effettive del sistema. E nonostante la percentuale non troppo elevata, l'esperienza ludica offerta dal titolo è indiscutibilmente elevata. C'è da dire che nella programmazione di PS2, molti sviluppatori hanno fatto largo uso dei "Middlewares", ovvero di kit di sviluppo hardware e software che hanno la funzione di mediare tra i programmatori e la complessità del sistema, consentendo un più semplice accesso alle risorse, tuttavia non ottimale. Questo ha decretato la realizzazione di giochi che nella loro validità non fanno pieno uso delle risorse di sistema (lo stesso PES è stato realizzato attraverso un middleware sviluppato da Criterion Studios). Fortunatamente l'esperienza acquisita da diversi team di sviluppo sta progressivamente crescendo, con la risultante di una comprensione sempre maggiore dell'architettura PS2. Ad ogni modo, prodotti eccellenti realizzati con schemi tradizionali (VF4 anyone?) dimostrano che la strada da percorrere è ancora molta. Ciò lascia presagire un margine di miglioramento ampio ed elevato, con la consequenziale crescita qualitativa del livello medio dei titoli PS2 nonché la possibilità di realizzare alcuni titoli che tocchino nuove vette nell'ambito dell'home entertainment. La maturità acquisita nei primi due anni di vita della macchina ci ha già regalato capolavori del calibro di Gran Turismo 3, Metal Gear Solid 2, Tekken 4, Final Fantasy X e tanti altri. E' quindi più che ragionevole aspettarsi, tra le produzioni future, giochi che stabiliscano nuovi standard nel loro genere e si impongano come punto di riferimento per tutti gli amanti dei videogiochi, assumendo il ruolo di vero e proprio must e facendo storia nell'universo ludico.