Catégories
Tech

Génération procédurale de circuit en 2D

Ce projet génère un circuit de manière procédurale sur une tilemap 2D.

J’ai récemment développé une classe sur Godot Engine qui permet de générer procéduralement une boucle en 2D. Vous pouvez lui passer certains paramètres, tels que la dimension du terrain, la taille minimum et maximum du parcours. Une fois votre circuit créé, vous pourrez l’afficher à l’aide d’une tilemap.

Je me suis basé et j’ai adapté une méthode de génération de labyrinthe, il s’agit de l’algorithme récursif backtracker. Le curseur de génération va se déplacer aléatoirement de case en case. Dès que l’algorithme est bloqué dans une impasse, celui-ci va revenir en arrière jusqu’à trouver un chemin possible. On continue, ainsi de suite, jusqu’à ce que le programme arrive sur la position de départ.

À la fin de la génération, la fonction retourne un tableau avec toutes les positions du parcours sous forme de vecteur.

Vous pouvez également activer le mode debug pour observer la création du parcours au ralenti.

Vous pouvez télécharger la démo et le code source sur Github. Le code est disponible sous licence MIT, vous êtes libre de l’utiliser comme bon vous semble. N’hésitez pas à le tester et me donner vos retours!