J’ai commencé à jouer avec quelques algorithmes sur Internet et je me suis mis à les intégrer à Unity en C# . Après avoir essayé quelques formules je me suis mis à vouloir utiliser la mienne pour créer des donjons procéduraux.

Que l’on s’entende, procédurale ne signifie pas aléatoire. L’exemple au dessus répond aux règles d’un algorithme appelé le jeu de la vie. Dans cet exemple je me sers d’une grille x y et j’attribue une valeur 0 ou 1 en fonction de l’algo. Si c’est 0 je dessine de l’eau et si c’est 1 je dessine de la terre.
Cela reste une utilisation très simpliste. On peut aisément la complexifier et l’agrémenter de conditions : si il y a un 1 0 1 , alors le 0 sera un 1. Cela permet d’éviter des décors trop décousus. Cependant, pour se la génération de Map cela suffit, générer un donjon avec plus de logique c’est peut être un peu moins évident

Du coup plutôt que de partir d’un algorithme déjà existant j’ai décidé d’utiliser Unity et de concevoir le mien pour générer un donjon a la Binding of Isaac sur PC ou Zelda a Link’s Awakening sur GameBoy. Quand je parles d’utiliser Unity, c’est pour la partie graphique, pas algorithmique. J’utilise une TileMap et une RuleTile , un dessin qui obéit à une règle logique, programmée de manière visuelle.
Après quelques tests en C# , j’ai obtenu des résultats . Je n’ai pas mis de réelle logique , la génération obéit à des règles aléatoire : une case est générée, puis on génère aléatoirement une case autour et ainsi de suite sur un nombre X d’essais.


Après avoir rajouté des règles, des conditions, des réexecutions et un peu de récursivité, je suis parvenu à un résultat assez satisfaisant. Bon hashtag déso mais je lacherai pas mon algo. Il est encore améliorable mais je préfère me le garder. Après il est pas difficilement reproductible hein je vous rassure 🙂


Voilà voilà, maintenant on va voir à quoi ça va me servir ! En tout cas c’était marrant à programmer ! Je vais peut être me concentrer sur le graphisme en pixel art avec tout ça …