Thursday, July 23, 2009

Calimero

Difficile de vous parler de mon expérience de la programmation de jeu sans vous parler de Calimero. Plus qu'un jeu, c'est pratiquement toute une page d'histoire en ce qui me concerne. Celà se passe au début de mes années de secondaires, donc entre 1991 et 1994.

La construction du jeu est clairement inspirée par le jeu Sonic the Hedgehog sur MasterSystem qui cartonnait à l'époque sur les écrans de la maxithèque: bumpers, pics, et bonus / powerup dans des "télévisions". La comparaison s'arrête là : j'avais dans les 13-14 ans, et bien loin du niveau de la Sonic Team ...

"Calimero against the Black Empire" is more than a game: it's almost the complete story of my early game-programming experiments, between 1991 and 1994. I was roughly 14, in a world ruled by floppy disks, my brother and I were impressed by the first episode of "Sonic the Hedgehog" on MasterSystem and so appeared our first levels featuring bonus-in-televisions. While the initial project was to realise this on C64 (see sprites below), it was my first big BASIC project on a PC ... an 8086 XT to be precise with 720x348 Hercules graphic display.

Le projet a commencé alors que je recevais à peine mon premier 8086 XT, et je m'orientais plutôt vers une réalisation sur le C64, comme en témoignent ces premiers essais de sprites millimétrés. De là aussi le look très "géométrique" des décors. Pourtant, avec l'avancée de ma lecture du langage EPbasic, c'est bel et bien sur PC que l'aventure aura lieu. Je passe donc mes grandes vacances à compter les petits carrés et à encoder tout ça en "passe 21 pixels, trace 20 pixels en blanc, à la ligne, passe 20 pixels ...".

Si je ne peux pas vous donner une historique plus exacte, c'est qu'avec un disque dur de tout juste 20 MB, toute l'évolution du projet s'est déroulé sur diskettes 5'1/4 un peu dures à relire aujourd'hui ... Et avec un PC qui ne retient pas la date, ... Quelques versions diskettes seront refilées à mes copains de classe programmeurs Julien Collaer et Cédric Dupont.

My brother drew the level for 4 worlds -- namely fire, water, pyramids and pipes -- that Calimero the black chick will travel to save his sweetheart Priscilla from the clutches of the Evil Black Empire. Okay, admittely, nothing impressive in that scenario by today's standards, but keep in mind that this was the scenario of virtually *any* platformer by then. Calimero's favourite sentence "That's too much unfair" is really the corner stone of my brother's level design: you'll have to jump into that fake lava river to find the level exit. Don't rush to the obvious exit, which is fake and will just make spikes appear all over the place that will kill you. Even with the cutest graphics, with such levels, it would be hopeless to work on Calimero on DS...

La première version qui voit le jour pour PC avec carte monochrome Hercules à la résolution improbable de 720x348 dans le "niveau du feu". Mon frangin (Cyborg Jeff, uniquement connu en tant que "Piet" à ce moment-là) qui était déjà mon scénariste pour la bande dessinée, me fournit un scénario en béton (la belle priscilla enlevée par l'Empire Noir) et des niveaux dans 4 mondes originaux (le feu, l'eau, les pyramides et les tuyaux)... On s'en plaint maintenant dans Super Princess Peach, mais à l'époque, c'était plutôt bien vu.

Non, le vrai problème avec ces niveaux, c'est l'influence de Rick Dangerous. Des "picots invisibles", un faux drapeau (fausse sortie du niveau), et quasi systématiquement la fin se trouve derrière une fausse mare de lave, etc. C'est une des raisons pour lesquelles il n'y aura jamais de portage de Calimero sur DS, même si je faisais quelque-chose d'aussi réussi graphiquement que le mockup de 'New Zealand Story' par Kenneth Fejer.

I don't precisely realise those flaws by that time, and I will spend much of my leisure time to precisely draw every screen on a large sheet of paper, with a 1mm=2px scale, before the level is translated into LINE(xo,yo)-(xd,yd) and PAINT(xc,yc) statements. The coordinates of every bonus and hazard hitbox are scribbled with a coloured microball pencil ... I had only access to the computer three days a week, and only for one hour (parental rules :P), so such preparation were a must. Programming sessions, however, often consist of repeatedly asking the screen to be repainted as being one pixel off could make a PAINt command to overflow and fill the whole screen >_<. A missed "screen exit detection" -- a request to paint a sprite out of the screen -- will interrupt the execution with an infamous error message from the BASIC : more "IF XX < ... THEN GOTO ..." is needed :P

Et pourtant, je persiste. A grand coup de feuilles de listing sur lesquelles je prépare minutieusement les commandes "line" et "paint" du BASIC à l'échelle qui définiront chaque écran, des tests pour chaque bonus et pour chaque zone mortelle. Si ça permet une certaine liberté, c'est long. Terriblement long à mettre au point (un seul pixel de loupé et la commande "paint" recouvre tout l'écran >_<). Je suis toujours dessus en septembre '93 quand mon frère rencontre Pierrick et commence à envisager une version en couleur sur ... Amstrad CPC. Le projet ne commencera jamais, mais jettera les base de Bilou. A Pâques 1994, je migre vers un 386 avec VGA et carte son. Et là, horreur : le mode d'écran "SCREEN 3" que j'utilisais jusque là n'est plus valable. Il faut tout repasser en 640x480, mais je gagne quelques couleurs au change. Je vais même aller jusqu'à programmer enfin le premier boss avec l'aide de Pierrick, reportant méticuleusement le dragon dessiné en Deluxe Paint via des pages entières de feuilles quadrillées (genre 'point-de-croix' pour ceux qui connaissent) des zones importantes, que je réencode en BASIC. Sans services du genre "wotsit", l'utilisation des .pcx est à cette époque réservée à ceux qui ont pu s'offrir "graphic gems" ou un bouquin du genre.

When I purchase a VGA graphic card and a Master Boomer sound card for my 386 in easter '94, I realise in terror that the 720x384 mode is Hercule-specific and no longer supported. The whole game has to be updated -- but by the same time, colours can be added. With some help from Pierrick, Calimero will at least fight against his first boss -- a dragon drawn with Deluxe Paint and hand-transcoded with several 20x20 tiles on A4 draft, squared sheets: there was no WOTSIT service by that time to help me understand how to process PCX or LBM file format, and definitely no function library to do the job for me. In its ultimate shape, Calimero will have a 10sec music sample looping during the boss fight and a "cinematic" conclusion where lava is replaced by water, flowers grow and blue bunnies frolic all over the scene on a speaker-rendered "merry melodies" theme.

J'irai même jusqu'à programmer une petite "cinématique" de fin de monde, réutilisant les lapins servant de NPC dans "Bilou RPG" (que je mêne en parallèle) et la goutte d'eau qui sert de pièce d'or dans Keen IV et faire un happy end sur la musique du final "Merry Melodies" des cartoon de mon enfance.


Alors que Juin '94 arrive, le projet s'essoufle. C'est définitivement trop exigeant pour un gameplay qui lasse. Pour pouvoir jouer la musique de Pierrick pendant le boss (en fait, une interprétation du thème de Terminator sur le synthé de mon frère), j'ai "acquis" le QuickBasic 4.5, étudié attentivement l'aide qui m'ouvre de nouvelles perspectives : le stockage de sprites "en natif", la manipulation de fichiers, et surtout la programmation structurée, enfin libérée de la numérotation des lignes. De nouveau, c'est surtout "Bilou RPG" qui en bénéficiera, Calimero ne servant que d'explorateur hasardeux pour ces techniques.

As I get more comfortable with 256 color screen mode and find ways to go beyond a simple "XOR" display, the project is left aside as I turn towards the Bilou RPG project using recently developped sprite editors. Calimero will remain forgotten until June '95 where my bored brother will use Recreational Software Design Game-Maker to revive the first twp levels. The hope to see the water, pyramid and pipes zone didn't last very long, however, as G-M hardly support most of the gameplay features (secret passages, bumpers, and switch between gravity-affected player and helicopter power-up in the same level).

Ce n'est qu'en juin '95 que mon frère, armé cette fois du GameMaker de Recreational Software Design et des graphismes (très inspiré de Sonic, il faut le dire) de mon "Panzer III", nous gratifiera d'un "calimero 2". Je suis sûr qu'il avait prévu de faire (enfin) une réalisation des niveaux de l'eau, pyramide et du monde des tuyaux, mais même le premier boss passera sous silence. Les passages secrets, les bumpers et l'hélicoptère, ce n'était vraiment pas pour le GameMaker, rien à faire.


Maintenant, éteignez votre ordinateur et allez vous coucher

4 comments:

cyborgjeff said...

sacré souvenir tout de même !

journal personnel de CJ said...

Mars 93 : "Calimero against the Black Empire avance bien"
Juin 93 : On attend les meubles de notre nouvelle chambre
6 juin 93 : "Sylvain à complètement bousillé le PC" (on sait qu'en réalité c'était le virus "Stoned" que j'avais ramené via la disque de Grand Prix Circuit chez Luigi)
Juin 93 : Rodrick Quest level 1 est terminé
Août 93 : On joue à Outrun version C64

PypeBros said...

Si le PC 8086 a été bousillé par le Stoned en 1993, ça signifie que je n'avais pas encore de carte graphique VGA quand on a rencontré Pierrick, en septembre 1993. La version avec piste sonore du boss doit donc dater de quelque-part entre avril et juin 1994.

PypeBros said...

N'oublions pas Snokie, une des sources d'inspirations pour Calimero (son jingle de mort, pas son gameplay, heureusement)