Appunti e memorie di Ivan Venturi

Fare Videogiochi

 
 

Scritto da admin il 08/04/2009 in c64, caratteri, editor, koala, koalapaint, sid, sprites, vic con Nessun commento


…insomma: gli EDITOR e il KOALAPAINT.

Stiamo sempre parlando del periodo 8 bit, 1985 fino al 1991 circa.
Per fare i videogiochi su C64 (come per gli altri computer, ovviamente) era necessario produrre vari tipi di materiali digitali, quali
- i ‘caratteri’ (il termine ‘font’ si è cominciato ad usare solo più tardi), che potevano essere sia i caratteri alfanumerici, sia (e soprattutto) blocchetti di grafica 8×8 pixel utilizzati in maniera modulare per creare grafica hi-res o multicolor nelle normali schermate video. Il C64 funzionava in modalità ‘normale’ o in modalità ‘alta risoluzione’. In modalità ‘normale’ visualizzava solamente i ‘caratteri’. Quindi, modificando questi caratteri, si potevano ottenere belle immagini grafiche pur senza passare per le ‘costose’ (in termini di RAM) ‘schermate hi-res’;
- le ‘schermate hi-res’, che in realtà potevano essere in alta risoluzione (quindi sfruttare pienamente i 320 punti per 200 di risoluzione, ma con pochissimi colori utilizzabili. The Hobbit della Melbourne House usava schermate hi-res) oppure in multicolor, che dimezzava la risoluzione orizzontale, per utilizzare le informazioni delle coppie di bit che così si formavano per ottenere maggiore possibilità d’uso dei colori;
- gli ‘sprites’, ovvero le immagini grandi 24 x 21 pixel che si muovevano indipendentemente dal fondale. Ce n’erano 8. Per esempio, nei giochi di calcio, gli omini erano ovviamente sempre sprites;
- le musiche: utilizzando le 3 voci del SID si potevano creare armonie di vario tipo, con 4 forme d’onda a disposizione (triangolare-trombettata, sinusoidale-flautata, rettangolare-metallica, casuale-noise, rumore), Attack-Decay-Sustain-Release per definire la forma dell’onda e la durata delle sue parti, il volume, i filtri e altre cosette.

I videogiochi usavano gli elementi di cui sopra a quintali. Era necessario quindi poter disporre di adeguati strumenti per lavorare rapidamente e comodamente.

Inizialmente, quando dovevo disegnare dei caratteri o degli sprites, disegnavo sui miei bei quaderni a quadretti (prima o poi ne scannerizzerò alcune pagine e le posto – ne avevo almeno uno per ogni progetto) delle griglie delle dimensioni necessarie, quindi a multipli di 8 se dovevo disegnare dei caratteri, o di 24 (anzi, 8×3) x 21, se dovevo disegnare degli sprites.
Poi disegnavo con la mia biro ed eventuali pennarelli la grafica che dovevo fare.
Poi trasformavo ogni colore in una coppia di bit, 0 o 1.
Poi, a lato di ogni riga-byte calcolavo in esadecimale il byte che descriveva la riga. 00 per riga vuota, FF per riga piena. 81 per il primo pixel a sinistra e l’ultimo a destra accesi.
Poi, inserivo questi numeri da qualche parte nel codice.
Insomma, un procedimento piuttosto lunghetto.

Poi provai a utilizzare editor commerciali. Ricordo uno sprite editor laccatissimo (ma assolutamente non ricordo nè il nome nè la marca), che consentiva di fare varie cose, anche particolari, ma non consentiva di farne varie che servivano a me.

Per quanto riguarda le schermate hi-res, all’inizio usavo un programma che si chiamava… boh, non mi ricordo. Solo in hi-res. Ci giocherellavo ogni tanto. Ma non lo usai lavorativamente mai, perchè quando ebbi la possibilità tecnica di usare la grafica hi-res nei miei giochi, già avevo bisogno di usare più colori (multicolor) e arrivai presto al versatilissimo Koala Paint. Nome che mi è rimasto nel cuore…
Koala Paint era velocissimo da usare, semplice per gestire i file, e utilizzava la tastiera per posizionare il cursore in certi punti dello schermo. C’era lo schermo di ‘menu’, con 16 rettangoloni con le funzioni possibili (Fill-riempi, Draw-disegna, linee, curve, rettangoli, cerchi, gestione file ecc). Con spazio si passava dal menu alla schermata vera e propria. Si usava la tavoletta KoalaPad (che io usai sempre poco, perchè era molto imprecisa) oppure il joystick (che io usavo sempre per disegnare la grafica), spesso punto per punto…
La cosa bella del posizionamento del cursore tramite tastiera, era che funzionava anche nella schermata di lavoro, non solo sui menu. Quindi, premendo il tasto A potevo posizionare rapidamente il cursore in alto a sinistra, senza aspettare di ‘arrivarci’ muovendolo col joystick.

Per quanto riguarda la musica, ancora peggio. Facevo elementari liste di note (anche quelle scritte prima sul mio quaderno in un rudimentale pentagramma) che mettevo in ‘data’ e leggevo sequenzialmente, ‘pokando’ e poi’ storando’ i relativi valori (a due byte) nelle frequenze delle 3 voci audio.

Insomma un delirio! E un procedimento estremamente lento per fare qualsiasi cosa. Oltretutto, ciò non consentiva di fare grosse modifiche a ciò che si era fatto. Una volta che lo sprite o i caratteri erano disegnati su carta, chiuso il discorso, fine dell’ideazione. Dopo aver elaborato la traduzione numerica, non mi veniva in mente neanche di striscio di poter ‘migliorare’ la grafica, rifacendo tutto il procedimento da zero.

Finchè, pian pianino, cominciai a crearmi i miei editor, per automatizzare tutta una serie di operazioni manuali.
Nel ‘char-editor’ e nello ‘sprite-editor’, il primo passo fu poter muoversi nella griglia (che prima disegnavo sul quaderno…) col joystick e premere il bottone per accendere/spegnere un pixel, e avere a fianco, magicamente e automaticamente calcolata, la descrizione numerica esadecimale.
Poi l’opzione per copiare uno sprite, un carattere, ‘flippare’ in X e in Y. All’inizio ridisegnavo uno sprite girato verso sinistra o destra a seconda di come serviva. Allucinante!
Sono quelle cose talmente lente, talmente assurde, che dopo un po’ ti costringi per forza a inventare quello che ti serve!

Fatto sta che, aggiunta dopo aggiunta, anno dopo anno, arrivai a crearmi degli editor di tutto rispetto, che quando potevo facevo utilizzare anche da altri miei colleghi che lavoravano su C64.
Arrivai allo ‘sprite-char’ editor integrato, un unico editor col quale potevo fare tutto e in maniera combinata, nel senso che potevo lavorare su una schermata grafica composta da caratteri e completata da sprites, con funzioni di zoom, di animazione, di salvataggio e gestione file eccetera.
Insomma tutte le cose che il buon senso di produzione richiedeva. Intercettavo il raster (cioè il pennello elettronico del televisore) per moltiplicare le porzioni di video a diverse risoluzioni e il numero di sprite contemporaneo (per averne più di 8).

Realizzai anche un editor piuttosto complesso per la musica, ispirato al pro-tracker per Amiga. Ma questo lo scrissi piuttosto avanti, nel ’91, e l’ho usato anche relativamente poco.
La (elementarissima) musica di F1 Manager fu scritta più o meno casualmente. Cioè: prima feci una base di batteria (chiamiamola così…) , poi gli misi sopra una prima base armonica, poi una seconda. Erano due brevi strofe piuttosto simili, piuttosto rombati, che alla fine marchiavano bene F1 Manager. Ancora potrei fischiettarla.
Onestamente, ero partito da un’idea completamente diversa e più articolata, ma quella musica fu l’unica cosa che riuscii a produrre.

Spesso utilizzai i miei editor per produrre gli elementi grafici anche per i giochi che non programmavo io. Ricordo la simbiosi tecnica raggiunta con Stefano Balzani (quando lavorava ai giochi su C64, prima di passare all’Amiga, quindi GP Tennis Manager C64, 500 cc Motomanager C64, dei quali io feci la grafica oltre la direzione di produzione. E anche Big Game Fishing C64) e il grande Nicola Ferioli (per I play 3D Soccer C64, Football Champ, Dylan Dog). Per Dylan Dog, ricordo però che, per per passare l’enorme quantità di grafica del finale a Nicola, gli passavo direttamente le schermate Koala Paint, dato che lui era autonomo a dir poco nel ‘ritagliarle’ al meglio. “Mandami pure le schermate, poi ci penso io” ricordo che mi diceva quando ci sentivamo al telefono. E quel “ci penso io” era per me una sicurezza assoluta di lavoro perfetto. Grande Nicola Ferioli.
r />Concludo dicendo che programmare gli editor era per me il massimo del divertimento. Raggiunto un certo livello tecnico di programmazione, nel quale potevo scrivere in assembler tutto quello che mi serviva e in basic (poi compilato) tutto ciò che non richiedeva troppa velocità, unito a una conoscenza ormai approfonditissima del C64, lavorare agli editor era assolutamente facile. Quindi in una mattinata di lavoro riuscivo ad aggiungere funzioni rivoluzionarie (per i miei usi interni, naturalmente). Con il massimo della soddisfazione. Sia per essere ‘avanzato di un passo’ con i miei strumenti, sia perchè sapevo che per creare ‘caratteri’ o ‘sprites’, con la nuova versione dell’editor, ci avrei messo ancora meno, e avrei quindi potuto fare ancora di più.

ARTICOLI CHE POTREBBERO INTERESSARTI

  1. VITA DI VIDEOGIOCHI/9: Commodore 64 Vs Sinclair Spectrum
  2. VITA DI VIDEOGIOCHI/13: il primo videogioco 'vero'

Leave a Reply

No trackbacks yet.

Posts with similar tags

No post with similar tags yet.

Posts in similar categories

Nel 1987 ho fatto il primo videogioco della Simulmondo, prima software house italiana. Da allora ne ho fatti altre migliaia.
Dalla fine del millennio scorso faccio videogiochi educativi ed ora anche simulatori di guida e avventure di inquisitori medievali.
Poi nel 2003 ho fondato Koala Games, ora diventatata TIconBLU. E mi occupo di un bel po' di altre cose videoludiche varie.
E...VIVA I VIDEOGIOCHI ITALIANI!