Showing posts with label donkey. Show all posts
Showing posts with label donkey. Show all posts

Thursday, March 27, 2025

#20games part 3

Rick Dangerous has its own tag on this blog. This is a clear indication of a influential game. It's not so strong on Bilou's adventure (apart for a spikes at the bottom of pits), but it was Rick that pushed us into making our own platformers, even before Sonic and way before Mario. Its influence was still strong in Calimero, although the impact of Sonic was equally strong on that one. But I never end up telling myself "oh I know, I'll make a Sonic-like" when I need to do something with a "new" character. And I never tell myself "oh, I know: I'll bring Sonic as a cameo playable character". That's for Rick only.

Il reste quelques jeux parmi ceux-qui-m'ont-influencés qui datent d'avant le premier jeu Bilou-en-plate-forme, je pense que ça vaut la peine de les rassembler, même si à ce stade-là du challenge des 20 jeux, ils se retrouvent éparpillés sur les 12 jours restants. Commençons par Rick Dangerous, le jeu qui aura détrôné Sonic (Master System) de cette collection. Parce que si Calimero est construit sur un mélange des deux jeux, très rapidement (sic), c'est le côté Dangerous qui l'emporte dans le gameplay. Et quand je commence à avoir quelques petits sprites prêts sur NDS, à quoi je pense comme moule-de-jeu ? Rick Dangerous. Et quand mon frangin ressort l'idée d'utiliser son personnage "Spector" pour participer au C64 challenge, qu'est-ce qu'on propose ? Rick Dangerous. Et qui mettrait-on bien comme personnage "un peu plus stylé" dans un remake NDS de pharaoh's curse ? Encore Rick Dangerous. Même "Nono in the Maya Zone", n'est qu'un Rick Dangerous déguisé sans Rick.

Passons. Bubsy, c'est un de ces jeux dont on a pas raté la sortie. '94, on était au taquet, de retour devant la télé tous les samedis pour écouter Maniac et Sam Touzami nous parler des dernières nouveautés et nous présenter des trucs et astuces sur les jeux qui avaient déjà quelques mois. Bubsy en a fait partie, et même si on y aura pas joué dès le départ, le côté cartoon/potache de son animation se retrouvera intégrée dans la proposition de Bilou pour le concours de jeu... et qui deviendra un de ses traits de caractère jusque dans les "on the road" de la BD. C'est aussi un des jeux dont la musique ne me quitte pas, ce qui est un autre signe distinctif de jeu qui a eu de l'impact.

Comparatively, it may be surprising to see Bubsy in the list, but it came out precisely when we were brainstorming what the exact formula of Bilou's Adventure should be. New zones ... new super-powers ... new mechanics ... Unlike me, my brother wanted something combining the most original ideas of the era (like Rolo the Rescue map pieces), and Bubsy's animations were certainly novel by the time. More personnally, I keep getting a smile when some Bubsy tune pops up in my playlist. I cannot say the same for Sonic ^^".

Think about it that way: before Bubsy, Bilou was a mere next-game character. After Bubsy, I started practicing little cartoony animations where Bilou would end up stunned/splatted/electroshocked ... 

Donkey Kong Country, j'étais sur le point de commencer l'aventure RSD Game-Maker quand il est sorti ... C'est sans aucun doute une de mes référence en gameplay (et qui a son tag), même si je n'ai jamais envisagé la possibilité de faire un jeu qui y ressemble. Quelque soit l'élément considéré (type de graphisme, d'animation, dimension des niveau ou leur organisation), ce n'est pas quelque chose que je peux tenter en solo. Pensez ... 4 types de "Yoshi" différents ? C'est tout simplement hors d'atteinte. Pourtant ... pourtant quand viendra le moment de reprendre le design en main pour la DS, il reviendra régulièrement à l'avant de mes pensées parce que trouver des secrets dans ce premier DK, c'est à peu près aussi chouette que dans Prehistorik ...

Le plus délicat,ça aura été de choisir entre DKC et DKC2 ... mais malgré ses perles musicales et le monde caché qui manquait cruellement à DKC, il y a trop d'endroits de DKC2 que je n'ai pas envie de visiter, en particulier en début de partie, si bien que je me retrouve rarement à me dire "oh tiens, je me ferais bien un DKC2"

Donkey Kong Country was one of the key games in my life, but it is also the first key game I knew I couldn't ever mimmic. It's super-ambitious to believe I could craft something comparable to Super Mario World or Bubsy, even as a life-lasting project. But DKC is just out of reach as a solo developer. I don't think I've ever envisioned doing it. I'll only make a few observation regarding gameplay, and try to identify what is fun when hunting for secrets in the DKC series ... but that's it.

Surprisingly, though, Rayman became the ultimate game model for Bilou. With epic boss fights, gathering powers as you progress in the adventure, revisiting levels with powers you've just earned to unlock more secrets. It was also the proof that my idea for animating limbless characters could actually work although it was still very crudely done in the prototype I had when Rayman appeared on the shelves. Many people will compare Bilou to Rayman even nowadays (especially when seeing the School Zone), yet Rayman pushed me to avoid or even remove things more than include them, to ensure that Bilou would remain sufficiently distinct. In August '95, Bilou.bas could let you throw your fist if you had the "turtle power" (iirc). It would never be reused again...

Et pour clôturer, il y a Rayman ... le jeu auquel les aventures de Bilou sont le plus souvent comparées. ça me fait plaisir, puisque c'est un de mes jeux préférés, et en même temps, je ne découvre le jeu que 2 ans après le début du travail sur Bilou, quand à peu près toute la phase de "pré-production" de mon frangin a eu lieu et qu'il n'y a plus "qu'à pixeliser et coder tout ça". Rayman, c'est le jeu qui va définir ce que Bilou ne doit pas (ou plus) faire. Ne pas aller dans une zone des instruments ... ne pas faire des champignons qui marchent ... ne pas lancer son poing (pourtant c'était déjà codé). Ce sera le prix à payer pour garder une identité propre.

Sunday, August 11, 2024

Houba!

Le Marsupilami en jeu vidéo!

Okay, since you don't speak French, I guess I need to introduce the Marsupilami first. It's a fictional animal starring in some of the most popular Belgian comics of the 70s-90s. It is mostly yellow with a very long tail (about 8m for an adult) and the comics show him doing all sort of tricks with it, like lasso foes, punch nasty guys, use it as a spring to bounce higher ... I guess you've got the idea. There are 2 main marsupilamis character, one who has been brought back with heroes and act as a super-smart pet, and a wild one, who staid in the jungle in a fictional South-American country. Both like to play jokes (but aren't complete clowns), both are strong and smart and protect their loved ones. 

Distribué par Microïds, ceux qui avaient publié Nicky Boom (et plein d'autres titres auxquels je n'ai pas joué). Moi, je suis grand fan (exigeant, mais fan quand-même) du Marsu de Franquin et j'ai donc craqué pour ce titre qui pourrait presqu'être catégorisé "Donkey Kong Country Honoris Causa" tant il en reprend les codes: jusqu'aux "tonneaux-propulseurs-volants" (ici incarnés par des toucans), aux fruits piquants géants, les cavernes-défi-cachées et le dash-roulade-qui-permet-donne-un-double-saut. 

Since the 90s, there have been cartoons and video games about the Marsupilami, but usually they made a fool out of him and couldn't capture the essence of the comic character. And since I'm a huge fan of the original design and character, it was a showstopper. But hey! some French publisher added a Marsupilami title from some French studio to the Nintendo Switch store and from the teaser videos, it seems to play like a Donkey Kong Tropical Freeze DLC level. So I've lets-go-purchased it to see what it looked like.

Bref, au niveau gameplay, c'est validé. Pas aussi original que le travail de Apache Software sur Mega-Drive, mais ce n'est pas forcément une mauvaise chose: manette en main, le jeu de 1995 était grandement confus, comme si on avait voulu transposer un Sokoban en jeu de plate-forme en empruntant les morceaux manquants dans Lemmings. Pas top.

Côté esthétique, c'est du grand art! Le must de ce qu'on peut attendre d'un jeu de plate-formes 2D à l'heure actuelle. On a le choix entre trois personnages mais ils se jouent tous de la même façon. Aucun ne ressemble vraiment au Marsu phare de Franquin ni même aux bébés-marsu du tome "Le pollen du Monte Urticando". Il m'a fallu un moment pour m'y faire, mais je crois que le truc, c'est que qu'on joue avec les bébés devenus marsu-ado. Comme Franquin n'en a jamais dessinés (afaik), ça donnait la liberté aux artistes d'Ocellus Studio pour avoir un graphisme moderne, un niveau de détail adapté à la technologie utilisée et une personnalité qui convient à la narration. Bingo.

On a visual standpoint, it is a success. The environments are well-defined, characters are well-animated and their are quite matching the original creation although not looking exactly like the beloved comics. And the developers used a clever trick to get some distance with the comic: you're not playing any of the iconic grown-up marsus, nor any of the cute marsu babies starred in the 4th book. Well, actually, you're playing any of them three, but they're no babies anymore ... yet they aren't grown up yet.  They're at the marsupilami equivalent of "Son, you're getting close to be a man now" age where farmboys usually see their origin and destiny revealed and set up on a quest to save the world.

On a gameplay standpoint, this is close to DKC:TF the same way Shovel Knight is close to Megaman. The core mechanics are identical, there are a few twists here and there to make it feel fresh, although you wouldn't call it "a novel experience". And considering how the previous game from '95 failed at being fun or even entertaining by being so obscure, it is rather a good thing.

Premier élément sur lequel j'aimerais m'attarder: les "champignons" rebondissants, puisque je suis moi-même occupé à faire rebondir une branche. Restez par-dessus ces "champis", et vous rebondissez automatiquement, encore et encore, à la hauteur d'un saut ordinaire (qui n'est pas bien grande pour un marsu, celà dit). Si votre bouton de saut est enfoncé au moment du contact, vous partez pour un maxi-rebond. Le timing n'a pas d'importance. Maintenez le bouton enfoncé pendant 2 minutes et vous ferez des maxi-rebonds pendant 2 minutes.

C'est simple, c'est direct, c'est prévisible. C'est exactement ce qu'il me faut pour un niveau 1. Et c'est un des choix qui font que ce Marsu est plutôt bien adapté aux plus novices qui n'auraient pas réussi à aller plus loin que le monde 2 de Tropical Freeze (je ne parle même pas de Returns). Pas que le jeu soit enfantin (toutes les recettes de Rayman Origins pour adapter la difficulté au joueur sont reprises) mais il ne cherche pas à faire dans la Grande Quête. 3 mondes + 1 monde caché, et voilà.

From a game design perspective, there are two items I want to keep track of. The first is how easy and intuitive the bouncing elements are in the game (compared to that tricky-to-use bouncing branch in my own demo). Just stay on the thing and you'll make small bounces (about the height of a regular jump). Have the jump button held down and you'll make huge bounces. That simple. No need to press it again everytime you touch the bouncy thing (mushrooms ?). No need to time your button presses against the position of your character on the screen. Just. Hold. It. Down.

Autre élément de gameplay qui mérite qu'on s'y arrête, ce sont les anneaux-pour-s'accrocher. Aucune tentative pour habiller l'objet ici: ils sont à peu près aussi discrets que des blocs-question dans le royaume champignon. Ils s'éclairent en vert quand votre marsu est à la bonne distance et une simple pression sur le bouton d'attaque nous y accroche alors quasi-instantanément. On est ensuite tiré jusqu'à l'anneau ou on restera accroché, statiquement jusqu'à l'appui sur le bouton de saut.

Une séparation des rôles (Y=accrocher, B=quitter-et-sauter) qui est vraiment la bienvenue et qui évite les fausses manoeuvres même quand on s'embrouille dans ses boutons: appuyer sur Y à nouveau quand on est déjà accroché n'a ici aucun effet.

The game also provides an interesting answer to "how to HOOK to things". Here, hooks are plainly identifiable as such ... almost as artificial as Super Mario Bros question blocks. It gets a green glow if you're in range to trigger the HOOK mechanics. If you press the attack button, it will almost immediately (less than 50ms) reach for the hook with its tail and will then start zooming towards it along the straight line drawn by the tail. You won't leave the hook by pressing the attack button again: you'll have to use the JUMP button for that. A nice protection against accidentally leaving the hook when there's no ground to catch you.

Should there be multiple hooks in the range, the direction you indicate with the left stick will select which hook is targeted. Only that hook gets the green glow. That works most of the time, but may trap you in some of the latest levels where the hook you're leaving is falling down or about to move into spikes. Because yeah, those flying hooks will come into a good number of variations that I'll have to study later and the same mechanics are also used for the shooting birds that replace DKC barrels.

Dernière petite touche sympa: appuyer sur le bouton d'attaque pendant qu'on marche va déclencher une attaque-roulade (comme dans Donkey) alors que l'utiliser quand on est à l'arrêt déclenche un "coup de poing" avec la queue du marsu terminée par un gros noeud (sa signature dans la BD). pas de risque donc de se mettre à partir en avant avec un dash involontaire, résultat trop fréquent dans la série DKC. Ultime subtilité, mitrailler le bouton d'attaque pendant qu'on marche permet de rester dans un dash infini, qui pourrait se finir mal quand on arrive au bout d'une longue plate-forme avant un passage où il faudra plutôt s'accrocher. Et la subtilité la voilà: dans cette situation, les concepteurs ont presque systématiquement placé une ou deux caisses en bout de course. Le marsu ne peut pas rouler à travers les caisses: il se retrouve stoppé net. Et si le joueur continue son mitraillage malgré tout, marsu -- maintenant à l'arrêt -- donne un bon coup de queue dans les caisses, récupérant leur contenu, mais reste immobile malgré tout.

Final gameplay sweetness: in many places, you're invited to make a long roll by mashing the attack button. since the roll is actually a dash, you might end up doing one press too much and end up past the edge of the current platform. Hopefully, the level designers thought it wouldn't feel fair and typically end such platforms with a crate. The crate might just contain one fruit but most of all the crate cannot be rolled through. And if you happen to hit the attack button again while stopped by the crate, you'll trigger the Marsu's signature move: punch with a tail-knot, crashing the crate and opening the way.

Saturday, January 06, 2024

Raycasting ?

There's an awesome effect one can achieve once you have HDMA in a platformer: add depth to your background with "floors" like in DKC2 Lava lagoon. There will be complete occlusion of the 'far' background plane (wall) by the 'near' background plane (floor side), so having them scroll at different speed is 'just' a matter of updating X scrolling register at the right time. Having the floor positioned above or below the "seam line" between two walls is 'just' a matter of adjusting Y scrolling register earlier or later so that they 'skip' part of the far background art to show front background art.

The awesome part is that depth effect added with the horizontal planes, of course. That is about adjusting both X and Y scrolling registers and that will need maths to explain properly, using some pre-slanted texture as shown in the ripped contents of DKC2.

First immediate thought after I realised that it could be more than welcome in the pyramid level of Bilou's Dreamland was that it is actually an instance of the raycasting algorithm. Yeah, that infamous thing that turned ID software away from my beloved Commander Keen and sent them trashing the whole era of 2D platformers with first-person shooters. No wonder why, despite my affinty for maths and software optimization, I never ever felt tempted to code one myself. But hey, do it vertically instead of horizontally, and this is precisely what we need to decide whether to show floor, ceiling, wall or cut-through floor-to-ceiling structure.

So before trying to reconstruct the algorihtm that might have been used on SNES, let's see what it would cost us.
  • the background scene must be structured along a 2D grid. I'd say 64x64 pixels would be fine by me
  • For every scanline , we will have to step through the grid, one tile at a time, essentially checking whether one more "depth" step takes us farther than one "height" step in our case.
  • We need a direction vector associated with every scanline. That implies 192 square roots per frame, but hopefully, those computations are the same for every frame: they depend on the camera-to-screen distance and define angle used to trace through each pixel. They could be pre-computed even at compile time and stored in a look-up table.

So for every scanline Ys of the screen, (DDA) raycasting will give us a pair of (Zw, Yw) coordinates in the world that is shown on that scanline. Most likely, we don't want to compute the distance to Zw, Yw nor use that distance to adjust scrolling speed. Instead, Zw should directly be used to decide the scrolling speed. Well, unless we're on a horizontal surface, that is. Well, I can't help thinking this is overgeneral and overkill, despite übercool.

The trick in the SNES DKC2 implementation is that we have pre-rendered floors and ceilings. They already feature some depth-of-field effect. if you use them as-is. And being 440px wide, they're significantly larger than the screen (256 pixels iirc). Where does that 440 value come from ? Well, I guess this is screen_width + pattern_width, as the flat stripe shows a repeating pattern of 184 pixels. So whereever you are in the pattern, you can always have at least one full scanline ahead. The most distant line of the ceiling has only 96 pixels between two patterns, matching exactly the size of the tiled background wall. That means if the 'front' part is moving exactly at 1 pixel / frame, the tiled part should be moving at 0.52 pixel/frame so that Thales theorem is satisfied.

That size difference also tell us how far away the tiled parallax layer should be from the 184x32 parallax layer (and thus how deep the floor/ceiling objects are): they're as far from each other as the 184x32 layer is from the "camera"

  s16 xref = REG_BG1HOFS;
  s16 yref = (offset >> 2) % 192;
  s16 xamp = xref + xref / 2;
  s16 yamp = yref + yref / 2;
  int ytrigger = 224 - yamp;
  int btrigger = 192 - yref;
  int i, j;
  for (i = 0, j = 0; j < N; j++, i += 2) {
    if (j > ytrigger && j < ytrigger + 64 
|| j > ytrigger + 256) { data[i] = xamp; data[i+1] = yamp + 30; } else { data[i] = xref; data[i+1] = yref + (j >= btrigger ? 128 : 64); } }

That doesn't make the 3D-effect of DKC yet, but at least it gets me synchronous parallax with a single hardware layer.

Next step: find the zones where ceiling and floor should be shown. And there, trials and errors became too complicated to figure out. Hopefully, I found a way to analyze the problem with maths. Most of what's computed is derived from that "yref" value, which is normally the input from camera position. What I need to do is use that yref as horizontal axis and study how "triggers" that define top or bottom of areas evolve, cross and areas overlap appear or disappear. And once the (simple) maths were written, it took only half an hour to write the code to do it right.

With this graphics, that's the best I can do... let's see how it follows up once I have dedicated background.

Oh, and while I'm at it, there's a stunning online tool out there, to visit every map of every DKC SNES game: the DKC-atlas.




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
 

Monday, August 23, 2021

walking kritter

A large part of the 'walk' effort is to have characters' feet sticking on the ground while walking. It may not always be a good idea but I always grimace when I see walking characters half-sliding on the ground in games with no obvious reason. At least for monsters, it should almost never occur.

In my current engine, this is achieved by hints in the animation sequence about how much pixels the character would travel with the new frame. Animator code then ensures the game character has already accumulated that much 'deferred moves' before switching simultaneously to both the next frame and the next position.

Quand je fais marcher un personnage, j'aime généralement mieux qu'il soit bien ancré dans le sol. Ce n'est pas toujours forcément une bonne idée, mais les personnage qui donnent l'impression de patiner au lieu de marcher alors qu'ils ne portent pas de patins, ce n'est pas ma tasse de thé. Du coup, mon moteur de jeu est prévu pour des animations qui contiennent des indices sur le nombre de pixels (plutôt que de frames) à attendre entre deux images.

But checking the walk cycle for the 'Kritter' monster in DKC makes me realise that there might be an easier approach, in which the motion speed for the character is constant while its animation still features a 'natural' motion where it speeds up and down: just offset the monster graphics within the buffer. This might sound like advice from a nightmare from a one-hardware-sprite-per-object point of view, where pixels would have to be effectively shifted in video memory to accomodate for the partly-moved object, but for a SNES-like sprite that re-codes the relative OAMs positions with every frame anyway, it could be nice to have.

Now there's a catch: the hitbox for your character will move at constant speed and your graphics will not. That might be source of other (Infogramesque) collision issues.

ça a aussi l'avantage de fonctionner avec des cycles de marche qui ne sont pas uniformes. Les boîteux, les excessifs, les discrets ... toutes catégories de personnages qui viendraient sans problème peupler l'univers de Bilou. Et où regarder après un exemple de ce genre de persos mieux que dans la série Donkey Kong Country ?

J'avais donc repris l'animation d'un Kritter et choisi un point de référence qui devrait rester ancré au sol (un orteil) pour voir comment il se déplaçait de frame en frame. Chose assez intéressante: on est souvent autour de la même valeur de 5 pixels par frame d'animation, mais pas tout le temps. Et vu les faibles déviations, vu aussi que l'image doit de toutes façon être reconstituée à partir de plusieurs sprites hardware, on pourrait probablement ici avoir un game object qui avance à vitesse constante et avoir un léger décalage sur la gauche ou la droite de l'image par rapport à la hitbox. Attention quand-même à ne pas pousser ça trop loin sous peine de créer des situations infogramesques.

Tuesday, January 05, 2021

DKC - quand les bonus étaient gratuits

 J'ai donc eu un p'tit moment l'abonnement Nintendo Online à la fin de l'année dernière, l'occasion notamment de me refaire un p'tit peu de DKC, un de mes jeux favoris. 

J'ai été surpris de me rendre compte d'une différence fondamentale entre cet épisode et tous les suivants dans la série au niveau du rythme et du rôle des salles bonus

Vous voyez, dans tous les DK qui ont suivi, les salles bonus sont chronométrées, introduites par un écran descriptif de mission qui permettra de choper une pièce passe-partout. Il s'agit plus d'un challenge secret que d'un véritable bonus, dans un certain sens.

ça passe pas trop mal tant qu'on est dans des niveaux à la difficulté moyenne, mais quand on commence à entrer dans des niveaux plus nerveux, la pression peut en devenir essoufflante.

I got some weeks to try the Nintendo Online Service last year. And it should be no surprise that I played some original Donkey Kong Country, as it is one of my favourite games. It made me realise that there was something radically different in the rhythm and role  that bonus rooms play in that game compared to any other game in the series.In all the subsequent DK games, bonus rooms are  timed. There is a mission statement screen at the entrance of the room, and if you don't perform well enough, you will not get the expected reward . In a sense, it is a secret challenge room rather than a secret bonus. (very similar to the extra-life challenges of Rayman, to some extent.)

Par la suite, la formule est reprise aussi dans les Rayman Origins et Legends, puis aussi dans Splashers. Bref, plus ou moins un incontournable du platformeur à degré de complétion. Jusque dans NSMB avec ces cachettes à pièces-étoiles.

Bin au risque d'aller à contre-courant, je trouve que les salles bonus étaient plus valorisantes dans le temps où elles étaient "gratuites", où elles nous donnaient juste un paquet de bananes ou une vie ou un power-up et où on pouvait prendre le temps de les ramasser (enfin, sauf quand le jeu en entier était sous chrono, évidemment)

Vive ces bouffées d'air pur au milieu de tant de haine. 

As long as we are in the early levels, it works quite well. But as we get to levels that are more technical and more demanding, it adds pressure where we don't really need it. The formula of DKC2 hidden challenge rooms will later be featured in Rayman Origins and Rayman Legends, and then in Splashers. To some extent, it became a mandatory figure of the platformer genre. Even NSMB will use the idea in some of their star coin hideouts. Well, maybe my way of thinking is obsolete, but I think that bonus rooms were more pleasing when they were *free*,they were just throwing a bunch of bananas at us and we could take our time to collect them (unless the whole level was timed, of course). These were welcome resting moments. You could still decide to challenge yourself and get all the room's bananas by bouncing on the tire, but there would be no penalty if you changed your mind.

ça n'exclut pas d'y glisser un challenge en plus, "attrape toute les bananes avec le pneu qui bouge", mais sans stress. et sans pénalité si je décide que 'rho non, stop'  à l'avant-dernière.

Et quand on y repense, il y a une similitude entre ces "nouvelles" salles-bonus de DKC2 et les stages spéciaux de Sonic sur MegaDrive qui nous mettaient sans doute encore plus la pression que le niveau avant qu'on ne puisse choper les précieuses émeraudes du chaos...

Starting with DKC 2, we' ve left the "SuperMarioBros." bonus rooms model to embrace the Sonic 2 "Chaos Emeralds" model.

Sunday, April 12, 2020

Tropcial Freeze

La série Donkey Kong Country est clairement une de mes préférées en jeu vidéo. Aussi bien comme référence de gameplay que comme passe-temps. DKC1 a été le premier jeu de plate-forme que j'ai pu finir (okay, en grande partie grâce au B.A.R.R.Y.L. de Maniak). Puis DKC2 le premier jeu que j'ai complété à 101%. DKC3 m'avait un peu déçu avec un character design discutable, mais ça ne m'a pas empêché de faire la chasse aux oiseaux-bananes dans ZSnes pendant de nombreuses soirées.

Puis arriva "Donkey Kong Returns". Si je le trouvais très plaisant visuellement, j'ai par contre été assez déçu par son gameplay. "Agacé" serait plutôt le mot juste. Ma petite prise en main de Tropical Freeze chez mon frère m'avait plutôt plu mais n'ayant pas de WiiU, j'en étais plus ou moins resté là. Jusqu'à ce mois-ci: mon frangin m'ayant offert le jeu pour switch.

La bonne nouvelle avec la Switch, c'est que je peux plus facilement mettre le jeu en attente même au milieu d'un niveau. ça évitera déjà les problèmes de saturation liés aux trop long niveaux des platformers modernes.

Les graphismes sont évidemment plus détaillés que sur le malheureux petit écran de la 3DS qui peinait à rendre la version Wii de DKR. Il y a malgré tout de nombreux moments où j'apprécierais de pouvoir choisir un zoom plus rapproché pour mieux voir où je retombe.

La présence de Cranky-Duck-Tales et Dixie-hélicoptères sont les bienvenus pour offrir un peu plus de souplesse au gameplay, et je crois que l'inertie de DK est un peu plus légère que dans DKR (je rate nettement moins mes sauts). Mais la véritable pépite, c'est la possibilité de jouer avec Funky Kong, ce qui offre le triple de points de vies (en mode 2 joueurs), la possibilité de planer à tout moment (ce qui s'avère par contre désorientant quand on s'est mis Donkey dans les doigts), et on ne craint plus les pics (moyennement intéressant, vu l'omniprésence des trous sans fond dès le 2eme monde). Un plus tout à fait appréciable quand J.L.N veut faire une partie avec super Papa Bros.

Il y a un truc avec lequel j'ai encore du mal. Je trouve les niveaux moins mémorables que mes bon vieux DK. Je n'ai pas encore réussi à mettre le doigt sur ce qui ne colle pas (ni si c'est dans ma tête ou dans le jeu, du coup), mais quand je me refais la bande son "en aveugle", il est rare que j'arrive à revisualiser les niveaux à partir de leur musique. Leur nom n'aide généralement pas beaucoup plus. La longueur des niveaux joue sans doute là-dessus, la construction à partir de structures 3D fait aussi qu'on sait moins facilement s'abstraire du graphisme pour retenir la structure générale (escalier, mur, plate-forme isolée, etc.) de tel ou tel morceau de niveau. Les bananes mobiles nous distraient encore un peu plus (plus besoin de reconnaître les murs creux ou les cachettes de bonus dans le sol). Par contre, il y a quelques éléments uniques très sympathiques -- presque Raymanesques -- comme cet instrument à vent géant au milieu de la montagne des hiboux ;)

Thursday, January 04, 2018

Presenting monsters


This is something I really loved in DKC closing cutscene and which I'll now seriously start working on for School Rush: seeing the nicknames of all the baddies in the game with the baddies themselves. Later on, when I wanted to bring Badman II to an end, I tried to do something similar: which apparently worked quite well it was acclaimed by Aderack in his wiki and essays.

And as if I'd need one more proof, my brother just convinced Lazycow that such a show was all he needed to make the. end-of-game cut scene of Power Glove feel satisfying for the players reaching that point.


J'étais complètement fan de la séquence de fin de Donkey Kong Country, avec sa présentation des ennemis un peu humoriste qui dévoile leurs noms et permet de se souvenir de tout ce qu'on a traversé. J'avais fait quelque-chose d'un peu similaire pour la fin de Badman II, ce qui a plu, visiblement (au moins à Aderack ;)

Et comme s'il en fallait plus pour m'encourager à remettre le couvert dans School Rush, voilà que mon frère me raconte que LazyCowse demandait que faire pour le final de son PowerGlove et mon frère de lui dire que "bin si, les joueurs aiment bien qu'on leur remontre la galerie des monstres/boss avec les noms de tout le monde (surtout quand les noms sont un peu rigolos). Et sisi, y'a pas forcément besoin de beaucoup plus.

Donc ne vous inquiétez pas, je vais quand-même garder un petit quelque-chose d'original : le croquis ci-dessus est une ancienne idée. Mais j'ai encore quelques petits détails à régler pour que ce soit réussi. 

Of course, these are just some preliminary sketches, and there has been some evolutions. But I know you'll allow me to keep those details a secret, and not spoiling your future satisfaction myself.

Wednesday, April 12, 2017

De plus en plus long ?

Ai-je raison de penser que les niveaux de jeux de plate-formes sont de plus en plus long, et donc infaisables sans avoir une demi-douzaine de checkpoints au minimum et des vies infinies ? 

pirez in Bilou : School Rush (1'30") P

SMB 1-1 à l'aise (1'20") NES
SMB 4-1 à l'aise (1'20") NES
Commander Keen, perilous pit (4'00") SNES
Commander Keen, perilous pit (0'45") -- world record. SNES
DKC, Millstone Mayhem (1'20") SNES
SMW, Donuts 1 (1'15 en prenant son temps) SNES
DKCR -- level 2, 100% (7'30") WII+
DKCTF -- level 2-6, no collectible (2'40) WII+
Rayman Origins, level 2-1, 3 cages (4'30") WII+
Splasher, level 2 (speedrun) (1'30") WII++
Splasher, level 7 (speedrun) (1'50") WII++
Giana Sisters Twisted, level 1-6 (speedrun, no boss) (4'35") WII++

La minute' trente de Pirez pour finir le parcourir le niveau 1 de Bilou: School Rush est donc assez bien dans la moyenne. Ce n'est pas un niveau court, mais ce n'est pas un niveau long non plus. Il y a bien des jeux qui ont des niveaux beaucoup plus longs (la palme revient à Giana Sisters, talonné par les Donkey Return/Tropical freeze si on essaye de récupérer les items).

Sometimes, I got the feeling that levels in platformers are up to 10 times as large as they used to be. That feeling grew up as I played/watched some Tropical Freeze and culminated with the strolling in the amethyst mines of Giana Sisters: Twisted Dreams. But is it accurate ? Above is a list of youtube power plays / speedruns of some of my reference games. I picked the second level most of the times, or the first level orf world 2 ... or some particularily memorable level I want to compare against.

It looks like I'm not completely wrong, but biased by the amount of side-action that exists in latest Rayman and Donkey Kong games. Splasher, on the other side, seems to have a more standard 1:30 average run-through time. Just like Bilou: School Rush :P
.

Splasher, par contre, reste dans un timing habituel. C'est uniquement parce qu'il s'agissait d'une "blind race" que j'ai eu l'impression que les niveaux étaient beaucoup plus longs que le "niveau standard"

PS: non, ne cherchez pas Keen 4 sur NES. C'est un jeu PC. Je le mets dans "SNES" en fonction de son époque et de sa technologie (CPU 16 bits, peu de mémoire, son FM). Idem pour les "Wii+" et "Wii++".

Ah oui. J'expliquerai un peu plus tard le lien avec Splasher.

Saturday, September 10, 2016

La guerre des Mascottes

Ça y est : j'ai enfin reçu mon tome 2 de l'Histoire de Mario. Chiffre de ventes à l'appui, William Audureau et Oscar Lemaire passent au tamis les années sabbatiques du plombier, à savoir la période de 1990 (lancement de Super Mario World) à Juin 1996 (fin du développement de Mario 64). Je dis "années sabbatiques" puisqu'entre les deux, les amateurs de fleurs de feu n'auront que Mario Land II à se mettre sous la dent.

C'est pourtant l'époque où tous vont tenter l'aventure de la plate-forme dans le sillage de celui qui tente de faire vaciller l'idole, à savoir Sonic (1991). Bien sûr, il y aura eu d'autres jeux de plate-forme avant et il y en aura d'autre après, mais durant cette période, ils représenteront le gros des ventes de jeu sur console.

Chose peu surprenante, c'est avec la sortie de Sonic que coïncidera l'envie de faire mon propre jeu de plate-forme avec d'abord Calimero de '91 à '93 puis avec Bilou sous Basic entre '94 et '96.

Pendant ce temps, à peu près tous les détenteurs de personnages enfantin forts vont cesser d'"ignorer" le jeu vidéo et attaquer le dangereux Mario sur son terrain : celui du jeu de plate-forme. Ce sera "castle of illusion" avec Mickey, "duck tales" puis les jeux Infogrames qui ratissent autant de personnages de bande-dessinée francophone que possible mais aussi le bestiaire de la bande à Bugs Bunny -- avec plus ou moins de succès. En réaction, les acteurs du jeu vidéo vont aussi miser gros sur les personnages d'animaux antropomorphiques ayant le potentiel de devenir des mascottes, comme le Mr. Nutz de Philippe Dessoly chez Ocean, la chauve-souris acrobatique chez Sun Soft et le controversé Bubsy chez Accolade (que je ne connaissais jusque là que sur PC pour ses simulateurs de course)... et bien d'autres encore qui n'auront atteint ni l'émission Luna Park ni les planches de Midam. Même les robots de combats spatiaux prennent des allures de braves mascottes et tentent de se faire passer pour des abeilles avec des noms comme "twinnbee".

Oh, well. There's been another book by William Audureau, joint by Oscar Lemaire, about years '91-'95 where platformer was the king of video games, and where it looked like everyone could come with a mascot-like hero that would be the next Sonic since Mario was Missing... So I've been reading and reading. And no code has progressed. More luck next week ?

De notre côtés de jeunes ados, on fait la chasse aux magazines, on rève à ce que peut bien être tel ou tel jeu avec un personnage plus ou moins probable. Il semble qu'il y ait un nouveau venu tous les trimestres. Dans quelques rares cas, on aura l'occasion de s'y essayer mais le monde du PC est tristement dépourvu de ce genre d'exotisme. Au mieux, ce sera James Pond II sur Amiga à la maxithèque, ou la surprise de découvrir Moktar reconverti en Titus the Fox. Ils ne sont pas tous des sonic-like tels que Zool, mais ils cherchent clairement à plaire au même public. Et il semble bien que le succès de Sonic décomplexe tous ceux qui hésitaient jusque là à faire des chat-tout-mignons comme personnages de jeu: il suffit de leur coller un élément vestimentaire de jeune, une attitude cool-et-frondeuse, et en avant. Sur micro, on le prendra avec une dose de dérision, et j'ajouterais bien "Super Frog" (PC, Amiga) à Jazz Jackrabbit & James Pond ... mais le plus souvent, on avait droit à un gros raté du genre "Skunny the Wild West".

Le tandem William-Oscar gratte donc derrière les couvertures de magazines et effectue un impressionnant travail pour rassembler les interviews, les mettre en contexte ... Car si l'un va titrer "la nouvelle mascotte de XXX", ce n'est pas nécessairement l'avis de la société qui l'aura publié, ni du studio qui l'aura créé. Et si les personnages humains (Commander Keen ? Duke Nukem ?) sont assez peu présent dans l'analyse, les "héros/mascottes" improbables tels que Plok ou Cool Spot eux, ne sont pas oubliés.

Il met aussi en perspective les travaux de l'équipe de Miyamoto -- qui n'est évidemment pas restée les bras croisés pendant 5 ans -- qui sans parvenir à donner un deuxième jeu où l'on saute vers des blocs-questions à la SuperNES va se frotter à toutes les technologies de pré-3D afin d'avoir le meilleur Mario 64 possible quand sera enfin prête la console 3D de nintendo.

Il y aura finalement peu de suites parmi les "héros fabriqués spécialement pour l'occasion" ... et aucun ne parviendra à survivre à l'environnement des 16-bits où il a vu le jour, que ce soit pour des raisons de fusion/acquisition/license, par incompatibilité technique entre la vue 3D et les mouvements du jeu de plate-forme, ou simplement parce que les artistes d'animations qui donnaient vie aux personnages se retrouvent privés de tout repère devant les logiciels de modélisations polygonales.

Vous l'aurez compris, même s'il y avait beaucoup moins de matière pour le game-designer-amateur que je suis, le livre m'a malgré tout tenu en haleine. Bon, évidemment, avec tout ça, le travail sur l'amélioration de SEDS et LEDS, mes éditeurs de jeu sous DS, n'ont pas beaucoup avancé ^^".

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.


Sunday, May 24, 2015

The Ultimate Scrolling Analysis.

Huge thanks to Itay Keren for having written his essay that creates a clear nomenclature of camera techniques in (mostly) platformer games, ranging from Pac-land's position locking to Mario's platform snapping to linear interpolation and beyond.

Grâce au développeurs de Frogatto, j'ai pu découvrir l'existence d'un excellent article sur le scrolling des jeux de plate-forme publié il y a quelques jours sur Gamasutra. Eh oui. C'est ça, l'après Google Reader. Je ne vais pas repasser en revue toutes les techniques qu'il présente, du premier platformer à nos jours -- pour ça, il y a l'article d'origine, mais j'en profite pour mettre à jours mes propres références.

Lerp in action. (C) Itay Keren.
Back then, when I started researching how to move Bilou's camera, my colleague Cyril suggested "an elastic string that would draw back the camera to Bilou's position". One close match is Donkey Kong Country's linear interpolation technique. It still has some "wobbly" effect but much less nausea-inducing than when you lock to the player's position. But this is far from being the only camera mechanic in DK games. Anyone who played the game has noted that some areas of the level are apparently "scripted" with cameras behaviour and that entering some hitbox may suddenly allow the camera to move past some artificial barrier, revealing a hidden area. More subtly, this can also be used to enforce "bottom-locking" in some part of the level, or change the horizontal tracking to the type of gameplay (rush, explore, climb...) of a specific area.

Commençons par une technique que j'avais laissé sur le côté quand elle m'avait été proposée par Cyril -- une "sorte d'élastique qui ramènerait la caméra vers Bilou" -- que j'avais tenté d'implémenter avec le code de poursuite des BerryBats. J'aurais mieux fait de procéder comme dans Donkey Kong Country avec une "interpolation" linéaire qui déplace la caméra d'autant plus vite qu'elle se trouve loin de son point de destination.

When I tried myself to analyze the horizontal scrolling of Super Mario Bros, I thought that there was two 'push-the-screen' positions, depending of the speed at which Mario moves. The reality is a bit different.
two triggers in SMB. (C) Itay Keren.
There is indeed two trigger positions, one -- walking barrier -- that forbids Mario from entering the rightmost part of the screen, and a second that smooths camera movement when Mario starts running. The "early-scroll" trigger doesn't try to keep Mario at its left, though, so he eventually "escapes" to the walking barrier.


Passons ensuite à SMB1, avec son interdiction de revenir en arrière. Ici pas de soucis pour faire demi-tour, mais Miyamoto a quand même pensé à nos jeunes estomacs et a ajouté un démarreur de caméra deux blocs avant la position 'naturelle' de Mario. On y gagne pas pour autant en visibilité pendant la course comme je le pensais au départ, mais on évite un départ trop brusque de la caméra si on revient en courant.

This is what smooth out the movement of the camera by reducing the instan(aus)eous acceleration of the image. I'd be tempted to say screen will move at walking speed until the real barrier is hit. I guess with more CPU cycles and memory, miyamoto's team could have even tried to linearly over time in that region rather than having two-steps, but I doubt most of us would notice the difference, so it's not bad to keep it simple. But no, you don't really have more headroom when running in SMB.

Finally, Itay's model of Super Mario World's camera nicely complement the video document I already found (and not yet re-blogged so far). The camera here clearly has multiple mode, that Shaun categorizes as "platform-snap", "bottom-locked" or "free-moving". I tried and mapped these as an UML state machine, but it lacks one component: the fact that in some levels/parts of the level, some transitions are forbidden -- e.g. in some levels, you will not enter platform-snap and stay bottom-locked.

Les différents mode de suivi vertical de Super Mario World, j'avais déjà étudié par l'entremise de Shaun. Le code est assez sophistiqué pour mériter une machine d'état à lui tout seul. En plus de ça, certaines transitions sont interdites dans certains (morceaux de) niveaux, forçant par exemple la caméra à rester au niveau du sol à moins que Mario ne s'envole dans les niveaux plats. 


What Itay adds to that, is a clear illustration that the camera in SMW has a direction state of its own (moving leftwards or moving rightwards) distinct from Mario's movement. In each direction, there is one barrier that will make you push the screen if you try to go past it, and a trigger that will switch to the other mode if you touch it. When the camera is "heading right", the two yellow lines are active -- Mario is confined within 2 blocks. As soon you hit the dashed line while turning back, the camera switches to "cyan mode", and then you have the screen adapting as quickly as the camera's max speed tolerates because you're about 64 pixels away from the push barrier for that direction (still picture shows a point in time where such catch-back occurs).

L'analyse de Itay est plus précise en ce qui concerne le scrolling horizontale. Il illustre parfaitement le mécanisme des deux "poussoirs horizontaux" décentrés (un pour chaque direction de caméra) et les déclencheurs qui forcent la caméra à changer de direction quand Mario a fait demi-tour de plus de 2 blocs. Il semblerait qu'on ait ici aussi utilisé une "interpolation linéaire" pour adoucir le mouvement de la caméra quand elle atteint à nouveau la position de Mario.

With this scheme, the player always have at least 1/3rd of the screen in the direction he face and half-a-screen-plus-one-block in most of the cases. That works quite well with exploration games like Commander Keen, imho.


If you're doing game design in some way, I strongly recommend you to spend some of your "research points" reading Scroll back : the Theory and Practice of Cameras in Side Scrollers.


Tuesday, February 04, 2014

Adventures in 3D Land: DKC Returns

http://zeezeezeez.wordpress.com/2011/01/06/sammy-hall-donkey-kong-country-returns/Donkey Kong Country est le premier jeu que je suis parvenu à terminer sur Super NES (grâce à l'entrainement de Julien). DKC2 est le jeu pour lequel j'ai installé mon premier émulateur. DKC3 celui qui a failli me coûter mes vacances d'été en '98 ... et je me serais sans doute passé de 3DS si je n'avais pas appris par Piek l'existence de DKC returns 3D. On a ici droit à un véritable portage du jeu Wii sur console portable, avec l'effet stéréoscopique pour celui qui insiste, un coeur supplémentaire par joueur et quelques soucis de prise en main.

J'y vois rien!
C'est le gros hic de cette version. Pas de ralentissement-sur-le-rail en ce qui me concerne, mais une série de situations où le héros et les éléments-clé du gameplay sont tout simplement illisibles. Entre les phases de jeu où un zoom arrière est utilisé pour rendre la scène "plus épique" (niveau sur rail du monde des dinos), les fois où c'est nécessaire pour avoir une vue d'ensemble (dans la forêt sur la photo ci-dessus), et celles où les développeurs ont trouvé que ce serait rigolo qu'on joue à l'arrière-plan pendant une petite minute avant d'être renvoyé sur l'avant-plan, nos yeux sont mis à rude épreuve. Regardez plutôt: Bilou, avec ses 24 pixels de haut (la taille d'un sprite C64) est plus grand à l'écran que Donkey Kong -- d'ailleurs à la limite de l'invisible sur fond de vieux tronc brun foncé.

Die & Retry.
Nombreux sont les recoins du jeu où il est impensable de passer du premier coup. Plutôt que d'attaquer le coeur du problème, on nous met alors ici et là un ballon 1-UP juste après un point de sauvegarde. S'ils passent techniquement sans ralentissements, les niveaux en tonneau-fusée ou en charriot minier restent extrêment éprouvant pour les nerfs, avec des obstacles imprévisibles en fin de niveau, alors que vous venez de faire preuve de maîtrise et de concentration pendant la première moitié. Ce serait tolérable si on pouvait garder sa fiole-de-protection (achetée chez Cranky) pour la fin du niveau, et s'il ne fallait pas compter près d'une minute de chargement entre les niveaux pour aller s'en racheter une. On ne manque pas de vie, c'est sûr -- ce ne sont pas mes 406 pièces bananes qui me contrediront (7 vies pour 10 pièces, sauf erreur de ma part), mais ce genre de niveau est généralement fini avec Super Kong parce que j'en ai trop marre, surtout qu'ils aiment apparement nous en mettre deux ou trois  coup-sur-coup. Ce ne serait pas si grave si on pouvait se dire "ok, c'est de ma faute, je n'ai pas fait attention à ..." mais avec tous ces effets pyrotechniques ajouté autour du gameplay, ça tourne franchement au "vraiment trop injuste".

Souffler n'est pas jouer ?
Il m'aura fallu presque tout le premier monde pour m'adapter à l'inertie des sauts de DKC. C'est très certainement de bonne guerre, et le nombre de ballons, tonneaux et coeurs proposés fait que, si j'ai raté des sauts plus (surtout pour assommer des tiki) plus souvent qu'à mon tour, j'arrive tout de même au boss sans avoir fait descendre significativement mon stock de vies. J'aime toujours autant les mouvement complémentaires "frapper au sol" et "souffler", utilisés essentiellement pour activer les subtils équivalents des "blocs-questions" contenant bananes, vies, etc. Très chouettes, parce qu'à l'instar du "abaisse-toi pour trouver les passages secrets" de Titus, ils ne permettent d'explorer qu'en marquant une pause dans les enchaînement de sauts. A cogiter. Par contre, je dois bien admettre que j'ai fini par laisser tomber le "roll-jump". S'il offrait une technique ultime pour les épisodes SNES, il va conserver ici son inertie horizontale, de sorte qu'il m'est arrivé très régulièrement de louper mon atterrissage tout simplement parce qu'il ne fallait pas faire de roll-jump à cet endroit, même pour des sauts relativement longs. Comparativement, l'opus sur SNES permettait de faire un saut *vers la gauche* même au milieu d'une roulade vers la droite, avec un côté "oh, bin non, je ne vais pas tomber dans le trou, finalement, je reviens sur ma plate-forme".

Et la 3D?
Non, merci, sans façons. La majeure partie du jeu sera affichée "plus profond que la vitre" (dans l'écran), ce qui est certainement préférable à perdre l'illusion de 3D à cause d'un objet qui deviendrait invisible lorsqu'il arrive au bord de l'écran alors que vos yeux le percevaient plus proche que la vitre. Par contre, vu la quantité d'éléments d'avant plan, celà implique que les personnages, ennemis et autres éléments interactifs ne sont quasiment jamais avec la même image pour les deux yeux. Le hic, c'est qu'avec le niveau de détail relativement réduit que les 400x240 pixels de la console permet et l'absence d'anti-aliasing, on obtient des effets très désagréables où l'oeil droit soutient qu'on voit nettement les deux yeux du singe alors que l'oeil gauche, lui, en voit un plus court ou déformé. J'ai été tenté de la réactiver dans les niveaux qui jouent sur "avancer/reculer sur l'axe de profondeur", espérant qu'il serait plus facile d'estimer les distances de saut de ce donkey-plus-petit-que-Bilou avec l'effet 3D, mais non. C'est juste pire, vu les reflets et la perte de luminosité dont j'avais déjà parlé.

Au final, le jeu reste bon, et c'est sans doute un des rares (hum) bon portage d'un épisode de DKC sur console portable. J'apprécie tout particulièrement la reprise de la bande son des années '90, qui est apparemment la seule chose dont ma fibre nostalgique avait besoin pour me faire oublier l'absence de Funky Kong, d'Espresso, de Dixie, des kremlins (il faut admettre que les tikis ne leur arrivent pas à la cheville, graphiquement parlant) et des ballons verts et bleus.

Par contre, si un petit quart-d'heure de (new) super mario avait le chic pour me déstresser et m'aider à relativiser les problèmes, me remettre de bonne humeur, je constate que DKCr aura plutôt tendance à me rendre agressif, contrarié, et un peu râleur. Curieux.