AccueilDéveloppement de jeuxGénérateur de donjon procédural

🏰 Générateur de donjon procédural

Générateur interactif de donjons procéduraux : construisez des niveaux de jeu avec trois algorithmes interchangeables — partitionnement d'espace binaire (BSP), salles aléatoires + corridors, et grottes par automate cellulaire. PRNG à graine pour des cartes reproductibles, vérifications de connectivité et statistiques de sol.

Développement de jeux3DModéré60 FPS
procedural-dungeon ↗ Ouvrir en autonome

À propos de cette simulation

Cette simulation construit une carte de niveau de jeu à la volée à l'aide de trois algorithmes interchangeables : le partitionnement d'espace binaire (BSP), qui divise récursivement la carte et place une salle dans chaque nœud feuille ; un générateur de salles aléatoires qui disperse des rectangles non chevauchants et les relie le long d'une chaîne couvrante du plus proche voisin ; et une grotte par automate cellulaire qui part de bruit aléatoire et le lisse avec la règle classique 4-5. Un LCG à graine (générateur congruentiel linéaire) pilote chaque choix aléatoire, si bien que la même graine reproduit toujours exactement la même carte.

🔬 Ce que ça montre

Un donjon en grille rendu sur un canvas, où les cases sont colorées selon leur type : sombre pour les murs, teinté de vert pour les sols de salle, bleu-gris pour les corridors, et gris pour le sol de grotte organique. Après la génération, un double parcours en largeur trouve les deux cases de sol les plus éloignées (marquées en vert pour le départ, en rouge pour la sortie) et indique la longueur du plus long chemin ainsi que le pourcentage de cases de sol atteignables depuis le départ — une mesure directe de la connectivité de la carte.

🎮 Comment l'utiliser

Basculez entre BSP, Salles et Grotte avec les boutons d'algorithme. Ajustez la taille de la carte (24 à 80 cases par côté), le nombre de salles cible, et la taille min/max des salles pour BSP et Salles ; pour Grotte, contrôlez le pourcentage de remplissage initial et le nombre de passes de lissage. Saisissez une graine numérique ou cliquez sur « Nouvelle graine » pour explorer différentes dispositions, et activez la superposition de structure pour voir les lignes de découpe BSP et les contours des salles.

💡 Le saviez-vous ?

La règle d'automate cellulaire utilisée ici pour les grottes — une case devient un mur si 5 voisines ou plus sur ses 8 sont des murs, sinon elle devient du sol — est la même « règle 4-5 » popularisée pour la génération de grottes de roguelike, car quelques passes de lissage transforment de manière fiable du bruit aléatoire en cavernes connectées et à l'aspect organique, sans aucune logique de recherche de chemin.

Questions fréquentes

Qu'est-ce que la génération de donjon par partitionnement d'espace binaire (BSP) ?

La génération BSP divise récursivement une zone rectangulaire en deux rectangles plus petits, en alternant coupes horizontales et verticales, jusqu'à ce que chaque région soit assez petite pour contenir une salle. Une salle est ensuite placée dans chaque nœud feuille, et les salles sont reliées par des corridors droits ou en L suivant l'ordre de leur création. Cela produit des donjons avec une structure arborescente naturelle et peu de salles qui se chevauchent, et c'est l'une des techniques les plus utilisées dans les roguelikes car elle garantit des salles non chevauchantes sans aucune vérification de collision.

Comment l'algorithme de salles aléatoires évite-t-il les chevauchements ?

Le générateur propose de manière répétée une salle de largeur et hauteur aléatoires à une position aléatoire, puis la vérifie par rapport à chaque salle déjà placée à l'aide d'un test de chevauchement de boîtes englobantes alignées sur les axes (avec une marge d'une case). En cas de chevauchement avec une salle existante, la tentative est abandonnée et une nouvelle est essayée, jusqu'à un nombre limité de tentatives. Une fois qu'il existe suffisamment de salles non chevauchantes, elles sont reliées par une chaîne gloutonne du plus proche voisin — à chaque étape, la salle non encore connectée la plus proche est rattachée au réseau grandissant par un corridor en L, dans un esprit similaire à la construction d'un arbre couvrant minimal.

Quelle est la règle d'automate cellulaire utilisée pour l'algorithme de grotte ?

La grotte commence sous la forme d'une grille remplie aléatoirement de murs à un pourcentage choisi (35–60%). Elle est ensuite lissée sur plusieurs passes : à chaque passe, chaque case compte combien de ses 8 voisines sont des murs, et devient elle-même un mur si 5 voisines ou plus sont des murs, sinon elle devient du sol. Répéter cela plusieurs fois érode le bruit isolé et transforme les petits amas de murs en parois de grotte lisses et organiques — le même principe qui sous-tend le Jeu de la vie de Conway, appliqué à la génération de niveaux plutôt qu'à la simulation de cellules vivantes.

Comment le générateur de nombres aléatoires à graine rend-il les cartes reproductibles ?

La simulation utilise un générateur congruentiel linéaire (LCG) : une formule simple qui transforme de manière répétée un état interne de 32 bits par multiplication et addition avec des constantes fixes, produisant un flux déterministe de nombres pseudo-aléatoires. Comme le générateur est réinitialisé à la même valeur de graine chaque fois que « Générer » est pressé, saisir la même graine avec le même algorithme et les mêmes paramètres produit toujours exactement la même disposition de donjon, ce qui explique pourquoi le champ de graine et le bouton « Nouvelle graine » permettent d'enregistrer ou de reproduire une carte précise.

Que signifient les statistiques de connectivité et de plus long chemin ?

Une fois un donjon généré, la simulation lance un parcours en largeur depuis une case de sol pour trouver la case atteignable la plus éloignée, puis lance un second BFS depuis cette case pour trouver le vrai diamètre de la région connectée — c'est la technique classique du « double BFS » pour trouver le plus long plus-court-chemin dans un graphe non pondéré. Les deux extrémités deviennent les marqueurs de départ et de sortie, la longueur du chemin entre eux est affichée comme « Plus long chemin », et « Connectivité » indique quel pourcentage de toutes les cases de sol sont atteignables depuis le départ, ce qui signale si la grotte ou le donjon comporte des poches isolées et inaccessibles.

⚙ Sous le capot

Générez des niveaux de jeu de trois façons : partitionnement BSP avec salles et corridors, placement aléatoire de salles avec un arbre couvrant de corridors en L, ou grottes par automate cellulaire. À graine pour la reproductibilité.

Génération procéduraleBSPAutomate cellulaireNiveaux de jeuRNG à graine

3D · Moteur de rendu Three.js / WebGL · Cible 60 FPS · Fonctionne entièrement côté client, sans installation

Qu'avez-vous trouvé ?

Ajouter des étapes de reproduction (facultatif)