PlayStation Generation
La Storia di PlayStation
dal 1988 ad oggi.
Home » , , , » The Making of Crash Bandicoot (Parte 3)

The Making of Crash Bandicoot (Parte 3)

Articolo a cura di Domenico Leonardi


Parla Andy:
Mentre l'art design procedeva, sia prima io che in seguito Dave (dal gennaio 1995), abbiamo lottato per costruire un motore grafico in grado di trasportare in digitale tutti questi grandiosi mondi che avevamo immaginato su carta. Infatti, dall'autunno del 1994, Jason è stato l'unico artista a realizzare, in maniera frenetica, tutto il materiale di base che poi mi ha affidato perché io potessi renderlo incredibile.


Il nostro motto era "bite off more than we could chew, then figure out some crazy complicated way to make it work." ovvero "riuscire a mordere più di quanto avremmo potuto masticare, poi trovare il folle modo per farlo funzionare".

Crash nella giungla
La PlayStation ha avuto una stravagante risoluzione di 512×240, ignorata da tutti gli altri perché non era standard (320×240) e ciò richiedeva una memoria video aggiuntiva per le texture. La macchina era veramente ottima nel rendering delle ombre, ma non nella realizzazione dei triangoli. Infatti, aveva la stessa velocità sia nella risoluzione a 512 che in quella a 320. Secondo Jason (che è sempre stato un maestro nel riuscire a trovare un punto di unione tra l'arte e la tecnologia) i personaggi caratterizzati dalle ombre in realtà avevano un aspetto migliore di quelli con più texture. Così abbiamo adottato questa soluzione a discapito di maggiori texture. Questo è stato un approccio per nulla insolito, ma che ci ha offerto un sacco di vantaggi, come un maggior numero di poligoni con cui poter lavorare.

L'anima dell'ottima animazione, è....rullo di tamburi...l'animazione! Eravamo ossessionati nel riuscire a realizzare qualcosa di veramente buono e di simile a quanto creato da Disney o dai Looney Tunes. In quel tempo, era solito l'utilizzo di un sistema di scheletro semplice, composto da poche ossa e poche giunture. Questo conferiva un aspetto molto rigido al personaggio, mentre noi cercavamo di raggiungere l'effetto opposto. Questo obiettivo ci ha portati a creare un sistema di giunture (sino a 3 o 4 contemporaneamente) ritrovabile solo su PowerAnimator, software di grafica 3D che Playstation non era in grado di gestire (non prima di PS2). Nessun altro aveva avuto il coraggio di farlo, visto che non era per nulla semplice. Era necessario, infatti, inventare un linguaggio tutto nuovo.

«Complessità» quindi è diventato il nome del gioco di Naughty Dog.

Abbiamo anche voluto inserire mondi vasti e dettagliati. Dave, Jason, ed io avevamo condotto delle ricerche "post Doom" sul calcolo della visuale. Sia io che Dave eravamo convinti che l'esteso pre-calcolo ci avrebbe concesso il renderer di MOLTI più poligoni. Così abbiamo realizzato alcuni esperimenti con telecamera libera e infine abbiamo deciso per l'uso della telecamera fissa su binari con l'aggiunta di elementi precalcolati = visuali spettacolari.

L'Evolve-o-Ray
La camera avrebbe seguito il personaggio di fianco, da dietro o dal davanti, in generale come a guardarlo muoversi su una "pista" attraverso i vari mondi. Dave e io abbiamo sperimentato come pre-calcolare in anticipo la visuale e l'ordine di apparizione degli oggetti (la Playstation non possedeva una memoria tampone sull'asse z) sulle postazioni SGI (Silicon Graphics) utilizzate dagli artisti. Una ricerca che anche se dolorosa e costosa, ha dato i suoi frutti. Era impossibile avere su schermo contemporaneamente più di un determinato numero di poligoni (800 per Crash e 1300 per Crash 2 o 3 ). Con questo sistema, da qualsiasi posizione, avremmo potuto nascondere gli elementi inutili, senza appesantire l'esecuzione del gioco. Abbiamo pensato di utilizzare alberi, rocce, pareti e meandri nell'ambiente per nascondere parecchie parti di paesaggio, che erano lì, proprio dietro l'angolo.

Così abbiamo utilizzato un sistema composto interamente da SGI e da IRIX. Infatti il ​​gioco stesso, funzionava pure sulla SGI (anche se con i terribili controlli della tastiera).

Questo significava che i programmatori dovevano acquistare SGI da $100,000 invece di PC da $3,000. Gulp ancora. Nessun altro ha fatto questo. Nessuno. Ed allora, quando un Pentium da 50MHz con 8-32 mega di RAM era tipico, la nostra SIG aveva 250MHz e 64 bit con 256 o 512 mega di RAM, dunque un sistema aperto a possibilità di calcolo totalmente differenti.

Ho anche inventato un folle software per calcoli algoritmici in grado di gestire la nostra bellissima risoluzione da 512×240 che ci aveva lasciato troppo poca memoria sulle texture. E l'ancor più pazzo sistema di memoria virtuale necessario per far rientrare gli 8-16 mega di RAM di ogni livello creato dagli artisti, in poco meno di 2 mega richiesti dalla Playstation. Dave nel frattempo ha dovuto inventare un folle compressore bidirezionale da 10x per riuscire sia a portare i livelli da 128meg a 12, che a gestire la costruzione dei giganteschi mondi in 3D.

Realizzare questo non era facile nel 1995!
I livelli erano così grandi, che il nostro primo livello di prova, chiamato "level1" o "the jungle" e mai pubblicato, non poteva essere caricato con ​​PowerAnimator anche su una macchina con 256mega. In realtà, doveva essere tagliato in 16 pezzi, e anche allora ogni blocco richiedeva ben 10 minuti di caricamento!

Così Dave ha creato uno strumento di progettazione dei livelli in cui sono stati inseriti i componenti in un file di testo, e poi una serie di 10-15 livelli di Photoshop indicati come parti da combinare. Lo strumento, noto come il DLE, avrebbe costruito ogni blocco del livello e lo avrebbe poi salvarlo esternamente.

Ma la cosa più folle che ho fatto è stata quella di creare un nuovo linguaggio di programmazione - con sintassi Lisp - per la codifica di tutto il gameplay. Aveva tutti i tipi di supporto integrato dello stato della macchina (molto utile con gli oggetti del gioco), macro potente, caricamento dinamico, ecc. Era un sistema anche molto irregolare ma in puro stile Naughty Dog ", potente ma complicato."


Parla Jason:
Il segreto del successo di Crash è stato la sua arte. E il segreto per la sua arte è stato la sua programmazione.

Andy e Dave hanno infranto un sacco di regole. In primo luogo, non hanno seguito le restrizioni della biblioteca di PlayStation. Molti altri sviluppatori hanno spesso insinuato che per Crash Bandicoot, Naughty Dog ha avuto accesso ad una sorta di biblioteca segreta di Sony. In realtà è accaduto l'esatto contrario. Per Crash, infatti, è stato usato il meno possibile della biblioteca di Sony ma abbiamo colpito dritto all'hardware.

Anni dopo Sony ha cercato di creare un gioco, chiamato Jalapeño Harry (vedi immagini), da far competere con Crash. No, non sto inventando nulla. Oltre al nome fallimentare, il team interno sito in San Francisco, non è riuscito a creare mondi e personaggi complessi come quelli che abbiamo realizzato in Crash. Ripeto, un team interno di Sony non è riuscito a creare un fac-simile di Crash.

Colpire direttamente all'hardware era contro le regole. Ma a quel tempo Sony aveva bisogno di un «assassino di Mario». Inoltre aveva visto gli ottimi risultati ottenuti. Era troppo tardi per lamentarsi.

È facile sottovalutare il valore della pre-occlusione e la modifica delle vertex animation. Ma lasciate che vi dica, questo era tutto.

L'occlusione significava più poligoni sullo sfondo, e più poligoni ci hanno permesso di fare i livelli. Senza l'occlusione non avremmo mai potuto realizzare quanto fatto.

La nostra occlusione ha operato a livello di texture. Pensate ad un poligono gigante con la texture di una felce sopra (immaginate molte foglie ma anche tanti spazi vuoti in mezzo), l'occlusione era in grado di sbarazzarsi dei poligoni nascosti dietro le foglie e di lasciare i poligoni visibili attraverso i fori. Nessun altro gioco ha questo tipo di gestione dei poligoni, e questo ci ha ripagati immensamente.

Eravamo al limite di poligoni a ogni angolo del gioco. Volevamo avere un punto di vista più distante possibile oltre che il maggior numero di dettagli visibili. Appena andavamo oltre questo limite il gioco cominciava a laggare. Ovunque avevamo troppi poligoni bastava aggiungere alcune foglie o quant'altro per nascondere una parte di visuale. Ovunque c'erano più poligoni a disposizione per disegnare, aggiungevamo dettagli.

E ricordate che in primo piano erano presenti scatole, nemici e piattaforme, ciò significava che più erano presenti questi elementi, più bisognava ridurre la profondità dello sfondo. Quindi, solo quando si aveva un livello perfettamente bilanciato, si dopo aver testato la difficoltà (di solito io o Mark) e aver deciso quindi se aggiungere o eliminare una piattaforma o un nemico, e dopo aver deciso la costruzione del livello (di solito Bob Rafei o Taylor Kurosaki), si ricominciava con il bilanciamento del numero di poligoni sullo sfondo. E 'stato così crudele.

Non potevamo vedere il risultato di nessun cambiamento per almeno 12 ore, quindi se avevamo commesso un errore bisognava ritoccare e poi ripetere tutto il processo. Nessun livello è stato "portato a termine" se non prima di aver completato lo sviluppo dell'intero gioco.

Crash è stato realizzato con 512 poligoni nella sua prima avventura, con texture presenti solo per le sue macchie e le scarpe, e il suo modello non è cambiato molto nel passaggio ai 3 capitoli. Mi ci è voluto un mese per raggiungere il numero perfetto di 512 poligoni. Come ha detto Andy, siamo andati avanti escludendo le texture sulla maggior parte dei personaggi. Invece di texture, abbiamo usato i colori degli angoli per creare l'effetto della presenza di texture.

Molti sono stati i vantaggi di questa strategia. Il più semplice è che abbiamo avuto più poligoni a disposizione. Ma abbiamo anche risolto il problema delle texture allungate e deformate che si creavano con la PlayStation e che quindi le rendevano terribili. Considerando che si passa la maggior parte del tempo a guardare il personaggio anche da molto vicino, si è evitato di creare texture confusionarie, migliorando di molto la qualità visiva.

E c'era un altro importante problema che è stato risolto utilizzando i poligoni al posto delle texture. La PlayStation tendeva a rendere ogni poligono come un pixel, non importa quanto piccolo. Per esempio le pupille di Crash sarebbero potute sparire, quando raggiungevano una grandezza minore di un pixel. Ma creando le pupille con 2 poligoni (un quad), l'occhio appariva quasi sempre più a lungo nella sua totalità, compresi i bianchi, che erano poco più di pochi pixel di altezza. Sottili, ma molto più puliti. Si tratta di piccole cose che contano.

Il vantaggio più importante del nostro sistema sui personaggi era la vertex animation. Non riesco neppure ad immaginare le torture che gli altri sviluppatori hanno dovuto affrontare, per cercare di far piegare i poligoni delle braccia e delle gambe dei loro personaggi usando solo la piegatura dell'osso! Quando il movimento delle ossa non ci soddisfava, soprattutto in un personaggio realizzato con meno di 1000 poligoni, ci bastava afferrare e tirare i vertici fino a fissarli ad altri elementi. Questo è il motivo per cui Crash non si piega e non cade a pezzi quando si muove. Ciò comportava una maggiore mobilità ed elasticità.

Nelle pose più tese o piegate, abbiamo tirato i vertici manualmente, tralasciando del tutto le ossa, e questo ci ha consentito di avere due abilità aggiuntive che nessun altro aveva. [NOTA di Andy: Questo ci ha permesso, nel nostro piccolo sforzo, di avere le stesse tecniche di animazione in seguito utilizzate dalla Pixar].

In primis, i personaggi nel gioco di Crash hanno avuto diverse espressioni facciali su ogni singolo fotogramma. Dimenticate le ossa. Bastava tirare i vertici fino a quando non si otteneva il risultato desiderato. Sembra nulla, ma si poteva passare da un grande sorriso pieno di denti, ad una bocca che fischia e senza denti sino ad una bocca chiusa, semplicemente sovrapponendo i vertici. In questo modo si azzerava il volume dei poligoni e Crash aveva il volto più espressivo di qualsiasi altro personaggio prima d'allora. Tutto questo ha creato nei giocatori, delle emozioni mai provate prima.

Bastava la sequenza di apertura, quando Crash tirava il suo volto dalla sabbia, lo scuoteva, sembrava confuso, balzava in piedi, guardava la telecamera e faceva il suo enorme e buffo sorriso, per identificare Crash come personaggio. Nessun gioco 2D poteva permettersi quest'arte, e nessun altro gioco 3D, ha posseduto il tipo di animazione facciale che aveva introdotto il nostro sistema di vertex animation. E così il personaggio principale si era trasformato da un "veicolo" di emozioni ad un amico emotivo.

I personaggi venuti prima di Crash non avevano alcuna emozione (Pacman come anche Mario), o al massimo esprimevano un'emozione dimensionale (Sonic era "veloce"). Crash possedeva delle emozioni facciali che lo lasciavano parlare con il giocatore e che gli conferivano una sua identità. Crash non era un'emozione qualsiasi. Crash era Crash. Era, infatti, possibile osservare Crash, mentre realizzava svariate espressioni facciali. Sonic e Mario non erano in grado di esprimere una gamma facciale di emozioni, anche dopo l'uscita di Crash. “It's me, Mario!‏” non veniva assolutamente espresso, soprattutto considerando che durante questa frase il viso di Mario non si animava neppure!

Ovviamente non è passato poi molto prima che l'industria videoludica ottenesse dei personaggi totalmente tridimensionali, come Daxter, che possedeva una personalità completa, ed era anche in grado di recitare per esempio, una scena di Shakespeare, nel suo più personale modo. Ma questa è un'altra storia [NOTA di Andy: e quando siamo arrivati ​​a questo punto, abbiamo dovuto costruire uno speciale "motore facciale" e uno "oculare"].

La seconda cosa che la vertex animation ci ha consentito di avere è stata la deformazione totale del personaggio. Una deformazione che andava al di là del sistema scheletrico. Se avessi voluto trasformare Crash in un pallone, mi bastava muovere il solo fotogramma chiave che lo vedeva avvolto attorno ad una sfera (escludendo le scarpe e la faccia che di solito non venivano allungate). Gli animatori erano liberi di fare qualsiasi cosa, e noi lo abbiamo fatto. Ancora una volta, abbiamo aiutato Crash a renderlo un personaggio.

La realizzazione dei personaggi delle avventure di Crash possono definirsi come la controparte 3D dei personaggi dei Loony Toons. Ho ancora una copia firmata del film Disney "The Illusion of Life", di Frank Thomas e Ollie Johnson, due dei più grandi animatori di tutti i tempi. E sia Bob che Taylor ed io, abbiamo cercato di assimilare e applicare quanto più possibile appreso dalla sua lettura.

Ma tutto questo è stato possibile ancora una volta, solamente grazie ad alcuni ingegnosi programmi realizzati da Andy, Dave e Mark.