Aller au contenu principal

Que sont les donjons modulaires ?

Les donjons modulaires sont un système de donjons introduit dans BetterStructures 2.0.0 et versions ultérieures. Au lieu d'apparaître comme un seul schematic fixe, les donjons modulaires sont assemblés dynamiquement à partir de petits modules façonnés à la main. Cette approche permet de créer de grands donjons à plusieurs étages qui semblent uniques dans chaque monde tout en s'intégrant harmonieusement au Minecraft vanilla.


Comment les donjons modulaires sont-ils générés

  • Modules Chaque module est généralement construit selon une taille configurable (par défaut 16x16x16 blocs, bien que certains packs de contenu utilisent 32x16x32 ou d'autres dimensions). Les modules sont conçus avec des points de connexion standardisés à l'aide d'un système de balises de bordure, afin de pouvoir se connecter à d'autres modules sans espaces ni chevauchements. Les dimensions d'un donjon sont définies à l'aide des options de configuration moduleSizeXZ et moduleSizeY dans la configuration du générateur de modules. Les modules peuvent contenir des couloirs, des salles, des escaliers ou des espaces d'affrontement spéciaux.

  • Processus de génération Lorsqu'un donjon modulaire se génère dans un nouveau chunk, BetterStructures utilise un algorithme Wave Function Collapse (WFC) pour assembler procéduralement les modules à partir du pool disponible. Le système sélectionne aléatoirement des modules compatibles en se basant sur la correspondance des balises de bordure et les « coud » ensemble pour former un donjon complet. Le temps de génération varie selon les performances du serveur, la taille du donjon (rayon), la plage verticale, le nombre de modules et la complexité des contraintes. Le système utilise une répartition de la charge de travail pour éviter le lag du serveur pendant la génération.

  • Taille du donjon Les donjons peuvent être configurés pour se générer à différentes tailles à l'aide du paramètre de rayon. Des valeurs de rayon plus grandes créent des donjons nettement plus grands, pouvant s'étendre sur des centaines de blocs. La plupart des donjons comprennent plusieurs étages, reliés par des modules d'escalier ou des puits verticaux. Les connexions verticales entre les étages sont réalisées via les entrées up/down de la carte de balises de bordure borders d'un module : la face supérieure d'un module se connecte à un voisin situé au-dessus lorsque leurs balises de bordure opposées correspondent.


Variété et intégration des packs

  • Free Pack Le Dungeoneering Modules Free Pack comprend 15 modules. Il fonctionne comme un donjon entièrement jouable à lui seul.

  • Premium Pack Le Dungeoneering Modules Premium Pack ajoute 38 modules supplémentaires. Combinés au Free Pack, les deux ensembles s'entrelacent en un seul système de donjon avec un pool de modules bien plus large. Cela réduit la répétition et augmente la variété dans les agencements générés.

  • Intégration des props Si vous installez également le BetterStructures Prop Pack (via FreeMinecraftModels), les donjons modulaires afficheront des props avec des modèles personnalisés tout au long des constructions, comme le montrent nos captures d'écran de présentation. Sans le prop pack, les donjons fonctionneront toujours normalement, mais sans les modèles décoratifs.


Intégration EliteMobs

Bien que la majeure partie du donjon ne repose que sur BetterStructures et les mobs vanilla de Minecraft, certains donjons proposent des combats de boss :

  • Si EliteMobs et FreeMinecraftModels sont tous deux installés → combat de boss personnalisé complet avec modèle.
  • Si seul FreeMinecraftModels est installé → le modèle du boss apparaît comme prop décoratif.
  • Si aucun n'est installé → la salle du boss sera tout simplement vide.

Le système utilise un système d'apparition basé sur des panneaux avec des balises spéciales pour placer des entités et des conteneurs dans des zones désignées. Les niveaux des boss sont mis à l'échelle en fonction de la distance par rapport au centre du donjon, offrant un défi adapté à travers toute la structure.

Types de panneaux de module

Balise de panneauLigne 1Lignes supplémentairesDescription
[spawn][spawn]Type d'entité sur la ligne 2Fait apparaître une entité vanilla à l'emplacement du panneau
[pool: poolname][pool: poolname]Fait apparaître un boss aléatoire depuis le pool d'apparition nommé
[chest][chest]Place un coffre à l'emplacement du panneau
[trapped_chest][trapped_chest]Place un coffre piégé à l'emplacement du panneau
[barrel][barrel]Place un tonneau à l'emplacement du panneau
[exit][exit]Noms de fichiers de schematics d'ascenseur sur les lignes 2-3Marque un point de sortie avec des schematics d'ascenseur haut/bas

Si EliteMobs n'est pas installé mais qu'un pack de contenu le nécessite, les administrateurs recevront un message d'avertissement.

Cette conception garde les donjons modulaires compatibles avec les configurations de style vanilla, tout en offrant une intégration plus poussée aux utilisateurs disposant de plugins supplémentaires.

Pools d'apparition

Les panneaux [pool: poolname] lisent les fichiers de configuration de pools d'apparition dans le dossier spawn_pools/. Chaque fichier de pool d'apparition est une petite configuration YAML comportant ces champs :

ChampPar défautDescription
isEnabledtrueSi ce pool d'apparition est activé
poolStrings[]Liste des noms de fichiers de boss EliteMobs éligibles pour ce pool
minLevel-1Niveau minimum pour les boss instanciés issus de ce pool (-1 = non spécifié)
maxLevel-1Niveau maximum pour les boss instanciés issus de ce pool (-1 = non spécifié)

Lorsqu'un panneau [pool: poolname] est traité, BetterStructures recherche poolname.yml (éventuellement avec le spawnPoolSuffix du générateur ajouté) et choisit un boss aléatoire parmi les poolStrings du pool. Pour les boss instanciés, le niveau d'apparition est mis à l'échelle entre minLevel et maxLevel selon la distance du boss par rapport au centre du donjon.


Intégration MythicMobs

BetterStructures prend également en charge l'intégration MythicMobs pour des rencontres de mobs personnalisées dans les donjons modulaires.

Lorsque MythicMobs est installé, les packs de structures peuvent faire apparaître des MythicMobs personnalisés dans le cadre de la génération de donjons. Cela permet des rencontres de mobs et des combats de boss plus sophistiqués que ce que le Minecraft vanilla ou EliteMobs proposent.

Si MythicMobs n'est pas installé, le plugin avertira les administrateurs disposant des permissions appropriées et fournira un lien de téléchargement.


Intégration FMM

Les donjons modulaires peuvent aussi tirer parti des props FreeMinecraftModels (FMM) lors de leur création.

  • Si FMM est installé, tous les props placés par le créateur ou le constructeur du module apparaîtront dans le donjon généré.
  • Les props sont purement décoratifs et n'affectent pas le gameplay, mais ils améliorent la fidélité visuelle et l'immersion de l'environnement.
  • Si FMM n'est pas installé, le donjon se générera tout de même normalement, mais ces props personnalisés ne seront pas affichés.

Cela garantit que les créateurs peuvent concevoir des donjons avec des détails supplémentaires tout en maintenant la compatibilité pour les joueurs qui n'ont pas FMM installé.



Dimensions des modules

Important : la taille des modules est configurable, pas fixe.

Chaque générateur de modules définit sa taille de module standard à l'aide de :

  • moduleSizeXZ : largeur et profondeur en blocs (par défaut : 16)
  • moduleSizeY : hauteur en blocs (par défaut : 16)

Taille par défaut : 16×16×16 blocs Alternative courante : 32×16×32 blocs (utilisée dans certains packs de contenu)

Pour les créateurs de modules :

  1. Vérifiez la valeur de moduleSizeXZ et moduleSizeY dans la configuration de votre générateur
  2. Construisez TOUS les modules de ce générateur en respectant exactement ces dimensions
  3. Des tailles non concordantes entraîneront des échecs de connexion

Définir des dimensions personnalisées : Dans votre fichier de configuration du générateur de modules :

moduleSizeXZ: 32  # Width and depth
moduleSizeY: 16 # Height

Remarque : tous les modules d'un générateur doivent utiliser les mêmes dimensions. Vous ne pouvez pas mélanger des modules 16×16×16 et 32×16×32 dans le même système de donjon.


Champs de configuration du générateur de modules

Au-delà de moduleSizeXZ et moduleSizeY, la configuration du générateur de modules prend en charge les champs suivants :

ChampPar défautDescription
radius1Rayon du donjon en chunks
edgesfalseSi les modules de bordure sont générés
startModuleListe du/des module(s) de départ pour la génération
minChunkY0Limite verticale minimale de chunk
maxChunkY0Limite verticale maximale de chunk
moduleSizeXZ16Largeur et profondeur des modules en blocs
moduleSizeY16Hauteur des modules en blocs
debugfalseActive le mode débogage pour le dépannage de la génération
useGradientLevelsfalseActive une mise à l'échelle des niveaux basée sur un gradient pour les entités apparues
spawnPoolSuffixSuffixe ajouté aux noms de pools d'apparition pour ce générateur
isWorldGenerationfalseSi ce générateur est utilisé pour la génération de monde
treasureFileFichier de configuration de trésor pour les coffres de ce donjon
generateLootInBarrelstrueSi les tonneaux des modules doivent être remplis de butin
barrelTreasureFilenametreasure_barrel_food.ymlFichier de configuration de trésor utilisé pour remplir les tonneaux de ce donjon
validWorldsListe des noms de mondes valides où le donjon peut se générer
validWorldEnvironmentsListe des environnements de monde valides
centerModuleAltitude0Altitude du module central

Champs de configuration par module

Chaque module individuel peut définir les champs de configuration suivants :

ChampPar défautDescription
isEnabledtrueSi ce module est activé
weight100Poids de sélection de ce module pendant la génération
repetitionPenalty0Pénalité appliquée lorsque ce module est sélectionné plusieurs fois
noRepeatfalseEmpêche ce module de se répéter
enforceVerticalRotationfalseApplique les contraintes de rotation verticale
enforceHorizontalRotationfalseApplique les contraintes de rotation horizontale
minY-4Niveau Y minimum pour ce module
maxY20Niveau Y maximum pour ce module
biomedefaultExigence de biome pour ce module
minecraftBiomenullExigence de biome Minecraft pour ce module
treasureFileFichier de configuration de trésor pour les coffres de ce module
generateLootInBarrelstrueSi les tonneaux de ce module doivent être remplis de butin
barrelTreasureFilenametreasure_barrel_food.ymlFichier de configuration de trésor utilisé pour remplir les tonneaux de ce module
bordersCarte de balises de bordure définissant la compatibilité de connexion
cloneConfigClone les paramètres depuis un autre fichier de configuration de module
compoundModuleLie ce module en tant que partie d'un module composé (multi-parties)
isAutomaticallyPlacedtrueSi le module est placé automatiquement pendant la génération

Remarque : les faces d'un module pouvant se connecter à des voisins sont entièrement contrôlées par la carte de balises de bordure borders, et non par un quelconque interrupteur « passable » par face. Deux modules se connectent sur une face lorsque leurs balises de bordure opposées correspondent.