Friday, July 10, 2020

Eagle Island


I've been following the development of Eagle Island since its author (@Pixelnicks) announced his crowdfunding campaign. The animations were tempting, and I finally decided to join the adventure. Okay, I might not be that much into metroïdvanias nor roguely-inspired levels, but it was about a boy and his owl, and I've been an owl-lover for quite some times.

not exactly the type of gameplay I'm after ...
What truly decided me to join was the "Nintendo Switch port". I knew I wouldn't be playing the game on any other device, but I had already the #sijavaisuneswitch hashtag in the back of my mind.

When the development finally was over, and that the switch port hit the shop, I had a bitter surprise: the redeem code I had received in exchange for my contribution wasn't available for the Nintendo Switch.
I understand why, of course: the port has been coded by a third-party studio and the indie author doesn't have direct control over whether they will donate copies of their work or not. So for one year or so, I owned the game, but couldn't play it unless I bought it again.

If only I could scroll up to see the top of those trees! ...
But I kept following Pixelnicks' posts and somewhere around mid-May, I noted that the background trees drawn by @skittlefuck were exactly the kind of references I needed to polish the graphics of Bilou's Green Zone.

And so I made the jump. I the very day I purchased it, I was publishing snapshots that triggered some level design thoughts.

It took me some time to get used to the gameplay. (A) to jump and (Y) to fire isn't exactly what Mr. Thumb is used to. There is an option to remap the buttons, but unfortunately, it also remaps the "OK" and "Cancel" actions for the whole menu system. I finally thought that it would be easier to adapt to a new game than to a new 'OK' button. I'm still messing up from times to times, but I got it mostly in the muscle memory, now.

I was tempted by the '360° aiming', too. It helps at start, because you can shoot where you want, Yoshi Island-style. But as soon as the challenge curve ramps up, it stops being helpful. You see, many of the actions in Eagle Island expect you to shoot from mid-air, and to chain successful shots. If you miss a target, your penalty is an "recovery" delay for your owl (who acts as a boomerang) before you can shoot again, while you can easily chain "hits" shots. Unlike Megaman or Super Mario, Quill and Koji don't have big functional blind spots. But being limited to 8 directions for aiming requires you to mix JUMP and SHOOT to reach your target.

Well. With its interesting mechanic where the #1 way to regain health is to chain 3 hits in a combo, there is really much I could say about Eagle Island's gameplay. I've only started understanding the mechanics of the game.

But I'm making a pause (as I reached the 2nd big boss encounter) to review the screenshots I made. They might help populate the 'pyramid zone' too, after all.

But I'll have to come back to those trees and analyze them better than my "big mustache made of socks" current comments, because I definitely see that style fit better in Bilou's woods than any other trees I collected for pixel study those last months (years ?)

@arcadeHero@RianKamos#EagleIsland

Thursday, June 25, 2020

Le retour des Meta-Boutons

Bon, la bonne nouvelle, c'est que j'ai repris le travail sur l'éditeur de niveau: il faut bien qu'on puisse profiter des nouvelles possibilités offertes par le moteur "newmap", vu qu'il a passé le premier round de tests automatiques.

J'ai attaqué avec la révision des "méta-boutons", cette palette d'outil qu'on peut faire apparaître sur la droite de l'écran pour définir si le sol est solide, pentu, préciser si les graphismes sont des bonus, etc. Il est encore trop tôt pour balancer un "ça avance plutôt bien", disons juste que je n'ai pas encore été immobilisé.

There's some good news: I resumed working on my level editor. Having a brand new game engine supporting more slopes and more physics won't be very sweet if I can't make level for it, right?

Well, I started with fixing 'meta-buttons', that widgets palette on the right of the map edition that let you define blocks properties. It is still too early to claim "good progress has been made". At this point, the best I can say is that I haven't been stopped yet.

There's some bad news too, unfortunately. If there is progress, it is even slower than Wintergatan's marble music machine. I'm happy if I managed to work 3 or 4 hours a week on the topic. I started my todo list in my notebook so that I can plan the things to happen even though I might not be ready for more screen time by the end of the day.

La mauvaise nouvelle, c'est que ça avance encore plus lentement que la machine musicale à boules de Wintergatan. Si je "travaille" dessus 3 ou 4 heures par semaine, c'est beaucoup. Heureusement, donc j'ai mon calepin pour y cogiter quand j'ai un peu de temps libre, pas d'épisode de Castle en retard, mais que je ne suis plus trop d'attaque pour me coller devant un écran.

Pour situer, j'ai même carrément commencé un thread twitter avec des p'tits bouts d'avancée parce que je sais parfaitement bien que quand je serai finalement devant le bon PC (plantage de desmume pendant que j'essaie de faire tourner l'éditeur sur le PC plus souvent disponible), j'aurai probablement oublié le calepin à côté de mon téléphone dans mon "cubicle" au premier qui me sert de bureau depuis que je suis en mode télétravail.

I had initially thought that once planned, I could crunch the thing in a couple of evenings, but no. This has turned so much into micro-development that I even started a twitter thread to post my screenshots and track "what's to do next". Left foot (one fix). Right foot (another bug discovered). Left foot(another fix). Right foot (yet another bug).

Not that ugly code got written, but the dependencies of what I had foreseen to need changes was of course imperfect. Sometimes more buttons means I start trashing the VRAM with my "back-up memory". Another time, I notice that the 'autorun.nds' used for tests doesn't know how to clear the screen (and turns it all red). Every step takes only an hour or so, but since that's all I can afford per sprint evening, it starts remembering me of how it felt to write code when I was 12 and my parents told me "that's it. 55minutes. Now save your work and wash your hands: the dinner is ready". (except that I'm one of the parents and that I'll have to make the dinner ready ;)

"Tiens c'est quoi, cette barre verte" ... une petite heure d'investigation. un commit qui corrige le mauvais positionnement de l'espace de backup dans la mémoire (oouhhh). Je déclenche accidentellement un "mur rouge" en voulant vérifier que tout va bien mais il est trop tard: ce sera pour un autre jour.

Et cet autre jour, je constate qu'un peu de refactoring serait le bienvenu avant de chercher l'erreur. Paf, une fois le refactoring terminé, il est déjà temps de refermer le laptop. Jour suivant, je fais les recherches avec gdb. Mais une fois le problème identifié, bardaf, il est temps d'arrêter.

Bref, je crois que vous voyez le tableau. ça rappelle un peu les conditions de programmation BASIC de quand j'avais 12 ans, tiens.

Well, let's not get disappointed, shall we ? I finally got translation-on-loading repaired yesterday. I refreshed how-autorun-checks-VRAM in my brain. Maybe I'll be able to fix one more bug tonight? Or I'll watch some more of Castle, S5 with my Fairy.

Friday, June 12, 2020

Cachette Secrètes ...

Il y avait quelque-chose de bien fun dans Prehistorik 2: de nombreuses cachettes dans lesquelles on trouvait plein de bonus plus farfelus les uns que les autres. Pas trop à se tracasser, celà dit: ça fait juste monter votre score. Mais ça fait aussi quelques clins d'oeil rigolos. Quand on tombe sur un pacman ou une cocotte en papier, par exemple.

J'avais eu dans l'idée d'ajouter des objets étranges à collecter dans Infinite Pyramid, qui serviraient de témoignages des années qui ont vu naître Bilou. Une K7 audio qui déclenche un jingle de l'inspecteur Gadget, par exemple. Ou un pixel art de Fury of the Furries. Ce genre de chose. Repenser aux parties de PRE2.EXE et à sa casserole géante (élément sympa qui nous rappelle le niveau qui vient de s'écouler) me donne l'impression que des objets hétéroclites sont plus fun qu'un gros tas de bananes, aussi Rare soient-elles.
Don't trust what's being said in French: it all happened because I was playing Eagle Island, and couldn't help but trying to smash the owl into walls just in case there'd be hidden things. Only then I recall that I grew this habbit while clubbing around in Titus' Prehistorik 2.

But granted, the thing about K-7-shaped bonuses in the pyraputer that would play Inspector Gadget jingle is a true trivia that has been suggested to Cyborg Jeff for approval. And indeed, bringing that together with the "nostalgia" for clubbing into walls made me realize that collect-a-thon are more fun if you don't know in advance what you'll collect and when designers break your expectation about what may comes during the hunt. It's another way to "make gaming moments memorable" when your game doesn't really fits an epic scenery.

Par contre, je n'avais toujours pas de bonne solution pour faire la chasse au bonus. L'effet préhistorik est drôle parce qu'on peut prendre les attentes du joueur à contre-pied. ça marchera moins (imho) si il a vu les bonus approcher depuis le bord de l'écran. Alors, bien sûr, je peux donner des coups de tête dans les branches pour faire apparaître des trucs. ça se transpose moins bien en dehors de la Green Zone. Je peux lancer des taille-crayons dans les murs, mais ça limite les endroits où chercher.

Je peux aussi essayer de faire une animation de Bilou à 4 pattes, qui permette de rendre la recherche des cachettes dans les murs un peu plus excitantes, mais entrer dans la cachette n'est que le début. ça ne nous donne pas l'effet "bonus surprise" de PRE2.

Puis en gribouillant, je suis tombé sur une idée mélangeant PRE2 et SMB3. Pourquoi ne pas permettre à Bilou de passer à certains moments derrière le décor. Là, il peut utiliser le bouton "GRAB" pour essayer de fouiller et faire sortir tous les bonus cachés ^_^

it brought my attention to the fact that I still don't have a good candidate for PRE2.EXE's club (or DK ground-pound attacks) to investigate things when you haven't been provided a blador/koopa/DK barrel to hint you that there is a secret nearby. I've been scribbling some options, starting with the obvious "jump and hit things repeatedly", continuing with "crawl under a lower (secret) passage into the wall. Nothing really convincing.

Taking a step back, why does clubbing-for-secrets work in PRE2 ? Partly because you'll clubbing all over the time. That's why blowing on things in DK:R doesn't work as well as rolling into the grass in DK:TF. What could Bilou do ? So far, his bare abilities are JUMP and GRAB...

We all know how JUMP can be used to reveal hidden goodies, right ? How about GRAB ? You sure could do it the SMB2 way. Not only you lift up defeated baddies, but you can strip goodies out of the ground after you found a suspicious thing protruding from the ground. You could also do it the DK:TF way, grabbing a root, holding 'GRAB' for a bit longer and finally you reveal the hidden stuffs. But both are for obvious secrets. Mechanically, they're not that different from the hit-me-plants of Rayman Origins (or DK:TF, by the way)

But I could turn them into PRE2-hit-the-unexpected-spot if I combine that with a mechanics from SMB3: hold up/down to switch to the background layer. Only then, you'd start digging for secrets by using GRAB again and again. There won't be the "smash-smash-smash" sound, but it could be made equally funny, I think.


Je sens que ça va être rigolo. On peut aussi le faire dans la pyramide là où il y a du sable, ou en passant derrière un pillier / une statue plutôt que par devant.

Sunday, June 07, 2020

Infogrames

Regis Monterrin et Florent Gorges ont obtenu une interview avec un ancien designer de jeu chez Infogrames durant la période SNES à N64: Vannara Ty, interview qui est rediffusée sur la chaîne "les petits secrets de la playhistoire". On y discute entre autres de l'évolution du projet "Schtroumpfs 64" -- un projet ambitieux, mais qui doit faire face à une période où la société ne sait pas encore sur quelle machine 3D miser et où il est donc nécessaire de faire toute la phase de pré-concept sur "ClaireFontaine Engine" parce qu'il n'est pas possible d'acheter une license de 3DStudio Max pour travailler sur un projet qui n'est pas encore validé. Mais la déclaration qui m'a retenu est la suivante:
[Peyo] n'a jamais vraiment eu de feedback négatif sur tout ce qu'on produisait. Déjà, de base, ils n'étaient pas gamer donc ils nous faisaient vraiment confiance.
Bien sûr. On a beau parler de Peyo-fils ici, le gars a la quarantaine quand le projet démarre. Pas loin de l'âge de mon e-Papou, qui ne se sera jamais vraiment à l'aise joystick en main. Alors le chasseur impérial qui sert de contrôleur à la N64 ou même les 6 boutons colorés de la SNES ... ils préfèrent sans doute laisser les spécialistes du testing (ceux qui à la fin du développement finissaient Tintin au Tibet en une vie, donc, avec des défis speedrun) de chez Infogrames leur montrer que tout marche bien que d'essayer le jeu eux même. 

Autre révélation-choc: quand Vannarra fait le design de Tintin au Tibet Le Temple du Soleil - ce titre techniquement impressionnant mais à la jouabilité difficulté monstrueuse (?) - il vient d'être engagé chez Infogrames juste après la fin du développement de Tintin au Tibet : c'est son premier jeu. C'est son stage (période d'essai?).
J'avais règlé les niveaux tellement durs que même les testeurs n'arrivaient pas à les passer. [...] Puis un jour [en revenant de vacances], les réflexes étant moins top, j'ai découvert les atrocités que j'avais faites subir aux testeurs et j'ai revu la difficulté pas mal à la baisse.
 Il nous avoue aussi qu'une fois le jeu fini, après un marathon de 10 mois uniquement là-dessus, il n'a évidemment qu'une seule envie: ne plus y toucher. Ce qui expliquer que ce soit un p'tit jeune qui ait travaillé sur le nouveau jeu, et pas le "chef" de l'équipe de Tintin au Tibet (pour peu qu'il y ait eu des chefs d'équipe à l'époque).

Saturday, June 06, 2020

Petite cascade

Bon, c'est pas énorme, mais ça faisait un moment que ça n'était pas arrivé. Je me suis pris une heure ou deux cet après-midi pour faire un p'tit montage de ce que donnerait une cascade sympa au milieu de l'environnement de Bilou.

C'était chouette, mais perfectible. En réimportant quelques trucs venus d'études précédentes, je finis par avoir quelque-chose de plus riche et qui s'intègre mieux avec le reste des décors (je trouve)

J'aime bien la possibilité de faire tomber l'eau verticalement en bout de plate-forme plutôt que de devoir me farcir un arc-de-cercle presque sans épaisseur. ça donnerait mal au crâne de celui qui devrait essayer de modéliser ça en 3D, mais soyons honnêtes: qui s'en tracasserait ?

Bon déconfinement à tous ;)

Saturday, May 30, 2020

Yo Yo Shuriken par Dr. Ludos

Un p'tit coin de web bien sympa, où Dr. Ludos nous raconte l'aventure de son homebrew SuperNES: "Yo-yo Shuriken". On est dans un jeu de type 'arcade / clean-them-all' qui n'est pas sans rappeler les ambitions simples d'Apple Assault.

Le jeu est orienté autour d'un mécanisme qui titillait Dr. Ludos depuis un bon moment: un jeu de tir où on a droit qu'à un seul projectile. Après quelques essais où il faut aller récupérer son shuriken en bordure d'écran, Dr. lui ajoute un mode boomerang et le sort du cyber-ninja est scellé: il se fait voler la vedette par son shuriken. Le voilà condamné à une éternité d'anonymat.

En plus de nous raconter la genèse et le développement de son jeu, Dr. Ludos nous parle aussi du développement pour SNES version 2020.
I used [PVSNESlib] to make Yo-Yo Shuriken, so I could code it in C language. For graphics, I drew BMP images that were converted to the SNES graphics format. For audio the framework accepted wav files for sound effects and .it files (Impulse Tacker format) for music. It was still quite a challenge to make a game running on the SNES, but PVSNESlib made it a "hard but fun challenge"!
PVSNESlib, c'est le travail de papy Alekmaul, un ancien de dev-fr qui a embrayé sur les consoles 16 bits une fois que la fièvre des DS est retombée. On lui doit des portages de jeux Amiga, un assez sympathique jeu de puzzle (qui avait fait parler de lui à une compo, si ma mémoire est bonne) et la partie technique de Sidney Hunter, un homebrew original dans la veine de Rick Dangerous.

In the end, even if you use a tool like PVSNESLib, you'll need to be familiar with how the SNES works in order to make actual games for it. Hopefully the wonderful homebrew community have consolidated some very extensive documentation. I'll recommend:

Pour ma part, je n'ai pas encore commencer le développement sur SNES, mais j'aimerais que mon prochain jeu ("Bilou's Dreamland") puisse envisager un portage sur la reine des 16-bits. Je vais donc garder bien au chaud les recommandations de Dr. Ludos. Mais ce ne sera pas simple partant avec 80 ennemis à l'écran (hors des 128 possibles pour le hardware) pour ses premiers tests, Dr. Ludos doit redescendre à 40 une fois les tests de collisions ajoutés (pour tenir les 60fps), puis de nouveau à 24 pour prendre en charge un deuxième joueur et la gestion de la musique. Soit un total de 38 sprites si on compte aussi les joueurs, leurs shurikens et les explosions.

Il va devoir malgré tout ruser un peu, comme convenu avec ce genre de machines: contrairement au joueur, les ennemis ne seront déplacés qu'une frame sur 2, ce qui permet d'étaler les tests de collisions sur 2 frames. (Curieux de voir ce que PVSnesLib a dans le ventre pour gérer ça, tiens ...) Il va falloir équilibrer ça avec le temps de mise à jour disponible pendant la période de VBlank, aussi -- seul moment où on peut faire une mise à jour de la mémoire graphique sur la SNES -- faute de quoi certains éléments graphiques seront tout simplement manquants à l'écran.

Mais Dr. Ludos ne s'est pas arrêté à faire une ROM de son jeu. Il nous fait la totale, avec une boîte, un manuel et une cartouche physique soudée à la main! Amis amateurs de tubes cathodiques, vous voilà avertis ...



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.
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 GGS.

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.

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.