Automates cellulaires
Générateur de cavernes
Ce générateur utilise un automate cellulaire : une grille aléatoire est transformée par plusieurs itérations successives en analysant le voisinage de chaque cellule afin de faire émerger des cavernes organiques.
Cliquer sur la carte recrée immédiatement une nouvelle caverne.
Le besoin : générer des cavernes naturelles
Dessiner manuellement chaque caverne est rarement envisageable lorsqu’un jeu doit produire des dizaines, voire des centaines de cartes différentes. La génération procédurale permet de renouveler chaque niveau tout en conservant une structure cohérente. À partir d’une simple grille de cellules, l’algorithme fait émerger des formes organiques sans utiliser de modèles prédéfinis ni de dessins préparés à l’avance.
Contrairement à un générateur de labyrinthes qui construit des chemins, un automate cellulaire cherche plutôt à faire apparaître des masses. Le résultat ressemble davantage à une grotte naturelle qu’à un réseau de couloirs artificiels.
Créer une grille aléatoire
La première étape consiste à remplir la carte avec des cellules aléatoires. Chaque case possède une probabilité d’être un mur ou un espace libre. À ce stade, la carte n’a aucun intérêt : elle ressemble simplement à du bruit.
Les cellules situées sur les bords restent toujours pleines afin de fermer naturellement la carte. Cette contrainte évite que la génération ouvre des passages directement vers l’extérieur.
Faire évoluer la carte avec un automate cellulaire
Chaque cellule observe son voisinage avant de décider de son état futur. Si elle est entourée de nombreuses cellules pleines, elle rejoint naturellement la masse rocheuse. Dans le cas contraire, elle a davantage de chances de devenir un espace libre.
Toutes les décisions sont calculées à partir de la génération précédente. La grille n’est donc jamais modifiée pendant l’analyse. Une seconde grille reçoit les nouveaux états avant de remplacer entièrement la précédente.
Observer deux échelles de voisinage
L’algorithme ne se limite pas aux huit voisins immédiats. Il utilise deux zones d’observation différentes afin d’influencer la forme générale de la caverne.
Le premier voisinage, limité à une zone de 3 × 3, agit comme un lissage classique et renforce les groupes déjà présents. Le second, plus large avec une zone de 5 × 5, permet de corriger certaines structures trop ouvertes ou trop isolées. La combinaison des deux produit des cavernes beaucoup plus naturelles qu’un simple filtre de majorité.
Multiplier les itérations
Une seule génération ne suffit pas à transformer le bruit initial. L’algorithme est exécuté plusieurs fois de suite. À chaque passage, les petits défauts disparaissent, les cavités s’agrandissent et les contours deviennent plus réguliers.
Le nombre d’itérations influence directement le résultat final. Trop peu d’itérations conservent une carte très bruitée. Trop d’itérations finissent par produire des formes très compactes. Trouver un bon équilibre permet d’obtenir des cavernes crédibles tout en conservant une part d’aléatoire.
Améliorer encore la connectivité
Les automates cellulaires produisent parfois plusieurs cavités indépendantes. Une amélioration classique consiste à appliquer un algorithme d’inondation afin d’identifier les différentes régions ouvertes. Les plus petites peuvent être supprimées ou reliées à la plus grande afin de garantir qu’un joueur puisse explorer l’ensemble de la carte.
Exploiter la grille générée
La grille finale peut servir directement de carte de collisions, être convertie en carte de tuiles ou alimenter un moteur procédural plus complet. Elle constitue également une excellente base pour placer automatiquement des ennemis, des ressources, des objets ou des points d’intérêt.
La démonstration fournie permet de modifier les dimensions de la carte, la densité initiale et le nombre d’itérations afin d’observer l’influence de chaque paramètre sur la forme finale des cavernes.

