Appunti e memorie di Ivan Venturi

Fare Videogiochi

 

Scritto daadmin 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ù.

Bookmark and Share

Scritto daadmin il 28/01/2009 in 1986, 1987, bocce, bowls, c64, koala, koalapad, koalapaint, simulmondo con Nessun commento


Realizzavo la grafica sul mio Commodore 64 utilizzando il joystick, muovendo il cursore dando delle bottarelle alla leva quando disegnavo al pixel, e spingendolo con più decisione quando dovevo raggiungere una parte lontana dello schermo. Non utilizzavo la lavagna grafica, la famosa Koala Pad (chissà come questo nome sarebbe tornato fuori quasi vent’anni dopo! vedi Koala Games…), perché era troppo imprecisa, ma solo il programma Koala Paint. Per disegnare qualcosa, disegnavo le semplici linee iniziali usando rette e cerchi e riempimenti di colore, poi lavoravo al pixel, punto per punto, colore per colore. Non c’erano gradienti, non c’erano pennelli. Si faceva tutto pixel dopo pixel. Ancora oggi, quando io e i miei colleghi parliamo di grafica bitmap troppo piccola di dimensione (per esempio un oggetto di un videogioco per cellulare, o un’icona) perché valga la pena di farla in 3D o con fotoritocco e poi ridurla, parliamo di ‘grafica al pixel’.

1986, Anno duro. Morte di mio padre, classe al liceo composta per metà da gente nuova, più grande, punk e fricchettoni (io ancora nerdissimo), crisi esistenziale a mille, lo sviluppo fisico. Da un metro e cinquantaquattro che ero alla fine della terza media, ero uno e settanta a metà della seconda superiore.
Durante le ore di fisica o italiano io e i miei compagni di classe del liceo disegnavamo fumetti continamente. Scoprii la musica rock, punk, il demenziale, i Blues Brothers.

Nel frattempo, Columbus Race si era leggermente evoluto, particolarmente nell’ideazione, con i suggerimenti di storyboard suggeriti da Carlà. Dal mio punto di vista, forse perché le nostre formazioni culturali erano differenti (io ero nato come adepto di Atlas Ufo Robot, Mazinga, fumetti Marvel, Blade Runner, Metal Hurlant, mentre Francesco, laureando al DAMS attingeva a ben più dotte letture), fu difficile stravolgere l’ideazione in una direzione che non fosse totalmente fantascientifica, ma che si avvicinava bensì ad Alice nel Paese delle Meraviglie fino alla Storia Infinita di Michael Ende (che era comunque uno dei miei libri preferiti). Fatto sta che il mio entusiasmo scemò e il progetto si arenò lentamente. Io, viste anche la congiuntura personale che attraversavo, non portai avanti il progetto con la solita efficienza. Idem Francesco, che in qualche modo, non reputava, giustamente, il progetto particolarmente originale.
Fu così che un giorno andai a trovare Francesco che, forte della collaborazione appena nata con un’azienda di videoproduzione e duplicazione nelle vicinanze di Bologna (dalla quale in seguito sarebbe scaturita la Genias), nonché dal successo della sua rubrica su MC, ideò quella che sarebbe stata la linea produttiva della futura Simulmondo.

Nacque quindi l’idea di Bocce, poi diventato Bowls, sulla falsariga del simulatore dei fratelli Carver Leader Board, uno squisito simulatore di golf per Commodore 64. Bocce sarebbe stato il primo videogioco veramente italiano, basato su uno sport che nessuno aveva mai simulato prima. E ci credo, pensai io in un primo momento, a chi frega nulla delle Bocce?

Comunque, dopo qualche giorno di sconforto, mi forzai ad entusiasmarmi al progetto che in verità era dal punto di vista progettuale molto appassionante. Per me si trattò per la prima volta di studiare a fondo uno sport (ecco un sedicenne che si legge libri su libri dedicati a questo sport per vecchietti), nelle sue specialità INDOOR (nel bocciodromo) o OUTDOOR (su una stradina di campagna).
Mi divertii molto a studiare il movimento del bocciofilo che lancia la boccia, e riprodurlo con la massima definizione che mi era possibile con gli sprite del Commodore 64. Solo da qualche tempo aveva fatto la sua comparsa la ‘grafica metallica’, ovvero mettere un bordino chiaro in alto a sinistra a tutti i bottoni e finestre, e uno scuro in basso a destra (vedi il bellissimo Uridium di Andrew Braybrook). Se guardate l’interfaccia di Windows fino a Windows 2000 capirete cosa intendo. Fu così che anche Bowls era arricchito da un’interfaccia metallica, all’interno della quale appariva una curata visualizzazione grafica dello stradello di campagna lungo il quale avveniva la partita, o della pista di bocce al chiuso.
Fu uno spasso realizzare i menu come una sorta di templi di plastica all’interno dei quali era possibile selezionare le varie opzioni. La schermata finale, chiamiamolo il podio, sembrava Fiabilandia in versione digitale, con due belle bandiere italiane sventolanti sui cucuzzoli delle torri laterali.
Continuando a trascurare completamente la coerenza con la disciplina sportiva, realizzai una schermata di copertina dove una statua, non il Discobolo bensì il Bocciofilo, veniva illuminata da alcune sfere lampeggianti che emergevano dal terreno, dopodichè nei monitor sorretti da due cariatidi un po’ marziane, appariva la scritta DEMO e si avviava la partita dimostrativa.

Nei titoli di testa (che appaiono in una delle immaginette qui a fianco), ecco fare la sua apparizione la prima versione del logo della Simulmondo, ancora Simulworld: un pianeta in wireframe attorno al quale ruotavano in orbita elissoidale due satelliti simili a elettroni. Era il 1987.

Bookmark and Share

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!