Lo sviluppo di un nuovo gioco per Vic 20: riassunto fase uno

Ben ritrovati, sempre per parlare di 8bit, nello specifico nuovamente di Vic-20 (sì gli siamo proprio affezionati).

Oggi il resoconto derivante dall’intenzione di sviluppare un nuovo gioco arcade per questa macchina, per renderle un sentito omaggio, visto l’apprezzamento “from the ground up” per la sua architettura ed il resto.

Una piccola parentesi: d’ora in avanti gli articoli saranno probabilmente anche in Inglese, a seconda del tema.

L’idea di fare un nuovo gioco per il Vic nasce per il piacere che comporta il realizzare software videoludico in “linguaggio macchina” (più propriamente Assembly), ottimo per sfruttare con maggiore intensità le capacità del processore 6502, ad esempio per gli effetti grafici (a volte letteralmente improponibili in Basic).

Devo dire subito che, oltre al cibarsi di libri dedicati, che sono una base preparatoria molto utile, la vera palestra è il disassemblare e analizzare codice esistente, quando possibile con caratteristiche attinenti. Anche i forum internazionali presenti in rete sono utili per colmare lacune isolate, ma poi il tutto va visto “in contesto” e dunque ci si arma di pazienza, costanza (e ogni tanto perchè no anche musica) e ci si tuffa nel lavoro di analisi, byte dopo byte, arrivando a riconoscere un po’ alla volta i singoli numeri senza passare per traduzioni intermedie, proprio quello che accade imparando una nuova lingua.

Per fortuna oggi il lavoro è più facile rispetto a quanto non fosse nei primi anni ’80: allora personalmente avevo a disposizione solamente il nastro (il “datassette” C2N), un piccolo televisore b/n a tubo catodico e un assemblatore/disassemblatore trovato in un libro per il C64 ad una fiera dell’Elettronica e battuto come sempre da cima a fondo al calcolatore (al tempo,  per me, il reperire un simile libriccino fu quasi un “miracolo”, considerando  il contesto della città dove risiedo; lo conservo anche per questo gelosamente, con la dovuta cura nei confronti di un vecchio “amico”).

E’ stato necessario rispolverare due aspetti: l’aspetto tecnico, che coinvolge il ripasso dell’architettura (Vic-I, chips VIA, rimemorizzazione della mappa di memoria, che mentalmente avevo perduto nelle sabbie del tempo) e naturalmente l’aspetto artistico-creativo: quello del gameplay, le meccaniche di gioco. Nel tempo ho seguito il settore, scrivendo negli anni ’90 alcuni giochi MS-DOS (Modo 13h e Modo X) e dal 2000 in poi demo contenute e mirate in OpenGL, SDL e Ogre3D, ma sono tecnologie talmente lontane tra loro che – vado controcorrente rispetto ad alcuni esperti – secondo me non si può accomunare l’approccio se non per i principi veramente di base, in quanto il lato artistico e quello tecnico sono per forza interrelati se si vuole parlare di sinergia e coerenza nella realizzazione. Mi spiego meglio: i giochi per Vic-20 (idem C64, Amiga 500, …) hanno colori e suoni tipici, mentre il panorama attuale, che non ha nulla a che vedere con le limitazioni di 30 anni fa, segue canoni di conseguenza totalmente diversi. I giochi “retro”, a mio parere, devono proprio esaltare le loro intrinseche peculiarità, ed i giochi odierni fanno lo stesso utilizzando shaders fantastici, modelli a trilioni di poligoni, motion capture, algoritmi AI sempre più sofisticati, trame non lineari e via dicendo. Cioè è ottimo avere dei principi da cui partire, ma poi le strade si differenziano, valorizzando con consapevolezza proprio quanto sta “sotto”: piattaforma e stile, con una forma mentis ad hoc per tentare di caratterizzare nel modo migliore il lato grafico, audio, la meccanica d’interazione e tutto il resto.

Personalmente trovo abbia avuto e abbia un certo fascino ritrovarsi nel corso di questo viaggio a tu per tu con opcodes da “far parlare” uno dopo l’altro, a volte toccando con mano tecniche interessanti a cui non si aveva pensato (quantomeno negli stessi termini). Questo ripaga la fatica che a volte si incontra in punti articolati e dunque inizialmente “misteriosi”. C’è da dire che le routines una volta erano pressochè custom, sebbene ad esempio è chiaro che per disegnare una linea si ricorra a Bresenham, o ci si serva di fixed point math in altri casi, di loop unrolling, eccetera. Ma le soluzioni “caserecce” (in senso algoritmico, non è certo spaghetti code) – ed ecco il “creativo” del film Tron del 1982! (siamo nello stesso periodo, non a caso) – erano all’ordine del giorno.

A valle di questa prima fase, da adesso le energie si focalizzeranno sul lato design: prossimo passo è continuare a vedere e comprendere, sempre con pazienza, vari titoli di allora, e quindi elaborare l’idea, il “concept”, da portare alla fase di realizzazione effettiva.

Buon Vic-20 a tutti gli appassionati, alla prossima.

-EB

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *