Showing posts sorted by relevance for query twinbee. Sort by date Show all posts
Showing posts sorted by relevance for query twinbee. Sort by date Show all posts

Friday, January 12, 2007

"Rainbow Bell"

Twinbee Land, PC, PPP TeamSi Fury of the Furries était mon jeu fétiche sur PC, sur la superNES, c'était (et c'est toujours resté) Twinbee : Rainbow Bells Adventure.

Contrairement aux autres titres de la série "pop'n'twinbee", "rainbow bell" était un jeu de plateforme (ce qui explique que je l'aimais bien) aux couleurs sympathiques et aux musiques envoûtantes. Au départ, c'est Julien qui m'a fait découvrir ce titre. Un jeu loué lors d'un de ses anniversaires, bien trop simple selon ces standards (Juju finissait DK1 ou SMW en une après-midi avec 99 vies et sans perdre une seule vie dans les jours où il était en forme).

Puis c'est Pascal "Kameah" qui a débarqué, dans les années game-maker avec un jeu curieux : un portage de Rainbow adventures pour PC. Repêchant entre-autres dans les graphismes de Badman II, ça a donné à peu-près ceci. Je suis repassé par là et ai retravaillé les planches de sprites (entre-autres) pour en faire un jeu finalement beaucoup trop coloré ... Mais j'étais dans le bon (pour une fois) avec mes bonshommes tout ronds (mon adaptation de son jeu "DBZ" était une hérésie profonde, quand j'y réfléchis).

As Fury of the Furies is my favorite PC game ever, Twinbee II (rainbow bells adventure) is my favorite on SNES. Unlike other titles in the Twinbee series, Rainbow Bells is a colorful platformer with really catchy tunes. I've been first exposed to it at the birthday party of a old friend of mine who happens to be a hardcore Gamer : Julien, but who quickly sold it since it was "way too easy" by his standards. Then, a few years during my "game maker" era, Pascal came with a small and strange-looking game which was intended to be a port of Rainbow Adventures on PC. Picking backgrounds here and there in Badman II i made it look more or less like the picture above. Not that bad, but way too colorful compared to the initial game (see below)

Twinbee II, aka. Rainbow Bell Adventure, SNESAlors Pascal m'a refilé une VHS où il s'enregistrait jouant (et finissant) le jeu. Vous allez rire, mais en session d'examens, je la regardais à peu près aussi souvent que "Star Wars VI". Et j'ai retravaillé quasiment tout. Les animations, les sprites, les décors (en faisant intervenir notamment mes arbres scannés et retravaillés), une "usine" où une série de petits robots "construisent" un upgrade pour notre héros...

Mais tout celà restait bien pâle à côté du titre original. Ou plutôt trop "flashy" comparé aux tons pastels utilisés ...

So Pascal recorded the real game on a VHS so that i could watch him playing, listen to the tunes and whatever -- and be in the "right mood" when working on the "undersee" level. I reworked everything to get closer of the spirit of the game which i enjoyed more and more, watching it even more often than StarWars! And today, i discover than thanks to the "Snes Advance" project, i could potentially play Rainbow Bell on my DS. w00t!

Twinbee II, the richest platformer ever when it comes to gameplay. Maybe in the palm of my hand. That mean you might have the long-awaited (hum) "Kirby and the Amazing Mirror" vs. "Twinbee Rainbow Bells" evaluation.

J'ai fini par l'avoir sur l'émulateur ZSNES, et voilà qu'au moment ou je cherche encore une fois sur le net après des adaptations des musiques (à force de regarder la vidéo, j'ai fini par les siffloter volontiers), je découvre le projet SnesAdvance", potentiellement capable de me permettre de jouer à "Rainbow Bell" sur ma DS.

Il faut dire que c'est un des jeux de plateforme les plus riches (en actions possibles) que j'ai vu. On vole, on saute, on cours, on blaste, on ramasse des options à la pelle sous forme de clochette qu'il faut récupérer après s'être fait touché par un ennemi. Et justement, les ennemis (même s'ils ont tous le même look de robot) ont des comportement très variés de par leurs armes, leur mode de déplacement, etc. Un bijou, je vous dis.


edit'09: à mon grand regret, mon frère n'a jamais "ocremixé" les thèmes originaux de Twinbee, mais en revanche, il nous a mis en ligne les mods qu'il avait écrit pendant cette "passe twimbee-sur-PC", avec un peu plus de contexte "real-life".

Friday, March 20, 2009

ça descentote ...

Je me faisais un petit tour de jeux SNES rapidos pendant que ma fée écoute Cedra... En retombant sur Twinbee, je me rends compte d'un élément intéressant: le perso peut rester sur une pente même si un seul pixel s'y trouve.

Autre élément: dans ce jeu, une pente "repousse" automatiquement le joueur vers le bas. Si vous marchez le long de la pente, arrivé au bord formé par un mur celui-ci vous "éjecte" avec une vitesse presqu'exclusivement horizontale.

Un système de contrôle original, qu'il faudra que je compare avec le comportement de SuperMario et autres Rayman the Hedgehog Commander ...

As i was busy converging my data to a new USB backup drive, I gave another try to some of my favourite platformers. Twinbee (rainbow island adventures) caught my attention with its slope management. First, slopes always "push" the character downwards, so you cannot "stand still" on a slope. If you walk down a slope, you'll get "thrown" horizontally when you go past the edge. Interestingly, you can stay "on the edge" of a slope, as shown on the screenshot, hanging in the air (i haven't checked whether it also happens when walking down the slope or only when being "pushed backwards when you stop walking up the hill").

I'll investigate that deeper, comparing the physics of slope-walking in Twinbee, Fury of the Furries, Mario, Keen and Rayman, and possibly some Sonic game if i manage to locate some. My feeling is that gameplay of slopes should prevail on accuracy of physical behaviours to make the game fun. Slopes are not just a way to have your character elevating as he moves: in a platformer, they should be used to tune the difficulty of basic moves (jump or stun ennemies).

Konami's decision to have Twinbee "pushed backwards" when halting on a slope clearly makes anything above a slope harder to reach precisely, yet the fact that you're stopped at the edge of the cliff compensate by not throwing you into hazards. Of course in Twinbee, slopes also play an important deflecting role when you're flying with your boosters, but that's a different story.


New Super Mario Bros. : pratiquement aucune pente en bord de plate-forme dans ce jeu. Les seuls emplacements où j'ai pu le détecter, c'est soit dans le niveau des glaces ou pour des plates-formes spéciales (champignons mobiles, leviers ...), pour lesquels le bord est carrément arrondi et où Mario suit l'arrondi. La friction est parfaite : hormis sur les pentes enneigées, Mario tient en place sur les pentes.
No real slope-edge to report in that game, except for some special objects (moving mushrooms, levers, falling rocks ...).

Commander Keen : dès que le test-point central de commander Keen n'est plus sur le sol, Keen tombe et se fait "repousser" par le mur. A noter que, compte-tenu de la faible largeur de Keen, il y aura ajustement de deux pixels à peine. En saut, il y a moyen de voir Keen "atterir presque" sur le bord d'une pente et se faire soudain repousser. Dans le mouvement, l'ajustement en X donnera aussi l'impression que Keen "saute" vers l'avant en quittant la pente en marchant. Idem: friction parfaite.
As soon as the "hot spot" test-point of Commander Keen leaves the slope, keen falls and is "pushed" by the wall. Given the small width of Keen, this is merely a 2-pixels extra move that you'll barely detect unless you try to land "not quite" on the edge of the slope.

Rayman : les pentes sont toujours terminées par un bord horizontal. La seule exception que j'aie relevé à cette règle, c'est dans le pencil pentathlon où au bout d'une course effreinée, Rayman passe le long de 3 crayons inclinés. Ceci dit, les crayons en question sont terminés par des gommes-bumper, et donc on a pas vraiment la physique d'un "bord incliné" comme les plate-formes de Commander Keen. A noter que, du coups, Rayman sait s'accrocher à tous les bords, alors que les bords inclinés ne permettent pas à Keen de se suspendre dans Goodbye Galaxy. Ils ont bien tenté de lever cette interdiction dans "Alien Ate my Baby-Sitter", mais c'est la source de bugs innombrables dans ce jeu.
Virtually all slopes are terminated by a horizontal edge. The only exception i could spot is the Pencil Pentathlon, but there are bumpers at the edge of those pencils, so it's not exactly what you'd call an edge.

Mario World: 4 angles de pentes différents dans ce jeu. Pas de doute : on cherchait à démontrer la supériorité de la nouvelle SNES ... A noter qu'il y a deux types de "bord de pente" : celui qui donne sur un mur solide, et celui qui n'est qu'un bord de plate-forme. Dans le cas "bords de mur" (comme avec le beetlebug), je ne note que des pentes possédant un rebord horizontal.
Four different slopes! That's what i call "technically amazing" for introducing the new (back then) Super Famicom. Two kind of slopes here: those who are merely platforms (side picture), and those who are the edge of a solid area (bottom picture). In first case, mario will fall as soon as the test point is no longer on the slope (like Keen), and in the second, there is usually a horizontal edge after the slope (like Rayman).

Sur les pentes à moins de 45°, friction parfaite. Les pentes à 45° et plus repoussent Mario vers le bas. En clair, il sera impossible de s'y arrêter et difficile d'y contrôler sa vitesse. Une pente comme celle représentée sur l'image du haut correspond donc à une double difficulté : on tombe plus tôt (des que le test-point a quitté la surface) et on ne sait pas s'arrêter. En revanche, c'est bien un "test de boîte" qui a lieu pour les surface horizontales.
Also note that friction differs from the slope: over 45°, the slope is slippery and you cannot stop, while slope below 45° behaves like plain horizontal ground.

Kirby (squeak squads): c'est le jeu idéal pour ce genre d'observation car l'animation de Kirby est différente selon qu'il est à l'arrêt sur une pente ou sur une surface horizontale. De plus, comme dans Keen, la friction est parfaite quelle que soit la pente (un jeu pour gamins, quoi, mais j'adore). A noter qu'à l'inverse d'un personnage comme Keen, Kirby se prète plutôt mal à un mécanisme de "test-point" unique, puisque sa base au sol est particulièrement large.
Interesting game to study as there are two different idle frames depending on whether Kirby stands on a slope or on a horizontal area. Here we can observe an additional "horizontal" move after the hot spot has left the slope, but while kirby cannot "fall" yet due to the wall (box-cando test).

Phénomène intéressant, dans le cas d'un "bord pentu descendant" comme sur la photo ci-contre, on observe un comportement "horizontale - pente - horizontale - chute". Dès que le "test-point" qui sert à suivre une pente a quitté la pente, Kirby a donc le choix entre deux actions: continuer à avancer à l'horizontale ou tomber. Il ne tombera pas tant qu'une partie de sa base reposera sur le bord du mur (d'où la deuxième phase horizontale). Du point de vue du code, ça pourrait se traduire par:

  • test = cando(FALL, x+dx , y+1);
  • if (test&FALL) return switch_state(falling);
  • if ((test&SLOPE) && testpoint_on_slope(x+dx,y+1)) return align_slope(x+dx, y+1);
  • if (cando(WALK, x+dx, y)) return simply_move(x+dx,y);

Tuesday, June 23, 2015

Twinbee Rainbow Bell: la face cachée.

Vous vous souvenez de "Twinbee: Rainbow Adventures" sur SNES ? Moi oui. C'est toujours un de mes "platformers" préférés. Grâce à BananaMaster et à l'émission "SpeedGame" de Nesblog, je viens de découvrir une face de ce jeu que j'ignorais complètement: la version japonaise du jeu contenait une dimension d'exploration qui m'étais totalement inconnue.

I've been surprised to hear Banana Master presenting Twinbee: Rainbow Bell Adventure as an obscure, unknown platformer. After all, it's among my favourite titles on Super NES. I've been playing it, watching it, fan-covering it and playing it again ...But I was even more surprised to learn that the "European" version did not have the same overall game design as the Japanese version. Or maybe Pascal "Kameah"'s K7 featured an import of the Japanese version ?

Voyez plutôt: la map en version Européenne. Une sortie par niveau, une sorte de grosse spirale du début à la fin. A chaque niveau, il n'y aura qu'une seule sortie, bien sûr.

European game is linear. You find the exit of each level and you unlock the next one. The fact that you're moving on a map is purely cosmetic. The Japanese version, instead, has a kind of meta-game where you explore levels in a route you plan yourself. I'm not sure how the game decides that you may enter final levels, though. Personally, I prefer the original "Japanese" game design, which is closer to the kind of world map that my brother used to draw for our own "Bilou's adventure".

La version Japonaise, en revanche, aura une map avec plusieurs sorties dans un nombre important de niveaux, avec une dimension d'exploration "mais par où est-ce que je dois sortir d'ici pour continuer à progresser?" ...
Ce système n'est pas sans rappeler le design des niveaux de notre propre "Bilou's Adventure", même si mon frère avait plutôt en tête un système de "morceau de map" à récolter ici et là dans le niveau avant de se diriger vers une sortie unique plutôt que d'avoir plusieurs portes de sorties comme dans NSMB ou DK:Tropical Freeze.

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.

Friday, February 02, 2007

Un arbre cachant la forêt ...

Bion, allons-y pour un petit tour d'horizon des forêts dans les jeux vidéos ... Je laisse tomber exprès tout ce qui est pré-SNES, 3D ou qui n'a rien à voir avec un jeu de plate-forme. C'est peut-être une mauvaise idée, mais c'est comme ça ...
CJ thinks i should study trunks the same way i'm studying leaves for Bilou's woods. So let's see what we have in other video games. I'm not considering pre-SNES games, nor 3D games, nor games that aren't platformer at all.

Mickey ouvre la marche. Assez typique de toute une série de jeux (Astérix et autres). Les troncs ne sont forts raides, mais pas vilains. Principalement, c'est un dégradé centré avec un peu de "bruit" vertical qui ondule dedans. Des nervures plus présentes évitent de donner l'impression au joueur que c'est tout le temps la même chose. Les branches mortes ? bof. Les feuilles ? à mon avis un peu trop détaillées. On se retrouve avec trop de détail par rapport à ce que l'oeil aurait perçu d'un arbre à cette distance-là.

Let's start with Mickey, which looks is quite typical from a lot of comic/cartoon-inspired games. Basically, trunks are a raster with vertically-waving noise. They are very straights but not that bad. Some scarfs are wider, avoiding trunks that look the same all their height, but i don't like the dead branches too much. And the leaves ? too much detailed to my tastes.
Later in the game, we cross a haunted forest, where leaves suddenly disappear for a completely dark-green area. Rather poor. And the trunk's raster no longer do it at all. Too light near the center, and shading off too fast, it gives rather the feeling that we have diamond-shaped trunks. The background is very simple too, with just one flat plane of leaves shadows, giving the feeling that the next tree is quite far away. But iirc, the trunks in the background were waving with the chilling music.


Même jeu, mais la "forêt hantée". Les feuilles laissent curieusement place à quelque-chose d'uni à gauche. Pas top. Et le dégradé du tronc ne me convainc pas. Trop clair au centre (d'ailleurs, mauvaise idée d'avoir mis la "raie au milieu", et partant trop rapidement vers des couleurs plus sombres, il donne me l'impression d'un arbre "en losange".

Le décor de fond est classique: quelques silhouettes avec le feuillage qui masque tout à mi-hauteur. On a la sensation qu'on est près de la cime d'une forêt gigantesque avec plein de vide d'un arbre à l'autre...



Au tour de "prehistorik", sur PC. On sent les limitations techniques, mais je le garde à cause du côté "bien ligneux" des troncs. Il faudrait faire les derniers pixels à la droite des troncs un rien plus sombres pour avoir un rendu plus "rond", mais à mon avis, on est plus dans le bon que mickey.

Now to "Prehistorik" on PC, with stronger technical limits. However, i like how the trees have that "rough" texture. Imho, the last pixels on the right could have been darker to perfect the round shape, but i'd say that's definitely a better look than mickey's.


Kirby superstar. Le summum du minimalisme rasterien ultime. En partie dû au style graphique choisi, bien sûr, mais évitez autant que vous le pouvez ce genre d'arbre "parfaitement lisse": on veut un tronc, pas un rouleau d'essuie-tout, vu? Par contre, j'aime beaucoup mieux le placement de la lumière légèrement décalée vers la gauche du tronc.

Kirby Superstar. Minimalist Rasters to the Nth. Okay, that's mainly due to the graphical style chosen here, but still... avoid that kind of "perfectly smooth raster for the trunk" if you can. We want a tree, right ? not something made out of papier mâché. A think i like here, however, is how the light is slightly moved to the left of the trunk (and how the leaves drop a shadow on the trunk.)
Rayman, premier du nom. Pas véritablement d'arbre comme élément de l'avant-plan ici. En fait, le "level design" est principalement construit sur base des plate-formes de pierres (plus ou moins volantes) et on aura relativement peu d'obstacle ou de rebords qui correspondent à des objets du décor. Bref, à quelques exception près, tout ce foisonnement de décor est purement gratuit. Par contre, la toile de fond est un modèle du genre. Ici pas de doutes: on est bien au coeur de la forêt. Lianes et "touffes de feuilles" laissent entre-voir les différents plans de scrolling. Comme les arbres font juste partie d'une toile de fond, on peut aisément se permettre de leur donner un look beaucoup plus "naturel".

The first rayman ever started in woods. Still, trees are not really part of the main plane here. The whole level design is made of "floating" rock platforms, and very little of the cute pixels in the background actually blocks or helps you on your way. So yes, it's cute, gratuitously cute. The trees in the background, however, are awesome. That's a good thing having them as the backdrop: they can look much more natural than anything involved as walls/floor.

Petit tour du coté de l'univers Zelda. Avec les arbres de "link to the past" d'abord, qui avaient servi de modèle à la première version des arbres dans Bilou. Mais à y regarder de plus près, je ne les prendrais plus comme modèles.

Now let's check what we have in Zelda games. Despite they're not platformers, "a link to the past" was where i draw inspiration for trees you can find in the early version of Bilou. But with the dust of years, i don't think i'd take that as a model anymore.
Compared to them, trees in Minish Cap are simply superb, but they lack any kind of trunk, as i noticed to CJ in the comments of my last post.
A côté de ça, vous comprenez pourquoi je m'extasiais devant ceux de Minish Cap, ici dans leur version initiale. Mais aucun tronc, comme je le faisais remarquer à CJ dans les commentaires de mon dernier post.


Retour à un style plus classique avec Super Adventure Island 2 (Hudson, SNES). De nouveau, je n'aime pas du tout le feuillage ni les petites branches, mais par contre, les "trous" dans le tronc donnent bien. Et une zone claire plus large donne tout à fait bien sur des arbres relativement larges.

Back to a more classical style: on the left, "Super Adventure Island" has ugly leaves (imho) and pitiful small branches. But i quite like their trunks, especially the small holes they randomly put here and there. Note that a fairly large "flat" area in the middle of a large tree isn't a problem at all. I regret the use of a pure blue sky, however.

Bubsy (Accolade, SNES). Les arbres sont de toute beauté avec un tronc tordu (un peu comme celui de Dan sur la page d'indigo-art), mais par contre complètement inutilisable au niveau du level design (sauf bien sûr en tant que bumper géant comme c'est le cas dans ce jeu).

Trees in Bubsy were marvelous if you like the comic/cartoon style. A cute torsaded trunk (the same way Dan from Indigo Art draw them), but they're completely useless in level design (unless as a giant bumper), and completely out of scale with the main character.

Twinbee. Malgré tout ce qui me plaît dans ce jeu, je ne suis pas convaincu par son niveau "forêt". D'abord, les murs rosâtres passent difficilement pour des arbres hors de leur contexte. Les troncs en arrière plan sont vraiment très plats (presque des planches) et les différents plans de feuillage, même s'ils sont plutôt réussi, ont un look "plat" aussi. Seul élément à retenir: la plante grimpante.
Twinbee - one of my favorite games. Still, i'm not convinced at all by the "woods" level. First, those rose walls can be hardly recognized as trunks or branches if you keep them alone. Then the leaves look completely flat, aswell as the trunks in the background. They did a nice job on giving a "depth" feeling, though, and have a nice use of "climbing plants".


Mario (le nouveau) est le premier de la série a présenter une forêt un peu convenable. Retournez voir celle de SMW si vous ne me croyez pas: le level design avait beau être génial, les sprites étaient absolument affreux. Heureusement, il y avait Wiggly. Ici, comme dans rayman, il n'y a aucun arbre qui intervient dans la construction du décor proprement dit, mais une jolie toile de fond avec tout le temps le même tronc. Pas mal réussi, même si c'est surtout aux autres plantes et aux lianes entortillées que le joueur sera charmé. A retenir.

The new SMB is the first in the serie to have a decent "wood" level. Yeah, go back in SMW's forest if you don't believe me. It was great level design, but really poor considering graphics when you keep your eyes out of wiggly. Like in Rayman, though, the only real trees you see here are on the background. A single tree, actually, repeated over and over. So what actually saves the day is the plants, the flower and those spinning vines that fall from the branches.

Mr Nutz (Ocean, SNES). Même si le jeu était superbe, fluide, etc. Les feuillages sont l'archétype de ce que je n'aime pas : symétriques à pleurer, dès couleurs trop flashy à l'avant plan et trop de détails sur les feuilles. En gros, c'est ce que vous obtiendriez en dessinant une feuille puis en la collant partout avec de temps en temps une inversion sur 15 plans différents. A éviter. Les troncs, par contre, sont sympa, mais de nouveau, hors du level design.

Even if Mr Nutz was fluid and beautiful, the leaves of its trees are the exact style i dislike. Too much symmetric and flashy colours. Basically, if you draw a leaf as if it was made of green plastic and copy it all over the place randomly mirroring it, you will get a quadrant of Mr Nutz tree. mirror the quadrant again and you'll get a Mr Nutz tree. repeat with smaller and darker leaves a dozen of times and your done. My advice ? forget it. Rather give a look at their trunks. Like in NSMB, they use a pseudo-geometric lighter pattern on the tree, which gives it a rather interesting look. Adding "scarves" along the tree's height makes it look more like a tree than like a plastic tube. That's good.

Furry. Je ne vais pas dire "le meilleur pour la fin": avec ses 16 couleurs, il part handicapé. Très peu d'arbres, mais on retrouve quelques clins-d'oeil à l'arrière plan comme des cabanes d'ewook dans les arbres, des lianes, etc. Les lianes feuillues prennent souvent le pas sur les arbres proprement dit (ce qui donne du coup plus de souplesse) et même si ça ne se voit pas beaucoup ici, les arbres et lianes font vraiment partie du niveau. Et le moindre buisson à l'arrière plan est agité par le vent.
Furry comes last, and it's not the least, but not the best either. I've seen much nicer trees with 16 colors on indigo art website. But well ... here they're fully part of the gameplay: you run on branches, you chop trunks to go through, etc. The blueish background is a nice idea, but make sure you have a good raster before you opt for this technique: i've been trying it with a poor color set and it turned completely auwful. Note too that every little bush (be it in the foreground or the background) was fully animated.

Saturday, August 15, 2009

Tobe's Vertical Adventure

Tobe nous prépare un petit bijou depuis quelques mois: "Vertical Adventures". Je suis avec intérêt les progrès graphiques sur pixelation, et une petite vidéo vous permettra peut-être de vous en faire une meilleure idée. C'est le genre de projet qui me fait regretter d'avoir abandonner Windows (ou de ne pas avoir pris plus le temps de faire tourner Wine, c'est selon). Tout comme Spelunky (sorte de croisement entre Indiana Jones, BoulderDash et Cave STory), il représente le nouveau mouvement du "Indie Games", le développement de jeux indépendant, où faisant fi des demandes du marché, de petites équipes mettent tout leur talent pour réaliser un jeu qui leur fait plaisir, le plus souvent avec une composante "rétro" des plus délicieuses. Bref, je ne vais pas tenter de les couvrir tous: le Pixel Prospector s'en charge très bien. Je suis fan de l'idée de Tobe (et al.) depuis ses premiers croquis de personnages. J'ai même tenté de m'en inspirer pour faire un peu évoluer mes techniques de graphismes/animation. Et la vidéo de gameplay suggère des bonus intéressants (se freiner contre les murs, s'accrocher aux lianes, etc.) que je me réjouis de voir à l'oeuvre. I'm following the progress of Tobe, the graphist for Vertical Adventures, since his early sketch release. This project is a little jewel that shows great promise. Exactly the kind of little game that make me wish i still own Windows or an Xbox to play them (just like i wish i had a console years ago to play Twinbee or Flink ;-) I spotted bonus-in-TV-boxes in the last (and first) teaser video, that suggest me the ability of climbing vines etc. could be modulated by those bonuses. An interesting line of action.

Anyway, much like Spelunky and Arachne's little platformer project (a while ago), Vertical Adventure makes me wish i could get a hand on Tobe's spritesheet and tileset to build a little proof-of-concept demo with my DS game engine... since i wish i was allowed to play the game on my DS. Maybe it's a little too early for that. I'll focus on coding the Appleman's aggressive behaviour and paying my bills first ^^"

Friday, May 02, 2008

*bounce*

Un nouveau pas important pour la réalisation de Bilou a été franchi: j'ai mon évaluateur d'expressions, et son intégration au moteur de jeu est quasi-parfaite. En clair, cela signifie que je peu maintenant indiquer via mon scripteur de niveau que lorsque Bilou arrive sur le sol, il doit:

  • rebondir si sa vitesse est trop élevée
  • s'arrêter si la vitesse n'est pas trop grande.
Avant la DS, j'avais essentiellement testé deux mode de développement de jeux: le BASIC et le GameMaker de Recreational Software.

Côté BASIC, c'était la liberté totale pour les algorithmes et les comportements des monstres, mais les possibilités graphiques restaient restreintes -- même sur Pentium '90. Côté GM, c'était le constat inverse: scrolling dans des niveaux relativement grands, un nombre d'animation et de monstre présent à l'écran quasi illimité (au point que Pascal s'est même servi de monstres pour faire les bonus de notre remake de Pop'n'Twinbee). En revanche, le GameMaker était totalement incapable de gérer un saut un peu potable. Le simple fait d'avoir un sprite différent pour la montée et la descente du saut était impossible. Alors faire faire une cabriolle au perso quand il arrive au sommet de sa parabole (comme dans Bilou sur Basic), vous pensez bien ^_^.

About 10 years ago, i decided that neither QuickBasic nor recreational software's GameMaker could still fullfil my needs for creating games. I wanted parallax scrolling, compound sprites (think of rayman, but i already had it for Bilou in QB), and most importantly, more flexibility in creating monsters attack patterns.
I don't want to have to program them at the lowest level of machine code, i want their behaviour to be part of the game data, not part of the game engine.
When restarting game development on the DS, i decided to opt for something that would be state-machine inspired, but capable of reacting to the level map, the hero's position, etc. How to actually make it working came up later while reading the "making of Another World" .

Bref, à part des fioritures comme le parallaxe ou des sprites composés (à la Rayman), mon projet "Ultimate Game Maker" devait surtout permettre une plus grande souplesse de programmabilité : un scripting des actions : ne pas se limiter à des transitions "d'un état à l'autre" pour la gestion des monstres, etc. mais permettre plusieurs transitions depuis un état en fonction de l'état actuel du monstre, et une modification de certains de ses paramètres. Comme vous pouvez le voir sur l'image, je vous concocte déjà un petit 'appleman' bien particulier grâce à ce nouveau mécanisme.

C'est en lisant un making of du jeu Another World que l'idée est revenue au premier plan pour la DS. Dans Another World, Eric Chahi a choisi de disposer d'un environnement de développement pour son jeu qui ne nécessite pas de recompilation entre deux tests successifs, mais aussi la possibilité d'écrire toute la logique du jeu indépendamment de la machine considérée. Le jeu étant développé sur Amiga500 et constitué exclusivement de polygones rendus 'à plat' (à partir d'image filmées, il n'y a donc aucun calcul 3D), il n'est pas possible de s'en tenir à un "BASIC" traditionnel, trop gourmand en temps de calcul. Eric nous concocte alors son propre petit langage, mélange d'assembleur et de BASIC (oui, quand-même) dans lequel il va exprimer toutes les réactions du jeu (genre "quand le laser entre en contact avec la base du rocher, le rocher se décroche et s'incline en oblique").

Aucun élément compliqué n'intervient (pas de chaînes, pas de structures de données complexes): Eric utilise uniquement 256 variables entières pour représenter l'état du jeu, et le plus souvent, il ne les nomme même pas.

Même le maniement du joystick est géré de cette manière.

Another World was coded by Eric Chahi on an Amiga 500. He wanted cross-platform game logic for a game whose logic is *much* more complex than a shoot'm'up, and he also wanted to avoid recompilations between two tests. He thus naturally opted for some scripting language -- a mix between BASIC and assembly -- through which he controls animations and game variables (just integers).
Well, that's more or less what i'll do for my sidescroller game engine, except that you'll have per-object (monster, hero, switch...) variable in addition to the global (per-level) variables. In my case, i can even make the scripting simpler than Eric's "bassemblic" as it will essentially be used in predicates and actions of a state machine. So no control flow is needed at all.

Eh bien, je me suis dirrigé dans la même direction avec mon Game Engine, mais en donnant plutôt 16 variables par personnage (oh, il y aura aussi des variables globales comme dans Another World, rassurez-vous). Je me suis évidemment inspiré de mon interpréteur WASP qui m'a valu mon doctorat pour le bytecode, mais en simplifiant encore un coup: il me faut des expressions, pas des programmes ici. Donc exit toutes structure if-then-else ou les boucles, qui peuvent se coder par la structure de la machine d'état. Reste à inclure quelques instructions supplémentaires (p.ex. créer un nouveau monstre ou jouer un son), mais la base est là, même si mon 'langage' est encore plus moche que le bassemblic de Eric Chahi.

# gestion de la chute de Bilou.
state4 :anim0 {
   using gravity
   testpoint off (4,16)
   testpoint off (12,16)
}

state5 :anim0 {
   using stopper
   testpoint on (4,16)
   testpoint on (12,16)
}
# si la vitesse est trop élevée, on rebondit en la réduisant de moitié.
state4->state4 on fail [v1 $40 >=] (v1 2 / ~ :1)
state4->state5 on fail [t]


En avant. Essayons de voir si j'arrive à fixer la caméra sur Bilou pour le promener dans le niveau. Et en même temps, je vais tenter de faire un petit .nds de démo pour que vous puissiez tester ça sans devoir comprendre le fonctionnement de mon 'runme'.

2024 #choice reality check: those scripted state machines have their good side but also their downsides. Over 15 years later, I still don't have any DS editor for them because they rely more and more on CPP macros to make them "easier to write", although that's not perfect either. And they make bugs complicated to fix as soon as they mix scripted expressions and sophisticated C++ algorithm like with slopes.

Saturday, May 22, 2010

Apple Assault : 90% done ?

Okay, code is done and working on real hardware. You can stomp and bounce on applemen, you can "shoot something" when you've bounced enough. And applemen can be respawned, and their number can be dynamically defined. We're definitely getting closer to a "AppleAssault" release.

Oh yeah, I know. You've been hearing that since the start of the month. That's quite typical from a hobby project.

Why ain't I not releasing, then, might you think... Data, that is it. I need a few more things do be done:

Ca se rapproche, ça se rapproche. Ma petite démo ressemble de plus en plus au gameplay prévu pour Apple Assault. Au niveau du code du moteur de jeu, on y est, en fait. Reste une animation par-ci, par-là (coup de poing de Bilou, Appleman projeté ... Twinbee et Bonkers ont accepté de poser pour un résultat plus réaliste). Ensuite, il faudra que je m'attaque à quelques "arènes" pour ces moments épiques.

Note that the level editor is still in a "broken" state (that is, it won't be able to add monsters to a map in its current shape), so I hope this will not prevent me from doing arenas anyway.

Saturday, April 20, 2024

The first push

J'avais un joli projet pour le niveau 1 de la Green Zone: si le joueur est arrivé à la porte sans la clé, il pouvait libérer l'eau d'un réservoir et s'en servir pour remonter plus haut dans le niveau rechercher la clé manquante. Et pour décider si l'eau est là où pas, j'envisageais un mécanisme-à-la-fury où on pousse un bloc pour lui faire un passage.

Le hic, c'est qu'on est dans le niveau 1-1, là, et que ce sera aussi la première fois que le joueur devra pousser quelque-chose. Est-ce que je ne risque pas de reproduire le problème de la craie des 20 ans où une majorité de joueurs vont se retrouver bloqués après quelques écrans parce que tout un coup, il ne suffit plus de pousser sur A ou B mais qu'il faut interagir avec le décor en insistant un peu alors qu'on ne sait même pas si l'eau est dangereuse ou non.

How do you set up your level design so that players understand they should push a block to keep going? How will they understand that they're not in a dead end, but that there's just one more interaction to learn and use to progress further into the game ? I wonder because I thought about using "push-the-block" as a way to get my players out of what would otherwise be a dead-end.

Par curiosité, je suis passé voir des vidéos pour me remémorer comment d'autres jeux ont géré la chose. Dans Fury of the Furries, notamment, où on va pourtant pas mal se creuser les méninges par rapport à un Kirby, il faut quand-même aller jusqu'au niveau 9 du désert (premier monde, qui en comporte 10). Et là, le bloc à pousser n'est pas dans un coin ou masqué dans un mur ni rien de ce genre. Il est clairement positionné en "porte" entre le haut (vide, joli, mais inintéressant) de l'écran et le bas (clairement là où il faut aller, avec des panneaux, des objectifs, des dangers ...)

I had memories that almost every platformer character of the '90s would be able to push things, so it would be easy to see where they first do it and what the level looks like around them. But let's be honest: finding pushers among platformers isn't that easy and numerous characters don't do it. Cool spot, Aladdin, Zool, Mickey (in Magical Quest), Twinbee, Soccer Kid ... and that's only to name those which I truly expected to push things. I did not even thought you'd encounter that in Rayman, Donkey Kong or Titus games given their primary mechanics. 

But Fury of the Furries did ... you won't have to push anything before you reach level 9/10 of the first world! And there, the first block to push is clearly not part of a puzzle. It is merely a door between you (in a non-interactive rectangular space) and the level you're about to play. And even that wasn't obvious to everybody since I heard a twitcher noticing loud that "ah ? So we can push things, too" and checking the user manual live.  

Et même comme ça, on a des joueurs qui ont twitché "ah !? ils peuvent pousser des trucs, aussi" et de ressortir la page du manuel avec les mouvements possibles. Alors bon, moi avec mon bloc tout seul dans un recoin où le joueur peut légitimement se demander s'il ne va pas mourir noyé s'il pense que le bloc pourrait éventuellement être poussé, hein ...

Bon, évidemment, il y a des jeux où "pousser un truc" est au coeur du gameplay, comme une version plate-forme de waimanu Daring Slides. Et des jeux où "pousser" est une mécanique secrète pour dévoiler des salles cachées du même tonneau que le "reste abaissé 3 secondes devant le soupirail" de Titus the Fox. Je ne suis pas dans le premier cas avec Bilou (le coeur du gameplay, c'est sauter+attraper) et si ce serait sympa d'utiliser le poussage de blocs pour trouver des cachette secrètes, ce n'était pas l'idée ici.

Alors il y a l'approche moderne, évidemment: mettre le budget pour traduire une infobulle dans toutes les langues possible, et indiquer au contact du premier objet à pousser comment il faut faire pour le déplacer. Et pourtant, je sais que j'ai perdu un long moment dans une partie de Ori parce que je ne me rendais pas compte que je devais pousser quelque-chose plutôt que de trouver un double-jump.

But let's be honest: even if I did invest time into a printed manual, future players of Bilou: Dreamland are not going to read it. Players of School Rush barely checked the interactive book on the bottom screen unless they had a sibling actively watching them play! How is that handled nowadays ? Ori did push things in the Blind Forest... It requires you to hold a trigger while you move left or right. Pushable things are highlighted as you approach them and you've got a helper text when you first encounter one. That should be perfect, right ?

Well, unfortunately it isn't. I remember I got stuck at some point in some game of Ori by something I should simply have pushed but I couldn't remember how and I had forgotten what the highlighting meant. It was as simple as picking an old save months after finishing the game: the helping text will only show up once. Not 'only for the first block you have to push', mind. Really just once. How cool for kids that are not reading yet, or not that language, or are distracted by something (a monster and freaky spikes ?) while they should be reading ? 

C'est que ce message-tuto, il ne s'affiche pas systématiquement: uniquement au premier contact. Heureusement, sinon l'aspect "utilise tes méninges", ce serait un peu loupé... Avec un rocher qui se retrouve entouré d'un halo quand on arrive au contact, on a peu de chance de s'en servir pour des cachettes. En revanche, le fait de devoir maintenir un bouton pour pousser les choses, ce n'était pas naturel pour moi, et donc faute d'emploi régulier, une pause un peu longue dans le gameplay ou un retour en Nibel au milieu d'une partie sauvée, et je me suis retrouvé obligé de retourner voir un let's play T_T

Sonic utilise des blocs à pousser, et c'est probablement la manière la plus propre possible de l'introduire:

  • ils n'arrivent qu'en 2eme monde, quand le joueur est bien rôdé sur les mécaniques principales du jeu
  • il est d'abord utilisé en mode 'clé' : le joueur sera obligé de maîtriser ça avant de passer à la suite.
  • le bloc à pousser et l'endroit où le placer partagent une palette de couleur qui est absente du reste de l'écran
  • dans les écrans précédents, on a régulièrement été confronté à un obstacle qui nous oblige d'attendre et où le joueur verra Sonic tenter de pousser l'obstacle s'il maintient la manette dans la bonne direction
  • what could possibly go wrong ? (est-ce qu'on peut bloquer ce bloc contre le mur, au fait ?)

So where did I get that feeling that "every character will push", then ? Marble Zone, of course. It had a significant impact on my brother when he drew his first level maps. And I must say that the introduction of pushing blocks in Marble Zone is almost flawless. You've just been forced to stop and wait by crushers, maybe for the first time of the game, so you've see your hedgehog pushing the wall or the crusher while you had the DPAD pushed to the left while waiting. It is world 2, so you already have good knowledge and understanding of all other actions and you can use some concentration to notice that. Maybe you're in a dead end, but there's a unique color-coding for that unique-looking block and that switch that makes the gate open when you stand on it. And the block would fit that slot almost perfectly. The only thing that could go wrong would be that player could push it to the left until it is stuck against the wall. Nothing to prevent that. 

J'ai continué mon tour d'horizon, mais il faut bien le reconnaître, l'omniprésence de l'animation "pousser un bloc" dans les jeux de plate-forme 16-bit, c'était une hallucination de ma mémoire. C'est fréquent, mais c'est loin d'être omniprésent. Et même quand c'est utilisé, c'est loin d'être une action de base. On en trouvera 2 ou 3 apparitions, à des positions diverses dans le parcours d'un jeu à l'autre mais jamais autant que les blocs-à-pousser de Zelda. Et sans grande surprise, il faut le reconnaître: dans un jeu de plate-forme, il y a quand-même nettement moins de variantes possibles.

There are quite a number of other blocks to push in the Marble Zone. It is quite unusual even among the games that use push blocks. Fury won't reuse them until mid-world 2. The Lost Vikings have one at the end of world 2, one at the start of world 3 and then nothing until the end of world 3. Bubsy only in level 7, and never mandatory (although used to create a nice puzzle in the hideout to get a Continue). It would have been tricky to make it mandatory in a game where you're killed so easily and when there are so many alternate routes that they can hardly be called "routes". 

It should also be mentioned that the pushable block for Bubsy is a crate, and there had been many crates before. They're almost like Sonic's TV blocks. Crates with collectibles, crates with traps, crates with bananas or anvils. But these two in the desert have no label. They don't break when you jump on them like any other crate in the game would do. That's teasing enough to make the player want to find a way to open them, in my opinion.

Mention spéciale pour Bubsy, qui n'utilise que deux fois (dixit la soluce) la mécanique, et dans le 7eme niveau. En particulier dans un 'puzzle' où il faut pousser la caisse et faire un détour pour la pousser à nouveau, mais l'enjeu est de taille: un "continue", l'item le plus précieux dans ce jeu die-and-retry.

Est-ce que le joueur a eu l'occasion d'expérimenter avec les caisses avant ? Bin dans le jeu, on en a juste eu une plus tôt pour nous éviter de devoir faire demi-tour dans un wagon. Mais soyons sérieux un instant: si le joueur ne se rend pas compte qu'il peut pousser cette caisse et essaie de passer malgré tout, il se prendra les pics, mourra instantanément ... ce qui arrive en général toutes les 30 secondes dans ce jeu. Au prochain passage, il sera probablement trop rapide pour ne serait-ce qu'apercevoir la caisse, vu le nombre de trajets alternatifs que le jeu propose. Et puis un joueur qui arrive au 7eme niveau de Bubsy n'est certainement pas un débutant. Il a d'autres jeux derrière lui où il a pu apprendre à pousser des trucs ... et en particulier des caisses. Une caisse dans un jeu, c'est à peu près aussi "louche" qu'un bloc avec un point d'interrogation dessiné dessus.

Another first-push that is worth noting is in Mr. Nutz. You'll have to push a chair next to a table so you could progress in the Living Room level. Nice little puzzle in an action platformer, and quite unusual to have something that big that your character can push. But what makes it interesting is that the same wood texture is used on the table's legs and when you encounter the chair, you've just been walking past the table unstopped. I'm sure half of the kids have started pushing the chair without even thinking about it because they had not realised it was in their way. It was just like the table and like everything else since the start of that level: scenery.

Other good point on how Mr. Nutz introduces those pushable platforms: they cannot be pushed too far and couldn't be locked or fall out of the place where they are helpful. 

Le plus étonnant dans les setup, ça restera Mr. Nutz, où la chaise-à-pousser est une énigme pour le début du niveau du living qui est probablement devenue iconique du jeu, et révélateur d'une époque de conception. Mais le plus impressionnant, c'est que ça marche sans le moindre accroc. Au moment de rencontrer la chaise, on vient de passer 3 écrans à avancer tout droit devant un décor détaillé mais vide d'un point de vue level design: pas d'ennemi, pas de bonus, pas de power-up. Rien. Et au milieu de ce décor, la table, qui utilise les même recettes graphiques que la chaise. On est passé devant sans soucis, et donc alors qu'on aurait pu avoir le réflexe de sauter par-dessus un rocher ou de faire demi-tour devant un mur, ici on va spontanément se mettre à pousser la chaise (dans le mauvais sens) parce qu'on ne se rend pas compte qu'elle nous barre la route.

Autre jeu dans lequel on pousse sans s'en rendre compte: Mickey Mania. En tout cas, si vous tombez à l'intérieur de la cabine du bateau. On voit à peine son personnage, et il passe derrière le décor, donc pourquoi ne sortirait-il pas par derrière les caiss... ah ? il les pousse ? ... okay. ça me va aussi.

Notez qu'on ne peut pas pousser les caisses vers l'intérieur du bateau, par contre.

I'm more sceptical regarding how Mickey Mania deal with it: you've got an exemplary use of the pushed blocks with the crates next to the cabin of Steamboat Willie: you've fallen into the cabin and when you move left to go back, you see yourself through the window but you don't see whether there's a wall or not on the left. And as you keep moving left, you end up pushing crates, opening your way out of the cabin again. Here you didn't realised you were going to push something because you didn't know where you were. That's great.

Unfortunately, it isn't a mandatory step and the other things to push in the game will not have such clear level design. A giant chest or some plump pudding, where you can easily jump over them if you thought they are an obstacle. With a good amount of other things in the same room that might distract your attention so you could think "noo! why have I killed that monster ? now I can't use it to bounce my way over that wall and I have to reset and redo ..." . Well, you see what I mean.

Enfin, ce que je dis là vaut pour le premier niveau. On retrouve des objets à pousser plus loin dans le jeu (fiole, plum pudding, coffre ...), et là c'est "débrouille-toi, mon grand". L'objet est mis au milieu du reste dans des salles remplis de trucs. Si on compte sur le fait que la cabine du bateau était une salle bonus secrète, un joueur pourrait très bien débarquer là-dedans sans avoir eu droit au tuto "si, regarde, on sait pousser des trucs", et là, bon courage sans SOS vidéo games ...

En comparaison, Ardy Lightfoot prend littéralement le joueur par la main, avec une caisse-tutorielle dans le "prologue" du jeu (même si un speedrunner trouvera le moyen de passer sans pousser) avant de s'en servir au sein d'un puzzle dans la pyramide du niveau 8. Les développeurs iront même jusqu'à utiliser le niveau-prologue en mode "démo automatique", histoire que le joueur puisse voir que "ah, mais attend ça ce pousse, ça!".

Bref, je vais devoir en rester là. Si vous mettez une caisse-à-pousser dans votre niveau 1, l'approche de Ardy est probablement ce qu'il y a de mieux à faire pour éviter les frustrations, sauf si elle sert pour un passage secret.

Two last to check: Super Mario Wonder below, with clever use of a dedicated foe to show you some stuff may now be pushed -- but we're quite far from level 1 although we're still in world 1, and Ardy Lightfoot (above) that will introduce pushing crates mechanics in the 1st level, let you see that it can be used in the "prologue" demo that actually plays level 1 with credits, and then use them in puzzles in the pyramid level, somewhat near the half of the game.

edit: challenger de dernière minute ... Wonder serait-il le premier Super Mario où l'on peut pousser des trucs ? Avec carrément un Koopa dédié au fait de nous montrer que c'est possible sans devoir nous le dire. (ce qui n'est pas sans rappeler les WaddleWing de NSMBWiiu, soit dit en passant :)

Well, I guess that's all. Push mechanics is less frequent and less helpful in platformer where you can easily jump over things that could be pushed than in top-down games like Zelda. If you have to use some in your game, better introduce them at the start of the level where they are used, although it cannot hurt to have them shown up front in level 1 like in Ardy. But if you do have them in your level 1, it will be critical to setup the stage so that the pushable element stands out ... unless it is just a way to open a secret passage, of course.


Thursday, March 26, 2009

BBL to .png converter

J'avais pris l'habitude de faire un p'tit cadeau sur Internet pour mon anniversaire, et là, pour mes 30 ans, schnol. Avec les travaux dans la maison et le retour de Suisse, je n'avais rien à montrer. Quelle idée saugrenue m'a pris ce midi? Aucune idée. Mais je vous offre un petit script de conversion des fichiers graphiques du Recreational Game Maker (.BBL, .CBL et .MBL) vers des .png, plus pratiques à manipuler. download bbl2png.pl exemple d'utilisation :

perl ~/DS/SEDS/runme/bbl2png.pl /tmp/TOYZONE2.PAL /tmp/%.MBL m%.png --sprites

Here comes some pixels dump of sprites i've been working on in '97, at the peak of my RSD Game-Maker years. Each level had its very own tileset and spriteset (though there might be much shared things between two levels in the same "zone"). Behold Badman III, most likely the more complex (and unfinished) project with the RSD-GM ever. I finally managed to write a small ".BBL->.png" conversion script, meaning that i can retrieve *all* the graphics from all our previous games. 

Ca veut donc dire que je peux récupérer tous les graphismes de Badman et autres pour vous les montrer... Je doute qu'il y ait grand-chose à en tirer à part de la nostalgie ... j'ai tant appris en matière de pixel art, que même mes "plus jolis" boss sont tartes "by today's standards" :P En vrac, donc voici quelques sprites tels qu'ils sont présents dans la démo jouable Badman 3 (Badboyz are Back!). On y découvre "Ratman", d'après un T-shirt de T-Bob, qui ne sera finalement pas repris comme boss de la Cheese Zone. Juste après, Burner "relooké" qui laisse derrière lui une trainée de feu quand il court, avec un shading un peu douteux. Enfin, le gris aux oreilles rondes, c'est le "ratman" tel que vous pouvez l'affronter, avec son astro-flasheur "kirsch" et ces attaques de roues de gruyère.  

In "Badman III: Badboyz are Back", you can play either with Badman or Rubishbin (who you saved in "Badman II: Out of This World") in three insane environments: the Cheese zone, the Toy zone and the Ice zone. Each character had unique abilities giving them access to hidden areas. Rubishbinn, for instance, can do a spin-jump that destroy some blocks below him while Badman can dash under low roofs. I also reused the technique developed in Badman II for creating shooting bosses. The result was near to an unmanageable nightmare that turned short as I entered university: with only 5 playable levels, Badman III games already lists 44 'levels' in the game editor. 

Ce serait à refaire, je prendrais le "ratman" initial comme PNJ genre "Je suis le seul maître légitime de la Lune Fromagère, et je délivrerai mon monde de la tyrannie des BadBoyz ... Enfin, si tu veux m'acheter des grenades Petit-Suisses ou des Camemberts lacrymogène, ... " Et oui, le volet 3 de Badman était franchement inspiré de la mécanique de jeu de Megaman ... Suit l'Ice Zone, dont les monstres sont pas mal inspirés du niveau des glaces de Prehistorik II (auquel je rejouais cet été-là -- juillet '97 selon le .zip -- en version complète). 

On y retrouve donc un le fameux pingouin et un eskimo dont je n'étais pas peu fier à l'époque et un "lemmings xmas" qui était là juste pour le fun. Ce genre d'apparition était d'ailleurs assez habituel dans la série des Badman : le bonhomme-promo de Belgacom, Moktar sur son tapis volant, une bestiole rampante "façon Commander Keen", des p'tits robots tout ronds "façon twinbee land", une souris bleue mécanique "à la sauce Alfred Chicken", etc. Vous remarquerez aussi "Rex", le chat (private joke) utilisé dans des "cut-scenes" façon "Kirby's dreamland". Le mamhout vous paraît bizarre ? logique. 

Le game maker de Recreational Software ne supporte qu'une seule taille pour les monstres: 20x20. Un monstre plus gros est indestructible par nature et construit à l'aide de plusieurs monstres que vous tentez de déplacer de manière synchronisée ... ce qui se traduisait généralement par un désastre complet. Allez, je vous mets aussi Badman "himself" et son compagnon d'aventures "Rubish bin" ... On est plus très loin d'un extracteur de niveaux complets, avec les autres infos dont je dispose déjà 

PS : mon frère possède aussi une mine de petits "trivias" sur le développement des épisodes de Badman, qu'il reconstitue a partir des commentaires de ses .S3M ... Si vous êtes fan, bonne lecture.