Showing posts with label RUN. Show all posts
Showing posts with label RUN. Show all posts

Friday, June 11, 2021

Running like Mario

I had my 'Mario Story' book in hands again a few weeks ago and met a quote that I wasn't expecting from Miyamoto-sensei. He was explaining that Mario's walk/run cycles deliberately not match the speed at which they move on the ground. I'd have expected it to be linked to the first Mario Bros game where "ground is slippy", but actually, the ground truth is that if they tried to make Mario's feet stick to the ground like a lemming, controls feel less responsive and gameplay isn't that fun.

Yes. You read it well. Mario's frantic feet speed and instant flip may make him feel slipping, but at least he's instantaneously responding to our controls, unlike some Prince I wouldn't name. And unlike my own character, to some extent.

Amusing timing, somewhat later, I discover 'New Super Mario Land', a homebrew title trying to rebuild Super Mario Land (GB) for SNES using graphics from New Super Mario Bros and a custom engine.

Eh bin, y'a des gars qui sont passés maîtres dans l'art de mettre une ROM pour SNES dans la cartouche d'une autre. Et ils ne se limitent pas à en profiter pour avoir une version 'hardware' d'un jeu introuvable plutôt qu'une énième copie d'un nanard à grand tirage. Non: ils peuvent aussi décider de faire ça avec un mod d'un jeu existant (disons Secret of Mana II traduit en Anglais ou Kaizo Mario World), une ROM homebrew comme le dernier titre d'Alekmaul ou en l'occurence, un remake de Super Mario Land avec des graphismes tirés de New Super Mario Bros.

And Nagler-- the homebrew author -- did what Nintendon't: they adjusted animation speed to the pixels
Mario travels. It's tricky to to say anything about the feel without playing it ourselves, but from the look of it, it definitely seems heavier to control than our usual mustachied plumber.

So finally, I'm pretty glad on only used the 'stick-to-the-ground' for walking and went for a more Mario-styled dont-care-the-ground for the run cycle. Still, I prefer Bilou's bending feet over Mario/Kirby 3D models with feet that hit the ground at weird angles, unaffected as if they were walking __through__ the ground instead of __on__ it.
Nagler, à qui on doit ce homebrew, a repris les étapes d'animations de Mario telles qu'on les trouve dans la version NDS mais a recodé toute la partie 'moteur de jeu', et en partie 'quelle image jouer à quel moment'. On aurait pu trouver meilleure illustration du choix de Miyamoto-sensei rapporté dans l'Histoire de Mario (p. 240)

Lors du développement de Popeye, il avait d'abord tenté de reproduire les gestes du marin en calquant le dessin animé image par image, mais le rendu [...] ne convenait pas au rythme frénétique d'un jeu vidéo. Plutôt que de modifier son allure, Miyamoto décide d'accélérer le mouvement des jambes sans toucher à la vitesse.

 Tout l'inverse de ce que j'ai cherché à faire avec la marche de Bilou, en fait. Heureusement j'ai changé d'approche pour la course.

edit: eh bien par contre, si on fait bouger les jambes trop lentement plutôt que trop vite, ça donne vraiment des résultats peu convaincants (vidéo de Aer où l'animation de la course est jouée au ralenti par rapport à la vitesse de déplacement).

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.

Friday, January 03, 2014

Fixme list

"Don't Repeat Yourself" supported.
The few feedback I got for the "upgraded" school zone level provide some fairly interesting hint: some gameplay features will not be properly managed by players unless they're sufficiently pure. Give any reason for the player to believe that holding B could let him run and he'll fail to discover that he's got to hold R for that to work. So to get pure gameplay in Bilou, I still need:
  • [blador:ok] Introduce monsters/ink interaction
  • [MEDS] Dedicated animation when Bilou picks up something
  • [done] Never "randomly start running", no longer run-on-turn-back, only run-on-land when one had running speed in the air.
  • [done] no invisible ceiling to kill your jumps.
  • [done] visual clue to tell whether you'll bounce or not.
  • [done] visual clue that chalk may break when sufficiently stressed.
  • [wish, D.I.P] bouncy-idle-sponge vs. low-bounce-swinging-bops.
  • [patch] HUD with life meter. (and speed meter ?)
  • [wish, adventure] visual hint for dead ends (?)

Il y a une leçon qui réapparaît à travers les divers retours que j'ai reçu de ma démo de la school zone: les éléments de gameplay ne sont correctement maîtrisés par les joueurs que s'ils sont suffisamment purs (les éléments, pas les joueurs). Par 'pur', j'entends 'le mécanisme se déclenche sur base des inputs, à chaque fois et uniquement dans ce cas-là'. Qu'il y ait la moindre raison que le joueur puisse se mettre à courir en appuyant sur B et celui qui en arrive là lors de sa première partie n'essaiera pas de maintenir R enfoncé pour courir. Par contre, il nous indiquera que 'ouais, courir, des fois ça va, des fois ça va pas'.

Le même genre de leçon peut être tirée pour les animations: une action différente du personnage sur son environnement réclame une animation différente. Le joueur doit pouvoir "voir" que son personnage fait quelque-chose de particulier. Pas d'animation "essaie de ramasser" quand il n'y a rien à ramasser, et il n'y a pas de raison que le joueur essaie de ramasser un truc quand enfin il s'en présente un.

(old) non-symbolic gobscript

All this (and further introduction of power-up with more conditional state transitions) will require more work on the state machine for Bilou which is already fairly complex (32 states, 170 transitions 0_0). 

I don't want to make the parser smarter on the DS side (e.g. I still don't want symbol tables or function definitions) but it's truly time I adapt the Makefiles so that e.g. GCC's pre-processor can be used to produce the "compiled" state machine out of more symbolic description.

(new) symbolic gobscript

Mais pour pouvoir modifier tout ça, il va falloir que j'aille replonger dans la machine d'états de Bilou, qui est déjà pas mal complexe (32 états, 170 transitions).

Je n'ai pas trop envie de devoir augmenter aussi la complexité du parseur qui tourne sur la DS (pas de table de symboles ou de définitions de fonctions, par exemple). mais je pourrais arranger quelque-chose pour utiliser le pré-processeur C pour me convertir une description plus 'symbolique' vers le texte brut compris par le code DS...

Tuesday, November 19, 2013

A block too far.

Dix blocs à franchir ... Ce second obstacle continue à rebuter, mais ça devient plus facile à gérer. Dans la version g88, il était indispensable d'arriver avec la bonne vitesse sur une petite gomme. Sauter trop tard (en courant), c'était l'échec assuré. Ne pas courir, c'était arriver à coup sûr trop court.

I guess many have cursed that row of pencils in the g88 "anniversary" level. One thing I wanted to fix is that not only it required a master-level of the RUN and JUMP mechanics, but it did not provided a way for the player to build that mastery. Jump too late, and you'll end in spikes. Fail to run, and you'll realise quite late that you don't have the speed to clear the jump.
I experimented two approaches that make the obstacle easier to clear: the first one is widening the bouncing zone, which in turn reduces the stress on the timing. The second was to move the bumper away from the pit, so that missed attempts can be cancelled by the player.


Pour rendre ce saut plus facile à apprivoiser sans en tuer la difficulté, et maintenant que Bilou peut courir de façon fiable, il y a 2 choses sur lesquelles je peux jouer. D'abord, la largeur de la zone-bumper: un bumper plus large donne plus de souplesse au joueur sur le moment où il va sauter. Ensuite, un "filet de sécurité" entre le bumper et le début des crayons. De cette façon, le joueur qui a mal jugé de la distance de son saut garde une possibilité de revenir en arrière.

These two adjustments to the level make it more learning-friendly, but most of the challenge remain. Either you manage to RUN-JUMP as desired, or you find the alternate, safier route. For the next release, I'd like to grant player with the ability to feel empowered and have a laugh at the challenge, by power-ups, of course. You could either start the level with 5 hitpoints or pick one (random?) power-up before you enter it. That could be done through some form of DASH mechanic, or possibly a way to break more easily through that chalk-barrier, etc. Of course, I wouldn't have a "fix-them-all" item: if you get the ability to undermine _some_ challenges, you'll have to rely solely on your skills on others.


Enfin, avec l'augmentation de la vitesse que Bilou peut atteindre en courant, il est possible de passer par-dessus les pointes des crayons simplement en courant et en sautant, y compris en prenant "par le haut". Celà n'empèche que pour une prochaine release, il serait intéressant de proposer des "power-up" au joueur qui lui donnerait la liberté de bouder l'obstacle, même sans le contourner par le haut.

Entretemps, j'ai pris le contrôle de la course de Bilou, de sorte que je gère la vitesse maximale qu'il peut atteindre (suffisante pour franchir les 10 blocs de justesse sans l'aide de la gomme) et qu'on peut se mettre à courir en faisant un double-dash dans une direction (à la Kirby) ou en donnant une impulsion vers le bas pendant qu'on marche ou donnant un coup de R.

Wednesday, October 30, 2013

Fly, you fools!


Fly, you fools!
The way Bilou runs in the anniversary level was emergent behaviour for the given set of rules: it wasn't designed to happen: Bilou has just started to run on its own because no line of code was there to prevent him to go beyond the momentum's maximum speed.

Parmi les retours que je commence à recevoir du niveau-anniversaire, le côté peu pratique du démarrage de la course revient assez souvent. Moi j'avais bien aimé la façon dont il "suffisait" de faire "gauche->droite" dès que je me suis mis en tête "il suffit d'aller plus fort vers la droite" pour parvenir à courir, mais en fait, c'était loin d'être un choix de ma part. En fait, on pourrait presque dire que Bilou a appris à courir tout seul: c'est un un comportement résultant des règles définies que j'ai décidé de ne pas corriger plutôt qu'une fonction explicitement ajoutée dans le système.

Mais pour pouvoir donner une animation dédiée à la course (indispensable pour que l'utilisateur ait un feedback clair avant de faire un saut dangereux) et une façon fiable d'atteindre une vitesse donnée, je dois reprendre le contrôle. Mais comme vous pouvez le constater sur cette mini-vidéo, ça va me prendre un temps de midi de plus que prévu ...

But as I try to make him truly run, with a dedicated animation and such, it looks like he took Gandalf's quote "Fly, you fools" a bit too litterally ...

edit: with InspectorWidget's help, it's now fixed. And with Cyril doing more testing on a built where both "<->" and ">->" making you dash to the right, it revealed that at some point, people will start running when they intend to slightly turn back to avoid collision. That's not only un-intuitive, but dangerously counter-intuitive. I need to get it removed.

Wednesday, October 10, 2012

Courir ?

En testant la démo "Back to School", Facet regrettait l'absence d'un bouton "RUN" dans le comportement actuel de Bilou. D'un côté, un mini-jeu comme "nuts'n'bolts" ne devrait pas avoir besoin d'un tel bouton (pas de grand trou à franchir, et un gameplay plus basé sur le timing que sur les réflexes). D'autre part, je ne suis pas encore décidé sur le mode de fonctionnement de la course.

Il faut un bouton pour courir, ça c'est assez évident. Mais sur le DPAD ou comme bouton d'action ? Est-il vraiment indispensable de le garder enfoncé tant qu'on veut courir ? A la fin d'une partie de Mario, on finit par attraper des crampes... Pourtant j'aime bien la phase "gagner de la vitesse" que ce genre d'approche permet, par rapport au mode "un coup de bouton X et ça y est, on court à pleine vitesse" dans Rayman. Au point que Peach et Shantae ont carrément un bouton "ne pas courir".

Have you felt the lack of a RUN mechanics in the latest Bilou demo too ? Facet surely did.

I was really missing a run button and the little pauses and lack of inertia take away from the fluidity. I'd like to bounce and slide more.

After I spent some time thinking about it, it becomes clear that "Bilou's adventure" will have such a RUN mechanics, where speed progressively increases, but that this would be absent of "Nuts and Bolts" (and possibly other in-between arcade games featuring Bilou).

I would like, however, to be able to release the button, and not force the power-player to keep RUN button pressed for 30 minutes if he wants to speed-run the game. Fundamentally, what I'd love to try is a sort of "cruise control" behaviour, where you press a button only when you want the DPAD to make you "accelerate". Once you release that button, you keep moving at the reached speed until you release the DPAD as well.


Mon impression, c'est que le fait d'accélérer progressivement ou non peut être découplé du mécanisme de "lecture" du gamepad. En d'autre termes, on pourrait avoir un bouton qui n'est pas "courir", mais "accélerer". Si le joueur mêne Bilou dans une direction sans enfoncer ce bouton, Bilou ne change pas d'allure. Par contre, dès que le bouton "accélerer" est enfoncé, la vitesse de Bilou augmente (plus ou moins) progressivement jusqu'à la vitesse maximale. Que celle-ci ait été atteinte ou non, Bilou conservera la vitesse acquise si on relâche le bouton d'accélération.

The poll is now open: which sort of RUN do you actually prefer ?
Mario: 62%
Rayman (PSX): 12%
Shantae: 0%
Kirby: 0%
Bilou (new): 25%

Saturday, September 01, 2012

Back to School!

Here's at last the demonstration of game engine improvement and new graphics for the School Zone, on a temporary soundtrack by Cyborg Jeff.
There's no "gameplay" or "mission" yet: you can navigate through a single map, bop sponges and dumbladors and track bugs (there sure are some). The ink doesn't hurt yet, but the baddies do. How many roll-jump can you chain ?

New features:

  • better animations with AnimEDS
  • transition animation (in jumps, mostly)
  • improved parallax scrolling
Known bugs:
  • Bilou may pause at the end of a downward slope. Just release the DPAD and move forward again.
  • Bilou may get stuck in corners. I need to figure how and why.
  • Dumbladors can be trapped mid air.
  • If the bottom screen turns pink, you've entered debug mode -- known as InspectorWidget. Press 'L' trigger for frame-by-frame game or hold 'L' and press 'START' again to resume "normal" gaming.
  • if all you can see is "efs:/strtrk.xm not found" on black background, you're using an incompatible linker or emulator. If you're using desmume, you need to add "--gbaslot-rom=self" on the command line.
Download SchoolTest.nds and have fun.

Oh, this is the 700th post, by the way ^_^
vu sur dev-fr.org, et - chose amusante - c'est aussi mon 700eme post sur dev-fr (et ça, je jure que c'est pas fait exprès :P)

edit: just understood and fixed the slope issues.

Thursday, September 15, 2011

run, you fools!

Mario, Sonic, Rayman ... chacun d'eux peut courir, mais l'impact sur le gameplay est chaque fois différent. Voilà un petit dessin-du-dimanche pour refaire le point. L'élément intéressant (pour un platformer) n'est pas tant qu'on va plus vite en courant, mais plutôt la manière dont on va exiger plus de maîtrise de la part du joueur quand il doit affronter "un saut plus compliqué".

It's not that much about going faster, but rather about clearing longer holes with a jump. In most platformers, this is achieved through the RUN mechanics ... but not all. Check out my scribbled notes for details ^_^

Dans SuperMario, il faudra gagner en vitesse, donc essentiellement contrôler l'absence d'obstacles. Le "triple saut" des épisodes du nouveau millénaire poussent cette contrainte encore plus à l'extrème.

Rayman, en comparaison a un bouton de course "binaire". Un seul bloc suffit à faire un saut long. Par contre, le jeu est beaucoup plus pointilleux sur le timing du saut (point-test unique contre deux tests pour Sonic, peut-être ?).

Keen, lui ne court jamais (ou tout le temps, c'est selon), mais l'activation du pogo permet de faire des sauts plus longs (mais ici aussi, il faut faire d'avantage attention au timing et à l'environnement). Fury est un peu un mélange de Keen et Sonic: on court de plus en plus vite, et on saute d'autant plus haut qu'on enchaine les sauts (il suffit de garder le bouton enfoncé).

Saturday, December 31, 2005

Mechanics (t.a.g.)

This is a term I borrow from Kirby Kid -- aka Richard Terrel.

Mechanics are the player initiated actions from controller inputs as designated by the game designers. These actions have effects on the gamestate in terms of the variables and dynamics of the gameplay system

.

In fact, if we consider that gameplay is the part that defines and rules interactions between game elements based on user inputs, mechanics are actually atomical element of the gameplay.

Une mécanique de jeu, ça va être un élément atomique de gameplay. Et le gameplay, c'est l'ensemble des règles déterminant les interactions entre les éléments du jeu sur base des actions de l'utilisateur. Oui, je comprends: ça paraît très formel, mais c'est justement l'idée derrière l'emprunt de ces termes à Richard Terrel: permettre de formaliser le discours sur un jeu. Dans mon cas, je fais principalement des jeux de plate-formes, donc mes mécaniques principales seront 'sauter' et 'courir'. je leur donne des tags dédiés. Je les note en Anglais et en majuscules (JUMP) quand je veux vraiment dire 'la mécanique du saut // le fait que le joueur pousse sur le bouton de saut pour faire sauter le personnage'.

I'm mostly building platformers here, so my primary mechanics are JUMP and RUN. I can modulate them with FLOAT. I don't quite have a shooting or fighting character, but it instead GRAB and THROW things.

As you have noted, I use all-caps when I want to obviously refer to gameplay actions (mechanics) within the text. I promise I won't shout too much.

Readme: KK: Mechanics & Abstractions (p.2)