Showing posts with label form fits function. Show all posts
Showing posts with label form fits function. Show all posts

Sunday, June 14, 2026

Funghi vs. Appleman

Funky Funghi, un des plus anciens personnages de la Green Zone sur DS, vient de se ramasser une pomme. Jusqu'il y a peu, la pomme serait juste passée à travers, mais alors que ce blog va sur ses 20 ans d'existence, j'ai rajouté les quelques lignes de code script qui manquaient pour que l'interaction proposée début 2022 devienne une réalité: on va pouvoir dégager les champignons du chemin à coup de jets de pommes.

Throwing apples around is a bit more fun since they've started rolling when hitting the ground, but one thing has felt odd so far: seeing the appleman crossing the path of a bouncing Funghi without triggering any effect. Since early 2022, I had the idea that we could have Bilou *bouncing* when hitting the hat of Funghi rather than being hurt, and that implied of course that a thrown apple should bounce as well. It was now time to implement that.

Post by @PypeBros@mastodon.social
View on Mastodon

Ah, and yeah, I've played a good deal of the original Rayman, including throwing fist at bouncy plums and yin-yan balls to make them reach the place I wanted them to be. With all this new bounciness, Funghi is no longer just a hazard and you might actually want him to be *somewhere* rather than just wanting him away. Some of the initial ideas -- such as having the hat deflecting apples and only the foot being the target to hit if you want him moving -- quickly proved unpractical, and uselessly tricky to do, especially for a World-1 interaction.  

Bon, j'avoue que comparé aux "prunes rebondissantes" de Rayman, on est sur quelque-chose de nettement plus détendu: Funghi ne risque pas d'aller rebondir contre un mur et de revenir vous écrabouiller. Il ne reçoit que la moitié de la vitesse de la pomme et ralentit de moitié à chaque rebond. Juste ce qu'il faut pour passer d'une souche à "entre les deux souches" en une pomme. Mais ça devrait être marrant quand-même vu qu'il y a moyen de ramasser à nouveau la pomme et de la lancer une fois de plus. D'autant plus que maintenant, il va aussi être possible de rebondir sur le chapeau de Funky Funghi! (c'est peut-être encore un peu fort, d'ailleurs).

Post by @PypeBros@mastodon.social
View on Mastodon

La solution à laquelle je suis arrivé à coup de débuggeur d'expression est un rien intimidante ... entre autres parce qu'elle dérive de la collision destinée à faire rebondir Bilou, et que pour Bilou, je voulais que l'angle change selon qu'on arrivait plutôt sur le bord ou sur le centre de Funghi, comme s'il était vraiment un bumper de flipper. Pour ça, on va préparer deux valeurs et les combiner avec | dans le byte haut et le byte bas d'un entier 16-bit avant d'écrire le tout dans la 10e variable de Funghi avec :a. C'était rigolo avec l'appleman, mais ça devenait compliqué d'y ajouter le transfer d'énergie ... donc au final, pour l'appleman, Funghi agira toujours comme un mur qui absorbe 50% de sa vitesse horizontale et n'a aucun n'effet à la verticale. Et sur l'énergie absorbée, la vitesse acquise par Funghi est moitié moins importante que celle qu'avait l'appleman ce qui nous permet de calculer qu'un Funghi pèse à peu près 2 Applemen ;P

state0->state0 on found$apple [C_THROW we 0 >= w0 0 < & &]
                  (w0 2/ ~ $ff00 & w1 256 / $ff & | :a w0 4/ v0 + :0)
state0->state0 on found$apple [C_THROW we 0 < w0 0 > & &] 
                  (w0 2/ ~ $ff00 & w1 256 / $ff & | :a w0 4/ v0 + :0)

I ended up with something simple for Funghi/Apple interaction: half of the speed of the appleman (w0) is transferred to Funghi, and the other half is bounced back. But since Funghi is bigger, the half it takes only result in 1/4th of the speed. Not pushing him very far, I'm afraid. And well, that's only the part w0 4 / v0 + :0. All the things that happen before are reusing the "protocol" defined for throwing things where the thrower decides of the direction of the thrown object I already used for dumblador. The X speed and the Y speed will be set in the 10th register of funghi with :a and later used by the appleman with

$RTHROWN->$LTHROWN on hit0 [C_THROW wa 0 < &] (wa $ff00 & :0 wa 256 * :1)

Mais dans le code de l'appleman, j'ai quand-même gardé un code générique qui se contente d'appliquer le vecteur-vitesse qu'il trouve dans la 10eme variable de ce qu'il a heurté. ça pourra me permettre par la suite de faire en sorte que les branches rebondissantes puissent elles aussi renvoyer les applemen ^_^. Petite subtilité: la transition hit de l'appleman est testée avant la transition found de Funghi mais c'est found qui fournit le vecteur vitesse que hit va utiliser. c'est pour ça qu'il y a un test qui s'assure que wa < 0, pour que lors de la première frame de collision, l'appleman conserve sa trajectoire pendant que Funghi calcule l'impact. A la 2eme frame, wa est défini et la trajectoire de l'appleman pourra changer.

Et pour la collision Bilou/Funghi, c'est la distance entre le centre des hitbox (we) qui va déterminer l'angle de l'impulsion que Funghi va nous imposer, entre (-3,0), (-2,-1), (-1, -2), (0, -3) 

The idea inintially was to use the same behaviour as the one I coded for Bilou, where the angle you're bounced depends on the position you hit Funghi on. That's decided in Funghi's script with

state0->state0 on found$bilou [C_THROW we 0 >= &] (we 4/ 256* we 4/ 3 - $ff & | :a)

where we is one of the collision-specific parameter (rather than an internal variable of the collided object) containing the center-to-center distance between Bilou and Funghi, ranging from -24 to +24. At the very edge of Funghi, you'll get bounce horizontally by (+-3, 0), and at the center of his hat, you'll be bounced by (0, -3). In between, you could get (+-2, -1) near the edge and (+-1, -2) near the hat. And yup, it's got the overall expr_1 256* expr_2 $ff & | shape again to put both together in a single variable.

I still had to do something for how static Funghi looks when hit by something. My first attempt failed because transanims with characters that are made of a single sprite, and so far, Funghi was still like that. But behold, Funky Funghi 2.0, remade in AnimEDS after I separated hats and feet, so that I can animate it more freely, at in-between frames of some sort, etc.

It doubles the amount of memory it takes, but I think it's worth it. 

Il me restait un truc à régler: Funghi donne l'impression d'être en béton et que rien ne peut lui arriver même quand on rebondit dessus ou qu'on lui lance une pomme. J'aurais bien essayé de réutiliser l'animation "rebondit au sol" dans un sens ou dans l'autre, mais Funghi est toujours un "SimpleGob" premère génération, et je ne leur ai manifestement jamais ajouté le support des transanims.

Je profite donc de la p'tite canicule du week-end pour redécouper un peu Funghi dans le Sprite Editor, refaire ses animations dans AnimEDS et rajouter un "fait rebondir un truc qui arrive du haut" ainsi qu'un "fait rebondir un truc qui arrive sur le côté". Ce n'est pas spectaculaire, mais ça donne plutôt bien quand-même.

Thursday, August 11, 2022

Funghi v2.0

 Bon, il est temps que je blogge les cogitations de nouvelle année, vous ne croyez pas ? Je m'étais installé pépère dans le canapé pour récupérer un peu, agenda-cahier sur les genoux histoire de faire un peu le tri de ce qui doit encore être dit et ce qui doit être transférer dans la nouvelle année, mais c'était compté sans J.L.N.

Le p'tit bonhomme venait de se rendre compte qu'une SpongeBop, si on la repeind en vert, ça fait comme une branche d'arbre et que donc on pourrait en mettre dans la forêt! Il n'a pas tort, mais j'ai voulu vérifier ce qu'il connaissait déjà des autres habitants de la forêt de Bilou. Après tout, à part quelques parties de Apple Assault, il n'a pas encore eu beaucoup de contact avec la green zone.

Il y a Funky Funghi, notamment. Le champignon sauteur. Si je permets de ramasser les applemen à la manière des dumblador dans School Rush, que se passe-t-il quand on lance une pomme sur un Funghi ?

Sketches in this post were actually drawn on January 1st, while I was brainstorming Green Zone with my nearly-9-y.o. son. He's been mostly playing the School Zone so far, and only bits of Apple Assault. So little that he suggested I put a green spongebop as a spidey-branch platform of some sort.

At my first drawing of Funky Funghi, he'd almost immediately suggest that we can jump on his hat and use it as a platform to climb higher. Not a bad idea, but completely incompatible with the Commander Keen-inspired, decades-old setting where the whole funghi is highly toxic and that any contact should be avoided. But that was at a time where a Manic-Miner clone was considered.

L'idée de base, celle de la version BASIC, c'était que le champignon était ultra-toxique. Tiré assez directement de Commander Keen, je dois bien dire. Le moindre contact est dangereux pour Bilou. On ne peut même pas lui sauter dessus.

Mais bon, avec le recul, pour un premier niveau, c'est peut-être un peu exagéré. Je n'irais pas pour autant jusqu'à proposer que l'on puisse monter sur la tête de Funky Funghi et s'en servir comme plate-forme. Ce n'est pas franchement dans le caractère du personnage d'accepter ça.

Pas question non plus de permettre à Bilou de simplement 'pousser' Funky Funghi comme il le ferait avec un encrier (même si je n'ai toujours rien implémenté de la sorte ^^")

Faire se déplacer un ennemi sauteur invulnérable en visant correctement, voilà qui promet d'être fun. En tout cas, c'était fun dans Rayman.

I still would like to avoid a platform-like behaviour -- I even already have another mushroom design for that. And I now have throwable monsters in the rest of the game, meaning it would be good that we could pick up and throw applemen in Green Zone (that was the plan from long ago, before I came up with Apple Assault mechanics). That means something fun is bound to happen if you throw an apple at a funghi. Right ?

I bet being able to knock the otherwise-camping mushroom to an alternate location should be both fun and interesting (I take it from Rayman). But beware, said my bro: we don't want to end up locking the progression by poorly "chosing" where we put the funghi. And with an all-toxic one, chances that we lock ourselves are much higher. Especially with limited supplies of applemen in the level.

Mais contrairement à Rayman, on joue ici avec des "munitions" limitées. Il ne faudrait donc pas que l'on bloque un Funghi dans un coin du niveau où il peut nous empêcher définitivement d'avancer! Une solution pratique contre ça, évidemment, c'est de placer un 'trou à champignon' au bout de la zone-bac-à-sable dans laquelle il est prévu de le déplacer. Quoi qu'on fasse, il ne peut aller plus loin et on a remplacé "passer par-dessous l'obstacle" par "passer par-dessus l'obstacle", qui est en théorie plus accessible.

Final thought: if Edward is true claiming that goomba were picked mushroom-bumper-shaped because that should suggest the players they'll be safe jumping on them, making my bouncy-funghi hurt you when you stomp him won't be a neat way to teach the players they're in a traditional platformer when they're playing level 1 of Bilou's Dreamland. (not to mention that mushroom=bumper has been over-used in all platformers after that, to the point that it's almost more natural to try using them that way than trying to eat them and expect to grow or shrink, nowadays).

So let it be bouncy. But only his hat (foot is still toxic and you shouldn't try to push Funghi like you'd do with inkjet). And bumping you to the side as well. If you want to have a Funghi ride, you'll have to master it first. Else all you'll get will be a funghi-rodeo. 

Mais tout ça devient secondaire si - une fois déplacé - Funky Funghi devient utile. Bon, comprenons-nous: ça reste un PNJ peu fiable et dangereux sous les bords. Disons par exemple que son pied reste toxique (on ne le pousse pas à la main) et redoutable (on ne reste pas trainer en-dessous). Mais son chapeau, lui, avec sa jolie tête de bumper pourrait ne réserver aucune vacherie et agir effectivement comme un bumper. Mais un qui soit susceptible de nous propulser vers l'arrière ou vers l'avant si on ne le prend pas bien comme il faut. Bref, un bumper qui amène une touche d'imprévu pour le joueur inexpérimenté, une touche de challenge pour le paddawan, et une variable supplémentaire à intégrer pour le Maître.

A méditer.

A implémenter ;)

Saturday, February 19, 2022

Big Caterpillar

There has to be boss fights in Bilou Dreamland. I cannot work around that: my son won't let me do with a puzzle part where you're trying to avoid sting-like and claw-like hazard and pretend that 'yeah, the boss was behind the wall. You made it!".

The first encounter in-game will have to be against Big Caterpillar, holder of the Growth Stone, one of the eldest design for the game. Its design hasn't evolved that much over the years: it still should have some reds and greens. It still should look angry and crawl towards Bilou to squash him. But I'm wondering how it should best attack and what should be its weakest points. I might want to make its overall shape look more like the "chenillard" monster that my brother used here and there in his original levels.

Bon, pour ce prochain jeu, pas d'échappatoire: il faudra des Boss. Pour le premier qu'on rencontrera, au moins, j'ai de la matière. Depuis le tout début du personnage, il y a des croquis de chenilles géantes. Il a même eu droit à sa bande son! C'est dire ! ... Et il faudra qu'on les combatte. Je ne m'en sortirai pas avec une course-poursuite ou une salle-super-puzzle pleine de pinces qui sortent des murs. J.L.N voudra un affrontement en bonne et dûe forme! Alors autant ne pas attendre la dernière minute pour s'y mettre.

In the comic much like in the BASIC game, you knock the boss down by stomping its head. Various attacks would protect the head with the rest of the body, forcing you to wait for an opening, and when you eventually land your stomp, the boss turns red for some time and can't be attacked again before it cools down.

But as you noted, Big Caterpillar has sorts of bull horns. If form fits function, that means you should rather try to avoid jumping on its head. I need to find something else. Hours spent fighting against Moldorm in '90s Legend of Zelda titles immediately suggest aiming for the tail, which would be fine if the only way you have to attack is jumping. But Bilou can also throw things, and aiming for a grounded target will likely not be a very interesting task. I'd like to have something more subtle.

Par contre, ça ne donne pas forcément une réponse aux deux questions critiques: comment attaque-t-il et comment fait-on baisser sa barre de vie ? Dans la BD (ou le combat dure royalement deux pages) et dans le jeu BASIC, le point-faible de Big Caterpillar, c'est sa tête. Sauf que depuis la BD, il a chopé des espèce de cornes de taureau, et donc c'est le signe pour les joueurs de ne pas se risquer à lui tomber dessus.

Quand j'ai voulu proposer un nouveau design pour le "chenillard" (une monstre figurant dans les premiers niveaux dessinés par mon frère, sans nul doute inspiré du monstre-chenille de la Marble Zone), j'ai suivi mon instinct de chevalier d'Hyrule et j'ai mis son point faible sur la queue: taper sur sa tête ne sert à rien d'autre qu'à l'énerver. Ça ne marchait pas trop mal tant qu'on limite les attaques au saut, mais après School Rush, Bilou a acquis assez définitivement la possibilité de lancer des ennemis à la figure d'autres ennemis. On ne va pas revenir là-dessus. Comme je prévois de permettre à Big Caterpillar de se dresser façon Pokey avant d'attaquer, ça rend son point faible très vulnérable à un lancer de pomme pépère depuis le sol. Je dois cogiter un peu tout ça, donc.

When it comes to the 'look', Big Caterpillar depicted in the comic isn't very refined. Rough clay balls of alternate shade and only then a horned head. But that was years before 'bubble bats' turned into 'berry bats' ... And a stunning piece of art by Franek last year made me realize that my boss could look gorgeous if I tried to make it made of berries too.

I'll have to try tonight and see whether I can come with something along these lines...

Reste le look. Celui de la BD était très générique. Celui du jeu BASIC tout autant. On aurait pu affronter une chenille faite de boules de plasticine verte que ça n'aurait pas fait une grosse différence. Mais ça, c'était avant l'introduction des berrybats (ou, comme J.L.N aime à les appeler, les chauves-souris-baies :D). Pourquoi du coup ne pas essaier de faire comme si notre boss-chenille était lui aussi fait de fruits vivants ?

Tuesday, October 28, 2014

Couper les cheveux en quatre ?

J'hésitais à introduire le contrôle des boîtes de collisions dans mon éditeur d'animations. J'hésitais encore plus à ce qu'on puisse activer ou désactiver certaines de ces boîtes au fil de l'animation. Tout ça me semblait plutôt relever de la machine d'états et des gardiens de transitions. Et puis Shantae m'a fait changer d'avis.

So far, I have been able to keep hitboxes on a per-state basis. Anything more subtle was resolved either by spawning new GOBs (like the punch attack in Apple Assault) or splitting the animation (inkjet). I was growing the conviction that it wouldn't be enough for new grab-in-the-air mechanic, Shantae's move pushed the definitive argument: *any* punch or kick-like move has build-up and recover phases, and the hitbox shouldn't be active by then. Splitting the animation in such cases ? That would quickly turn into a nightmare!

At this point, not adding edition of hit boxes in the animation editor would strongly reduce my chance to have form-fit-function ...


Lors de l'animation d'un coup, on peut distinguer trois phase: la préparation, l'action et le retour. Idéalement, seule l'action correspond à une hitbox offensive. Selon la longueur de la préparation et du retour, enfreindre cette règle (qui dérive du "form fits function"), c'est produire des effets incohérents et du coup rendre beaucoup plus complexe l'apprentissage du système par le joueur. Je n'ai pas eu le problème dans Apple Assault parce que les coups de poing étaient en réalité des sprites indépendants. J'ai contourné le problème avec inkjet en tronçonnant l'animation en deux parties et en faisant en sorte que Bilou ne puisse réagir qu'au moment précis de la transition entre les deux tronçons. Mais soyons clairs: faire la même chose avec tous les mouvements "power-up" prévus serait un véritable cauchemar.

Thursday, December 12, 2013

Hands'up !

Once we know blador would stick to a wall while Bilou can slightly move below it, our options to show Bilou's hands while carrying something narrow down to only one option: hands are actually part of the "blador" sprite while Bilou's real hands will remain hidden. That perfectly fits the fact that Blador lost its feet, by the way.
Hiding Bilou's hand is somewhat similar to the flickering mechanism introduced for inkjets, in the sense that there's a set of limbs which we'd like to selectively hide while the rest of the character remains displayed.


Je m'attaque enfin à la position des mains, ce qui fera plaisir à Pierrick. Finalement, pour être cohérent avec la façon dont dumblador est transporté, le truc consistera à faire en sorte que les mains de Bilou soient directement visibles sur le sprite de Dumblador. Je reporte à plus tard des mécanismes de "costumes" qui remplaceraient les images en VRAM pour que Bilou porte des lunettes de soleil, par exemple: ça ne m'aiderait pas pour ce problème-ci. Il me reste du coup à cacher les "vraies mains" de Bilou, ce qui ressemble fortement au problème de transparence partielle qu'Inkjet avait introduit, sauf qu'ici les sprites désignés comme transparents doivent en réalité être invisibles.

wrong ...
The first difference with inkjets is that here, hands are *permanently* hidden, bypassing the "counter" used for flickering. The other difference is that many states are involved (actually, most of Bilou's state machine) and that the set of limbs may be different depending on the animation (hands aren't always on the same "layer"), which stems for a more automatic approach (inkjet had sets defined directly within GobExpressions).

Ideally, those "sets" would be defined graphically in AnimEDS. The second best thing I can do is to define them only once, when the animation is imported in the GobScript. That's manageable for a prototype. As a last refinement, I had to alter CopyCoords controller so that it produces an event whenever horizontal direction changes, so that the animation can be changed to avoid odd displays where Bilou seems to have "crossed his arms" while turning back (see the 'wrong' picture).

Je conserve donc le concept de sélection de sprites attachés à un personnage (flickermask), des animations elles-même de sorte que si je réutilise la même animation dans plusieurs états, elle définit en même temps le masque à utiliser. Ce serait encore mieux si je pouvais définir cette sélection directement dans AnimEDS, mais je n'y suis pas encore. D'ailleurs, c'est la raison d'être principale du "GobScript": pouvoir expérimenter les techniques du game engine avant d'en automatiser la gestion par les éditeurs graphiques.
mais les expressions de la machine d'état ne seront plus le seul moyen d'y accéder. Je le complète avec une annotation au niveau de l'animation elle-même.

right!
Je suis obligé, par contre, de passer à 2 états distincts pour le transport de dumblador (un vers la gauche, l'autre vers la droite) de façon à utiliser la bonne animation au bon moment. Il faut du coup que j'ajoute au contrôleur copycoords la possibilité de provoquer un changement d'état quand le personnage transporté subit un changement de direction (ça sera intéressant aussi pour Bilou-sur-l'éponge, tiens).

One drawback with this approach, though: Blador follows the move, but he stays at constant height while Bilou walks/run despite the fact that Bilou's body moves up and down.

Wednesday, November 20, 2013

WYSIWYG level

I had a bullet point in my "todo-before-release" list saying that the level shall be WYSIWYG -- the accronym for "What You See Is What You Get", which is just a coder jargon for form-fits-function. You see a solid structure, there is a solid structure. You don't see any, that's because there isn't any. No invisible wall, no subtle tunnels.

Unfortunately, I did have such a tunnel in my map. Tracking them right now means I have to scan the whole level in "meta-tile" mode. That's not quite comfortable and it proved unsufficient as I regularly break further the map when trying e.g. to adjust colors or fix some buggy pixels. Look at what I found yesterday on my on-going map: a hole dug into a wooden block that would make you walk into the should-be-solid area! How could that happen ? Simply because I tried to fix some un-esthetical combination of tiles.


Veiller à ce que le niveau ait effectivement des murs partout où des murs sont dessinés n'aura pas été une mince affaire pour ce niveau-anniversaire. En fait, je manque cruellement d'un outil capable de m'assister dans ce genre de tâche et il faut passer en revue le niveau en mode "propriétés" après chaque modification. Même un correctif purement cosmétique peut affecter la structure du niveau parce qu'un nouveau graphisme sur l'avant-plan va détruire les propriétés construites précédemment.

Il y a donc une sorte de "méga-raccourci" dans la version g88 qui fait très étrange (on se promène à moitié noyé dans le bois :P) et en voulant corriger une incohérence graphique (image ci-dessous), je me suis retrouver à introduire un nouveau "bug dans la matrice" (image ci-dessus). Bref, il est temps que j'équipe LEDS d'une sorte de radar permanent qui me permettrait d'avoir une vue un peu plus large des propriétés du niveau en cours d'édition qui se combinerait avec une map plus complète sur l'écran d'accueil, de sorte qu'il soit possible de positionner la fenêtre d'édition au stylet, visualiser l'emplacement des différents monstres, etc.

What's especially tricky with this map-bug is that it won't reveal easily when play-testing: Bilou slightly leaps when leaving the edge of a structure, and although it's technically small, that leap is large enough to clear one block. So you won't fall in a 16-pixels hole unles you hardly try and jump to align Bilou on the hole.

So it's now time I implement the "mini-radar" feature, at least able to show 64x64 tiles centered on the current editing screen, with 1 pixels for 1 tile.

  • WelcomeWindow : down screen, prompt file names, etc.
  • TileWindow : down screen (swapped up during edition), with TileTables for showing tileset content. [done] here be a mini-map of what we're editing.
  • [todo] cleaner integration, widget laying on TileWindow although fed from MapWindow
  • MonsterWindow, MapeditWindow both on the "up screen", with sprite memory already heavily loaded and the whole tileset present to show the content.

A new RadarWindow appearing together with WelcomeWindow (and thus on the 'up screen' when it's truly up) would be welcome to check whether we don't have broken structures just before we save/play the level, with a full level.


Wednesday, October 02, 2013

2 days late

Making sure Blador can be used as a weapon, cleaning level ... that shall be done. Quite amusingly, the fact that a testpoint is still needed for monsters because they will FAIL to walk on ground only when they've advanced *past* the last pixel of the structure they're walking on also means that I can set a second test point *deeper* in the ground and force the monster to turn back before encountering "fragile" ground that is only 1 solid-tile-high ... or as in the case of the introductory pendat, artificially introduce "fragile ground" here and there to confine him.

I located and fixed the root cause of "disappearing monsters due to excessive load on the GPU", which was actually only present in runME, and not in the game engine or the game data ^^".

J+2. On peut utiliser les tailles comme arme, et le niveau a été "nettoyé". Ce qu'il y a d'intéressant avec le système des "test points pour les monstres", c'est que si je met un 2eme point-test plus "profondément" dans le sol (disons dans le 2eme tile du sol), je peux alors créer des zones-tampon à l'aide d'un 'creux' sous la première ligne de tiles solides.

J'ai réglé le problème des sprites hardware insuffisants (mais comme vous lisez la version française, vous le savez déjà ;). Si j'ai l'occasion j'ajouterai ce soir les collisions pendat/taille lancé et gomme/taille. Petit sondage: est-ce que les éponges devraient blesser Bilou ou juste le repousser ? (résultat: juste repousser. 100%)

If I manage to find some time tonight, I shall code the reaction of pendats and rectoverso to thrown bladors. Is Cyril right thinking that a Spongebop shouldn't hurt Bilou ? Give me your feeling on the poll before the demo is out!

Poll Outcome: 100% (4 person) voted for SpongeBop that doesn't hurt, but merely bops you away.

Sunday, April 21, 2013

translucent ?

I managed to have some translucent effect through fast (60Hz) sprite flickering. That's mandatory if I want sprite-versus-sprite transparency. So if I want Bilou to look "inside" the inkjet, I need an extra patch of glass that will flicker over Bilou to partially obscure him.

J'étais tombé par hasard sur l'épisode "Spécial Disney" du joueur du grenier, dernièrement.  Après une bonne tranche de rire avec ma fée sur la partie "La Belle et La Bête", l'analyse (nettement plus grossière) de Fantasia par Infogrames me rappelle à quel point il est important de soigner la communication des règles du gameplay à travers l'aspect visuel. Le livre géant et menaçant qui est en réalité un bonus (et non un ennemi comme son aspect le suggère) et l'espèce de rond dans l'eau qui est en réalité une plate-forme.

Mais maintenant que j'ai le moyen technique de rendre les sprites transparents les uns par rapport aux autres, est-il intéressant de rendre l'encrier transparent ? C'est plus réaliste, sans aucun doute mais ça n'est pas forcément mieux pour autant. L'aspect d'Inkjet doit transmettre au joueur "solide, dangereux, mais pas blessant", et pas "fantôme immatériel mélangé à l'arrière plan". J'ai donc fort probablement commencé l'ajout des sprites rectangulaires (pourtant attendu depuis longtemps) sans que ça n'ait aucune utilité immédiate.

That being done, shouldn't the inkjet itself be translucent (against the background), and if so, how do I achieve that, given that the ink itself must remain opaque ? Basically, the only way is to separate the "glass" of the inkjet and the ink itself. That puts enormous stress on the vram as inkjet animation takes almost 1/4th of the spriteset so far. doubling it ? aouch. Hopefully, the ink only takes 16 pixels high, so that would be worth an update of SEDS to support wide (and tall?) in addition to square sprites.

Although its in progress, is it really wise to go that way ? Does the translucent inkjet on the right look better than the non-translucent (except for the patch) on the left ? Or does it rather look ghost-like rear object which you wouldn't expect to be solid and ride-able ? After all, form-fits-function is crucial in video games, and the only way to allow the player to have "eureka" feeling rather than progressing through frustrating trial-and-error.


Bref, c'est l'occasion de rajouter le terme "Form Fits Function" au tagtionaire... ce lien entre l'aspect et l'effet si cher à Miyamoto et qu'Infogrames a systématiquement ignoré.

PS: the DS also has 16-color sprites, and obviously, the inkjet shouldn't need more. Converting the whole sprite page into 16 colors could do the trick ... but that's not supported neither by the Game Engine nor by the Sprite Editor at the time of writing. At best, it's a wish.

PPS: pour ceux qui voudraient essayer le jeu, c'est par ici.

Friday, March 29, 2013

Floating or non-floating ?

J'étais donc arrivé à vaincre les premiers défis techniques liés aux encriers et j'avais une animation assez convaincante. Suite à une demande de Lazycow, j'y ajoute une capture vidéo montrant les 2 "inkjets" qui bombardent Bilou à l'écran...

S'en est suivi une discussion assez animée sur pixelation qui est partie beaucoup plus vers les choix de gameplay que vers le côté "artistique" pur et dur, ce qui n'était pas forcément pour me déplaire.
Mais on touche à un élément "sensible": les encriers peuvent-ils ou non flotter dans les airs sans support apparent. Ce ne seraient pas les plate-formes mobiles les plus incongrues qu'on ait vu, mais ça représente un "décalage" par rapport à tout ce qu'un encrier est supposé pouvoir faire. Or, ça fait un moment que je me suis convaincu qu'il est primordial de faire en sorte que le monde virtuel dans lequel le jeu se déroule soit cohérent de façon à ce que le joueur y reste impliqué et qu'il continue à s'identifier au héros (fût-il une balle bleue :)

It's a fairly long story that all started on "way of the pixel" as Lazycow asked for the droplets to complete the inkjet animation. So I showed up a byzanz record of my on-going level and everyone stared at those floating inkers, suggesting that they rather feel ground-borne. But floating inkjets is a pretty well established design decision that has already been used in several maps. Still, I don't want the fiction to fall apart just because of some detail that looks too-odd-to-fit-the virtual world.

Quand Helm dit
I would never think to use them as platforms and even when I would figure it out I would say 'well... this is weird' and it would take me out of the game.
"Il ne me serait jamais venu à l'esprit de m'en servir comme plate-forme. Et si même j'avais fini par trouver, je me serais dit "c'est ... bizarre" et ça m'aurait ~sorti du jeu lui-même~".
La fin (entre ~) n'est qu'une traduction approximative, mais j'y lis une rupture du vortex reliant l'esprit du joueur à l'univers du jeu. Le genre de "glitch dans la matrice" qui fait que l'esprit se persuade qu'il est impossible qu'il soit dans la réalité. La frontière entre une bonne fiction et un délire où le lecteur ne parvient pas à rejoindre l'auteur et le regarde se bidonner tout seul.

Clairement, ça clashe. J'ai mis le temps pour re-penser à tout ça: les encriers-volants étaient un des premiers élément de gameplay que j'ai introduit moi-même quand j'ai commencé à faire du "level design" pour Bilou en 2007. Ils figurent sur la bannière de ce blog. Ce n'est pas rien. Mais oui, je suis le Grand Conteur de l'aventure (pardon pour les majuscules) et je peux trouver mieux que cette solution "peu chère" même si j'y suis émotionnellement attaché.

Quite some time ago, I planned and kept secret the addition of a "cork lid" being a sort of organic key that Bilou carries along to change the behaviour of inkjets. The idea is that the height Bilou could reach would be higher when he's using the lid. The ground-based and the airborne inkjet thus co-existed in level designs, with little attempted to harmonise that. Of course, it would still be possible to ride an inkjet with no lid, but that wouldn't throw you as high.

Parmi les solutions envisagées, il y avait la possibilité de faire en sorte que Bilou soit "propulsé" vers le haut en lieu et place de gouttes d'encre, s'il saute dans un des encriers. C'est une autre façon d'atteindre les hauteurs, et je pourrai donc l'exploiter à certains endroits où je retire un encrier-flottant-verticalement.

J'avais aussi prévu depuis un moment qu'on puisse rajouter un bouchon par-dessus un encrier, pour l'empècher de bombarder d'encre, mais aussi pour pouvoir être propulsé encore plus haut ...

Dans l'exemple "lancer le taille-crayon", je jouais sur le fait que Bilou arrivait dans un encrier pour motiver le fait qu'il lui était impossible d'emmener un taille-crayon. Celui-ci est facile à adapter: il me suffit de descendre un brin l'encrier (vide) de façon à ce qu'il flotte dans l'encre. Rien d'anormal ici.

A first use case featuring the inkjet was the "bridge" that brings Bilou to the blador-and-pencil area. Here, Inkjet is different from any platform by the fact that Bilou need his hands to grab the inkjet and avoid falling. Therefore, he cannot bring a dumblador along. It's fairly easy to adjust, though: an empty inkjet could easily float in the ink, so I just need to raise the level of the ink swamp by one tile and I'm done.

Le "niveau de rémi" me bloque beaucoup plus. Je voulais combiner les 2 propriétés du taille-crayon (solide et transporteur) pour lui faire bloquer l'entrée d'un passage vers la gauche. Cette entrée n'aurait été débloquée qu'une fois l'encrier en route vers le haut (avec Bilou à son bord). Seulement voilà: une fois engagé dans le conduit, pas moyen de sortir de l'encrier. On devra pour ce faire attendre d'être arrivé à l'étage au-dessus, et on aura donc à combiner un bon timing tout en évitant Bangbash et la rangée de crayons pour entrer  dans le passage sans pour autant se faire écrabouiller par l'encrier qui redescend.

My nephew-drawn level brings a tougher challenge. The inkjet here is moving vertically, only when triggered by Bilou's landing. When idle, it blocks the way to a secret room. Without that room, Plummet -- the scribble feather -- could have been used, but I specially designed around the presence of a moving block that push the player into a narrow vertical pipe. You can't escape that pipe until the inkjet has reached the ground level, with a Bangbash to take care of.

S'il n'y avait pas eu ce passage secret, j'aurais pu faire appel à Plummet, la plume qui accompagne l'encrier bougon qui sert d'introduction à "Deep Ink Pit" Mais suspendu à une plume, on peut se détacher n'importe quand ...

Dans un autre essai de niveau, j'avais mélangé encriers et livres-écrabouilleurs pour forcer le joueur à ajuster son timing plutôt que de foncer toujours plus vite en avant. Ici aussi, le fait que Inkjet soit solide oblige de correctement calculer son coup pour ne pas tomber dans les crayons.
Une éponge qui monte et descend devrait pouvoir reprendre le rôle, cela dit.

Another timed challenge that used inkjet moving up and down to force you dodging the smashing book rather than rushing forward. I guess Spongebob could easily be used instead, here.

Ici, image d'archive (excusez la qualité moyenne du scan): le premier niveau de la school zone dessiné par Piet avec deux encriers qui montent et qui descendent. Ils ont pour rôle de mettre suffisament la pression au joueur pour qu'il soit tenté de minimiser les risques et du coup "loupe" la clé nécessaire pour quitter le niveau. Mais vu leur côté ascenceur, on pourra si nécessaire refaire un essai en faisant demi-tour une fois l'erreur constatée.

And last but not least, here comes ancient scroll where my brother depicted the first school zone level. First inkjet ever, and they weren't floating on their own, but were rather standing on "magically floating erasers" ... not much better. They were used to intimidate the player and make her miss the key among the bonuses, while offering the option to move back upwards and eventually grab it. Would it work if I had some bouncing erasers on the ground with the inkjets bopping up and down ? it's fairly high ...  

Les encriers sont-ils sur des gommes volantes dans le dessin de Piet ? sans doute. Est-ce une meilleure idée ? J'en doute.
Assez rapidement j'ai voulu "habiller" ces deux encriers, par exemple avec une grosse poulie et des cables: ils se retrouvent dans le matériel prévu pour le cours de physique et montent/descendent accrochés l'un à l'autre. Sauf que si c'était réellement le cas, Bilou devrait pouvoir s'accrocher lui aussi à la ficelle, non?

Ce n'est qu'en commençant ce texte et en voyant les lattes côte à côte que mon cerveaux embrumé par mes 34 ans tout frais à suggérer l'interprétation de "ce sont des flacons du cours de chimie accrochés à ces saloperies de statifs universels gradués, et ils sont maintenus par des pinces qui montent et qui descendent" ...

I was staring at those two-decade-old inkjets and suddenly, the rulers started looking like those graduated rails that the chemistry teacher used to build goldberg machines featuring erlenmeyers and test tubes. They would perfectly grip on an inkjet, wouldn't they ? you can move the grips up and down at will, too ... and the rail itself is too slippery, so Bilou cannot grab it on his own! Eurèka!

J'ai enfin fini les corrections des TP de mes étudiants, donc je chope un microfin et je fais un test ... Hmm ^_^
Oui, ça j'aime beaucoup mieux. ça ne sera pas utilisable partout, mais des classes de chimie, il y en a aussi. La tige sur laquelle la pince est montée est suffisamment glissante et large pour qu'intuitivement on puisse admettre que Bilou ne parvient pas à s'en servir seule. Reste à ajuster la perspective pour qu'il n'y ait pas trop "d'espace mort" entre l'encrier et la tige (qui fait office de mur).

Je crois qu'on y est. Coder ça, ce sera l'affaire de quelques pixels supplémentaires ... rien à voir avec "la plume en 3D" ou "une grosse poulie avec des cordes et tout ^_^



Pendant ce temps, sur Way of the Pixel, ça ne chôme pas. Chacun y va de sa petite proposition.

J'aime assez bien l'approche d'Ymedron (ci-contre) pour un "passage imposé" où il faut ajouter un bouchon pour passer. C'était le genre de petites scribouilles que Julien, Piet où un autre membre de PPP Team m'aurait suggéré il y a 20 ans quand le projet venait de commencer. On aurait pu rêver meilleur cadeau d'anniversaire ? ^_^

Habemus Atramentarium. And thanks to Ymedron's alternate solution, I now even have the perfect scenario for introducing the cork lid without involving some boring text-based tutorial ^_^.

Saturday, March 10, 2012

Primary Mechanics

Sauter n'est pas seulement un bouton d'action dans Super Mario, c'est ce que Kirby Kid appelle la "fonction première" (primary mechanic): c'est ainsi qu'il se débarrasse des ennemis, mais aussi qu'il obtient des bonus (bloc-question), transforme son environnement pour aller plus loin et découvre des salles-bonus. Bref, tout dans Mario est axé autour du saut, si bien que même lorsqu'il se prend une boule de feu dans les moustaches, ça reste quand-même la gravité qui l'achève.

When Kirby Kid names Mario's jump the "primary mechanic", it quite makes sense. Think a little bit at Super Mario Bros. gameplay and you'll be amazed at how many thing you do by jumping: stomping ennemies, grab bonuses and power-up, open path (by brick-smashing or vines-reveal ?-blocks). In later releases, even more sophisticated switches (P-switches, for instance) require a jump.

D'une manière surprenante, c'est loin d'être le cas dans tous les jeux de plate-formes. Oui, Rayman saute, et doit dans pas mal de situations sauter judicieusement pour éviter les obstacles. Mais la fonction première, ici, c'est le coup de poing téléscopique. C'est lui qui élimine les ennemis, ouvre l'accès en pulvérisant les rochers ou en mettant en mouvement les boules à pic.

What's more surprising is to realise that not all platformers use JUMP as the primary mechanic. That wouldn't be surprising for a run-and-gun game, but that's not even the case for games that would have filed under the generic platformer category as Rayman 1 or Shantae. There isn't that much you can do by jumping in Rayman. Throwing your punch away, on the other hand (^_^), keeps the baddies away, unlock path and set spiky balls to move. Of course, freeing the electoons involve punching the cage, not just touching it or pressing 'UP' on the D-PAD. And the most interactive element (the bouncing plum) in the game is completely punch-controlled.

Une prise à rebrancher dans les caves de Skops ? c'est encore d'un coup de poing bien placé que Rayman arrange ça. Clairement, il serait peu judicieux pour moi de reprendre un coup de poing téléscopique comme super-pouvoir pour Bilou, même si c'était le cas dans la version de 1996: c'est le "signature move" de Rayman, et celà ôterait à Bilou toute possibilité d'identité propre auprès des joueurs qui connaissent déjà le héros d'Ubisoft.

Et c'est loin d'être un cas isolé: Shantae, elle aussi, a un comportement "guerrier-platforme" où le bouton "frapper" est celui qui a la priorité, et ce de manière peut-être encore plus flagrante.
Que ce soit pour ouvrir les coffres, briser les jarres, déclencher les mécanismes et résoudres les énigmes, rien ne sert de bondir, il faut fouetter à point.

Assez curieusement, il semble même que certains jeux n'ont tout simplement pas de "primary mechanic". J'aurais bien du mal à en proposer un pour Commander Keen, par exemple. Les ennemis y sont généralement éliminés à coup de pistolaser, mais les interrupteurs utilisent une commande dédiée. La transformation du niveau passe presqu'intégralement par ces interrupteurs: Keen ne casse (presque) rien avec son pogo ni avec ses lasers, au point que quand les développeurs décident d'inverser la tendance, le joueur peut fort bien y perdre son latin (oui, oui, je parle des 4 fusibles à exploser dans l'épisode 5).

Now, it looks like some platformers I've played through my childhood did not even bother to have a 'primary' mechanic. Commander keen may shoot, jump and use his pogo stick, but none of this affects the game further than clearing jumps or disabling baddies. To progress, you need keys, and to activate switches, you use a dedicated look-up direction arrow. That's the only way you alter your environment to solve "puzzles". Stomping on things just don't help in any way. Neither do shooting on them (wise, since amno are limited). That's true to the point that when level designers decide to break the rule and *do* use one of the player's direct action to alter the level, the player is puzzled at best, and may need a FAQ lookup.


Titus the Fox is a bit harder to consider. Is the game's primary mechanic "carry", or doesn't it have any ? Granted, you carry things to use them as amno against foes. Granted, by not throwing things, you may use them and climb later on to access hidden areas. To fly through the sky, the Fox needs to grab and throw the magic carpet, but there's no such thing as a "throw target" that would release bonuses, nor objects whose state is changed from obstacle to platform by throwing anything on them. We can clearly say "it looks like Mario can't do anything without jumping". Can we say the same about Titus ? I don't think so, although I might be wrong.

Et dans Titus the Fox, la situation est encore un peu plus étrange. Le jeu possède bien un mot-clé: transporter, et à l'instar des Rangers du Risque, c'est en lançant des objets que le joueur se sort des situations à risque -- un élément que Titus met à profit en ne distribuant les munitions avec une extrème parcimonie ... et en forçant le joueur à prendre des risques dans le transport de certains objets pour grimper ou sauter, lui interdisant alors de lancer quoi que ce soit. Pourtant, je n'y vois pas cette richesse d'interaction avec l'univers du jeu qui me fait dire que le coup de poing de Rayman est "mécanique première" par rapport au saut ... sauf que ... allez, oui: c'est en s'abaissant pour prendre des objets que Titus/Moktar peut aussi se faufiler dans les passages secrets. Ca reste faible comparé aux blocs-questions, briques et autres carapaces de koopas, si vous voulez mon avis.

Sunday, February 26, 2012

The Power of Mario

Voilà, c'est mon tour d'avoir fini "l'Histoire de Mario" de William Audureau. Bien intéressant, même si j'avoue que le côté "pourquoi lui ?" mis en avant par l'auteur ne correspond pas à ce qui m'intéresse le plus. Ce qui me tente, moi, c'est de comprendre comment sont apparu les mécanismes qui en font à ce point un jeu hors pair. Au risque de décevoir, je dirais que graphiquement, Super Mario Bros était dépassé techniquement avant même sa sortie. J'en veux pour exemple Pac-Land en arcade en 1984. Non, ce qui est extraordinaire dans ce "premier" Mario, c'est les mécanismes de level design.

Un des grands absents de ce point de vue, dans le livre d'Audureau est sans doute le bloc-question. Miyamoto avait pour règle de travail "la fonction précède la forme": trouvez d'abord quelque-chose d'intéressant au niveau game-play, puis "habillez" là avec quelque-chose de cohérent dans l'univers du jeu. C'est ainsi par exemple que sont apparus dans Mario Bros (vs game) les tuyaux de téléportation, répondant au besoin "d'habiller" le point auquel les tortues quittaient le bas de l'écran pour attaquer une 2eme fois les frères Mario.

I'm pretty lucky we have Pix'n'Love editions around, to provide us great retro-gaming material. I've been reading what you could name "Mario, why *him* -- the story" last month. More than the retrospective aspect, of course, what interrest me most is to dive into the creative process that brought innovative games such as Donkey Kong, Mario Bros. and Super Mario Bros. And for most, I haven't been disappointed. Why barrels, why turtles, why a linear adventure ... so many items are indeed discussed beyond the simple question of "why Mario wears overalls".

La fonction du bloc-question est claire et géniale en même temps: indiquer clairement au joueur l'emplacement des bonus tout lui cachant le nature de ce bonus -- et ça tout en utilisant le mécanisme premier du jeu: sauter. Dans zelda, les "bloc-questions" seront des jarres à casser, vu que le mécanisme premier est le coup d'épée.

Mais alors, que s'est-il passé avec la forme ? Pourquoi cette absence d'habillage complet ? Le mystère n'est même pas évoqué par William. Ce qui est certain, c'est qu'à de nombreux recoins du jeu, l'équipe de Nintendo va utiliser ce côté "magnétique" qu'exerce un bloc isolé et difficile d'accès -- qui pourrait potentiellement contenir jusqu'à un 1UP ou un Power-UP plus rare ... mais aussi une simple pièce d'or ... ou encore une plante grimpante vers une salle bonus!)

But the genious part of the level design imho lays somewhere else -- and is unfortunately un-covered by the book. Questions blocks and Koopa shells. These are the two gameplay elements that make the Mario platformers unique, challenging and interesting. The ?-block is the platforming perfect equivalent of Zelda's bushes, that you hit with your primary mechanics (jump), whose position is obvious, but its content is unknown. So when shown a standalone block in a hard-to-reach area, will you expose yourself, hoping for high reward or not ? Like with poker, you won't know what you missed unless you try it out.

The koopa-shell is bringing the "spinash"-power up to a new level. Flip the power balance: that's the very nature of Pacman's power-up, and to some extent, power-ups in Mario, starting from the hammer in Donkey Kong. The koopa shell does that. From an ennemy, you make a weapon, and a pretty effective one. Only the starman would allow you to defeat a batch of ennemies more easily in SMB than a properly kicked koopa-shell... But a single block on the ground can flip the situation again, because you're not immune to that lethal weapon. And since the shell is quick, you need to speed up to benefit from its action -- but you then expose you again, by reducing your reaction time.
I'm still looking for something as interesting to inject into Bilou's world. I hoped that I'd be taught through the book what is the "design question" that turned "what bounces on walls, moves quickly and hurts when it hits you ? " into "a turtle's shell" ... but obviously, Miyamoto's team has not commented on that.


Autre grand absente: la carapace de Koopa. L'introduction des tortues est elle très bien détaillée ... Mario Bros étant basé essentiellement sur le saut (là où Donkey Kong ne l'avait introduit que comme échapatoire), la première idée de l'équipe est de permettre de "taper par en-dessous". La question de la fonction devient alors "qu'est-ce qui se retrouve immobile lorsqu'on le retourne", et la réponse (l'habillage) : "une tortue".

Mais le génie du koopa-troopa n'est pas là: il s'agit de pouvoir transformer un ennemi en arme. En un seul mouvement, le joueur de Super Mario Bros. envoie vers une longue série d'ennemis un seul projectile capable de les éliminer tous ... mais qui peut se révéler un danger mortel si quelque-chose de dur interrompt sa course. La "boîte d'épinards" de Popeye (origine incontestée des Pac-gommes et power-ups de manière générale), mais à double effet. Qu'est-ce qui passer de "qu'est-ce qui peut être lancé loin pour cueillir des champignons" en "une carapace de tortue" ou "qu'est-ce qui peut se retourner contre son lanceur" - "une carapace de tortue" ... aucune idée.

Wednesday, February 17, 2010

Do you sass' ZX Willy ?

"Connaissez-vous Manic Miner et le ZX Spectrum ?" me demandait assez logiquement caractère de 8x8 et n'avait pas de sprites. Si bien que quelque soit le jeu, ça ressemblait assez invariablement à un livre d'image colorié par un gamin qui ne sait pas éviter de déborder des contours. Maintenant, j'imagine que pour celui qui en a possédé un gamin, c'est une merveille de nostalgie au même titre que le c64 l'est pour moi et l'amstrad CPC pour Pierrick H.

All I could have told about the ZX spectrum before starting this post was that it had soft keys and tend to spread colors all over the place on polychromatic screens. I couldn't have said anything about Manic Miner unless you would have asked about the Jet Set Willy sequel which my brother had tried a bit on C64.



Willy, revisited by Arne

Pour ce qui est de Willy (Jet Set Willy, Manic Miner), je ne connais que depuis la sortie des "Lost Levels" sous DS. D'ailleurs, c'est bien simple, quand en juin 2007 Arne nous poste ce joli mock'up sur Pixelation, je me dis juste "que c'est bien fait pour du 16 couleurs. Mais où va-t-il chercher tout ça ?". Le parallèle était pourtant frappant.

It needed a Lost Levels homebrew, released on DS in June 2007, to make me realise that the mock up screen titled "Macaroni Ted" is a reinterpretation of an old game, not just some awesome flip-screen for a yet-to-code game. And I have to admit that I'm baffled by the creativity it took to fill so many screens of challenges involving so many weird characters, even on the 8-colors original game.

Mais indépendamment des qualités du jeu, de l'"ingéniosité" des niveaux et tout ça, je n'accroche pas. Ni aux "lost levels" flambant neufs, ni à l'idée de me le refaire sur un émulateur.



Lost Levels par Headsoft

La maniabilité de Willy redore le blazon de l'explorateur de Pharaoh's Curse et de Thing on a Spring. Et pourtant, j'ai passé plus de 900 vies à finir "vvvvvv" ... Alors quoi ?

Premier hic, la lenteur. Eeeh oui. Si Willy nous change de l'animation en deux temps de Rick Dangerous, en revanche, il est trop lent à se déplacer, bien plus lent que votre "projection mentale dans le jeu", ce qui pour un jeu de "timing" est particulièrement désagréable.
Autre hic -- de taille -- la lisibilité. Se faire tuer par quelques pixels qui trainaient par là et qui ressemblent autant à un buisson qu'à une clé, ça n'a rien d'amusant. La version GBA est un peu plus lisible (sans aller jusqu'à dire qu'elle est meilleure pour autant). La version ancienne (ZX) est assez bien lisible (si ce n'est pas noir ni du sol, touche-le pas) et d'une difficulté sans doute plus progressive. La preuve c'est que j'ai réussi à aller au niveau 2.

Unfortunately, once I have the game in hand, I absolutely don't want to play it. Controlling the explorer in Pharaoh's Curse or even the thing on a spring is fun compared to Willy. I think this is linked to how slow the walking animation is. I cannot make my mind match that and I'm never quite accurate on where I expect the character to be when it will be time to ask it to jump or to stop.

The second big issue with Manic Miner Lost Levels is the readability. In the original game everything is either black, flat, blinking or dangerous. small patch of pixels actually depict a deathly trap on the floor and you should jump above it.

Je vais donc éviter de jeter un blâme et je ne me lancerai pas dans des calculs savant de temps-pour-traverser-l'écran divisé par temps-de-réaction-pour-contrer-un-monstre. Il est clair que si j'ajuste le gameplay de Bilou, ce sera légèrement, de sorte qu'un monstre isolé représente déjà une difficulté (là, s'ils ne sont pas au moins deux dans un environnement exigu, le jeu est plutôt de voir combien de fois vous pourrez vous gausser grassement d'eux avant qu'ils ne vous touchent). Mais je n'irai pas cloner le gameplay de Manic Miner... Ooh non, alors!

Il est clair aussi que ce qui fait le "charme" des aventures de Willy, c'est ce côté "hors-contexte" des monstres et des salles, renforcé par le fait qu'il "suffisait" de 8 chiffres pour "programmer" une dalle et d'une douzaine de dalles pour un niveau. J'ai beau me débrouiller en pixel art, je ne suis pas graphiste. Il faudra donc que je trouve quelque-chose d'autre pour rendre le "petit puzzle-platformer avec Bilou" suffisament attractif. Je laisse donc tomber le "mining" du titre, la prochaine "milestone" sera tout simplement

Bilou : Nuts & Bolts

Yes, I'd love to have something that looks a bit like a Manic Miner game featuring Bilou. Flip screens, a few baddies per screen, things to collect (nuts and bolts from the crashed ship). But it wouldn't feel like a manic miner game. I'd adjust some physics constant so that individual ennemies requires precision, but not the kind of pixel-perfect precision manic miner implies.

PS: ça veut dire "des boulons et des écrous", et je trouve que ça colle bien au fait de devoir retrouver les pièces de l'astro-cruiser tout éparpillées ...
PPS: une vitesse verticale de 600 pour commencer un saut paraît bien pour ça. Ca rend déjà le champignon dans le premier arbre inaccessible, par contre :P
PPPS: je n'oublie évidemment pas les choses que j'avais trouvées sympa dans Johnny Biscuit (rotation des thèmes graphiques plutôt que 4 niveau halloween, puis 4 niveau en égypte, puis ...) et dans Qwak (parcours semi-aléatoire d'une partie à l'autre).

Voir aussi :

Saturday, January 16, 2010

Super Princess Peach

Il faut l'avouer, elle est de toute beauté, la princesse champi, avec son pixel art parfait et son style épuré en ligne droite de la série de RPG "Mario & Luigi". Comme mon frère me re-prète sa cartouche, c'est l'occasion de comparer mes impressions aux siennes.

Clearly, the clean pixelart style of Super Princess Peach was strongly attracting me. It may have an arguable plot and a discouraging early minigame, it has a "Mario & Luigi" look that I just want to play more. My brother let me borrow his cart, so I could play it nearly to completion see whether I agree with his critics.


"Le gros soucis de ce jeu, c’est qu’il y a trop de choses !"

Des pièces pour acheter des nouveaux objets (dans mon cas, des parapluies plus perfectionner pour taper, planer,…) puis il y a des petits coeur à ramasser pour reprendre de la vie, et aussi des crystaux pour utiliser l’une des 4 magies possibles pour la princesse
Et pourtant, ça ne fait que 3 types d'items dans les niveaux. Supposons que Peach soit plutôt Duke, ça fait une barre d'énergie, une barre de munitions et des crédits pour acheter des power-ups. Les boutiques à Power-Up, c'est classique dans un platformer. Mickey Magical Quest comme Adventure Island le proposait. La subtilité de Peach est d'avoir cette boutique ouverte en permanence, accessible hors des niveaux. En plus des parapluies, on y retrouvera aussi les "fragments de coeur" et extensions de la barre de magie qui ne devrait pas dérouter ceux d'entre-vous qui ont joué à Zelda.

He pointed out that the game features quite many items and collectible, to the point where we somewhat got lost: coins for items purchases, life and vibe collectibles. That hasn't been seen in recent games, indeed, but that was quite common in run-and-gun titles like Duke Nukem and not so uncommon in Japanese platformer with an adventure background (Mickey Magical Quest or Adventure Island II), especially since the items you pruchase are mostly equipment and health upgrade. I'm fine with all that.

Trop de mouvements
A coté de cela… La princesse peu tuer les enemis en sautant dessus, en les frappant de son parapluies, en les attrapant et les projetant ou en les donnant à manger à son parapluie (histoire de regagner des pouvoir magique). Elle peut également transporter des trampolings histoires d’aller tenter quelques sauts plus haut à gauche ou à droite ou faire de courer/glisser pour butter les monstres et passer en dessous des blocs…

A l'exception des pouvoirs magiques, tu remarqueras que l'ensemble des mouvements que tu décris correspond à ce que Duck Tales permettait. En donnant un grand nombre de mouvements d'attaque, les concepteurs du jeu ont réduit les "zones de risque" pour Peach.

Le seul véritable danger, c'est que le ciel lui tombe sur la tête, en quelques sortes. De plus, presque tous les ennemis sont vulnérables à toutes les attaques, c'est donc entièrement une question de style de jeu (préfères-tu passer à travers tout en assomant les ennemis d'un coup de saut ou attendre qu'ils arrivent à ta portée pour les dégommer d'un coup de canapluie bien placé). Mon seul véritable reproche s'adresse aux carapaces de Koopa: pour un fidèle à Nintendo, le premier réflexe est de vouloir les transporter pour les lancer à l'occasion sur une série de monstres, mais la manip pour y parvenir vient rarement toute seule.

Second complain from my brother: too many moves. You can attack by stomping, hitting, catch-and-throwing or just let your umbrella "swallow" baddies (and regain vibe/magic). To me, most of those moves are classic. A title like Duck Tales already proposed most of that, with the exception of magic powers. The developers clearly wanted to reduce the blind zones of Peach so she could defeat baddies wherever they come from, except directly from above. As most baddies can be defeated with most moves, you're actually free to stick to one type of gameplay that suits you. The only move I could not really get used to is "carry and throw koopa shells". It's a common move in the Mario universe, but Peach does it really differently and I just couldn't update that in my fingers. And he's completely right about pipes. There's no excuse to see Peach struggle that much to enter a pipe while they've been natural to use since SMB1.


Bref, à tout moment, vous pouvez être en mesure de faire un choix parmi tout cela ! Pour corser un peu le tout, je trouve que les entrées dans les tuyaux sont mal gérées…

J'admet pour les tuyaux. C'est particulièrement désagréable de devoir faire un ajustement de précision pour une chose aussi élémentaire que passer à la suite du niveau. D'autant plus ridicule que les portes, elles, marchent sans problèmes.

Does the gameplay choices seemed overwhelming to you ? It surely was for my brother, but I'd rather consider it a nice thing to have in a game. SMB make you choose between breaking bricks for possible hidden coins or keep moving for certain extra time to complete the level. Prehistorik II make you choose between leaving the tiger-that-hit-you alone (and go for safety) or face it again and possibly recover your lost health. Then comes the choice linked to magic uses. This is clearly what the game wants you to master. It wants you to read the level design and understand that it's telling you to start flying (hint: aligned vertical coins), start crying/rushing (hint: blue object), start burning things, etc. They disguised as emotions what are essentially elemental powers, and we've been super-trained to elemental puzzles. I'd dare say once you realize that, puzzles in SPP become simple compared to Fury of the Furries. Granted, that leads to quite unsinspired Ice zone and Fire zone once again...

Pour ce qui est des choix, un jeu intéressant *doit* offrir des choix. Dans Super Mario, où tu es contraint par le chrono, ce sera "est-ce que j'essaie de démolir cette structure pour trouver des bonus ou est-ce que je continue vers l'avant". Dans Commander Keen (niveau de difficulté normal) ce sera "je ramasse les bonus, ou je préfère ne pas prendre le risque de passer sous le champignon ?". Dans Prehistorik II, "Si j'arrive à dégommer cette saloperie de tigre, il me rendra mes os, mais si je le loupe, il me prendra un 2eme coeur".

J'utilise la magie ou pas ? et laquelle ?

On touche au coeur du problème. Peach n'est pas un jeu d'adresse ou d'endurance comme pourrait l'être un Mario. C'est un jeu d'exploration. Une sorte de puzzle où il faut apprendre à "lire" les indices
  • trois pièces d'or alignées verticalement et un cristal magique au bout : 'faut voler, mon gars ...
  • des trucs bleus dans le chemin ? une roue à aube ? Pleure un coup: ça ira mieux.
Le génie des concepteurs de SPP, c'est d'avoir en fait utilisé les 3 des 4 éléments (eau, feu, vent) sous le déguisement des émotions. Or c'est quelque-chose avec lequel nous sommes habitué à vivre: le feu brule, le vent souffle, etc. Une fois ce "grand principe" acquis, on ne se demandera plus que faire face à un nouvel élément dans un niveau . A mon avis, bien plus accessible que les quatres pouvoirs des tinies dans Fury of the Furries.

Et comme tous les platformers de Nintendo, ces actions supplémentaires (généralement destinées à sauver des Toads) sont facultative. L'exploration est récompensée, encouragée par le débloquage de chanson, etc. mais pas indispensable, là où Commander Keen ne saura pas finir le niveau à moins d'avoir collecté les clés appropriées et dans le bon ordre s'il vous plait.

Most puzzles are gateways to free toads, which is mostly optional and sometimes unlock titles for the games' jukebox. Most collectibles are open to trading: you can convert magic into health, risked-health into magic, and you can't get out of lives because you're granted infinite lives. Keeping "follow the coins" logic without the "100 coins grant 1UP" naturally led to that umbrella-upgrades-shop. I could have used story-telling collectibles instead of a long not-really-playing introduction.


Tu noteras aussi que tout (ou presque) est interchangeable dans le jeu, puisque tu peux convertir la magie en énergie, et l'énergie en magie (en prenant le risque d'attraper les ennemis pour les faire manger au parapluie). "Peach never dies", à moins que le joueur n'ait mal jugé de sa situation présente (plus assez de coeurs ou manque de magie). Il n'y a même pas de compteur de vies! On comprend mieux du coup le rôle des pièces d'or, puisqu'il n'y a plus de 1UP à obtenir au bout de 100 pièces. Logique, d'une certaine manière, le joueur n'ayant plus à mettre des pièces (de 20Fr) dans la machine pour acheter plus de vies (cf. nos vieilles bornes d'arcade). Mais dans les jeux nintendo, les pièces servent surtout à guider le joueur, l'entrainer vers des chemins plus risqué et le récompenser.
Puis dès le départ, une intro assez longuette, et un mini-jeu range champignon tout à fait inutile... Bref nous voilà arrivé dans un premier stage “tutoriel” peu accrocheur…
Là, je rejoint l'avis de mon frère. D'autant que dans un jeu d'exploration qui proposait déjà des "pièces de puzzle", il aurait été aussi intéressant (imho) de mettre ces ingrédients en "bonus accessibles à la demande". Fragments de journal du Commandant des Koopas Troops, etc.

Une zone du feu où il fait chaud, une zone des glace où ... ça glisse !

first world's minichallenge before you reach the bossCommentaire d'un reviewer du jeu à sa sortie que je ne pourrais plus vous retrouver. J'avoue, SPP ne brille pas par l'originalité des mondes qu'il nous fait traverser. D'un autre côté, glisser pour glisser (quoi qu'on en dise, c'est un canon du jeu de plate-formes), autant que ce soit sur de la glace dans le monde des glaces plutôt que sur de la chantilly dans le monde des jouets ou sur de l'huile dans le monde des robots. Au moins, peach-de-feu peut la faire fondre, la glace, et peach-qui-pleure peut en faire apparaître là où il n'y en avait pas. Ca donne lieu à quelques puzzles sympas. Les moulins à vent et à eau des premiers mondes n'auront donc servi que de "déclencheur" pour ajuster l'esprit des joueurs à celui du jeu, et c'est tant mieux.