Showing posts with label y92. Show all posts
Showing posts with label y92. Show all posts

Monday, March 24, 2025

#20 games, part 2

There has to be some Super Mario in my unsorted list hash of 20 most influential games... Given that we're only considering 20 games, it was also clear that I would likely keep only one of them. That *had* to be Super Mario World. The original one, on Super Nintendo. There are countless qualities in other Mario titles, but SMW is *the one* I wish I could be playing everytime I feel so. So that was game #5.

Pour vous, lecteurs de ce blog, voir un Mario apparaître dans la liste des 20 jeux qui m'ont marqués devrait être évident. Avec "seulement" 20 jeux, c'était clair qu'il fallait que j'en choisisse juste un, et que ça ne pouvait être que Super Mario World. Aucun autre avant ni après lui n'a aussi bien utilisé Yoshi. Aucun autre ne m'a à ce point marqué par ses choix graphiques au point que je chipe sa carapace de koopa comme icône pour mon terminal. Ils ont assurément leurs qualités propres, mais c'est à SMW que j'ai envie de rejouer.

It might be surprising, but I also wanted to include Zool. Because it's the pre-dever' embodiment of a game where you're in the middle of living objects. People often point out Rayman when they see School Rush, but you won't see any walking pencil or bouncing eraser in Picture City. They would definitely have worked in Zool.

Bon, ça vous surprendra peut-être que j'aie repris Zool dans cette liste. Lui, ça fait des décennies que je n'y ai pas joué, et je dirais que je le vis bien. Mais y avoir joué en 1993 a été déterminant pour la construction du monde de Bilou. Pas sûr qu'il y ait eu une School Zone s'il n'y avait pas eu Zool pour nous montrer la voie.

Si les environnements de Bilou ont du Zool dans le sang, le personnage lui-même n'a pas grand-chose en commun. Bilou serait plutôt un cousin de Coolspot de ce point-de vue là (11eme jour du challenge). Au point que dans la version BASIC, l'affichage indiquant le nombre de vie restant montrait Bilou plus ou moins tranquille d'esprit, un truc directement inspiré par la "pastille qui se décolle" du HUD de Coolspot. Par contre les environnements de Coolspot sont un peu trop "normaux"

You'll note that Bilou as a character is very unlike Zool, but there was another major platformer outsider in '92-'93, and that was Coolspot. Simple geometric shape with feet and hands, defined mostly by its animation... When you realise that one of Bilou's power-up implied shades, you won't be surprised if I tell you Coolspot's health meter inspired a "1-UP count" in the BASIC flip-screen platformer where you can read Bilou's anxiety regarding the lives left on his face.

Comparatively, Rainbow Bells Adventure seems to have been only lightly inspiring (apart from "Pipe Zone" music in my head). Yet, I've been hunting for ways to play that game for years. To the point where I couldn't write this post without trying to install an SNES emulator on my NDS and try running Twinbee there. Oh, it was the first game I've played where you could cummulate power-ups (where Mario would insist on swapping them).

Le jeu du 7eme jour conclut à merveille ce batch: Twinbee Rainbow Bell Adventure. la pépite qui n'a pas été rééditée, dont on a pas les sources ... au point que tout en faisant le challenge, j'ai fini par m'installer une version plus récente de SNemulDS pour le faire tourner sur DS... et il tourne. On ne va pas se mentir, on sent qu'on est émulé et l'émulateur n'est pas d'une stabilité exemplaire ...mais il est bel et bien là ;-) Son impact sur Bilou, il aura fallu attendre (à part la musique pour la "pipe zone"), mais si on peut cumuler les power-up dans School Rush, c'est bien grâce à lui.

Wednesday, December 02, 2015

Spherical Goats

C'est une histoire qui commence dans les années '90 lorsque mon frère fera tourner pour la première fois le jeu "Spherical" sur C64. Il s'agit d'une sorte de puzzle-platformer, où le joueur (incarné par un sorcier à barbe blanche) transforme son niveau (en créant ou détruisant des blocs) pour guider une boule vers la sortie.

Je n'y aurai pas joué beaucoup, puisque c'est systématiquement sous le nom "Wizball" que je le cherchais dans la pile de floppies récupéré de chez nos copains qui quittaient l'ère 8-bit. Je ne l'aurai jamais vraiment reconstruit non plus: un jeu de puzzle qu'on fait soit-même, c'est rarement aussi intéressant qu'un jeu de plate-forme qu'on fait soit-même. Pourtant, dès les premières images, j'ai été subjugué par le genre, tout nouveau pour moi.

I wish I had more opportunities to play Spherical on my C64, back in the '90s. I loved that grid-arranged puzzles with simple mechanics. I loved how it combined with self-moving objects to bring an extra layer of deepness compared to what pencil-and-paper puzzles could provide. Nowadays, I guess I could run Escape Goat 2 and support Ian Stocker in his indie game adventure. There is a lot of very interesting game mechanics at work, and a nice extension to the classical push-me, blow-me blocks I'd put in a Logic Labyrinth.

C'est une histoire actuelle, aussi puisqu'elle parle de Escape Goat 2, un jeu indé sous le feu des projecteurs de RealMyop et CoeurDeVandale. On y retrouve ici aussi niveau très en carrés, avec des blocs qu'on va déplacer pour se frayer un chemin ... même si c'est beaucoup plus indirectement.

En fait de sphère, la chèvre manipule ici Henri la souris, partiellement immortel, capable de déclencher pour nous les interrupteurs des nombreux mécanismes, d'arrêter les tirs d'ennemis etc.

Je note
  • des blocs-caisses qui se font détruire par les blocs qui tombent, mais qui peuvent aussi retenir les même blocs alors qu'il n'y a rien sous la caisse.
  • des interrupteurs qui sont activés par n'importe quoi, et d'autres seulement par le joueur.
  • des blocs-circulaires qui continuent sur leur lancée une fois mis en route, comme dans Johnny Biscuit d'ishisoft.
  • des blocs que les tirs des ennemis font exploser ou brûler de proche en proche.
  • des blocs qui glissent et écrasent les monstres façon Boulder Dash.
  • du sol qui s'écroule ... de proche en proche.
  • des portes à sens unique ... avec ou sans fermeture automatique.
  • un monstre qui peut pousser les blocs que le joueur ne peut que faire tomber 
Côté graphique,  j'aime beaucoup la présence de gros engrenages, à l'arrière du décor, qui se mettent en mouvement quand les interrupteurs provoquent le déplacement en cascade des blocs mobiles.

Monday, July 21, 2014

Sonic 2 for free ?_?

J'avais eu l'occasion de télécharger Sonic 2 pour Androïd, temporairement gratuit, sur la recommandation de mon frère. Une valeur sûre, de 1992. Emerald Hill et ses ponts spiralés ... La Chemical Zone et ses blocs lambinants qu'il faut escalader après avoir dévalé des pipe-line de liquide bleu-louche.
J'essaierais bien d'aller jusqu'à la Mystic Cave voire Oil Ocean, mais pour tout dire, les contrôles sur tablettes sont une catastrophe! Le bouton de saut ne réagit pas systématiquement, ce qui est un comble pour un jeu de plate-forme où les réflexes sont si importants. Ça fonctionne un peu mieux quand on appuie vers la mi-hauteur, mais ça veut dire que presque tout ce qui se trouve devant Sonic devient masqué par ma main >_<

What good is a free copy of Sonic 2 if you can't play it ? And how could play a reflex-based platformer when your hands are hiding half of the play screen ? How could you have proper timing when you can't have your hero reliably jumping on "button" press ? And if trying to move backwards may be ignored because you suddenly move out of the active detection region ?

does it really deserve the 'sonic' tag ?

Thursday, July 11, 2013

SMW -- try a more difficult quest

1992, un samedi matin. Je cours dans les rayons du GB pour atteindre la Maxithèque et me mettre le plus vite possible dans la file pour la manette de la Super NES ... Coup de bol, il n'y a personne cette fois-ci. Je choppe le pad et je démarre le niveau de Super Mario World. Mais à ma grande surprise, il n'y a pas de bloc-question avec un champi dans le niveau cette fois-ci ... Et un peu plus loin, je tombe dans un trou. Un trou ? Eh, y'avait pas de trou dans ce niveau, la semaine dernière !

Avec des scéances de 15-20 minutes par semaine (en cas de game over, il faut passer la manette au suivant dans la file. Si mon père passe en disant "ça suffit, assez de jeu vidéo pour cette semaine" aussi), ce n'est que plus tard que je réaliserai la présence des "Switch Palace" et que je comprendrai que je jouais cette fois sur une partie toute fraîche ou aucun super-joueur n'avait activé ces switches pour moi.

We cannot seriously pretend that switch palaces in Super Mario World are *hidden*. One is straight on the map, the next two are explicitly mentioned in the castle just past the vanilla dome ... They feel more like an admission exam for the player. "Good, now that you've understood the core mechanics and reached the half of the game, let's make sure you're teased up to the point that you'll hunt for those palaces on your next Game Over".

On serait en droit de se demander "si ces switches rendent le jeu plus simple, pourquoi sont-ils cachés?" Cachés? vraiment ? Voyons, le switch jaune est visible au niveau du premier chateau et accessible dès le début du jeu. Le switch vert au bout d'un tuyau dans une caverne, mais passer par un tuyau pour trouver un secret, ça devrait être un réflexe pour un joueur de Mario!

Even the access to those palaces is fairly straightforward. One pipe or one P-switch, and voilà: you're in the palace. Comparatively, Star Road accesses are available sit within secret shortcuts and require mastering of the mechanics to be opened. Comparatively, even unlocking the (last) blue switch palace is easier than beating the level where the entry stand (not mentioning opening the path to the first Star Road access :P)

Troisième switch, il va falloir cette fois ouvrir le passage avec un interrupteur, mais le joueur aura été titillé avec deux chemins a priori impossibles qui s'ouvriront une fois le switch activé. Un peu de maîtrise s'avère nécessaire puisqu'il faudra transporter le switch puis la clé, mais soyons honnêtes: tout ça figure de rigolade à côté des secrets qu'il faut percer pour sortir des maisons-fantôme. Et pour être sûr, une fois le chateau suivant atteint (on doit être grosso-modo à la moitié du jeu), on vous demandera de but en blanc "avez-vous déjà trouvé les switches rouge et vert?".

The real deal is not about *finding* those switch palaces. The real deal is about *daring not to enable them*. Have you just reached Bowser valley thinking that Super Mario World has nothing more to offer and is "just for kids". Uh hu ? Do you have what it takes to come here with no switch enabled ? No safety net over deep pits ? No barriers to protect you from being stomped ? No convenient power-up dispenser just before the boss' door ? Truly, those switch palace are a "easy-normal-hard" difficulty selection in disguise.

Soyons clairs, je pense qu'il est quasi-impossible d'arriver à la vallée de Bowser sans se douter de l'existence des switches tant il y a d'indices quant à leur existence. En revanche pour Julien qui arriverait au chateau en se disant "boah, c'est trop facile!", l'utilisation de tous ces blocs colorés dans les derniers chateaux offre un message clair: "trop facile? essaye donc de refaire le jeu sans activer les switches, qu'on rigole". Et voilà donc un Mario qui dispose d'un large pannel de niveau de difficulté différent -- chose unique dans la série, sauf erreur de ma part.

Voyons ... ce serait un peu comme si certains interrupteurs planqués dans les recoins obscurs de la machine infernale de Keen Commander permettaient de couper le courant aux monstres et aux obstacles les plus critiques. Au lieu d'une sélection du niveau de difficulté via un menu, c'est en procédant au sabotage du jeu qu'on en saperait aussi le niveau de difficulté. J'aime.

PS: un passage secret difficile dans SMW, c'est plutôt quelque-chose comme ça (je l'avais trouvé grâce aux sauvegardes de l'émulateur, mais je ne m'y suis pas encore risqué dans le "vrai jeu").

Thursday, October 20, 2011

Influences for Bilou ...

Facile de voir que la school zone de Bilou ressemble à la cité des images de Rayman. Et pourtant, c'est une pure coïncidence: quand mon frère m'a ramené les nouveaux monstres de Pierrick, personne n'avait jamais entendu parlé du curieux bonhomme sans bras à moins d'être dans l'entourage rapproché de Michel Ancel... Ce dont je ne peux malheureusement pas me vanter.

Mais ce n'est pas pour autant dire qu'il n'y avait rien avant, même si à 15 ans, on avait passé le cap de "refaire un Sonic avec Calimero", il y avait forcément des jeux qui nous avaient marqués et qui nous ont donné envie donner vie à des objets genre "Alice au Pays des Merveilles"dans des environnement "zoomés". Coolspot ('93) fait ça un peu tout le temps. L'animation gag et fluide du jeu de David Perry a largement contribué dans mes influences pour les jeux vidéos, c'est clair.

I long for the "school zone" to get more monsters so that people stop saying that I should have mentioned Rayman (PSX) as an influence. No, rayman was still a top secret project (on SNES?) when we started sketching Sqrt and the pendats. But the video game album was already featuring a few dudes that shown us the way of micro-characters-in-macro-areas (just in case our daily dose of Wonderland weren't enough ;). Coolspot's attic is frequently appearing in my mind when I try to get references for the library level of the school zone, for instance. And of course, Zool had an even greater influence, with its objects-brought-to-life monsters.

L'année avant, l'ovni farfelu, c'était sur Amiga, c'était Zool, le ninja trans-dimensionel. Château des Délices -- euh, zone Chuppa Chups, je veux dire -- puis monde de la musique (tiens, tiens!), Jardin Géant, Boîte à Outils et magasin de Jouets.

Oui, ce "tueur de Sonic" à très certainement marqué le terrain d'une manière plutôt décisive, et je me demande même dans quel mesure il ne figure pas également dans les influences de Michel ;)

Zool's Nth dimension feels quite similar to Rayman's world (or at least those levels based on an surrealistic version of our daily life). With its candy and music themes, I wonder to what extent it might have secretly inspired Michel Ancel and his team...

Ou alors serait-ce les Rangers du Risque (sur NES, dès 1990) ? Avec leurs niveaux à kangourous smasheurs dans une bibliothèque ? Si ce jeu figure parmi mes référence en terme de gameplay coopératif, en revanche, je ne crois pas être allé jusque là, ni même avoir jamais vu quelqu'un y jouer. Il faudra chercher ailleurs.

Oh, and just FYI, yes, I enjoyed Rescue Rangers a lot, especially due to its innovative and fun co-op play, but I'm afraid I never managed to beat the game up to the library level. So, no, this wasn't a reference for me. That's funny to note that Zool's first two levels just match Rayman's Cake and Music levels, by the way ^_^

Sunday, February 20, 2011

Life-changing books (1/3)

I guess my life would simply not be the same if I haven't had that book in my dad's shelf when I was young. Granted, I had a couple of books about programming, but the "Commodore 64 user's guide" was really a goldmine. Every single aspect of the C64 was covered: multi-track music, video screen layout, memory map and sprites. There were a couple of high-level techniques that I learnt later on (such as bitmap mode or reprogramming characters) in other books, but this one really set the basis on which e.g. Calimero and Space Mission were dreamt.
Sans ce bouquin sur l'étagère de mon père, il y a des chances que ma vie n'aurait pas vraiment été la même. Oh, j'avais bien 2 ou trois autres bouquins de programmation mieux adaptés à mes 8 ans, mais le "guide de l'utilisateur" était purement et simplement une mine d'or. Musique multi-piste sur le SID, fonctionnement de l'écran et des sprites: tout y étais (enfin, me semblait-il), même si j'ai découvert par la suite d'autres techniques telles que la reprogrammation des caractères ... C'est armé de cette brique à reliure à anneaux que je me suis attaqué notamment à Calimero et à Space Mission.

As a result, many of my spare time since then consisted of filling 24x21 grids or trying to depict level using the PETSCII codes (which I used to copy in a small notebook so that I could use it anywhere), which I'd then convert into lines of DATA for POKE calls.
Une bonne partie de mes temps libres (en dehors de la guitare et des LEGOs) aura donc consisté à remplir des grilles de 24x21 carrés ou à construire des niveaux à l'aide d'une copie manuscripte du jeu de caractères PETSCII que je pouvais par la suite convertir en lignes de nombres traîtées par des POKE (écriture directe dans la mémoire de l'ordi depuis le programme BASIC).

When I received my first PC, my uncle gave me an official copy of the "EP basic" (similar although not 100% identical to GWbasic), which I used for many years. It was pretty confusing to me to move to a platform where there wasn't any memory-mapped registers anywhere. The PC memory map didn't contained anything interesting, and everything had to be done with dedicated statements such as DRAW, PLAY, SOUND, etc.

Autant dire que mon premier pas dans le monde du PC m'a complètement perturbé. Exit les memory maps ... pas de registre de coordonnées pour les sprites, mais des commandes PUT et GET ... Pas de registre de timbre ou d'attaque, mais une commande PLAY capable de "jouer" à travers le PC speaker le genre de ligne mélodique de votre tout premier GSM... et écran monochrome. Pas franchement le grand amour. Mais voilà: le PC est présent en permanence alors que le C64 n'est monté que pendant les vacances.

edit: Thanks to Charles Hawn and Warlord, the link to the pdf of the 1st edition is one click away!

Tuesday, February 01, 2011

The revenge of ZooL

Pour tous ceux qui n'ont pas eu Windows sur leur premier ordinateur (et qui n'ont pas eu de console SEGA non plus), ZooL est sans doute l'expérience la plus proche d'un Sonic que l'on puisse imaginer... enfin, presque. Et comme mon frère le faisait remarquer, c'est Zool qui a servi de cas d'étude pour un livre qui introduit des concepts tels que les plate-formes tombantes ou mobiles, l'attaque en vrille, en glissade, les monstres smarts ou l'escalade de murs. La plupart de tout celà est présenté dans le chapitre 6 : "Empower strikes back".

Ever thought about fighting in the middle of candies, music instruments or drills ? that's precisely the setup of Zool : Ninja from the Nth dimension. Zool was a stunning, hard and exciting game that kept me busy for weeks when I was a teenager. The closest PC and Amiga guys could get to a Sonic experience. It's coming back to the front of the scene with that Game maker companion book by Jacob et al. I especially dug chapter 6 about attack moves and interaction with moving and crumbling platforms.

Si les éléments présentés m'intéresse, je dois dire que j'ai été un peu déçu par l'approche. Il faudra que je retrouve une copie de Zool pour Amiga pour vérifier ce qui faisait partie des limitations du jeu d'origine et ce qui a été simplifié pour ce livre.

Personnellement, quand je lis que Zool va pouvoir assommer les monstres qui le touchent pendant qu'il tombe, peu importe qu'il les touche du pied ou de la tête ... ou que "celà signifie qu'un ennemi peut être tué lors d'une glissade même s'il touche Zool dans le dos. Mettons ça sur les super-pouvoir d'un ninja trans-dimensionnel", je dois dire que je ne suis pas convaincu.

Of course, unlike the typical target reader for that book, I'm not that interested (sic) in which buttons or dialog boxes I should use in order to activate response to monster collisions, but rather by the backstory, the logic, and some nitty-gritty details that can make things "professionnally right". To that extent, i must admit that I have been disappointed.

The revival of Zool presented in the book apparently solely relies on a pixel-perfect collision detection and trivial boolean flags (attack?=true) to do all the decisions. It is not possible, for instance, to insist on the fact that zool's foot should be in contact with a monster so that the monster can be stomped. If a bee enters Zool's face while he's falling, the bee will be "stomped" as well. Similarly, the author says that the fact that a monster could die on contact of Zool's back while he's sliding could be considered as a "cool ability of a inter-dimensional ninja". That's just a bug, as far as I'm concerned.

Dans mon propre "game engine", ce genre de comportement (la présence de "points faibles" et de "zones qui donnent un coup") était clairement un objectif majeur par rapport à tout ce que j'ai fait ou utilisé précédemment. Ca marche, ça ne coute pas bien lourd (même s'il faudra que je mette à jour l'éditeur de sprite pour que ce soit plus convivial) Après avoir tenté de reconstruire mentalement les interactions en place dans la réalisation des plate-forme à partir des manipulations recommandées, j'ai été aussi un peu déçu.

Et les auteurs ne s'en cachent pas: "il y aura un léger décalage entre le déplacement de Zool et celui des plate-formes. C'est ça ou prendre le risque que les plate-forme mobiles puissent envoyer Zool dans un mur. Donc oui, ils reconstruisent Zool, mais d'une manière qui est entachée par un bon nombre de "limitations d'amateurs" que je croyais avoir disparu depuis une 15aine d'années.

I unfortunately stumbled upon similar "amateurism" when checking the moving / crumbling platforms. Yes, they have something that approaches the desired effect, but either with a _lag_ between Zool and the platform's move, or with a risk that platforms could throw Zool within a wall. Looks like I'll have to hunt for more reference if I want to find an appropriate solution to those platforms problems.

I note, however, that one key technical aspect that supports the examples is that the game maker engine is object-based rather than tile-based. By making a movable platform a subclass of the "obj_ledge", Zool can naturally walk on it, wherever it moves, fall or stay still. That's something that won't be so easy to achieve with my approach.

Tuesday, August 03, 2010

Blues Brothers -- Trivia

Le saviez-vous ? Bien avant la SNES, les Blues Brothers de Titus Interactive avaient été adaptés sur NES. Mais j'ai bien l'impression que les exigences de "politiquement correct" de Nintendo ont eu un effet néfaste sur le concept du jeu. Point de caisse à jeter à l'horizon. Exit les personnages loufoques tels que Mamie-Caddie ou la serveuse-championne-olympique ... Pas même de disques à collectionner. Bien pauvre. Ca n'a pas dû aider le succès du jeu.

Blue Brothers was one of the game I was most hyped about when neighbours started to get VGA screens and AdLib soundcards. Little did I know that the game had a NES release, but it seems like the fun of the game has been completely lost in the process. Its spirit did, at least, imho. Is that Nintendo 'politically correct' policy ? is it self-censor to reach more than the peculiar French video game market ? Is it just lack of space on a cheapest-possible cartridge ? I cannot tell

Dans ce speedrun, le jeu est terminé en 4 minutes chrono. Pas de gamin armé de lance-acide dans l'usine ... pas de Docteur-Maboule armé d'un lance-seringue dans la prison ... Que diable s'est-il passé? Il ne reste qu'à traverser des maps vides. Le monde impitoyable du jeu grand public ne cessera de m'attrister.
Le rétro-gameur averti boudera donc la cartouche pour se concentrer sur la version amiga qui ne souffre pas des habituels problèmes de scrolling rencontrés dans les portages PC des jeux Titus -- même si les bande-son Adlib me manqueront.

So if you want to retro-play the game, your best option is likely to hunt for an Amiga copy of it. You won't get the sweet adlib sound but your head won't explode with 8086-compatible push-on-demand scrolling. And you'll experience the full chemical kids, caddie-nanies and furious damsels high on heels fun of the original.


(Bilou progress report: une 3eme map scribouillée pour Apple Assault, polish des 2 premières maps ... tout ça malgré un Level Editor qui aurait encore bien besoin d'être débuggué...)

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

Thursday, February 05, 2009

Xargon : may the source be with you ...

Vous ne connaissez pas Xargon ? pensez à Jill of the Jungle avec un chromosome Y et vous ne serez pas loin... Vous ne connaissez pas Jill of the Jungle non plus ? Ah. Bin probablement que votre PC n'avait pas encore de carte SoundBlaster ou d'écran VGA en 1992. C'est vrai que ça coûtait un peu cher, à l'époque.

Quoi qu'il en soit, si je vous en parle, ce n'est pas parce que les 3 épisodes de Xargon sont disponibles sur classicdosgames.com. Non, c'est parce que le code source de Allen Pilgrim est également disponible. C'est du code C, mode réel pour le DOS, mais suffisamment propre pour que tous les aspects "hardware" soient extrait de la logique du jeu -- et croyez moi, sur PC, c'est un exploit majeur.

Ce n'est pas la bibliothèque d'abstraction du hardware qui m'intéresse, bien sûr. Même si c'était impressionnant à l'époque, le scrolling des jeux de plate-forme Epic ne pouvait concurrencer celui du moteur de John Carmack (commander Keen & autres), le player de fichiers CMF (adlib/midi) était bien connu, mais je n'ai jamais vu d'éditeur correspondant, et si l'on se laissait impressionner par un "yeeaaah" en ramassant un gros bonus, le mixage des effets sonores était en réalité peu convaincant (voire absent).

I'm currently studying the game logic of Xargon from Allen Pilgrim's sources. I hope that giving a look on someone else job will help me to overcome that "analysis paralysis" in my own game engine. I know i tend to overcomplicate things ... The management of objects-to-world collision has already shown enlightening... more to come. And, by the way, if anyone of you is interested into porting Xargon to the DS (or whatever other system), you may want to give a look to information gathered on the game modding wiki at shikadi.net in addition to the source code. Personnally, it's not in my to-do list :P

Non, ce qui m'intéresse c'est la logique du jeu. Et quelque-part, cette logique me crie le maître-mot de Mollusk: "ne vous posez pas de question: codez". C'est vrai quoi. Je me prends la tête avec mes test-points alors qu'en fait, ce n'est qu'une optimisation bancale que je traîne depuis l'age du BASIC, renforcée par l'étude d'un jeu NES. La gestion des collisions perso-monde dans Xargon est bien plus simplement basée sur les possibilités de l'ensemble des tiles recouverts et l'affectation de propriétés sur chacune de ces tiles.

int cando (int n, int newx, int newy, int ourflags) {
 int x,y,temp;
 int flagor, result;
 int startx, endx, starty, splity, endy;

 startx=newx/16;
 starty=newy/16;
 endx=(newx+objs[n].xl+15)/16;
 endy=(newy+objs[n].yl+15)/16;
 splity=(objs[n].y+kindyl[objs[n].objkind]+15)/16;

 flagor=f_notstair;
 result=0xffff;
 for (y=starty; y<endy; y++) {
       if (y>=splity) flagor=0;
       for (x=startx; x<endx; x++) {
         temp=(info[board(x,y)].flags|flagor)&ourflags;
         result&=temp;
       };
 };return (result);
};


Comme disait Colomb en quittant le Portugal "Il suffisait d'y penser": le tout est de concevoir les propriétés des tiles de manières à ce qu'elles "s'additionnent" bien. Un personnage ne peut se déplacer vers un nouvel endroit que si tous les tiles possèdent les bonnes propriétés ("pas un bloc", ce que Allen appelle f_passthru. Celà demande parfois un peu de jonglage mental. f_water est évident, f_climbable aussi. f_not_stairs un peu moins...


int trymove (int n, int newx, int newy) {
 int ourflags;
 ourflags=f_playerthru;

 if (newy>objs[n].y) ourflags|=f_notstair;
 if (cando (n,newx,newy,ourflags)==ourflags) {
    moveobj (n,newx,newy);
    return (1); // successfully made it to new location.
 } 
 else if (cando (n,objs[n].x,newy,ourflags)==ourflags) {
    moveobj (n,objs[n].x,newy);
    return (2); // could only move vertically
 }
 else if (cando (n,newx,objs[n].y,ourflags)==ourflags) {
    moveobj (n,newx,objs[n].y);
    return (4); // could only move horizontally
 };
 return (0);    // couldn't move at all.
};


J'aime bien aussi la manière dont il a réussi à capturer les comportements de déplacement simples Il faudra que je tente d'en faire autant. Bion. Je vous en dirai sans doute plus. Malgré tout, la routine de gestion du personnage principal fait quand-même 7 pages, et je n'ai pas encore tout lu.

Saturday, December 31, 2005

history (t.a.g.)

you've reached the last history post.

These posts present the development of games that pre-date this blog, digs of old paperwork on ancient machines. This is not only nostalgia, which would also encompass games of those times which I enjoyed and similar things. It's wider than the sole development of the story line for Bilou's Adventure and captures a lot of other "PPP Team" games & tools.


Some milestones:

  • 1989: first hand on the Great Giana Sisters and first "quarters" into a Super Mario Bros arcade machine.
  • 1990 : Playing Rick Dangerous at the computer store roughly every week. Planning a cover of "le Labyrinthe d'Errare" on C64 (Role-playing Book)
  • 1991: First platformer project on my 8086 computer while my brother discovers Blues Brothers (titus) and Commander Keen (ID software)
  • 1992 : Super Mario World arrives in Europe.
  • Fall '93 : first Bilou projects
  • Easter '94: I buy VGA graphics and 8-bit PCM sound for my 80386 computer. I want to make a Z:LA clone on PC.
  • 1995 : RSD Game Maker year, launching the Badman series. (Rayman is released in Q4)
  • Summer '96: the last one with a working C64 around, replaced by a Pentium 120MHz, my first machine with a CD-ROM reader. On my quest for an assembly module player. I can now play Rayman!
  • Fall '97: Done with PC-Bot, my first major C program. First steps on Internet, starting the Ultimate Game Maker research.
  • Winter '98: Upgrading the pentium into AMD K6-II, demoscene-ready. Teaching myself C++ for the first time.
  • Summer '99: Crazy Brix converted into 100K game for Inscene
  • Summer Y2K: Out'm'up, my last game for the PC platform. 
  • 2001: first hand on a PSX system.
'90 -- '91 -- '92 -- '93 -- '94 -- '95 -- '96 -- '97 -- '98 -- '99 -- '00 -- '01 -- '02 -- '04 -- blogging -->