Showing posts with label gameplay. Show all posts
Showing posts with label gameplay. Show all posts

Saturday, September 19, 2026

Croc's World - il est où le fun ?

Des blocs à casser avec des power-ups dedans, un thème pyramide ... vous pensez bien que j'ai cliqué sur "télécharger" en Juillet 2020 quand je suis tombé sur une démo de "Croc's World", pensant tomber sur quelque chose du calibre d'un Super Mario Bros revisité ... ah ouaih. Cruelle déception. 

Mettons de côté les graphismes qui ont réussi à paraître travaillés-mais-cheap, avec son animation génération-flash où on s'est contenté de faire pivoter sur leur axe quelques décalcomanies, et l'insupportable boucle musicale de 8 seconde qui va continuer tout le jeu et concentrons-nous sur le gameplay.

Croc avance lentement, et toujours à la même vitesse. Croc s'arrête instantanément si je lâche le stick, même s'il est en l'air. Croc saute en boucle si vous gardez le bouton de saut enfoncé.

Bref, loin de l'athlétisme de Super Mario, on a ici l'impression d'un personnage ... mou. Ça aurait pu passer pour du character design sans le ton guilleret de la musique et le repompage de la grammaire de jeu de Mario avec les blocs-briques et les blocs-étoiles-pas-question pour les power-up. Ce sentiment de mollesse est à son comble dès que vous essayer de cogner quelque-chose avec votre tête. Tapez dans un bloc dans Mario, il bouge un peu et en même temps vous fait rebondir vers le bas. Rien de ce genre ici: le bloc de Croc reste immobile. Aucun son ou effet visuel ne vous confirme que vous auriez pu le briser. En plus, Croc se contente de s'arrêter en l'air et commencer à retomber. Ça peut passer pour une guimauve comme Kirby qui s'applatit contre le plafond, mais Croc ne fait pas ça non plus. Et ça devient ridicule quand Croc devient équipé d'un casque et peut enfin briser les blocs.

Et là encore, c'est mou. Le power up monte lentement hors du bloc (par devant ?_?), avance lentement, se met à tomber sans transition quand vous cassez un bloc sous lui ... bof, quoi. D'autant que les blocs-étoile ne contiennent *que* des power-ups. Il n'y a aucun suspense du type "est-ce que ça va être une pièce ou un champi". Si c'est une pièce, c'est hors des blocs, si c'est un "champi", c'est dans le bloc. Et ne comptez pas sur la présence de pièces/power-ups/vies dans les blocs de briques, hein. On est sur du sans surprise. 

Il y a un moment, le développeur de Super Sunny World nous confiait

Did you ever notice: In Mario 3, if you hit a block that bounces up, it pushes Mario downward faster than if he hits a solid block? There's so many subtle details in SMB3 that make it play great! Super Sunny World (my new NES game) will also do this!

Et on aurait pu se dire "il en fait un peu trop, là. On a pas besoin de cloner Super MArio à ce niveau de détail-là pour faire un jeu!". Sauf qu'en fait, sans ce niveau de détail, on fait un Croc's World. Et ça se sent manette en main.

Idem quand Kirby Kid nous expliquait la "functional blind box" des tirs de Super Mario:

To balance out the effectiveness of fireballs and the deconstructive effect it can have on the core gameplay (making things less interesting JUMP wise for the player), the developers of Super Mario Brothers implemented some genius design features.

On peut aussi se demander s'il n'en fait pas des tonnes. Mario aurait pu tirer en ligne droite. Est-ce que ça aurait changé à ce point la donne ? ... Bin essayez donc de vous amuser en lançant les caillous de Croc, tiens. On en reparle après.

Alors pourquoi Croc est il si mou ? Sans doute parce qu'à l'origine ce n'est pas juste un jeu pour les gamins: c'est un jeu mobile pour les gamins. Donc contrôles imprécis, lisibilité discutable et compagnie. Toucher un ennemi en tirant depuis un saut pour compenser l'angle ? Hah! Aucune chance.

Thursday, November 23, 2023

Making swim fun

Somewhere last year April 2023, I had been reading something a neogaf thread about water levels in platformers and whether it might be possible for them to be actually fun. Because, well, I don't think I'll manage to copy the awe DKC sharks may produce and I can't ask my brother to come up with something like David Wise's Aquatic Ambience for my Nintendo DS title.Yet there will be water.

There have been some platformer titles over the last years that came with fun-to-play water levels. I think about "20000 lums undersea" level in Rayman Legends and some level of DKC: Tropical Freeze. Swimming in Ori and the Will of the Wisps was pretty pleasing as well. All these games share something: they benefit from analog stick and they depart completely from their 8-bit and 16-bit counterparts by letting you target any direction freely. Your character will typically need some time to turn himself towards the direction you want though, which works fairly well.

Les niveaux aquatiques dans les platformers, ça a mauvaise réputation. Vu le nombre d'échecs que Vanilla Lake Forest of Illusion 2 m'a infligé, je ne peux pas franchement leur donner tort. ça a commencé à aller un peu mieux avec Donkey Kong Country, d'abord parce que la musique de David Wise était aussi époustouflante que l'animation des requins, mais surtout grâce à Enguarde qui permet de cesser de se battre continuellement avec la gravité... Et d'avoir une chance contre la poiscaille.

Plus proche de nous, Tropical Freeze et 20000 Lums sous la mer l'Océan des Songes de Rayman Origins nous ont donné un nouveau mode de fonctionnement d'un personnage de jeu de plate-forme qui tombe dans l'eau. Ils sont maintenant capables de se diriger dans n'importe quelle direction (indiquée par le stick analogique), accélèrent dans la direction correspondante si on appuie sur un bouton. C'est souple. On voit son perso se tortiller pour faire un demi-tour ce qui donne l'impression d'être dans l'eau ... On peut chercher une certaine forme d'élégance dans les trajectoires qu'on prend ... d'une certaine façon, ça se contrôle un peu comme un jeu de micromachines avec beaucoup de dérapages. Ou un avion qui fait des loopings.

Dans chacun de ces cas, exit la "blind box fonctionelle"  d'Enguarde: on peut attaquer dans n'importe quelle direction, à n'importe quel moment.

But the part I prefer is how you get a speed boost into the direction of choice with the JUMP button, and especially how you jump out of water in Ori and the Will of the Wisp like you were a true dolphino. I could certainly do something alike in Bilou Dreamlands. (at first, I wanted to make it an unlockable move so that you could discover secrets later on when you've unlocked some ability ... but that's something for Bilou's Adventure instead).

Of course, with the NDS DPAD, I can't truly have free aiming like in the switch/wiiu titles, but maybe I can find something approaching:

  • when you hit FOOT, you get a speed boost in the one-of-eight direction you're aiming with the DPAD.
  • during that move, you can modulate your direction (say, +/-15°) around that main direction with the DPAD
  • the swim animation eventually comes to a slow down step where you can chose a new main direction and hit FOOT again to keep speeding.

Une des choses que j'ai préférées dans ces jeux plus modernes, c'est la manière dont notre personnage peut jaillir hors de l'eau si on fait une "attaque" près de la surface. J'avoue qu'au départ je pensais utiliser quelque-chose inspiré de la physique de nage de Fury of the Furries, où on ne sait sortir de l'eau que s'il y a une berge suffisament "à niveau". Puis offrir le "mode dauphin" avec un level-up, comme le fait Ori and the Will of the Wisps. Mais bon, l'objectif ici, c'est un "dreamland", pas un castlevania. Pouvoir bondir hors de l'eau dès le début du jeu, pour le fun, c'est l'objectif. Première chose à tenter, donc: permettre à Bilou de jaillir de l'eau si on tente de sauter près de la surface.

Deuxio, prévoir un dash-swim qui propulse Bilou dans une direction indiquée par le DPAD si je tente de sauter dans l'eau. ça pourrait être intéressant d'en profiter pour essayer de faire l'équivalent aquatique d'un wall-jump parce que j'ai toujours trouvé plus simple de se propulser en utilisant le bord de la piscine que de nager à proprement parler.

Tertio, le dash sera normalement suivi par une période de "retour au repos" pendant laquelle le bouton saut n'aura aucun effet, mais ça pourrait être intéressant de prévoir d'enchaîner sur un dash si on utilise plutôt le bouton "ramasser". On nagerait alors à la vitesse maximale en enchainant pied - main - pied - main avec le bon tempo... Pas d'attaque aquatique prévue pour l'instant, mais je n'ai pas non plus un bestiaire aquatique débordant ... 

Quarto(?): permettre d'infléchir la trajectoire vers le haut ou le bas avec des petits coups de DPAD pendant un dash horizontal. Et vice versa ... et diagonalement. Ce sera l'équivalent à la croix directionelle des mouvements libres au stick analogique.

One other fun thing that might be worth experimenting is doing the equivalent of wall-bounce underwater. At least, it might be the easiest way to get a first experience with wall jumps in my engine.

And finally, one possibly terrible (or fun) idea would be to keep moving fast underwater with properly timed FOOT / HAND / FOOT / HAND button pressing
 

Sunday, November 27, 2022

Tué par la caméra

C'est devenu un problème récurrent pendant que je progresse dans les niveaux de Super Mario 3D World: tôt ou tard, je finis en-dehors du niveau, et régulièrement, c'est suite à un mauvais mouvement avec le stick-caméra.

Le jeu a fait le pari d'un mélange 2D/3D qui (globalement) marche plutôt bien. la perspective montre une généreuse partie du sol, ce qui autorise la création de "salles" dans lesquelles les quatre joueurs peuvent aller et venir, coopérer ou entrer en compétition. La manipulation des personnages y est d'ordinaire plus proche d'un Link's Awakening Switch que d'un Super Mario. ça, c'était prévisible. Elle est aussi plus proche d'un Link's Awakening Switch que d'un Mario 64, et ça, ça vaut peut-être la peine qu'on y regarde de plus près.
Dans Mario 64, le personnage peut normalement prendre n'importe quel angle sur le stick. Le contrôle est doublement direct (pour reprendre le terme défini par Kirby Kid dans The Coefficient of Clean ): la direction du stick s'applique directement à l'orientation de Mario et l'amplitude du stick s'applique directement à sa vitesse (ou à son accélération ... ma mémoire du jeu me joue un tour). En comparaison, les mouvements de Mario dans 3D World sont confinés aux 8 directions accessibles à un D-Pad, comme si le jeu avait été conçu sur SNES.

It keeps happening again and again as I play Super Mario 3D World : sooner or later, I end up out-of-path and die. And most of the time, it is because accidentally I hit the camera-stick. I believe the core issue about it is linked to the 2D/3D gameplay mixture at the core of the game -- which for most of the game works quite well. The default perspective shows a good deal of the ground, creating room where the 4 players can come and go, cooperate or compete. Character control is looking more like Link's control in the Switch Link's Awakening game, with 8-directions (as if the design had happened on SNES pad) rather than direct-orientation direct-amplitude control used in Super Mario 64.

En soi, le 3D world étant principalement consitué d'objets alignés sur une grille cubique, c'est un excellent choix de design: quand il va y avoir une passerelle un peu étroite à franchir, le joueur aura toujours moyen d'être pile dans l'axe où il ne se met pas à tomber au bout de trois pas. Mario 64, au contraire, était construit avec des polygones "libres". Une passerelle pouvait se trouver sous n'importe quel angle entre deux plate-formes qui adoptaient une géométrie polygonale quelconque (croyez-en un vieux qui y a joué au pavé numérique sur émulateur, et qui donc devait zig-zagger dans ce genre de situation)

Although Link-like controls are surprising at first, they work fairly well, and that is mostly (imho) because every object in SM3DW is aligned on a cubical grid. SM64 instead used polygons much more freely with any-angle (narrow) platforms here and there, asking for precise adjustment of Mario's direction to avoid zig-zagging. Discretised directions in SM3DW work well with discretised world objects which works fine with the original SMB blocky world design. Next they discretise camera angles by 45° as well. Maybe that's where things get me killed.

Les mouvements de caméra eux aussi ont été discrétisés. On regarde de face, de profil, ou sous un angle de 45° entre les deux. Un léger mouvement du stick droit de la switch nous fait basculer d'une perspective à l'autre dans un mouvement adouci dans le temps mais déclenché d'un coup quoi qu'il en soit. Et ça, en jeu solo, ça fait mal: le stick caméra est alors normalement sous les 4 boutons d'actions. Le moment où vous avez le plus de risque de l'accrocher par mégarde, c'est au milieu d'un saut un peu long. Pour peu que vous soyez dans un niveau qui reproduit en réalité un parcours 2D dans un moteur 3D, il ne faudra pas longtemps pour que ce changement d'orientation se traduise par un changement de la trajectoire de Mario (la direction imposée par le stick est relative à la vue, pas à Mario lui-même, or la vue vient de changer). Le temps de s'en rendre compte, il est trop souvent trop tard pour réagir et on aura au mieux le droit à 2 ou 3 wall-kicks pathétiques avant de ouahaouhouahouahoahahahahaaa au fond du niveau.

You usually have the camera presented so that level goes left-to-right as in a SMB level, but with a short knock on the right-controller stick, you can trigger a responsive-yet-smoothed 45° turn of the camera. And with the camera stick being just below the RUN and JUMP button, it plays trick on me when I'm doing a solo session: most of my accidental camera turns happen in the middle of a long jump. And since the direction of Mario is relative to the view rather than to the world, I'm suddenly heading out of the screen. If that jump happens in one of those level that actually implements a 2D course with 3D objects, that 'out of screen' actually means 'into the bottomless pit that is everywhere around'. Remember how often you thought about a 2D platformer that "that pirhana plant sure inst' as wide as the road!" ? Here you can definitely sneak behind the plant, but you also can fall off the road any time. You'll be granted a few pathetical wall-jumps before dying if you're lucky.

Et pour ne rien arranger, le jeu nous met sur la même input (stick directionnel vers le haut) deux mécaniques: avancer vers le fond de l'écran ou grimper vers le haut. On casse ici le principe d'individualité des contrôle (chaque mécanique a son morceau de manette qu'il ne partage avec aucune autre mécanique, toujours d'après le lexique de Kirby Kid).

Dans la plupart des niveaux, c'est plutôt un bon compromis: ça rend le fait d'escalader un mur spontané par rapport au déplacement sur le sol bidirectionnel, de même qu'il paraît naturel d'utiliser le DPAD vers le haut pour monter les escaliers dans un Zelda 2D (et si on avait pu y escalader les montagnes, ça aurait marché aussi). Mais revoilà les niveaux linéaires où les traceurs de parcours ont décidé de nos faire profiter de la vue splendide sur les nuages en arrière plan plutôt que de nous coller un mur devant les yeux. Soit.

As if it wasn't annoying enough, pushing the direction stick up triggers two different mechanics: it makes you walk farther away from the camera, and it let you climb up. So much for controls individuality (another coefficient of clean control identified by Kirby Kid). It is a quite nice mapping in many levels: it makes climbing a wall natural in a world where 2D floor is used, the same way pushing a DPAD up feels natural to climb up stairs in a 2D Zelda game. But then came the sideways athletic levels again, where designers wanted us to enjoy a beautiful clouds background rather than a boring wall. As soon as you add a climbable obstacle in that setup, Mario will switch from climbing to "visit those beautiful clouds far far away" in no time once you're at the top of the obstacle. 

Sauf que si vous ajoutez une grille à escalader (direction vers le haut), une fois Mario arrivé en haut de la grille, vous avez assez peu de temps pour relacher la direction 'vers le haut'. Faute de quoi, vous irez dire coucou aux jolis nuages d'un peu plus près. "Dommage", comme dirait Bowser. 

Notez que les concepteurs ont réalisé qu'il y avait un problème, et qu'ils ont ajouté une grille-de-fond par-derrière la grille-à-escalader. ça rattrapera le J.L.N qui avait mis uniquement son stick vers le haut (et donc ira s'accrocher à la grille du fond une fois arrivé en haut de la grille-qui-bouge), mais pas le papa qui avait maintenu haut et avant simultanément dans une habitude d'optimisation des mouvements sur les lianes de la Jungle Jaja.

 

Notez aussi que le problème ne se limite pas aux niveaux sans mur en arrière plan. Ici, par exemple, on est supposé se promener en rebondissant sur les fourmis invincibles tandis qu'on passe par-dessus des pics. Fort bien tant qu'on ne se met pas en tête d'utiliser la 3eme dimension pour aller s'accrocher au mur avec le costume de chat. Parce qu'en réalité il y a un espace de la taille d'un Mario entre les fourmis et le mur, donc vous pouvez parfaitement vous retrouver à les louper parce que vous êtes par-derrière alors que ce tronçon de niveau est conçu pour être joué sur un seul plan. Et vous pouvez aussi vous retrouver à tomber par-devant le niveau suite à un rebond mal calculé sur le mur du fond, naturellement.

And unfortunately, that not only happens in levels where there is no background walls. In that last video, Mario is expected to bounce around from one invincible ant to the next, which can conveniently walk in spikes. Perfect as long as you don't try to use your shiny cat costume to explore the 3rd dimension and climb the wall for a shortcut. If you try that, you're most likely going to miss the next ant because they aren't wandering just next to the wall, but one Mario away from the wall. You are perfectly able to be between monsters and the "save"-your-life wall. And you can still fall by going towards the player after you (accidentally ?) wall-jumped against that background wall.

Thursday, May 28, 2020

Twisted Dreams and the level designer contract.

As I'm going deeper into level design analysis, I realize that there should be a sort of "contract" between the level designer (hereafter denoted "I") and the player (hereafter denoted "you"). Something that will at least feature the following items:

  • Art. 1°: I will not tease you with collectibles that are impossible to collect.
  • Art. 2°: Whenever you will die, you will know that it was your fault.
  • Art. 3°: I will not put you in a situation where the only way to keep on playing is to die.
I'm afraid we can't do that. Yes, we can.
Many earlier games infringe those rules, at least partly. Whoever has played Commander Keen IV has at some point wondered how one could collect all those 1-UPs in the deepness of the lifewater Oasis... or that impossible-to-grab diamond at the end of Level 2 in GreatGianaSisters.


Un contrat. Quand on y réfléchit bien, c'est bien un contrat que l'on établit entre celui qui dessine le niveau et le joueur. C'est loin d'être uniformément adopté, et ça ne l'a sans doute pas toujours été. Il serait constitué des articles suivants:

  1. Je ne tente pas le joueur avec des bonus impossibles à atteindre
  2. Si le joueur meurt, il sait que c'est de sa faute
  3. Je ne crée pas des situations où le seul moyen de continuer à jouer est de décider de perdre une vie.

Si on respecte l'article 1, un bonus placé apparemment hors d'atteinte peut indiquer au joueur qu'il n'a pas encore compris une nuance du gameplay. C'était mon cas pendant longtemps dans Donkey Kong Country, jusqu'à ce que je découvre le ROLL-JUMP dans un niveau secret de DKC2 qui le rendait obligatoire. C'est visiblement aussi le cas avec Great Giana Sisters (ci-dessus) où j'ai cru jusqu'en 2020 que certains diamants étaient véritablement impossibles à obtenir.

Dans commander Keen, l'article 1 est totalement bafoué avec ce niveau "Lifewater Oasis". Du coup, si ailleurs je vois des bonus trop hauts, ou au milieu de pics, comment ne pas croire que c'est de nouveau un piège ?

When you do observe art. 1° of the contract, however, placing an item somewhere that looks out of reach can be perceived as the signal that the player is missing some nuance in the gameplay mechanics. This happened in Donkey Kong Country, but I wasn't aware of the contract before I forced my way through the lost levels of DKC2 and discovered the roll-jump move.

Yes, you can!
It happened to me when playing Giana: Twisted dreams, too. There are two modes in that game: punk or cute. The punk Giana can DASH (even mid-air) and the cute Giana can HOVER. Let me call "TWIST" the mechanic that switch between punk and cute.

J'ai eu la même farce il y a quelques années en jouant à "GS: twisted dreams". On y contrôle soit giana-punk-qui-dashe, soit giana-cute-qui-plane. Il est cependant possible de changer de personnage pendant une descente planée, et de se retrouver du coup dans le monde "bisounours" de la punk tout en utilisant un mouvement normalement associé au monde-halloween de la cute.

Je n'ai pas vu de panneau-tuto pour ça, et pendant tout un temps, j'avais cru que le seul moyen pour changer de personnage, c'était d'utiliser le bouton d'action correspondant (DASHer ou planer). Cette fois, il aura fallu un 'let's play' pour que je m'en rende compte: j'avais fini par lacher le jeu.

Black Forest did merge both TWIST and DASH mechanic into one convenient action button. If you press that button, you DASH, and if you weren't punk, you TWIST as well. Same for the HOVER button. That makes them more direct than e.g. Mickey Magical Quest approach where you use L+R to select a power, then activate it with X and finally use it with B. What I had not discovered (and almost made me drop the game) when my brother let me try the game, was the trigger that TWIST without performing any action. When you look at this gameplay video, it also becomes clear that you can TWIST while HOVERing without losing the ability to HOVER ... which is pretty un-intuitive. It can however be suggested to the player by an appropriate layout of cute-gems and punk-gems.

Sunday, February 16, 2020

Plate-formes volantes ?

Si je veux faire quelque-chose de plus "aérien" pour la dernière zone, il va me falloir des plate-formes volantes. Mais voilà, je n'ai pas envie de leur coller des petites hélices (qui aurait fabriqué ça) ou d'invoquer du gravitium (pas partout, en tout cas). Pas envie de resservir le cliché du "bloc de pierre collé à un autre bloc de pierre qui vole grâce à des petites ailes de Parakoopa" ...

Pas convaincu non plus par des piafs qui auraient justement une forme de plate-forme. Il y a quelque-chose d'un peu ce genre-là dans DKC:TF, mais il s'agit de plus de bumpers volants -- rôle que les parakoopas avaient employé déjà bien avant. Ici, je veux bien parler de quelque-chose de suffisamment large pour qu'on puisse marcher dessus et de suffisamment coopératif pour qu'on puisse traverser un écran avant qu'il ne s'en aille.

You know, I'm trying to make Bilou's Adventure a somewhat consistent world. I won't say "believable" or anything like that, because we play as a ball with hands/feet floating around him anyway, but I'd like to avoid introducing too many alien elements like gravity-defying blocks or cartoon pockets or even human characters. If something exists in the game's world, at least Bilou and Bouli must find it believable. And that makes designing a mountain level with floating platforms ... a bit more challenging. I'd like to avoid the generic, Zool-like "floating rectangle -- just don't ask", and its Mario-like "floating rectangle with not-so-little wings".

Je m'oriente vers un croisement entre les zeppelins et les piafs. Les saucisses/zeppelins, c'est sympa. J'ai bien aimé l'idée dans Endymion, dans Titan et dans "L'incident Jésus". Dans Kirby, aussi ^_^. Avec un bec et des zyeux, on peut leur donner plus d'expressivité et les écarter d'une trop grande ressemblance avec Kirby, justement.

ils sont suffisamment dépendant des caprices du vent pour ne pas vraiment pouvoir éviter que Bilou ne les emprunte, pas vraiment mis en danger par ses atterrissages non plus.

I've postponed this post for a while as I was considering and then discarding ideas. I finally converged towards zeppelin-birdos. I loved zeppelin-like sentient creatures in Endymion, Titan and Frank Herbert science fiction books. They're close enough from a regular platform shape so that we can land and walk on them, not just bump on them. But in Bilou's world, it would be best if they had eyes and stuff that can suggest they feel something. And giving them little wings will make them more interesting to look at when you're not on them. But they're wings are too small to be able to do anything but follow the winds. And their body is soft enough to avoid taking damage from Bilou's lands.

Sure, I'm not the first one to try using second-class creatures as platforms. One of the most prominent example I can think of are the owls in Tropical Freeze. You'll note that these are more floating bumpers than floating platform, though: you cannot move freely just like on a parakoopa. And it make sense: if you had intruders landing on your head, chances are you wouldn't just wait for them to leave. Even the Parabeetles don't just keep moving unchanged if you land on them. Maybe SML2 owls ?

J'ai écarté juste avant ça des tapis volants (pourtant, des écharpes rouges volantes, ça aurait été un clin d'oeil sympa) et des plate-formes pendues à des poulies. Des cordes et des ponts suspendus, il y en aura sans aucun doute, mais je n'ai aucune raison pour justifier que Bilou ne puisse pas s'accrocher au "câble porteur", et donc c'est très différent d'une plate-forme volante.

A final word about dismissed designed. No flying carpet (flying scarf could have been fun). No walkable cloud. Since I plan to have ropes between peaks here and there, I must admit I've been tempted to go for platforms-on-pulleys. But no matter how I approached it, I couldn't explain why Bilou wouldn't just grab the carrying rope in case of emergency. Knowing my kids, they'd feel it unfair if they went for the rope and just fell through what is just decoration element.

Saturday, February 15, 2020

Soldier Blade: can you be Mr. Perfect ?

Quelque part entre 2000 et 2001, mon frère me ramène un émulateur PC-Engine et une quantité impressionnante de ROM pour aller avec. N'étant pas un fan de Bonks, je lève un sourcil circonspect. Une machine de 1989 ? T'es sérieux, là ? Mais deux semaines plus tard, j'arrive au bout de Tyrian, donc je jette quand-même un coup d'oeil à ce que son CD a dans le ventre ...

Et je tombe sur Soldier Blade. J'ai toujours eu un faible pour les shoot-em-up (un reste de ma phase 'quand je serai grand, je serai astronaute' d'avoir lu les Yoko Tsuno, j'imagine), mais à part Warhawk sur C64, je dois bien reconnaître que j'ai finalement assez peu joué aux titres de shoot, largement dominés à l'époque par le style 'R-Type' où le vaisseau explose au moindre pet de moustique.

Tyrian était plus dans la veine de Warhawk, avec une barre de bouclier qui compense la majeure partie des tirs encaissés. Mourir, dans l'un comme dans l'autre, c'était recommencer le niveau du début, parfois en aillant perdu une partie de ses power-ups dont je dépends tant. D'où mon attachement à Tyrian où au moins on fait l'acquisition de certaines armes de manière définitive.

Soldier Blade avait un comportement différent et assez unique pour moi: on peut stocker des power-ups, les consommer comme super-bombes (généralement contre les boss), les combiner pour monter en puissance (si je ramasse 3 power-ups "laser" à la suite, sans ramasser de 'plasma' ou de tirs rouges, je passe au laser-niveau-3 en trident. Cerise sur le gateau, si j'ai le laser-3 et que je ramasse un 'plasma', je passe directement à plasma-3 (note bien ça, Space Invaders Extreme).

Si je me fais latter, mon vaisseau explose, éparpillant mes power-up autour de moi. Un autre vaisseau arrive alors assez rapidement à la rescousse pour reprendre le combat. Suffisamment rapidement pour que je puisse récupérer au moins 2/3 des power-ups perdus. La pénalité est beaucoup moins rude que dans un R-Type où on redémarrerait avec un vaisseau "tout nu".

Avec une bande-son tout en synthé qui donne la super-pèche, des graphismes certes aux coloris limités mais réalisés avec un brio, le jeu a beau tourner sur un processeur 8-bit, je suis scotché. Mais voilà: le jeu ne propose aucune sauvegardes et cet émulateur-ci, contrairement à z-snes et nesticle (que j'ai beaucoup utilisés sur mon AMD K6-II à l'époque) n'offre pas de save-states. Du coup, le seul moyen d'aller plus loin dans le jeu en cas de game over, c'est de recommencer et de s'améliorer. Recommencer de la mission 1.

Bref, après quelques semaines d'entrainement intensif (l'avantage d'avoir réussi en 1ere session à l'unif, c'est qu'on a deux mois de vacances ;-) arriver à la mission 6 était devenu une sorte de formalité. Un peu comme faire ses gammes. Y arriver avec suffisamment de vies pour pouvoir atteindre ce que je croyais être le boss final, c'était une autre histoire: on parle quand-même d'un niveau 2 fois plus long que les autres, avec des espèces de boss rush. Battre le boss final, je n'y suis jamais parvenu. Il aurait presque fallu faire un sans-faute jusqu'au boss pour pouvoir tenter le coup.

Si le jeu n'est pas à proprement parler un 'bullet hell', il y a quand-même énormément de projectiles à éviter, chacun susceptible de détruire notre vaisseau. Si bien que j'ai fini par prendre conscience que je jouais mieux quand je n'essayais plus de regarder en détail les différents objets du jeu. Je fixais mes yeux au centre de l'écran (non plus sur mon vaisseau) et je concentrais mon attention sur ma vision périphérique. Je pouvais alors bien mieux détecter les différent mouvements et guider mon vaisseau vers les zones dégagées.

Je ne suis pas devenu "Mr. Perfect". Je n'ai pas fini le jeu. Peut-être si j'avais pu me rendre compte que le vaisseau-compagnon peut faire office de bouclier contre à peu près tous les projectiles ?

Wednesday, February 12, 2020

Thèmes Elementaux

Faute d'un meilleur terme. Mais je suis retombé sur une cogitation de fin 2019 quand est apparu l'idée de faire un 'Bilou's Dream Land', mais avant que la décision ne tombe de prendre la montagne (Peaks Zone) comme 4eme et dernier niveau.

You know those many games where the levels are designed around "elemental" themes. Like fire - ice - forest - water - air - metal. It's almost everywhere. And it's not the most novel idea you can think of. But it brings in something interesting, as all the challenges / monsters can be designed around a unifying concept. And generic ideas can be declined according to levels, like fire-bats in the fire zone, freezing-bats in the ice zone, and so on.

I'd like to have diversity in 'Bilou Dream Lands', but not that kind of diversity. What I'd like to have is gameplay diversity. I've ruled out having keen-like keys and doors in the School Zone because it would make little sense, but I'd like to have them in a Bilou game anyway. At least in the pyramids. For the lack of a better term, I'll think of those as "elefundamental gameplay themes".


pour l'inspiration. Hoshi wo ou kodomo via Tohad
Quel environnement utiliser pour la 4eme zone de ce nouveau jeu? La logique voudrait que je réponde "le chateau" pour m'intégrer au mieux dans le design existant (monstre, tilesets, etc.) Mais ça nous donnerait avec la School Zone et la Pyramide un 3eme environnement "artificiel" qui risquerait d'être redondant.

Je suis très tenté de répondre "le temple englouti", mais je préfère le garder pour un jeu plus complet du point de vue scénario. Il faudrait que je trouve 4 "thèmes éléfondamentaux" au niveau du gameplay. La pyramide apporte le thème "labyrinthique". l'école quelque-chose de plus "militaire" avec des ennemis organisés et sous les ordres de Square Root.

La logique voudrait aussi que le 4eme monde soit le plus exigeant au niveau du "platforming". Potentiellement plus vertical et/ou avec plus de trous/lave/... (partant du principe que je ne recyclerai pas le niveau vertical de fin de School Rush pour ce jeu).

Tohad. Toujours pour l'inspiration et la palette.
So, what are the 'gameplay themes' for the already-designed zones ? and what should the 4th zone offer to complete the experience in an interesting way ? Pyramid level at least is clear to me: it brings in the 'maze-like' theme. The School zone brings in the 'invasion army' theme with pendats following SquareRoot orders.

There wasn't much 'theme' for the green zone, but it could turn to cooperation with NPCs like the rabit and the frog. Now, what should be in the 4th zone. What is missing ? Possibly some tricky-platforming elements, with moving platforms and so. Think about mushroom levels in NSMB, if you want to picture what I'm talking about. The extra bonus with 'platforming' as the fundamental theme for level 4 is that it stems for open-space areas rather than enclosed areas and will better balance the game than, say, a "castle zone" or "lost temple" would do.

Je n'ai pas de meilleur nom pour ça, mais si vous voyez les niveaux-champignons de SMB et NSMB, vous avez une idée de ce que la 'peaks zone' pourrait apporter comme thème élémental. Bon, bin j'ai plus qu'à trouver quelque-chose qui convienne pour les plate-formes volantes, du coup...

Pourquoi ce trip "thème élémental" ? Disons qu'il est classique dans les jeux de baser les différents mondes autour d'un thème basé sur un élément (eau, feu, roche, air ...). Chacun de ces thèmes inspire à son tour des idées d'obstacles, de monstres, de boss... Mais si on prenait le contre-pied. Si on cherchait à avoir des thèmes de gameplay pour définir chaque "monde".

A compléter avec la Méthode Hascoet (Rapidité - Astuce - Synchronisation - Précision) ?

Friday, September 15, 2017

Come back from the ink ?

Bon, entre les programmes d'activité des loupiots qui grandissent, les centrales vapeur qui tombent en panne et les interventions de réparation dans la maison, je me prends une petite paire d'heure pour essayer de corriger un couac avec le passage à un niveau vertical dans "School Rush": s'assurer que le jeu relance bien le niveau si l'encre nous rattrape.

Je dois  notamment éviter que Bilou ne puisse rester indéfiniment dans un encrier sous l'encre. Etre invulnérable dans l'encrier, ok, mais pas retomber immédiatement dedans quand il nous projette jusqu'à la fin de la batterie.

It is time to check what the vertical level looks like when we add rising ink in the mix. And the first tests show that there's quite some tuning required. The first mis-steps that my last playtester did led Bilou to be stuck in the ink, invulnerable, but also unable to keep on playing. One of them involved cycling between in-inkjet and hit.

I'm trying to make the state machine detect that we're in the ink and switch to a "swim up" state that would give the player a chance to get out. This is possible because ink has an additional flag that makes it possibly different from a regular hazard. All the engine requires is that the test on "hurts and is ink" precedes the test on just "hurts".


Se faire projeter par l'encrier, c'est "$HJUMP". L'encre, c'est à la fois F_HIT (blesse Bilou) et F_ISINK (fait flotter les éponges). Une réaction "normale" pour le personnage qui tombe dans l'encre serait d'essayer de nager pour en sortir. En particulier s'il atteint quelque-chose qui peut le propulser hors de l'encre. Ce sera "$SWIM", dans lequel on est insensible à l'encre mais qui repasse faire un test périodiquement et continue donc à consommer des points de vie tant qu'on est dans l'encre.

Il faudra aussi que je complète ce "swim" lorsque Bilou arrive hors de l'encre.

Wednesday, April 19, 2017

Augmentons la Gravité ?

J'ai eu l'honneur (et un peu la chance, il faut l'avouer) d'avoir un retour de Romain Claude -- dévelopeur principal de Splashers sur mon School Rush. Un feedback assez technique et qui ne sera pas facile à prendre en compte, parce qu'on s'attaque ici au coeur du gameplay.

Mon principal retour pour le moment concerne la prise en main, que je trouve assez raide. De plus, le fait que le jeu soit assez mou rend le tout assez hardcore, même en facile ... Côté contrôles vous devriez avoir un air control progressif (de moins souple à beaucoup plus souple), et ceci marié à une gravité plus forte rendra la prise en main plus réactive et agréable. Par contre pour retrouver la même hauteur de saut il faudra augmenter la valeur de l'impulsion.

I'm honoured and proud that Romain, main designer of the platformer "Splasher" took the time to try and give detailed and technical comment on my own "School Rush". In the upcoming weeks, I'll likely be busy understanding the implications of his proposals and doing attempts to adjust the gameplay of SchoolRush accordingly.

The first suggestion is to increase the gravity to get more a reactive experience -- which echoes a comment from Kirby Kid in a previous iteration. That's not something to be taken lightly, though. Many things in the game depends on the gravity. Changing it by a ration g'/g means that you have to modify the jump impulse v1 so that the maximum height of the jump -- v1²/2g -- remains constant. But even so, the amount of time you stay in the air is reduced due to the increased gravity, meaning that the distance you can clear with a jump is shortened.

Mais changer la gravité, c'est changer beaucoup de chose. En plus d'ajuster la puissance de l'impulsion, je dois aussi ajuster la vitesse de déplacement de Bilou puisque le temps qu'il passe en l'air, lui a été réduit. Sans celà, il faudrait revoir tous les obstacles du jeu.

En fait, une fois tous les paramètres dépendants de la gravité réajustés, on a le même jeu mais avec le temps accéléré. Ce n'est pas déplaisant, mais ça va demander aux joueurs d'être plus alerte, parce que du coup, je vais devoir aussi augmenter la vitesse de l'encre sans ça elle est complètement à la traine. Peut-être devrai-je aussi accélérer les pendats...

By increasing the walking and the jumping speed of Bilou with the appropriate factor, I can keep the levels unchanged and enjoy a more engaging gameplay. I'll have to speed up the rise of the ink: at the moment, the game has turned too easy and I might also have to speed up pendats, so that Bilou don't outrun them too easily, which will shrink the response time allowed to the player (to 86% of the current value for g'/g=4/3) ... but it still leaves 500ms+ to react, so that should work.

http://critical-gaming.squarespace.com/blog/2011/1/5/super-meat-boy-pt1.html
J'essaierai celà dit d'éviter "l'effet Meat Boy" si je le peux, à savoir d'avoir le contrôle en l'air tellement élevé que l'on finit par "glisser" dans l'air et se déplacer plus vite horizontalement que verticalement. Mais en ajustant la vitesse horizontale maximale, il devrait y avoir moyen d'éviter ça.

Directly linked to the change of gravity, Romain suggests progressive air control. The current code controlling Bilou has some momentum while mid-air with an acceleration that is 1/2 of the one you have on the ground.

In his interview about Splasher, Romain says:
Air control is a touchy subject: you need sufficient control so that player can compensate for an imperfect impulse (imperfect timing or speed) while still having an interesting skill floor, but not give too strong air control, else the player will [go wild at uncontrolled speed] at the slightest move of the joystick.
To balance things in Splashers, Romain used delays, so that the air control just after the impulse is not as strong as it is some frames later.
This happens in Super Meat Boy too, with a character that initially struggles to work against its original impulse, but that gets increasing amplitude as you maintain the joystick pushed into one direction. To be honest, Super Meat Boy isn't one of my reference in terms of gameplay. I would even consider it as a counter-example of convincing physics

Dans le "School Rush" actuel, j'ai un système qui encourage le joueur à prendre le temps de courir avant de sauter: une fois en l'air, on peut ralentir et faire demi-tour (Bilou reste tout de même un explorateur de l'espace, ça offre quelques mouvements inaccessibles aux simples humains), mais on ne pourra jamais atteindre à nouveau la vitesse maximale avant d'avoir touché le sol pour courir à nouveau.

Ma première tentative pour m'approcher du "contrôle de plus en plus souple" (que je traduis par "augmentation linéaire de l'accélération horizontale avec le temps passé en l'air") consistait simplement à autoriser une vitesse horizontale plus grande en phase descendante par rapport à la phase ascendante. Mais ça, ça n'a pas été un succès.

Saturday, June 04, 2016

Donkey 1&3

Donkey Kong Country... excellent jeu et également un excellent dossier dans le dernier Pix'n'Love -- et impressionnant de part sa longueur, même s'il comporte une bonne part d'"histoire de Rare" en plus de couvrir la trilogie DKC. David Wise nous dévoile des pans entiers du développement. Avec quel acharnement ils ont bataillé pour faire tenir les musiques dans les 64Ko du sound chip de la SNES. L'importance des visites au Zoo, mais jamais comme on l'attendait. Tout ça avec 18 mois pour la réalisation du jeu.

Poor non-French-speaking pals. I truly hope you have an alternate information source about how Rare worked on Donkey Kong Country. We do have Pix'n'Love and they did a great job on it. I cannot give you an overview of what's in it because it's truly a huge story they collected. But let me use the occasion to take a step back and analyse what was so special about the gameplay

DKC avait pour ambition d'être aussi génial à jouer que SMB3, mais plus fluide. Invitation au speedrun avant l'heure,  les concepteurs estiment que le joueur doit avoir la possibilité de parkourir le niveau à grande vitesse s'il le connaît suffisamment bien. De là la course inspirée d'un cheval, de là aussi, l'abandon des clés et cages (inspirées de DK Jr) esquissée dans les documents de 1993 au profit des "caisses d'animaux". De là - enfin - un positionnement méticuleux des tonneaux, cordes, ennemis et autres objets mobiles pour que le joueur n'ait jamais à s'arrêter pour attendre qu'un objet utile à sa progression arrive à sa portée. La vitesse devient le coeur du jeu et les autres décisions de gameplay se mettent à graviter autour.

At some point in the game development, Rare team decided to put the focus on how fluidly one could zoom trough the level, granted that she knows the level well enough. From then on, many of the early concept sketches got dismissed (no more keys, but K.O.N.G letters), some realism was dropped (DK runs like a horse, because gorillas you can see in a Zoo just do not run). Game was tuned in that direction so that player do not *need* to wait for things like vines or blasting barrels.

Un autre élément fort du jeu, à mon avis, ce sont les tonneaux. Ils sont partout. De même que le joueur de Mario aura entraîné son oeil à repérer les blocs-à-frapper en une partie, le joueur de DK aura repéré les tonneaux. Tonneaux à lancer, tonneaux-power-up, tonneaux-sauvegarde, tonneaux-cannon. Un mélange de diversité et d'uniformité que je peine à reproduire dans mon petit Bilou.

I'm quite seduced by how much mechanics the Rare team managed to fit within a "barrel" look. But the Pix'n'love paper on DKC shows early design documents with even more ideas. Some of them will never show up, afaik (like the conveying barrels chain). Many of them will appear later in DKC3, and in my opinion, they weren't that great. It may sound fun to have "a monster in a barrel", but it actually convey the message "we don't know what to draw". It is true that a barrel can make a platform when thrown in the water, but when it means you're forced to take your bridge's step one by one it reduce the replay-appeal of the game, because you know the game will deny you the control of what you do and instead insist that you proceed through repetitive tasks. And no, a barrel-shaped boss is not cool, no matter how interesting to understand the underlying puzzle.

Ça fait quelques temps que je me demande pourquoi j'ai aussi peu apprécié DKC3 alors que les autres étaient aussi bien. Eh bien, c'est que l'équipe de Rare qui travaillait sur DKC était alors sur un autre projet N64. J'étais arrivé à me dire que c'était dommage qu'un tonneau soit l'ennemi le plus fréquent. J'ai eu la surprise de découvrir que cette idée-là était déjà croquée sur les documents de brainstorming du premier jeu.

Et d'autres idées annulées et non retenues de DKC1 figurent aussi parmi les autres idées curieuses de DKC3. Comme le remplacement de Rambi le rhinocéros par un éléphanteau froussard qui tire des jets d'eau.
Est-ce à dire que la jeune équippe qui reprenait le flambeau n'est pas parvenue à apporter de réelles idées propres et qu'elle s'est contenté de piocher dans les idées laissées de côté par leurs ainés? J'irais pas forcément jusque là. Mais l'équipe à la tête du game design avait visiblement une moins bonne perception de ce qui est chouette et de ce qui ne l'est pas.

The there-and-back puzzle nature of so many levels in DKC3 isn't the only thing that make it feel inferior to its predecessor. I now know that DKC3 was developed by a younger team while the dev'ers of DKC and DKC2 were busy on some N64 project. They definitely had access to early design document of DKC and decided e.g. to recycle the young-elephant-who-spit-water-at-monsters. They had gameplay ideas. They had a great engine to work with, but imho, they lacked the acute and experienced eye that can see a game idea and find the little thing that make it look gorgeous when played.


J'entends par là: les idées sont généralement bonnes et variées. Mais leur habillage dénote un manque d'inventivité. Un tonneau géant qui rote comme boss ? Son comportement n'est pas inintéressant, et pour le joueur qui n'a pas lu de soluce, le puzzle proposé (oui, le combat contre le boss est essentiellement un puzzle avec un peu de précision sur les lancers). Mais quelle gloire peut-on ressentir à avoir vaincu ça ?

En plus, parce qu'il s'autorise à construire des niveaux avec des va-et-viens, des objets à transporter pour éliminer les 4 ennemis qui bloquent le passage à partir du même générateur-de-tonneaux-spontanés, le jeu perd fort de son intérêt pour un re-jeu. J'ai refait des parties de DKC à ne plus savoir les compter. Mais DKC3 ? J'avoue ne pas en ressentir l'envie depuis que j'ai fini le jeu sur émulateur.


Wednesday, February 18, 2015

Quels bonus ?

While playing the latest Kirby and some other game lately (like "Child of Light") brought me to think again at how player and bonus interact in the game. I started categorizing them in either [grab on contact] (i.e. the player collects bonuses by merely moving) and [grab on action] (i.e. the player must actively grab or open the bonus). Although [contact] typically correlate with [known] bonus (e.g. Mario coins, Keen candies) and [action] usually works well with [unknown] bonus (chests, question blocks), this is not always the case. Rayman's electoon cages, for instance, have known content, but require an action (attack). Super Mario World features colored [!] blocks for which the player knows in advance what's hidden inside. And Kirby 3D's flowers may release any variant of your star shard.

ça brille ou ça gigotte ... C'est d'une jolie couleur qui met un peu de lumière dans ce monde de brute qu'est le niveau 1-1 ? C'est un bonus. Le modèle le plus élémentaire est le bonus "de contact". Il suffit de passer dessus pour en bénéficier. On peut le mettre en hauteur pour forcer le joueur à aller le chercher ... On peut le rendre mobile -- voire fuyant -- pour organiser une mini course contre la montre.

Ensuite, il y a les bonus enfermés. Ceux qui ne seront débloqués qu'à travers une action spécifique, parfois réservée uniquement à cet effet (ouvrir un coffre dans Monster World, souffler sur une fleur dans Donkey Kong Returns) ou en réutilisant un mécanisme d'attaque (coffres dans Shantae, cages dans Rayman).

It's also interesting that Donkey Kong Return's "blow-the-flower-to-reveal bananas" is just a better themed instance of "dedicated-action-that-opens-a-chest".  Along the same lines, Kirby's bushes and Zelda bushes works much like Rayman cages or Shantae chests that open with the "attack" mechanic.

Later platformers, like Donkey Kong Returns and Giana Sisters: Twisted Dreams also had something curious, where bonus moves along a path. To collect them all, the player simply has to maintain his position and wait for them to come. That is the exact opposite of NSMB "8 red coins" micro-challenges, and older secret rooms where you had to move to collect the coins.
Child of Light, however, had an interesting variant to this approach, where the bonus at the tail of the chain is worth twice the price. If you can read the trail pattern, and follow it with proper timing, you'll earn twice what you'd get by just standing and waiting.

Dans la catégorie des bonus-mobiles, on était passé dernièrement du classique bonus fuyant au bonus qui vient vers vous. Ou plus précisément du groupe de bonus qui se déplace de telle sorte que si vous en touchez un, vous les toucherez tous rien qu'en restant sur place. Les caves bonus de DK returns sont presque toutes basées sur ce principe, pourtant en totale opposition aux caves bonus de Super Mario Bros. Et je dois bien admettre que je trouvais ça plutôt décevant, mais une petite variation découverte dans le jeu Child Of Light m'a amusé. Comme dans Rayman Origins, on y trouve des bonus "dormant" et des bonus "éveillés", valant le double des premiers. Le truc consiste alors à mettre une ligne de bonus dont le dernier est éveillé, et réveillera le précédent si le joueur le ramasse, ainsi de suite. Si au lieu de rester immobile, le joueur cherche à comprendre le mouvement et à le suivre, il double son pactole.

Then came the interesting ideas. I loved bonus design in Qwak, where you open the path to some monsters when collecting bonuses, because bonuses also act as walls to monsters. Yet, I couldn't come with a valid reason for bonuses to repel monsters ... except in environments where bonuses would be made of something that is lethal to monsters. The obvious is "shiny" bonuses in a darkness world.

And finally, I got a nice inspiration about something that could hold bonuses and that you'd interact with mere jumps in Bilou's School zone. Erasers. Bouncing on them could release the last few letters they gathered. This will be today's final touch, as we're now approaching the perfection of SMB's question block.

Enfin, stimulé par la réflexion, j'ai enfin réussi à transposer dans le monde de Bilou les deux design géniaux de dispenseurs-de-bonus, à savoir les blocs-question de SMB (ici remplacés par les gommes des crayons) et les bonus-qui-enferment-les-monstres de Qwak (ici joués par des bonus brillants que les monstres des ombres évitent ^_^

Thursday, January 15, 2015

Pixel Prospector dug "Drop Wizard"

Très chouette découverte grâce à PixelProspector: Neutronized revisite un monument du gameplay: Bubble Bobble. Tableaux fixes, quelques monstres et on passe au tableau suivant quand ils sont tous éliminés. En tombant de l'écran, on réapparait par en haut -- et pareil pour les ennemis. Il faut toujours deux actions pour se débarasser d'un ennemi (comme dans Apple Assault ^_^): une étoile magique et un coup de genou. Dans l'ordre.

I'm glad I found +PixelProspector back. Just in time to discover "Drop Wizard", a really nice game by Neutronized, adapting Bubble Bobble classic gameplay into something definitely more strategic. You still have to dispatch all the cute monsters out of the screen. You still need one long-distance attack _plus_ one close dash to definitely get rid of a monster. You still wrap around the screen vertically. But this time, you cannot jump. You cannot shoot any time, either: you only shoot when you land. If you don't want to end up trapped, you'd better plan your moves and analyze those of the monsters.

Mais "Drop wizard" est beaucoup plus stratégique. On ne peut pas sauter, et le personnage ne lance une étoile que lorsqu'il atterit sur une plate-forme. Il faudra anticiper bien davantage son parcours pour éviter de se retrouver bloqué, pris en sandwich par deux ennemis... un peu comme dans space panic. Mais il y a une échappatoire. Un mécanisme de combo qui n'est pas sans rappeler les carapaces de koopa de Super Mario.

There's one (funny) way out, hopefully. When you dash into a monster, it rolls to the next wall. While rolling, it can clump into others and chain into a combo. Trust me, this one is a true gem.

Le bon tempo

J'essaie de rendre les manipulations de taille-crayons plus dynamiques. Quelque-chose qui soit plus adapté au gameplay du "school rush" ...

Compared to "Anniversary Level", the tempo of the game has quite evolved. Current animation of Bilou grabbing something on the ground with his eyes going "whoo! Look what we've got here" doesn't fit the action anymore. With the ink rising and pushing pressure, having to stop on a blador to GRAB it is a pain. It would be neat if we had the opportunity to grab it on the fly, just after we stunned it. That the best I can think of to "make things snappy".

J'utilise la nouvelle fonction "édition des zones de contact dans AnimEditor", mais ça n'a pas encore l'air très au point ... entre les dumbladors qui s'envolent quand je tente de les ramasser, les animations qui s'interrompent prématurément et les éponges qui glissent des mains de Bilou. Ce serait sans doute une bonne idée de prévoir une amélioration de l'InspectorWidget pour permettre de visualiser ces changements de zones de contact.

Yet, things are not quite working as expected

  • [done] Bilou may stomp-and-grab a dumblador in one jump
  • [done] why is left-grab not playing ?
  • [wish!] how could I end up with an editor that damages animation when opening them ? I need unit testing here.
  • [done] bladors should skyrocket when I try to grab them.
  • [todo] why do I have anims with over 10 'control: done' statements ?
  • [done] make sure InspectorWidget can report areas masking.
  • [done] do not flash colors when holding L in InspectorWidget, please.
  • [think] export over WiFi has become too complicated. Plan a multi-connection approach
Unrelated (except for timing) todo items:
  • [done] allow meta-information about tiles (rules.gam) to sit in a separate file, included by level scripts.
  • [todo] allow spawn point (and possibly spawned GOBs) to be modulated by some global game variable (checkpoints, difficulty settings, etc.)
  • [think] a simple map editor for PC would be better suited to those "surgical edits" required in current development cycle. That or easier-to-upgrade runME with the cycle moving back to DS device.
  • [done] print and deep-review todo items to establish battle plan for 2015.

Tuesday, December 09, 2014

Leçon de tuning: la théorie


 
Tune it well ...
Animating a running pendat within restricted pixel space turned out better than I initially expected. Now, I have to tune that additional move to ensure it improves the gameplay. The speed at which it moves, the distance from which Bilou is detected and the acceleration were all arbitrarily picked while writing the script. They work rather well, but they can surely be tuned for maximal results.

Bien. J'ai rajouté une animation pour que le crayon-soldat puisse charger Bilou quand il l'aperçoit. Reste du coup les questions de tuning à régler:
  • à quelle vitesse doit-il courir ?
  • à quelle distance peut-il "sentir" Bilou ?
  • combien de temps doit-il mettre pour atteindre sa vitesse maximale ?
L'enjeu de ces règlages ? faire en sorte que les réflexes puissent continuer à tirer le joueur d'affaire et éviter de se retrouver dans une situation à la Rick Dangerous où le joueur doit mémoriser tout le parcours pour pouvoir jouer.
Bilou and Pendat positions over time
The issue with arbitrary values is that they can twist the gameplay towards a state where players can no longer react to what happens and have to memorize the level just to complete them. I have been convinced by Kirby Kid's blog that this is not the way platformers should be built and that they should instead allow to be "played while reading" once we mastered core skills (estimate trajectories, press buttons, read timings) and learnt game's physics. As our player has reaction time to the walk/rush transition of the pendat (a) and that Bilou needs some time e.g. to reach a height where collision no longer occurs (b) -- and possibly only keeps that height for some time (c), values exists where player cannot possibly escape. These must be avoided.

Je me suis donc donné deux cas d'étude: "Bilou tombe devant le pendat et doit s'échapper en courant" et "Bilou doit passer par-dessus le crayon en sautant". A partir de là, on peut représenter la distance Bilou-crayon au cours du temps et voir s'il y a ou non risque d'avoir une collision.

T_player_reacts + T_Bilou_reaches_speed < T_pendat_clears_distance
T_player + T_Bilou < Pendat_Detection_Distance / Pendat_max_speed

A sa vitesse actuelle, le pendat met 81 frames (1" 36 centièmes) pour aller de sa position actuelle à celle de Bilou. Bilou, lui, met 30 frames (1/2 seconde) à atteindre sa hauteur maximale (b) et on peut compter qu'il y reste 20 frames (c), pendant lesquelles le Pendat aura avancé de 30 pixels ... Assez pour se croiser sans accroc. J'ai vu la plus jeune testeuse de la S-team réussir ce saut d'instinct. Celà signifie qu'elle a un temps de réaction d'au plus 600ms ... Hmm ... Oui, le pendat actuel est loin de demander des efforts de réactivité puisqu'on estime à 200ms un bon temps de réaction à un stimulus, pouvant descendre près des 100ms pour un sportif entrainé. Et puisque Bilou est quasiment au centre de l'écran, celà signifie que si on voit le pendat quand il fait demi-tour, il nous attaque sitôt qu'il se retourne. Rétrécir la distance de détection et la compenser par un "sursaut" du crayon pourrait améliorer la situation

While my testing-nephews were giving it a try, I went through to "escape case" -- run away or jump over -- to map where would time go. Not even the youngest player had issues with the original timings, which left a generous 600ms to the player to dodge the rush. That's about 3 times the delay usually presented for fast reaction. It "turned" out that direct rush of the pendat is not the most dangerous -- so I can easily shorten the detection distance and have pendat entering the screen walking and only start chasing Bilou when at a distance close to 1/3 of the screen width. What is truly dangerous is that bounce when he enters a wall, and then quickly turns back. It means if you're waiting for him at the top of that wall, your window to sneak behind is small. In fact, the thing that may prove more stressful is to shoot him down with a blador. But that should simply tease you to get the straight-throw power-up ;)

En fait, le rebond contre le mur est beaucoup plus piégeux. J'imagine que c'est dû à la cassure du mouvement, plus difficile à estimer. Et l'atteindre avec un taille-crayon affecté par la gravité sera plus délicat, mais pas trop quand-même puisque le crayon a le bon goût de rester dans la zone active du taille-crayon pendant sa courbe. Ouf.

Avec tout ça, le "croco-désagrafeur" retombe dans l'oubli ...

Sunday, November 30, 2014

Le Tuning

La première remarque de Kirby Kid concernant le jeu "School Rush" m'avait un peu décontenancé. Je ne voyais pas bien ce qu'il entendait par "des problèmes de tuning" (non, quand-même pas au point d'aller acheter des néons bleus, mais pas loin).
A rediscuter par la suite, je me dis que les fleurs-piranha de Super Mario Bros sont certainement le meilleur exemple de gameplay bien tuné -- appelons ça "accorder les personnages du jeux" comme on accorderait ses cordes de violon ? -- que l'on puisse donner.

It took me time to figure out what sort of "tuning" Kirby Kid expected me to bring in. I finally realized that one of the best example of gameplay tuning is the way Piranha plants grow and shrink in Super Mario Bros. If you try and speed-run the game like in the first series of pictures, you'll see the plants active during almost all the time their pipe is visible on-screen. If you rather progress forward without stopping, but without running, chances are that the plant will be retracting while you reach the pipe but you've been warned as the plant was out when it entered the screen. If you happen to experience difficulties approaching the pipe (due to a tedious jump ?) chances are that you'll be threatened by the second raise of the plant.

Hopefully enough, when you're on the pipe, the plant are too shy to pop out and gnap you.


La première série d'image vient d'un speedrun du jeu. On approche donc les deux plantes carnivores à la vitesse maximale de Mario. Les plantes sont ici ouvertes dès leur apparition à l'écran mais ne vont se rétracter que quelques blocs avant de quitter l'écran.

La deuxième série d'images vient d'une vidéo de type "let's play" avec un joueur non entraîné, qui prend le temps d'éliminer les goombas avant d'arriver au tuyau. Avec une vitesse de marche normale, on arrive sur l'obstacle juste au moment où celui-ci va se rétracter. 20 ans (au pif, hein) avant fl0w, voici déjà un premier exemple de jeu qui adapte sa difficulté au niveau du joueur, puisqu'il y en aura davantage pour celui qui fonce tête baissée que pour celui qui avance modérément...