Saturday, September 27, 2014

Kirby Kid's Advice: Inkjet interplay

Here's another one stripped out from Kirby Kid's precious feedback:

the double ink jar obstacle could be tuned better so that the player waits less. the rhythm/timing challenge here is pretty complex (two objects moving and attacking at different rate). Also when the ink rises jumping into these jars is difficult when they go under the ink.
Pas évident, hein, les doubles encriers ? Selon Kirby Kid, ça vaudrait la peine d'en ajuster le rythme pour que le joueur ait moins besoin d'attendre. Effectivement, si on essaie de passer en force ou en vitesse ce genre d'obstacle, ça se finit généralement dans une mare d'encre. Même pour moi. Dommage pour un jeu de course ?

Yeah, that's quite true, I have to admit. Whenever I fail myself at *deline's level, that's in the only part she has not been involved in: the double inkjets. Same for the later level. I hadn't bother this far because I'm not that good at video game, so it sounds natural to me when there's some place where I often fail.

Now, there's one easy way I could increase the chance the player goes through such challenge: allow him to undermine it. If only Bilou had the opportunity to stun inkjets by throwing him a dumblador, that would ease moving through. You wouldn't need to time your jumps because inkjet would stay in-place.

Mais je coince un peu: je ne vois pas bien à quels ajustements procéder. Permettre de simplifier le challenge, ça oui. Il me suffit de permettre au joueur d'assomer les encriers qui resteraient alors gentiment sur place, sans plus jeter d'encre. On redescend à un mode plus simple avec un encrier immobile et un mobile, une seule source de goutelettes. Mais est-ce bien à ce genre de solution que Kirby Kid pensait ?

You wouldn't have to fear droplets either. Of course, when there's two of them, only one would be disabled that way, but that would still be better than trying to hop here and there to dodge droplets.

L'autre explication possible, c'est qu'avec leur façon de monter et descendre depuis le début du niveau, mes encriers se trouvent dans un état trop imprévisible au moment où le joueur les rejoints. Le moindre petit retard accumulé et il n'y a plus moyen de se fier à sa mémoire: il faut obligatoirement observer les encriers, repérer le rythme de leurs tirs (qui dépend de la distance qu'ils parcourent) et se faufiler entre les gouttes.

Now, the point I cannot solve is whether that would be solving the "tuning" issue mentioned by Richard. But what could I tune better ? Inkjet's speed doesn't seem too fast, they typically throw once moving up and once moving down. The moment when they'll prepare their blow is constant related to the moment where they turn back, so you *can* learn it from observing, but it will be harder to use this knowledge from one inkjet to the next, since the position of your platform compared to their turn-back position is variable.

Comparativement, tous les Marios sur 8 et 16 bits n'auraient activé le comportement des encriers qu'après que Bilou s'en soit suffisamment approché. En dosant la vitesse à laquelle il avance, le joueur peut alors "manipuler" leur comportement et les forcer à adopter un schéma qui est plus à son avantage. J'avoue, c'est surtout une technique de speedrunner, et j'aurais tendance à la trouver plus perturbante qu'amicale, mais au moins ça donne une possibilté de contrôle bienvenue dans ce genre de situation.

One thing that differs from typical Mario games, is that inkjets are active as soon as the level starts. In comparison, all 2D Mario games built before 1995 were technically limited to a dozen of active sprites. Anything that was moved offscreen from a sufficient distance was "deactivated" and monsters -- but also moving platforms -- start activating when the screen approach them. Here, the player will see them at a random initial position because their position depends on the number of frames spent to get there. Comparatively, in Mario, you'd see them at a position that only depend on how fast you were moving when approaching them. Is this what I'm missing ? 
The ink is interesting to avoid in the air. Once it hits the ground, the player has successfully dodged. If the ink hurts on the ground, the player just waits around for the coast to clear.
This has been easily fixed. Now the ink only hurts in the air, no longer on the ground. For the "rush" type of game, this is definitely not deconstructing any of the challenge.

Sunday, September 21, 2014

Kirby Kid's advice: Where's my momentum ?

I've been expecting Kirby Kid's "tuning list" like a kid expecting his birthday, checking my mailbox every now and then until I finally got his feedback on the two-level edition of "Bilou: rush to completion". I've got many items to review, so I won't try to give you all of that at once, but I'll rather reveal them once at a time as I address them.My major action point here will be to harmonize things.

input, moving

If there's a run button it either needs to be a dash like MegaManX or a constant state like Super Mario. Having to repress the button every landing and every turn around is annoying.
Where is my momentum going [related to air control]? Sometimes I get to move forward smoothly and continue moving. Other times jumping off of things and even landing kills all my momentum. Momentum is so very important in a game like this especially because the movement and fall speed is very slow/floaty.

Kirby Kid m'avait annoncé une 'liste de choses à améliorer' dans Rush to Completion (2 niveaux), et j'avoue que j'attendais ça excité comme un gamin la veille de Saint-Nicolas. Je l'ai enfin reçue, et il y a vraiment plein de choses dedans. Je ne vais donc pas essayer de faire tout en un seul post. Ici, on va se concentrer sur les déplacements de Bilou.

Premier point faible, la course de Bilou. Pas tout à fait un dash qui se déclenche d'une simple pression de bouton, ni un état permanent tant qu'on garde un bouton enfoncé à la Mario. Enfin, si, il y a un bouton à la SMB: le bouton R. Mais il y a aussi un mécanisme de course à la Kirby, et lui je dois admettre qu'il fonctionne bizarrement. Et bien sûr, s'il y a deux moyens de se mettre à courir, les deux devraient fonctionner de la même manière, pas demander qu'on ré-active la course après chaque aterrissage ni à chaque demi-tour.

Well, funny enough, there *is* a Super Mario constant state running: the R button. But the most straightforward way to RUN -- double-tapping the DPAD -- indeed works weirdly. Anyway, whether you activate it with a double tap on the DPAD or holding the R button shouldn't matter: the mechanic should work the same. Why has my mind so far accepted that people using double-tap dash should get a more annoying RUN than people holding the R button, who would keep constant speed upon landing ? Meditate on that I will. Meanwhile, I'll fix the code so that you can keep running as you land even with the double-tap.

Kirby Kid pointe aussi un contrôle en l'air qui casse toute l'inertie horizontale. C'est le cas quand on se fait jeter d'un encrier (enfin, je suppose que c'est ce qui lui arrive). J'avais voulu limiter la marge de manoeuvre du joueur dans ce cas-là (et aussi quand on rebondit sur une gomme), mais visiblement j'y ai été trop fort.

I will have some more tuning on the "thrown up" move, I guess. I thought it would be nice to restrict how much control you have over your trajectory when you take big air with a pink-bumper or a inkjet. That stresses the player to gain momentum first (on the ground), jump, and then bounce to clear the jump. It was already a tricky thing to achieve in the anniversary level, but it apparently turns into a nuisance in this game.

Le journal de link: Le Charmeur de Vents

Mon ancien collègue Cyril m'a donné la possibilité de m'essayer à Zelda: Wind Waker cet été, pour le plus grand plaisir d'*deline qui est devenue fan inconditionnelle de la série. Le jeu me plaît plutôt bien, sympathique, inventif ... Mais il est loooong.

Ça peut paraître déplacé de reprocher à un RPG d'être long. En général, on attend une histoire à rebondissement, et on a jamais assez de donjons, etc. Mais ici, j'ai plutôt la sensation que le jeu tire en longueur. Avancer jusqu'au point de sauvegarde suivant me prend facilement une heure et je peux laisser le jeu progresser tout seul d'une île à l'autre pendant que je vide le lave-vaisselle (avec tout au plus la consigne pour *deline de maintenir le cap et d'appuyer sur le petit bouton START si on arrive ou si on est attaqués).

red=never finished, purple=on emul
blue=on the real thing
J'avoue que je suis en grande partie responsable du problème: je n'ai jamais été à l'aise avec les jeux 3D. Je prends un temps énorme à me faire une idée de la disposition des lieux, de ma position et de mon orientation dans chaque salle du donjon, alors que sur les jeux 2D, j'ai une vue d'ensemble et je déplace directement mon avatar avec un repère absolu.

J'avais aussi pris l'habitude de mettre ma console (portable) en veille, sur chargeur pour pouvoir suspendre le jeu n'importe où dans un donjon. Impossible avec la GameCube qui fait deux fois plus de bruit que le frigo et le lave-vaisselle réunis. Impossible aussi de mettre la raclée au boss pépère dans mon fauteuil pendant que *deline est au lit et que ma fée a démarré son émission du soir, vu que le jeu a besoin de la télé. Résultat: les sessions de jeux sont beaucoup plus longues, je refais beaucoup plus de tronçons même si je n'ai presque jamais été mis Game Over (rares sont les boss qui ont exigé que je sorte ma soupe et ma petite fée commence à trouver le temps long dans son flacon).

Saturday, September 13, 2014

La taille des sauts.

Un premier niveau construit sur mesure pour ma fille, un deuxième niveau assez corsé pour mériter d'être le dernier du jeu ... et au moins deux niveaux à rajouter. Mais comment rester accessible ? J'ai passé un moment la semaine dernière à étudier quels types de sauts étaient dans quel niveau... Quelque-chose assez proche du modèle proposé par Squidi. Je suis arrivé à la classification suivante:
  • F: une simple pression (brève) sur le bouton suffit pour franchir l'obstacle
  • E: saut évident sans courir (on peut sauter d'abord puis avancer)
  • D: saut demandant de la précision sans courir (il est nécessaire d'être déjà en mouvement et de sauter alors qu'on commence déjà à passer par-dessus le trou.
  • C: saut évident en courant.
  • B: saut demandant de la précision en courant.

Do you remember how Squidi was evaluating jump difficulty to build a procedurally-generated Megaman ? I ended up building something quite similar for my very own game. The idea was to be able to know in advance how difficult things would be as I was building something that was really meant to be the second level in my rush game.

an F jump just requires a single tap on the JUMP button. E jumps require no running : you can just press the button and then select a direction and you still clear the gap.

A D jump is already more difficult: you can still do it without running (just walking), but you'll have to be moving before you press the button, and your timing will be critical (typically, Bilou will have to be half-over the gap when you jump). 

C jumps do require you to RUN but put no stress on when you push the button. B requires both running and proper timing (like a D jump does for walking).

Tuesday, September 09, 2014

Le Rush des p'tits n'veux

Petite après-midi de test de gameplay chez mes neveux, testeurs de Bilou depuis les premières heures. L'occasion de voir comment ils réagissent au nouveau niveau et au réglage de la difficulté. Ils sont maintenant des vrais fans de Bilou: la question n'est plus de savoir s'ils vont ou pas me demander un autre jeu ou après combien de temps.

Premier point positif: le système de jump-bounce. A aucun moment aucun des enfants n'a trouvé anormal ou gênant que Bilou rebondisse dans certaines conditions. Ils ont utilisé le "double-jump" sans avoir besoin d'explications pour se sortir de situations difficiles, mais sans hurler à l'injustice ni demander pourquoi on ne pouvait pas s'en servir à n'importe quel moment.

Autre chose intéressante: pour la plupart des joueurs, s'accrocher à une éponge est délicat. Ils sentent bien qu'il y a des bonus ou un intérêt non-formulé à être en hauteur, mais le timing n'y est pas. Pour la plus jeune de mes testeuses (8 ans cette année) qui n'aura testé que le "mode facile avec l'encre immobile", c'est pourtant la technique qu'elle utilise le plus et elle y excelle, même si les sauts qui suivent ne sont pas toujours réussis. En fait, on dirait qu'elle ne peut se passer de grimper sur une éponge même si ça ne mène à rien. Ensuite, elle se mettra à chercher la suivante. En clair, elle se définit elle même ses objectifs et le jeu n'est qu'un terrain d'expérience, pas un défi précis.

Wednesday, September 03, 2014


Rhoo, le mauvais! Il y a un bug qui plante tout le jeu "rush to completion (à part la musique de CJ) quand on appuie sur START pendant un saut, et je laisse ça en plan pendant près d'une semaine. Il faut dire qu'avec le nouveau boulot, j'ai déjà une bonne dose de désassemblage et de register dumps quand j'arrive à la maison ... Ou alors c'est la faute aux korugu trop éparpillés sur les îles de Wind Waker ? va savoir ...

Enfin, j'y regarde, je fais un test par-ci par-là. C'est un de ces bugs au comportement cahoteux qui ne se produit pas sur émulateur parce que l'émulateur (contrairement à une vraie DS) a une mémoire qui ne contient que des 0 quand votre programme n'y a rien mis. Sur le vrai hardware ... eh bien il y a tout ce que le programme précédent a bien voulu y laisser.