Wednesday, March 22, 2017

Pico8 spacemaze generator

J'avais bien aimé le jeu "spaceman 8", un petit jeu d'arcade pour Pico8 consistant à ramasser des gemmes dans des dédales en micro-gravité. Kometbomb, le développeur, a écrit dernièrement un assez sympatique article sur son blog pour expliquer le fonctionnement du générateur aléatoire de niveaux. Contrairement à un générateur de labyrinthe, il n'est pas souhaitable ici d'utiliser l'entièreté de l'espace, et contrairement à un générateur de donjons, les longs corridors ne sont pas franchement un plus.

Weeks ago, I gave "spaceman 8" pico8 arcade game a try and I quite enjoyed if. You spelunk for gems in a maze-like cavern using your jetpacks and your mental compass.
I loved roughly as much reading kometbomb's blog post on the random level generator they used. It had to be simple, and yet it does a great job at hiding items on a network of interconnected galleries by emulating dwarves digging dirt and stealing each others' treasures.


At each turn, one dwarf will pick a random wall, dit it and hide one of the N items there. Additional rules restrict which wall can be dug, but there is no need for de-speckle or whatsoever. Giving the caverns a chaotic look is then the job of the tileset. Could I replace dwarves by ... Bilou?

Le concept de base est d'avoir N objets à cacher dans le labyrinthe, et de les placer initialement tous dans la seule case vide (au centre de la "mine"). On va ensuite jouer aux nains creuser:
- à son tour, chaque nain choisit un trésor et le vole;
- il une dalle non-creusée voisine d'au moins une (et au plus 2) dalles déjà creusée, creuse et y dépose son trésor.

kometbomb rajoute une contrainte supplémentaire sur la présence de cellules creusées en diagonale de la cellule choisie (au plus une). Une sorte d'heuristique, j'imagine.

Je serais curieux de savoir si ce genre de mécanisme peut s'adapter pour remplacer les nains par ... disons ... des Bilous ?

1 comment:

Sylvain Pypebros said...

Note that the sawtooth pattern on "ground" tiles isn't random or pure aesthetics: it will maximize the friction with carried gems and will give a timing penalty for one who picks an approximate trajectory.
Since the time spent in each level is limited and running out of time means a game over ...