Prosegue la serie di interviste agli ex-programmatori Simulmondo in attesa della Reunion ufficiale che si terrà il 20 Marzo a Bologna! UPDATE: Reunion avvenuta con gran successo…Andatevi a leggere l’ARTICOLO DEDICATO!
Oggi è il turno di Natale Fietta, storico programmatore Simulmondo di giochi come MilleMiglia per PC e molti altri!
RGP: Ciao Natale! Innanzitutto grazie per la disponibilità e per il tempo che mi stai dedicando! I lettori del mio blog ne saranno entusiasti… Come avrai visto io sono un grande fan di Simulmondo quindi non potevo perdermi un’occasione cosi ghiotta…!
NATALE: E’ un piacere, spero di non annoiarli troppo con le mie risposte, in genere parlo poco ma quando l’argomento mi appassiona rischio per contro di diventare prolisso. Devo comunque premettere che in quanto a nomi e date la mia memoria è un colabrodo, spero quindi che i tuoi lettori mi scuseranno per le eventuali imprecisioni.
RGP: Per questa volta sei perdonato…!A parte gli scherzi cominciamo con la classica domanda: ci vuoi raccontare come è stata la tua “infanzia videoludica”, come ti sei avvicinato a questo mondo e quali macchine hai utilizzato prima di trasformare questa tua passione in un vero e proprio lavoro?
NATALE: La mia passione per i videogiochi è nata in modo abbastanza comune: in un angolo del bar sottocasa avevano installato uno di quei primi enormi cassoni sul quale si poteva giocare a Space Invaders ed ogni tanto mi fermavo a giocarci, come tanti altri coetanei.
A differenza di molti colleghi, però, non ho mai posseduto C64, Amiga o console. Solo al primo anno di università riuscii finalmente ad ottenere da mio padre un PC IBM (con CPU 8088 a 4.77 MHz, 512 Kb di RAM e bus dati a 8 bit) sul quale iniziai a programmare come passatempo (prima in Basic, poi in Pascal).
Fra i programmi che scrivevo c’era anche qualche videogioco (clone di quelli che vedevo nelle sale giochi) ma soprattutto programmavo solutori di equazioni o visualizzatori di funzioni in 2D e 3D (cosa che avevo iniziato a fare già anni prima, trascrivendo a mano su carta millimetrata gli output numerici ottenuti programmando la calcolatrice scientifica HP11C) infatti sono sempre stato appassionato di matematica e geometria.
RGP: Quando hai deciso di voler diventare un programmatore di videogiochi e come sei venuto a conoscenza di Simulmondo?
NATALE: Non l’ho deciso esplicitamente, in realtà ero al primo anno di università e stavo studiando per diventare ingegnere elettronico! C’era un primo esame di informatica e scoprii che ero molto portato per quella materia che inoltre mi interessava più di tutte le altre; nell’aula laboratorio, dopo le brevi esercitazioni assegnate, mi divertivo a programmare cose come frattali o videogiochi amatoriali ed un giorno mentre lavoravo ad un rozzo platform…
Un collega di corso mi disse di aver letto su una rivista l’annuncio di una ditta di Bologna (la Simulmondo) che cercava programmatori di videogiochi quindi, dato che guadagnare qualche soldino extra ad uno studente universitario fa sempre piacere, provai a recarmi sul posto.
Piuttosto ingenuamente mi presentai senza un appuntamento nè una telefonata e se fosse stato un ambiente un po’ più formale forse si sarebbero limitati ad reindirizzarmi educatamente all’uscita.
RGP: La leggenda narra che durante il tuo primo colloquio con Ivan Venturi e Francesco Carlà (rispettivamente direttore di produzione e fondatore di Simulmondo) tu ti sia presentato con un floppy contenente l’immagine di un semplicissimo cubo in 3D e che, davanti alla titubanza di Ivan, premendo un tasto del PC hai dato vita ad una serie di movimenti e rotazioni del cubo in questione che hanno lasciato letteralmente “basiti” entrambi i responsabili Simulmondo! E’ andata davvero cosi? Ci spieghi in dettaglio cosa successe in quell’occasione?
NATALE: In realtà non fu il primo colloquio ma il secondo: al primo parlai molto brevemente con Francesco Carlà il quale mi disse che potevano essere interessati ad un programmatore PC per il porting di un gioco di calcio 3D che stavano sviluppando per Amiga (conobbi in quell’occasione anche Mario Bruscella, programmatore del suddetto calcio Amiga) ma che avrei dovuto presentare una demo delle mie capacità tecniche prima che mi prendessero in considerazione!
Così me ne andai con la promessa di rifarmi vivo con una demo 3D e solo in seguito ho saputo da Francesco che non si aspettava di rivedermi… Invece, dopo poco più di un mese, ritornai con la demo richiesta!
Qui vale la pena aprire una parentesi per spiegare ai più giovani che all’epoca metterci più di un mese (part time, dato che studiavo) per ottenere “solamente” un cubo rotante non era affatto molto tempo. Al giorno d’oggi con DirectX o OpenGL si ottiene molto di più in poche ore (e non parliamo di ciò che si ottiene usando uno dei mille engine 3D open source facilmente reperibili in rete), ma allora il programmatore era solo con la scheda grafica senza neppure il supporto di un driver ed ogni funzionalità dalla proiezione dei vertici alla rasterizzazione dei poligoni andava programmata esplicitamente (ovviamente le schede grafiche 3D ancora non esistevano, anzi neppure le funzioni 2D erano accelerate dall’HW). Inoltre anche reperire esempi o documentazioni era difficoltoso dato che internet non era ancora diffusa e persino Fidonet sarebbe arrivata alla mia portata solo alcuni anni dopo.
Tornando ai fatti, cubi 3D credo ne avessero visti fino alla nausea, la mia piccola demo però permetteva di ruotarlo a varie velocità, traslarlo, scalarlo e non ricordo piuù che altro interagendo in tempo reale. Credo che sia stata proprio l’interattività a colpirli favorevolmente, anche se all’epoca non mi sembrò affatto che quella demo li impressionasse tanto da essere ricordata ancora vent’anni dopo!
RGP: E invece…! Tieni presente che di questo demo ne parlò anche Ivan in un post sul suo BLOG!
NATALE: Eheheh! Incidentalmente passò invece sotto l’indifferenza generale la caratteristica di cui andavo più fiero, ossia il fatto di aver implementato una retinatura (al giorno d’oggi diremmo “texture algoritmica”, ma all’epoca il termine “texture” ancora non esisteva) per mostrare ognuna delle 6 facce del cubo con un colore diverso nonostante il modo grafico avesse solo 4 colori…
Comunque quella demo li convinse ad affidarmi un incarico, non il calcio ipotizzato inizialmente ma un gioco di corse di Formula 1 di cui non ricordo il nome esatto.
RGP: Da quel giorno quindi è cominciata la tua avventura nel mondo della programmazione di videogiochi?
NATALE: Si, anche se inizialmente a rilento… Iniziai a sviluppare il gioco di corse ma quando cominciavo ad avere le auto 3D visibili sia in modalità CGA a 4 colori che EGA a 16 colori venni dirottato alla realizzazione della versione PC di MILLEMIGLIA (gioco di corse con auto d’epoca) per il nuovo modo grafico 320×200 a 256 colori, che cominciava allora ad essere disponibile sulle nuove schede grafiche VGA. Passai quindi i sorgenti della Formula 1 ad altri collaboratori esterni perchè lo ultimassero ma evidentemente non era destino…Infatti se ben ricordo in seguito quel progetto fu abbandonato definitivamente!
Andò meglio a MilleMiglia, anche se non senza difficoltà: infatti a gioco praticamente completo ci accorgemmo di un terribile bug che mandava il programma in crash senza nessuna causa apparente!
Non ricordo di preciso quanto tempo ci volle per risolverlo ma sicuramente più di un mese, forse anche due; era diventato ormai noto a tutti come il Buggone e non si aspettava altro che la sua soluzione per commercializzare il gioco.
Per individuare il problema ci vollero molte sessioni di testing, a volte lunghissime: ne ricordo una in particolare in cui io e Andrea Bradamanti (prossimamente troverete l’intervista anche a lui!NdRGP)(UPDATE: Intervista disponibile a questo INDIRIZZO. NDRGP)continuammo a testare il gioco ininterrottamente per tutta la giornata e la serata seguente, perdendo la cognizione del tempo a tal punto che solo quando entrarono dalla porta gli addetti alle pulizie ci accorgemmo che si erano già fatte le 8 del mattino e decidemmo quindi di tornare a casa!
Alle 9 circa, mi ero appena addormentato (ancora completamente vestito) quando fui svegliato da una telefonata di Ivan che, non sapendo quanto si fosse prolungato il testing, chiedeva notizie sui risultati ottenuti. Alla fine si scoprì che il buggone non era un bug singolo ma la somma di alcuni bug distinti: il più facile da individuare fu un bug dell’assemblatore che rappezzai cambiando l’ordine di alcune istruzioni (e a dimostrazione che certe cose non sono cambiate, giusto il mese scorso ho incontrato un bug simile in un compilatore HLSL…!) mentre più avanti scoprii un bug anche nell’allocazione della memoria per il segmento di codice nelle librerie audio scritte da un collaboratore esterno.
Corretti questi due problemi la stabilità migliorò parecchio e il gioco non andava più in crash (almeno nei menu) se non qualche volta durante la gara! A scoprire l’indizio risolutivo fu infine una sessione di testing fatta da Gaetano Dalboni, designer del gioco, che passò ore a percorrere l’intero circuito alla velocità minima di 5 Km/h; in questo modo scoprì che quando si era in vista del traguardo le automobili avversarie, dopo averlo superato, impazzivano e iniziavano a saltellare ovunque e poco dopo il gioco crashava. Quest’ultimo bug era causato dalla mancanza di un percorso da seguire per le auto che terminavano la corsa prima dell’utente: io avevo previsto un settore dopo il traguardo per questa esigenza ma solo fino alla massima distanza visibile per evitare che le auto sparissero di colpo e non mi ero reso conto che, terminato di percorrere quel settore, anche se troppo lontane per essere visibili le auto continuavano a muoversi comunque finendo occasionalmente nell’inquadratura (ma questo non era il problema principale) e leggendo i dati della pista da aree di memoria non di loro competenza (e questo prima o poi causava errori di indirizzamento generando il crash). Risolto anche quel bug MilleMiglia fu finalmente comercializzato!
Ecco una foto della confezione (fronte e retro) con l’intero suo contenuto:
In quel periodo lavoravo come esterno part time da casa, dato che intendevo continuare in parallelo gli studi (ed eventualmente scegliere un lavoro differente dopo la laurea). Nel giro di un anno, però i casi della vita mi costrinsero a cambiare strategia passando al lavoro full time, credo poco dopo il completamento di MilleMiglia, così iniziai l’incarico successivo (versione PC dei giochi per edicola da Diabolik 3 in poi) come interno con l’accordo di poter prendere permessi in qualsiasi momento per continuare a dare gli esami.
Le cose però non andarono in quel modo e man mano che il tempo passava la varietà di sfide che si incontravano nella programmazione di videogiochi mi appassionò a tal punto da dedicarmi anima e corpo ai videogiochi.
RGP: Quale linguaggio usavi per realizzare i giochi?
NATALE: Agli inizi il Turbo Pascal per le parti ad alto livello e l’Assembler per quelle Time Critical (con il clock dei PC che in quei primi tempi raggiungeva al massimo gli 8 MHz erano molte); solo più avanti passai a C e C++ (sempre misti ad Assembler) che sono per molti versi una scelta decisamente migliore del Pascal per programmare videogiochi (oggi molto più che allora).
RGP: Come avveniva il processo di creazione di un prodotto?
NATALE: Essenzialmente si partiva da un’idea che, dopo essere stata discussa ed approvata dai piani alti con procedure che non ho mai seguito, il designer mi descriveva per rifinirla laddove ci fossero stati problemi di fattibilità o viceversa fosse possibile ottenere più di ciò che prevedeva; quindi si stabilivano le specifiche da dare a grafici e montatori (in realtà nei primissimi tempi la figura del montatore non esisteva ed il programmatore si occupava personalmente anche del montaggio, a volte assistito in questo compito dai tester o dal designer) dopodichè cominciavo a scrivere il codice.
Spesso oltre che lavorare al programma di gioco vero e proprio dovevo realizzare i vari tool di montaggio, necessari per le più varie esigenze, dal convertire automaticamente la grafica nei formati necessari all’editor usato dai montatori per costruire gli scenari di gioco e posizionarvi oggetti e personaggi.
Una procedura diversa fu seguita inizialmente per la serie di adventures da edicola, dato che in quel caso non dovevo sviluppare un gioco nuovo ma fare il porting di qualcosa che esisteva già su Amiga. Quindi invece di un designer mi interfacciavo con Stefano Balzani (Intervista disponibile a questo INDIRIZZO. NdRGP), programmatore appunto della versione Amiga, che mi forniva la descrizione degli algoritmi e dei formati dati usati oltre a scampoli di codice (in Assembler Motorola) da tradurre in versione PC!
RGP: Tutto quello che programmavi doveva essere sottoposto all’accettazione ed alla modifica da parte di un responsabile o veniva pubblicato “cosi com’era”?
NATALE: Nei primi tempi c’era un continuo confronto con il designer ed una crescita interattiva del gioco con scambi di idee e proposte per migliorarlo che arrivavano a volte anche da grafici e tester, oltre al continuo ed indispensabile contributo dei suddetti tester per identificare i bugs da correggere. Più avanti, soprattutto per la serie edicola, lo sviluppo divenne via via sempre più industrializzato, al punto che io addirittura non vedevo più i giochi montati (salvo quando dovevo risolvere un bug) e mi limitavo a fornire il core del gioco e gli strumenti software usati dai montatori. In entrambi i momenti comunque il codice veniva testato solo come scatola nera infatti, che io ricordi, nessuno ha mai controllato i listati per approvare algoritmi o implementazione; contava solo il risultato visibile e su come ottenerlo avevo generalmente carta bianca.
Solo negli ultimi tempi capitò che l’interfaccia e le funzionalità delle librerie che condividevo con gli altri programmatori PC venissero prestabilite da un responsabile!
RGP: Nel triennio 1990-1993 Simulmondo ha sfornato davvero moltissimi giochi tra i quali le serie da edicola basate sui fumetti più in voga all’epoca (Diabolik, Dylan Dog, Tex e Spiderman) oltre a due serie nuove (Simulman e Time Runners) che, almeno all’inizio, hanno avuto un successo strepitoso. Come ricordi quel periodo?
NATALE: All’inizio sembrava le cose andassero di bene in meglio e produrre un numero sempre maggiore di giochi mi sembrava un segno del nostro successo, poi però mi sono accorto (forse in ritardo dato che, come dicevo, raramente vedevo i giochi completi) che mentre il codice cresceva e migliorava, fornendo ai designer potenzialità nuove, il taglio dei tempi li ridusse invece a sfruttare sempre meno e sempre peggio le funzionalità che gia’ avevamo. Ritengo infatti che l’industrializzazione delle procedure di sviluppo sarebbe stata un bene per la qualità dei prodotti se non ci fosse stata la contemporanea riduzione dei tempi di design, grafica e testing.
Ironicamente una delle ultime cose che avevo sviluppato prima del “crollo” era una nuova versione upgradata dei tool di montaggio per i giochi da edicola che avrebbe permesso di migliorarli molto, strumento che però venne ultimato quasi in coincidenza con l’abbandono di quel tipo di prodotti.
RGP: Poi ad un tratto avviene qualcosa all’interno di simulmondo che rovina quell’atmosfera magica distruggendo i pilastri che tengono in piedi l’azienda…Ci puoi dire cosa è successo esattamente e come hai reagito al cambiamento in quell’occasione?
NATALE: Cosa sia successo lo hanno descritto altri molto meglio di quanto potrei mai fare io anche perchè sono sempre stato un po’ avulso dalle questioni organizzative: basti pensare che sono stato uno degli ultimi a capire che stava succedendo qualcosa ed anche uno dei pochi che non lasciò Simulmondo ma fu “lasciato libero” quando ormai la ditta navigava in cattive acque.
RGP: Nel 1993 ormai in Simulmondo erano rimasti in pochi dei “vecchi” ed una volta andati via anche loro l’azienda perse lo smalto di un tempo fino a chiudere definitivamente giusto?
NATALE: Non ricordo le date ma, dopo la fine come Simulmondo, ci fu un periodo in cui la ditta assunse il nome Multi ed in quel periodo lavorai al porting di MilleMiglia per un navigatore satellitare (mai avrei creduto di rimettere mano 10 anni dopo al codice del mio primo prodotto commercializzato!) e più tardi allo sviluppo di un paio di giochi di calcio (Soccer Champ e Soccer Star), attorno al 2000 se non ricordo male: solo il primo dei due però fu completato e poco tempo dopo la ditta chiuse definitivamente.
Riguardo il porting di MilleMiglia ebbi un paio di sorprese: la prima è che nonostante io avessi previsto la temporizzazione del gioco indipendente dal clock, provando ad eseguirlo su PC più moderni scoprii che non funzionava nulla… e stavolta non era colpa mia ma delle librerie di sistema Borland; per fortuna però in rete trovai senza difficoltà la patch ufficiale! La seconda sorpresa fu scoprire un bug sfuggito al testing fatto ai tempi: tutto funzionava perfettamente correndo le annate singolarmente ma se si decideva di giocare l’intera carriera invece dell’auto scelta nel menu ci si ritrovava a guidare sempre la prima della lista!
RGP: Un vero pecccato! Ma torniamo a te… Dopo l’uscita da Simulmondo di cosa ti sei occupato? Sappiamo che sei da sempre un’appassionato di origami: per chi non sapesse cosa sono puoi spiegarci in cosa consiste quest’arte e cosa hai realizzato in tal senso?
NATALE: Parlo volentieri di quest’arte giapponese un po’ sottovalutata! Partiamo da una definizione: l’origami è l’arte di ottenere sculture di carta piegando un unico foglio, generalmente quadrato, senza mai tagliarlo ne incollarlo.
Una corrente dell’origami ammette l’uso di più fogli di carta, purchè siano uniti fra loro con pieghe ed incastri, sempre senza colla od altro; una delle caratteristiche peculiari dell’origami, rispetto ad altre forme artistiche (e che lo accomuna alla musica), è la possibilità di fissare la procedura di piegatura in una serie di istruzioni codificate con una simbologia internazionale, in modo che quando un creativo progetta una forma nuova può divulgarne le istruzioni dando ad ogni altro origamista al mondo la possibilità di riprodurla (ma ovviamente anche seguendo le istruzioni alla perfezione c’è una differenza notevole fra lo stesso modello piegato da un maestro o da un hobbista), esattamente come succede nella musica con gli spartiti. Come in qualsiasi arte anche nell’origami esistono molti stili diversi: realistici, stilizzati od astratti.
Nei seguenti link si possono osservare i differenti stili di alcuni noti artisti, scelti del tutto arbitrariamente fra i numerosissimi origamisti di qualità:
- www.ericjoisel.com/humans.html
- giangdinh.com/fold_figures.html
- www.origamee.net/galleries.html
- www.folders.jp/g/2005/0501.html
Nel mio piccolo non mi sono concentrato su uno stile unico ma ho cercato di spaziare ideando modelli di vario genere; alcuni di quelli a cui sono più legato sono un scorpione in stile realistico (ci ho messo circa un anno a progettarne la sequenza di piegatura) e delle geometrie curvilinee…Potete vederli entrambi (assieme a qualche altro) in questa foto presa alla mostra di un convegno alcuni anni fa.
Oltre a questi ho ideato maschere, fiori, draghi, insetti e altri soggetti; le foto di alcune (poche) mie opere, assieme a molte altre di autori prevalentemente italiani, si possono vedere sul sito del CDO che invito a visitare chi è interessato ad avvicinarsi a questa arte.
RGP: Una domanda che molte persone vorrebbero porti: come mai all’epoca della Colors (Software House fondata da Ivan Venturi) venivi soprannominato “Il conte“?
NATALE: Una volta, forse in risposta ad un mio atteggiamento un pò altezzoso, Mirko Venturi (fratello di Ivan e cofondatore di Colors) mi chiamò scherzosamente “Duca” ed io lo corressi “Conte, prego!” e questo perchè *probabilmente* ho un po’ di sangue nobile ma non ci ho mai dato abbastanza importanza da cercarne le prove. Siccome casualmente in quel periodo (solo per breve tempo e per ragioni che oggi considero abbastanza sciocche) preferivo non rendere nota la mia collaborazione con Colors, mi iscrissero con quel nome nei Credits di un gioco. Quel soprannome mi restò appiccicato anche in seguito, credo per tutta la durata della mia collaborazione con Colors.
RGP: Di cosa ti occupi attualmente?
NATALE: Programmazione, prevalentemente di videogiochi, naturalmente! Dopo le esperienze con Simulmondo/Multi e Colors ed un breve periodo in cui ho scritto programmi dei generi più diversi ho iniziato a lavorare per Artematica (fondata da Riccardo Cangini, altro ex Simulmondiano), con cui collaboro tuttora anche se non in esclusiva.
Questo mi ha dato la possibilità di lavorare non solo a molti altri giochi per PC ma di fare interessanti esperienze anche su varie console (XBox, DS, WII). Lavorare su Nintendo DS mi ha particolarmente divertito perchè la scarsa potenza dell’hardware costringe il programmatore a spingere a fondo sulle ottimizzazioni, un po’ come si era costretti a fare sugli antichi PC.
Recentemente collaboro anche con Koala Games di Ivan Venturi!
RGP: Se ti dicessero di ricostituire una Software House con i tuoi colleghi Simulmondiani cosa risponderesti?
NATALE: Ci sono molti ex colleghi con cui lavorerei ancora volentieri ma in un momento di crisi del settore come questo penso sarebbe poco saggio tentare di aprire una nuova software house… inoltre so che molti hanno abbandonato da tempo il settore videoludico e non avrebbe grande senso per loro tornarvi.
RGP: Ti farà allora piacere sapere che Sabato 20 Marzo a Bologna si terrà la Reunion Simulmondo che permetterà ad appassionati e addetti ai lavori di parlare e confrontarsi con i programmatori dell’azienda che nei primi anni ’90 portò alla ribalta i videogiochi italiani! Tu parteciperai a questa straordinaria iniziativa?
NATALE: Salute permettendo ci sarò senza dubbio; ci sono molte persone con cui ho perso i contatti da anni che rivedrò molto volentieri!
RGP: Bene, ringraziandoti ancora per il tempo che mi hai dedicato ti faccio i più sinceri complimenti per i giochi che ci hai regalato augurandomi di incontrarti personalmente alla Reunion!
NATALE: Grazie a te per aver sopportato i miei sproloqui, a presto allora!