Default new Sanctuary worlds to the 20-player profile and keep legacy world generation isolated. Validate all three capacities progressively with real generation, fluid ticks and saved settings.
49 KiB
Premier monde Sanctuary
Le preset sanctuary:sanctuary crée l'île principale à l'origine de l'Overworld,
entourée de vide sans répétition d'îles à grande distance. C'est une première
tranche de génération pour Minecraft 26.3-pre-2 / Fabric, pas encore le
système d'expansion collective.
L’alpha.10 propose trois tailles d’île pour 5, 20 ou 100 joueurs, avec
20 joueurs par défaut. Les trois profils passent les contrôles moteur sur
la graine 0, dans des emprises explicitement inspectées. Les générations
historiques conservent leurs réglages, notamment sanctuary:sanctuary_cavern
pour l’alpha.9 et sanctuary:sanctuary_rift pour l’alpha.8. Les observations
de chaque version restent séparées dans Validation.
Créer un monde
En solo : créer un nouveau monde et choisir le type de monde Sanctuary
dans les options de génération. Les types de monde vanilla restent disponibles.
L’alpha.10 utilise ce choix pour 20 joueurs par défaut, avec des variantes
5 et 100 joueurs. Les identifiants sont sanctuary:sanctuary (20),
sanctuary:sanctuary_5 (5) et sanctuary:sanctuary_100 (100).
Sur un nouveau serveur Fabric disposant du mod et de Fabric API :
level-type=sanctuary:sanctuary
level-name=sanctuary
level-seed=0
Pour créer une variante alpha.10, remplacer seulement
level-type par sanctuary:sanctuary_5 ou sanctuary:sanctuary_100, avec un
nouveau level-name. Ces exemples concernent une création de monde, pas le
changement de taille d’une sauvegarde existante.
La seed est libre. Modifier level-type ne convertit pas un monde existant :
utiliser un nouveau level-name pour tester une autre génération. Les fichiers
de test et les sauvegardes personnelles doivent rester distincts.
Socle de génération conservé
Les points suivants décrivent le socle livré jusqu’à l’alpha.8. Les évolutions alpha.9 et alpha.10 sont précisées dans les sections v9 et v10 ci-dessous.
- Le générateur reste celui de Minecraft,
minecraft:noise. - La forme reprend le champ de bruit flottant actif en 26.2 :
old_blended_noiseavecxz_scale=0.25,y_scale=0.25,xz_factor=80,y_factor=160,smear=4, ainsi que son gradient supérieur. Il est échantillonné 64 blocs plus bas pour relever l'île entière de 64 blocs. Reliefs, surplombs, trous et fragments dépendent de la seed Minecraft. L’alpha.8 y soustrait des failles courbes, sans ajouter de matière. L'ancien gradient inférieur uniforme est remplacé par la sculpture irrégulière décrite ci-dessous. - Le terrain naturel reste libre de laisser un trou à l'origine, de former des surplombs ou de se séparer en fragments. Aucun noyau ellipsoïdal, cylindre ou plateforme de départ n'est ajouté. Le relief relevé de 64 blocs reste le champ source ; les failles de l’alpha.8 en retirent de la matière et l’hydrologie traite ensuite les lits et les rives près de la surface.
- Le pourtour est sculpté par retrait de matière à partir du rayon 128 blocs. Le contour de référence de 256 blocs est déformé par les bruits, entre 204 et 288 blocs ; il indique la fin de l'érosion, pas un mur de roche. La côte réelle apparaît plus tôt, selon la densité du terrain et la seed. Aucun terrain ne réapparaît au-delà de 288 blocs, sans répétition d'îles. Les arbres peuvent dépasser la côte rocheuse de quelques blocs.
- Les nouveaux mondes utilisent 384 blocs de hauteur, de
Y=0àY=383, pour la dimension et le générateur. La roche disparaît avant leurs limites. Il n'y a ni plancher de bedrock, ni mer globale, ni reprise du terrain à distance. Le Nether et l'End restent ceux de Minecraft. - Les nouveaux mondes utilisent une palette tempérée de forêts de chênes et de bouleaux, de clairières fleuries et de zones rocheuses. Les strates intérieures portent des chênes noirs et des champignons sur leurs corniches naturelles. Dappled Forest est réservé aux futurs continents. Leur végétation et leurs animaux proviennent de Minecraft 26.3-pre-2. Les nouveaux identifiants ne reprennent pas les tags de structures vanilla, afin de ne pas placer leurs structures dans le vide.
- Jusqu’à l’alpha.8, les carvers, géodes, donjons, grands lacs de lave et sources vanilla sont retirés. L’alpha.9 ajoute une intégration bornée de géodes et de geysers, sans réactiver l’ensemble de la décoration souterraine vanilla. L’eau de Sanctuary suit son propre plan de surface et de niches rocheuses. Les arbres et les petits filons ont besoin du terrain existant. Aucun mod de biomes externe n’est nécessaire.
L’alpha.8 associe ces biomes aux plages, aux eaux et aux filons décrits ci-dessous. Les ressources de survie ne se limitent pas au bois et à la pierre, mais cet incrément ne garantit pas encore une partie Minecraft complète sur chaque seed. L’accès à chaque progression vanilla et les ressources renouvelables nécessitent des vérifications concrètes. Les stocks réels sont relevés après la génération, sans corriger une île pour atteindre un quota.
Capacité de l’île — génération v10
L’alpha.10 propose trois tailles accessibles à la création d’un monde. Le choix Sanctuary vise 20 joueurs par défaut, accompagné de variantes pour 5 et 100 joueurs. Les presets et paramètres de bruit sont associés ainsi :
| Preset de création | Paramètres enregistrés dans le monde |
|---|---|
sanctuary:sanctuary_5 |
sanctuary:population_5 |
sanctuary:sanctuary |
sanctuary:population_20 |
sanctuary:sanctuary_100 |
sanctuary:population_100 |
Les nouveaux réglages restent distincts des identifiants enregistrés dans les anciennes sauvegardes. Modifier le preset sélectionné pour une nouvelle partie ne convertit pas un monde existant.
| Capacité de référence | Facteur horizontal | Aire nominale relative | Diamètre nominal | Hauteur |
|---|---|---|---|---|
| 5 joueurs | 1 | 1 | 512 blocs | 384 blocs |
| 20 joueurs, défaut | 2 | 4 | 1 024 blocs | 384 blocs |
| 100 joueurs | √20, environ 4,472 | 20 | Environ 2 290 blocs | 384 blocs |
Le facteur horizontal vaut √(capacité / 5) : doubler le diamètre multiplie
l’aire nominale par quatre. Cette relation décrit l’enveloppe de référence,
pas la surface réellement constructible après les trous, les falaises et
la sculpture de la bordure. Aucun cylindre central ni remplissage de secours
ne doit être ajouté pour obtenir l’aire théorique. La hauteur de dimension
reste Y=0..383.
La capacité choisie reste un paramètre de génération. Elle ne modifie pas
max-players, n’agrandit pas l’île à chaque connexion et ne fixe aucun quota
de ressources. Les anciens mondes jusqu’à l’alpha.9 gardent leur génération
et leur taille ; leurs chunks ne sont ni remplacés ni régénérés. Le projet
de continents déverrouillables reste séparé de ces tailles de départ.
Le bruit naturel reste échantillonné aux coordonnées du monde ; seule l’enveloppe extérieure change de taille. Les plans hydrauliques sont construits à la demande dans des régions de 512 blocs, avec une graine régionale distincte. Les marges d’admission sont de 16 blocs pour l’eau et 32 pour la lave. Bassins, berges et groupes de terrasses sont admis entiers ; les sources dépendant d’une coupe écartée sont retirées aussi. Aucun trajet n’est tronqué à la frontière. Les couches superposées et leurs sources sont ensuite traduites ensemble.
Les forêts, minerais et décorations utilisent toute l’emprise du profil. La recherche facultative d’un arbre remarquable reste unique et centrale. Les sources et exutoires n’agissent que pendant la génération, avec les marqueurs vanilla consommés ; recharger un ancien chunk ne rouvre pas une bouche.
Les trois tailles passent onze tests requis sur la graine 0, avec 1 800 ticks
de fluides et un aller-retour réel des paramètres sur disque. Le fichier
data/minecraft/world_gen_settings.dat conserve la clé du profil choisi.
212 anciens fichiers de production sont strictement identiques, tandis que
huit fichiers d’intégration ou d’interface exposent les nouvelles générations.
Le premier calcul d’une région reste coûteux ; les résultats ne sont pas un
test de cent connexions ni une garantie de génération rapide de toute l’île.
Voir les emprises et durées dans Validation.
Cavités et terrasses d’eau — génération v9
Le nouveau réglage est sanctuary:sanctuary_cavern, avec le biome source
sanctuary:cavern_island et la règle de matière sanctuary:cavern_island.
La densité réutilise sanctuary:final_density_rift sans changer cet identifiant
historique. Ses nouvelles données et traitements
doivent rester distincts de sanctuary:sanctuary_rift et de toutes les
générations précédentes. Le preset sélectionne la nouvelle génération à la
création ; une mise à jour du JAR ne convertit pas une sauvegarde ni ne
régénère ses chunks. Les cavités restent dans l’Overworld sur 384 blocs de
hauteur ; la dimension des cavernes décrite dans la vision n’est pas ajoutée.
Ambiances et ressources
Le ticket conserve les forêts de surface et ajoute des cavités luxuriantes éclairées par leur végétation, des secteurs à spéléothèmes et des géodes d’améthyste sur des emplacements compatibles. Les sols, plafonds, coquilles et ouvertures doivent être observés après la décoration réelle : une valeur de biome ne prouve ni le décor ni son éclairage. L’objectif est d’utiliser les volumes naturels de l’île, sans remplir ses trous pour accueillir une structure.
Les dix biomes ont leurs propres identifiants : cavern_oak_forest,
cavern_birch_forest, cavern_clearing, cavern_dry_woodland,
cavern_rocky_heath, cavern_dark_grove, cavern_bamboo_grove,
cavern_sulfur_depths, cavern_lush_caves et cavern_dripstone_caves, dans
le namespace sanctuary. Les deux nouvelles ambiances luxuriantes et à
spéléothèmes sont limitées à Y<184 par la palette ; leur décoration recherche
des sols entre Y=40 et Y=182, avec trois blocs naturels de support et un
plafond situé de 6 à 48 blocs au-dessus.
Dans les cavités luxuriantes, la mousse remplace le sol compatible et de
petites plantes l’accompagnent. Les vraies lianes cave_vines et
cave_vines_plant pendent sur 3 à 8 blocs ; leurs baies émettent de la lumière
et restent récoltables. Ce décor n’ajoute pas d’eau. Les spéléothèmes utilisent
les blocs pointed_dripstone orientés, sur un appui de dripstone_block
remplaçant de la roche existante, avec une longueur de 1 à 4 blocs selon
l’espace disponible.
La géode utilise une configuration vanilla compacte avec améthyste, améthyste bourgeonnante, calcite et basalte lisse. Son enveloppe doit tenir dans la roche préexistante et un passage de deux blocs de haut la relie à la cavité, en préservant l’améthyste bourgeonnante et les cristaux attachés. Un chunk sur huit est candidat ; au plus une pose réussie est retenue par chunk candidat. Cela ne garantit pas de géode sur une graine.
Le soufre devient admissible dans une bande climatique plus étroite sous
Y=176. La réduction de cette sélection peut être testée indépendamment du
terrain ; seule une comparaison des vrais blocs sur un périmètre commun
mesure sa diminution dans l’île. Un geyser éventuel creuse un seul bloc de
sol pour sa source d’eau, avec potent_sulfur dessous et magma_block encore
en dessous. Le fond, les quatre parois et la hauteur libre sont contrôlés.
Le cycle du geyser reste celui de Minecraft ; ce décor est distinct des
bassins hydrologiques et son eau doit être comptée séparément.
Leur présence, leur activité, l’éclairage et la cohabitation avec les eaux et la végétation sont contrôlés dans les mondes de test. Les preuves de ces éléments sont cumulées sur les trois graines. Un site incompatible peut être rejeté ; aucun geyser ni stock n’est garanti pour chaque graine.
Lacs et bassins étagés
Le plan hydrologique conserve la recherche de rivière de l’alpha.8 et vise de plus grands lacs de surface. Les cibles actuelles sont de l’ordre de 700 à 1 100 colonnes par grand lac, jusqu’à 7 à 8 blocs de profondeur intérieure et une incision limitée à 12 blocs. Ce sont des bornes de recherche ; les dimensions réelles sont relevées séparément, sans quota d’eau à remplir. Les fonds, les parois et les dépôts exigent du terrain naturel.
Les terrasses sont recherchées dans des cavités entre Y=56 et Y=208, avec deux paliers par groupe et jusqu’à deux groupes facultatifs. Un palier vise environ 40 à 180 colonnes, une profondeur de 1 à 3 blocs et une incision d’au plus 5 blocs. Le fond doit conserver trois couches de sédiments et deux couches de support naturel ; le plafond et l’espace disponible sont vérifiés. Les mesures moteur précisent les sites effectivement retenus.
La recherche suit le choix de pente de l’eau vanilla : parmi les passages libres, elle privilégie ceux qui rejoignent la chute la plus proche. Un bassin inférieur doit intercepter ce trajet réel, sans détour creusé pour le rejoindre. Les sorties entre paliers sont déclarées et les cascades sont formées par les ticks de fluides Minecraft. Le premier débordement doit atteindre le second bassin. Celui-ci peut avoir un exutoire terminal qui s’écoule sur les roches ou vers le vide, sans troisième bassin ajouté. Le générateur ne doit ni peindre une colonne d’eau jusqu’au vide ni colmater un trou pour retenir un bassin. Les volumes retenus et les liaisons réelles sont vérifiés séparément après décoration et simulation, y compris aux frontières de chunks. Les cascades peuvent servir à monter ou descendre selon la nage vanilla ; aucune mécanique d’ascenseur supplémentaire n’est prévue. « Rizières » décrit seulement l’aspect du paysage en terrasses, sans ajouter une culture de riz.
Validation moteur au 9 septembre 2026 : les trois graines de référence passent les contrôles après 1 800 ticks, avec preuves cumulées des terrasses connectées, geysers actifs, baies lumineuses, spéléothèmes et améthyste bourgeonnante. Le build complet réussit. Les résultats et leurs limites sont consignés dans Validation. Aucune présence universelle n’est garantie. La distribution est publiée et la même instance Prism est synchronisée, sauvegardes et réglages conservés.
Failles, géologie et ressources — génération v8
Les nouveaux mondes utilisent sanctuary:sanctuary_rift, la densité
sanctuary:final_density_rift et le biome source sanctuary:rift_island.
Les anciens paramètres sanctuary, sanctuary_384, sanctuary_hydrology,
sanctuary_natural, sanctuary_layered et sanctuary_woodland restent séparés.
Changer le preset ne migre pas un monde existant ; aucune régénération de
chunks ni modification de sauvegarde n’est prévue par cet incrément.
Failles et palette
RiftShape définit une à trois traces principales, courbes et ramifiées,
de longueur nominale 84 à 160 blocs. Leur largeur varie avec deux bruits en
trois dimensions ; le cœur ouvert est de l’ordre de 4 à 12 blocs, avec des
parois érodées autour. Ces nombres décrivent les traces avant leur intersection
avec la roche, pas une garantie de canyon continu de cette taille. La passe
retire seulement de la matière et laisse intactes les zones de rayon inférieur
à 20 blocs et extérieur à 224 blocs. Elle ne crée aucun socle central.
Les huit biomes rift_oak_forest, rift_birch_forest, rift_clearing,
rift_dry_woodland, rift_rocky_heath, rift_dark_grove, rift_bamboo_grove
et rift_sulfur_depths ont de nouveaux identifiants dans le namespace
sanctuary. Les choix climatiques de l’alpha.7 sont conservés en haut. Le
soufre devient admissible dans des régions plus larges des étages inférieurs,
notamment vers Y=176, selon les bruits de variation et d’humidité. Le test de
palette prouve cette possibilité ; seule la lecture des vrais blocs peut
prouver une poche accessible sur une graine.
La végétation vanilla de surface garde ses arbres et ses teintes. La feature
rift_groves passe ensuite, avant rift_shore_sugar_cane, pour choisir les
volumes inférieurs encore libres après les arbres. Elle peut placer de gros
champignons vanilla, avec des petits champignons dispersés et des sols mêlant
mousse, podzol et mycélium. Les supports naturels et la place disponible
restent nécessaires ; un arbre remarquable peut échouer si son site est occupé.
L’ordre des plantations intérieures donne la priorité aux arbres dans trois
cas sur quatre et aux gros champignons dans l’autre cas, selon un choix lié
au chunk. Cela laisse des volumes disponibles aux chênes noirs. Dans les
biomes sanctuary:rift_dark_grove et sanctuary:rift_bamboo_grove, l’ardoise
des abîmes peut aussi fournir le support naturel des sols et bosquets
inférieurs. Son admissibilité est vérifiée au-dessus de chaque pied : seules
ces deux variantes humides autorisent ce support.
Matières selon la profondeur
La règle sanctuary:rift_island ne change que la matière de blocs déjà solides.
Ses nappes utilisent un bruit 3D, avec un bruit distinct pour faire varier les
transitions de profondeur.
| Domaine | Matières |
|---|---|
| Masses supérieures | Pierre, granite, andésite, diorite ; sols enherbés hors affleurements |
| Intérieur des bosquets humides | Tuf, cobblestone, cobblestone moussue, boue compactée |
| Masses profondes | Ardoise des abîmes, roche noire, basalte |
| Poches soufrées | Soufre et cinabre ordinaires sur les masses existantes |
Les strates humides se mêlent aux matières hautes entre Y=192 et Y=224 dans leurs biomes ; la transition vers les roches profondes s’étend de Y=136 à Y=168. La profondeur sert de critère géologique : ces blocs ne signifient pas qu’une source de lave se trouve forcément à proximité. Aucun bassin, spike, source vanilla ou bloc de soufre puissant du biome Sulfur Caves n’est ajouté.
Les anciens petits dépôts vanilla de granite, andésite, diorite et tuf sont
remplacés par ces nappes dans les seuls biomes rift_*. Les anciennes données
de biomes et leurs features ne sont pas modifiées.
Minerais
Les features rift_ore_* ciblent des tags Sanctuary locaux : les pierres hautes
et humides produisent les minerais ordinaires ; ardoise des abîmes, roche noire
et basalte produisent leurs variantes d’ardoise. Les tags vanilla ne sont pas
élargis globalement. Le soufre et le cinabre restent des matières distinctes.
| Minerai | Taille du filon configurée | Essais principaux par chunk | Altitudes principales |
|---|---|---|---|
| Charbon | 9 | 8 | Y=96..304 |
| Fer | 7 | 4 | Y=88..280 |
| Cuivre | 7 | 3 | Y=96..280 |
| Or | 5 | 2 | Y=88..224 |
| Redstone | 5 | 2 | Y=88..216 |
| Lapis | 4 | 1 | Y=104..240 |
| Diamant | 4 | Un essai une fois sur deux | Y=80..208 |
| Émeraude | 3 | 1 | Y=104..224 |
Les hauteurs suivent une distribution en trapèze. Charbon, fer et cuivre reçoivent aussi respectivement 4, 2 et 2 essais sur roche supérieure exposée, et autant de recherches de corniche depuis l’air entre Y=64 et Y=288. Un essai peut ne produire aucun bloc. Les tailles configurées ne sont ni des quantités garanties par filon ni des quotas par île. L’exposition à l’air est autorisée pour ces trois minerais et l’émeraude ; une partie des candidats exposés est encore écartée pour les autres minerais. Les stocks devront être relevés après génération, avec leur emprise explicite.
Eaux et lave
RiftHydrology cherche des bassins plus grands et une longue liaison calme
sur la vraie densité fissurée. Le critère de cet incrément est un chemin d’eau
continu d’au moins 140 blocs entre deux bassins au même niveau, alimenté par
une source rocheuse et sa cascade entrante. Il ne s’agit pas d’une rivière
descendant continuellement en altitude. La recherche parcourt huit directions
et pondère les trajets selon le relief et un bruit ; le parcours retenu est
lissé sur une échelle de 16 à 32 blocs, puis arrondi avant sa conversion en
blocs. Le lit varie entre environ 5 et 7 blocs de largeur, hors élargissement
des bassins. Le chemin et ses marges sont à nouveau vérifiés sur la roche
après ce lissage : une courbe ne peut pas servir à franchir un trou.
La roche doit soutenir le fond et les berges. L’incision du lit reste limitée à 16 blocs. Les berges de rivière peuvent retirer jusqu’à 12 blocs pour rejoindre l’eau par paliers progressifs ; les autres rives conservent leur limite de 2 blocs. Les dépôts de 3 à 5 couches ont toujours besoin de supports naturels. Aucun remblai ne franchit une faille ou un trou. Si aucun parcours compatible n’est retenu, le générateur garde les bassins et sources qui conviennent au relief.
Le calcul initial du plan reste coûteux : les essais finaux sur ce poste
mesurent 80,5 secondes pour la graine 0, 50,7 pour 42 et 59,7 pour
8675309, hors génération des chunks. Le résultat est mis en cache par état
aléatoire du monde ; il n’est pas recalculé pour chaque chunk. L’optimisation
de ce premier calcul reste un travail ultérieur.
La recherche de lave profonde vise une à deux petites sources entre Y=40 et Y=160, en complément de la niche couverte accessible. Cette poche de 18 blocs sources est recherchée d’abord sur une corniche intérieure entre Y=64 et Y=160. Si aucun site profond ne réunit les conditions de support, de voûte et d’accès, la recherche reprend sur les corniches plus hautes, jusqu’à Y=300. Il n’y a pas de poche créée de force lorsque les deux recherches échouent. Les sources supplémentaires laissent Minecraft former leurs coulées par ses ticks, sans colonne préremplie. L’eau, les supports et les marges de végétation doivent être contrôlés après décoration et simulation. La finition des bouches doit rester limitée à la première génération du chunk, sans effacer un aménagement joueur lors d’un rechargement.
Validation du 9 septembre 2026 : le build complet réussit et les contrôles moteur passent sur les trois graines de référence. Les failles, les bassins terminaux, les liaisons de rivière, les champignons et les fluides après 1 800 ticks sont documentés avec les relevés de ressources dans Validation. Ces échantillons ne garantissent pas la présence de chaque ressource sur toutes les graines. Les rapports intermédiaires ne servent pas de preuve pour la version finale ; aucun monde personnel n’est utilisé par ces tests.
Sculpture du pourtour — conservée depuis la génération v2
La version 0.1.0-alpha.2 retire deux contraintes de la génération v1
(0.1.0-alpha.1) : le noyau central qui remplissait les creux du bruit naturel,
et la découpe radiale qui pouvait exposer une tranche verticale à toutes les
altitudes. Les identifiants sanctuary:* du preset et de la fonction restent
stables. Il s'agit d'une évolution du terrain, pas d'une migration de sauvegarde.
Trois passes composent désormais la densité finale, après l'interpolation du champ historique :
- Un bruit horizontal à grande échelle déforme le contour. Dans la bande
extérieure, large de 128 blocs avant déformation, une érosion progressive
(
2 × t⁴) augmente le seuil nécessaire pour conserver de la roche. Une érosion supplémentaire, quadratique selon la hauteur et nulle à l'intérieur, fait reculer les faces hautes et basses même lorsque le bruit naturel est saturé dans une grande masse pleine. Elle arrondit le pourtour sans ajouter de volume au centre. - Un bruit 3D, échantillonné à la hauteur réelle, déplace ce contour et creuse des renfoncements plus larges. Le bord peut ainsi changer de position avec l'altitude au lieu de prolonger une ligne verticale.
- Un second bruit 3D, plus fin, ajoute de petites irrégularités. Ces deux passes s'atténuent progressivement vers l'intérieur ; elles ne remplissent jamais un trou du terrain initial.
Les bruits island_edge, island_sculpt et island_detail sont tous initialisés
avec la seed du monde. Ils utilisent respectivement les octaves de base
-7, -5 et -3. Les nouvelles entrées sculpt et detail du codec sont
optionnelles pour garder les anciennes définitions JSON lisibles ; leur absence
ne rétablit pas le noyau de la génération v1.
L'érosion est toujours soustraite à la densité bornée du terrain. Une densité
nulle ou négative ne peut donc jamais devenir solide. Même avec un terrain
d'entrée maximalement positif, elle est négative dès le rayon 280, avant la
limite de sécurité 288. Deux transitions verticales douces protègent aussi les
bornes de hauteur, sans découper de dalle à Y=0 ou Y=256.
Ces formules sont toujours utilisées par les sauvegardes de la génération v2. La génération v3 conserve la sculpture latérale dans le repère de l'île relevée.
Île relevée et dessous irrégulier — génération v3
La version 0.1.0-alpha.3 crée les nouveaux mondes avec les paramètres et le
type de dimension sanctuary:sanctuary_384 : min_y=0, height=384 et
logical_height=384. Le nom du preset sélectionné reste sanctuary:sanctuary.
Le gain de hauteur n'agrandit pas le rayon horizontal et n'active aucun continent.
Le bruit naturel et les bruits de sculpture sont échantillonnés à Y−64.
Le profil supérieur et les bords approuvés en alpha.2 sont ainsi relevés sans
changer de seed ou étirer l'île. Sur les graines de régression, les sommets
proches de Y=184 se retrouvent vers Y=248, avec de l'espace libre au-dessus.
Sous l'île, déplacer l'ancien gradient inférieur aurait seulement déplacé son
plan de coupe. floating_archipelago_384 conserve donc le bruit naturel sans
ce gradient inférieur. Une nouvelle érosion travaille sur une transition de
72 blocs, dont l'altitude varie avec le bruit 3D island_underside et les
deux bruits de sculpture existants. Elle laisse les lobes naturels se poursuivre
vers le bas, puis les amincit à différentes hauteurs ; elle n'ajoute ni socle ni
surface garantie. La transition n'affecte plus le terrain à partir de Y=144.
Une marge vide protège le bas de la dimension : aucun plancher rocheux ne doit
apparaître dans Y=0..15. À partir de l’alpha.5, seules les eaux descendantes de
sources explicitement déclarées peuvent traverser cette marge.
Les champs optionnels du codec vertical_offset, height et underside valent
respectivement 0, 256 et un bruit nul par défaut. Seule la nouvelle fonction
sanctuary:final_density_384 active l'offset 64, la hauteur 384 et le bruit du
dessous. Les anciennes fonctions final_density, floating_archipelago et les
paramètres sanctuary:sanctuary restent inchangés : les sauvegardes alpha.2 qui
les référencent gardent leur hauteur de génération et leur ancien terrain.
Créer un nouveau monde pour tester l'île relevée. L'actualisation du pack ne convertit pas les sauvegardes existantes ; aucun chunk n'est supprimé, déplacé ou régénéré. Il n'existe pas de migration automatique des anciens mondes vers la dimension de 384 blocs. Changer manuellement leurs références de générateur ou de dimension sort de ce contrat de compatibilité.
Hydrologie de surface — génération v4
La version 0.1.0-alpha.4 conserve la densité, la hauteur et le ciel de
l’alpha.3. Les nouveaux mondes sélectionnent les paramètres
sanctuary:sanctuary_hydrology et le biome sanctuary:starter_forest_hydrology.
Le type de dimension reste sanctuary:sanctuary_384. Les anciens paramètres et
le biome sanctuary:starter_forest restent disponibles et inchangés : ils
n’activent pas cette hydrologie dans les sauvegardes antérieures.
Un plan calculé depuis le relief et la graine recherche des emplacements de surface pour des étangs, des petits lacs et un premier cours d’eau calme. Le lit peut être légèrement creusé dans la roche existante. Avant d’accepter un emplacement, le plan vérifie le fond et les parois en trois dimensions ainsi que l’ouverture vers le ciel. Un trou profond dans la carte de hauteur ne suffit pas à constituer un lac. Aucune digue ni masse de roche n’est ajoutée pour boucher une fuite, et aucun bassin souterrain n’est rempli.
Les fonds alternent sable, gravier et argile ; les berges basses peuvent recevoir du sable. Dans ce nouveau biome, les disques de sédiments vanilla et les veines de gravier sont remplacés par ces dépôts de rive et de fond : une feature ultérieure ne doit pas transformer leur support en gravier instable. Les sources de magma sous-marines sont également absentes. Après les arbres et la végétation, de la canne à sucre peut pousser sur les rives qui respectent ses règles de placement vanilla. Le nombre de sites, leur eau et leurs ressources dépendent du terrain : le générateur ne complète pas une graine pour atteindre un quota économique.
Le plan est indépendant des chunks chargés. Chaque chunk applique uniquement ses propres colonnes après le terrain et avant la décoration, ce qui permet de raccorder un même plan d’eau aux frontières des chunks. Les anciens chunks ne sont jamais retouchés, et aucun travail hydrologique ne se déclenche au simple chargement d’une sauvegarde.
Cette première version vise de petites eaux retenues et des cours d’eau calmes sur les plateaux. Le cours d’eau est un chenal à niveau constant reliant des plans d’eau ; il ne simule pas encore une pente vers l’aval ou un débit. Les tracés peuvent passer par les diagonales, mais leur eau reste connectée de bloc en bloc. L’excavation est limitée à six blocs, l’eau à quatre blocs de profondeur, avec un fond plein sur trois blocs d’épaisseur, dont deux blocs naturels sous le sédiment. Ce contrat alpha.4 reste celui de ses sauvegardes. Les sources en cascade sont ajoutées séparément dans la génération v5 ; les grandes rivières en pente, océans, aquifères, climats multiples et continents restent des incréments distincts.
Plages, sources et mosaïque tempérée — génération v5
L’implémentation 0.1.0-alpha.5 sélectionne la nouvelle clé de paramètres
sanctuary:sanctuary_natural (SanctuarySpawn.NATURAL_SETTINGS). Elle conserve
la densité relevée, les 384 blocs de hauteur et le ciel de l’alpha.3. La classe
NaturalHydrology et son application sont séparées de SurfaceHydrology et
HydrologyRuntime : le code, les paramètres sanctuary:sanctuary_hydrology et
le biome sanctuary:starter_forest_hydrology de l’alpha.4 restent inchangés.
Les clés alpha.2 et alpha.3 restent également disponibles avec leur comportement
antérieur. Ces changements concernent uniquement les nouveaux mondes : aucune
conversion de sauvegarde, régénération de chunk ou expansion n’est effectuée.
Dépôts et eau de surface
Le plan recherche des étangs, de petits lacs et un cours d’eau calme dans le relief naturel. L’excavation maximale passe à quatre blocs, pour une eau de trois blocs de profondeur au plus. Les bassins gardent un fond et des parois naturels pleins ; aucune digue n’est ajoutée et aucune chambre souterraine n’est remplie. Le cours d’eau reste à niveau constant : il ne modélise pas un débit ni une pente continue vers l’aval.
Les plages sont des nappes irrégulières qui suivent les faibles variations du relief autour des plans d’eau. Elles peuvent s’étendre sur plusieurs blocs, se rapprocher d’une autre poche d’eau et retrouver progressivement l’herbe ou la pierre. Les matériaux varient entre sable, gravier, pierre et terre enherbée ; l’argile peut apparaître dans les fonds. Le traitement d’une terrasse sèche retire au plus deux blocs du relief existant.
Chaque dépôt remplace trois à cinq couches de terrain déjà plein et garde deux couches naturelles de support en dessous. Ce support permet notamment au sable et au gravier de rester en place après les mises à jour de gravité. Les veines de gravier, disques de sédiments et magma sous-marin vanilla ne sont pas réintroduits dans ces nouveaux biomes. Les autres décorations rocheuses et les minerais peuvent encore remplacer la pierre ; ils ne remplacent pas les couches de sable, gravier ou argile. Les rives compatibles peuvent porter de la canne à sucre après la végétation. Les troncs couchés vanilla peuvent occuper quelques blocs de la surface d’un étang ; les contrôles distinguent cette décoration de l’eau restante et vérifient leur fond ou l’eau sous les troncs, les sources voisines et la rétention du bassin.
Sources rocheuses et cascades
Le plan peut retenir jusqu’à trois sources dans des niches rocheuses naturelles, séparées des dépôts modifiés. Une source remplace un seul bloc de roche, sous un toit, sur un fond et entre trois côtés déjà pleins. Son unique sortie horizontale est naturellement ouverte sur une chute d’au moins huit blocs. Le générateur ne construit ni pylône, ni corniche, ni tunnel pour obtenir ce résultat.
Seul le bloc source est généré. Les ticks de fluide de Minecraft forment la cascade et ses éventuels passages sur des paliers. Ces écoulements peuvent descendre jusque dans le vide, conformément au comportement demandé. Cette exception concerne les sources déclarées. Le trajet calculé dans la roche nue est une prévision : les arbres générés ensuite peuvent dévier une chute. Les diagnostics vérifient donc les connexions réelles de chaque bloc d’eau vers une source, dans l’emprise des chunks inspectés et de leur halo. Ils échouent si de l’eau touche une frontière non inspectée ou si un bassin perd sa coque. Les déviations par rapport à la prévision restent mesurées dans le rapport. Le comportement des fluides reste celui de Minecraft, y compris lorsque les joueurs modifient une rive.
Petite réserve de lave
StarterLavaDeposit recherche au plus une niche de 18 blocs sources dans
la roche existante, accessible par un passage sec de deux blocs de haut depuis
une corniche naturelle. Le fond garde trois blocs pleins, les parois deux et
la couverture huit ; ces supports sont vérifiés avant les écritures. La niche
reste éloignée des eaux et de leurs parcours. Elle fournit de la lave prélevable
pour les premières productions et un portail du Nether. Si aucun site ne
convient, le plan reste vide : aucun bassin artificiel n’est ajouté dans le vide.
Les tests vérifient l’accès praticable, la rétention de la lave et l’absence d’incendie après simulation.
Biomes et minerais
Le biome source sanctuary:temperate_island utilise deux champs de bruit
initialisés par la seed pour répartir cinq variantes horizontales. Une rive et
la roche sous elle restent dans la même variante :
| Identifiant | Variante |
|---|---|
sanctuary:temperate_forest |
Forêt dominante |
sanctuary:temperate_plains |
Clairières et plaines tempérées |
sanctuary:temperate_birch_forest |
Forêt de bouleaux |
sanctuary:temperate_flower_forest |
Forêt fleurie |
sanctuary:temperate_dappled_forest |
Dappled Forest, peupliers et végétation associée |
Dappled Forest est un biome vanilla introduit dans Minecraft 26.3 Snapshot 1. Cette variante reprend ses données de 26.3-pre-2, avec une humidité légèrement relevée pour Sanctuary. Elle n’ajoute ni dépendance externe ni structure de camp. La palette tempérée ne constitue pas encore le catalogue TerraMix ni le champ climatique des futurs continents.
Les nouveaux biomes remplacent les filons vanilla de métaux par de petites
features sanctuary:island_ore_*, à des altitudes adaptées à l’île relevée :
| Ressource | Taille du filon | Tentatives par chunk | Plage Y |
|---|---|---|---|
| Charbon | 6 | 2 | 96–288 |
| Fer | 4 | 2 | 88–248 |
| Cuivre | 4 | 1 | 96–248 |
| Or | 4 | 1 | 104–224 |
| Redstone | 4 | 1 | 96–224 |
| Lapis | 3 | Une tentative, chance 1/2 | 112–232 |
| Diamant | 3 | Une tentative, chance 1/4 | 104–208 |
Ces paramètres décrivent des tentatives, pas des quantités promises : le filon doit rencontrer la roche existante, et sa forme dépend du hasard de génération. La sélection des biomes et des eaux ne cherche aucun stock cible. Un relevé partiel reste un relevé partiel ; la présence des sept ressources sur une seed de référence ne garantit pas leur présence sur toutes les seeds.
La validation de l’alpha.5 est suivie dans Validation. Ses diagnostics sont conçus pour inspecter les blocs décorés, les profils des dépôts, les jointures de chunks, les biomes et les ressources, puis simuler réellement les fluides dans les chunks des sites. Les cartes et profils PNG montrent des lectures de blocs, pas un rendu Minecraft. La descente des cascades est contrôlée après activation effective des chunks qui les simulent.
Prairies et corniches — génération v6
L’alpha.6 utilise sanctuary:sanctuary_layered et le biome source
sanctuary:layered_island. Les formes et le ciel restent ceux de la génération
relevée. Les anciennes classes, biomes et règles de matériaux restent disponibles
pour les sauvegardes alpha.2 à alpha.5 ; seul le preset de création choisit v6.
Une palette qui varie aussi en hauteur
Les cinq variantes partagent leurs teintes d’herbe et de feuillage. Les champs de climat liés à la seed déforment de larges bandes d’altitude, autour de Y154 et Y214 : prairies et prairies fleuries sur le dessus, bosquets et corniches moussues plus bas. Des zones rocheuses traversent ces bandes et remplacent la couverture de terre par de la pierre sur le relief existant. Les prairies gardent quelques arbres épars et leur végétation vanilla. Dappled Forest n’appartient plus à cette palette ; son utilisation sur de futurs continents reste à développer.
| Identifiant | Ambiance |
|---|---|
sanctuary:layered_meadow |
Prairie tempérée |
sanctuary:layered_flower_meadow |
Prairie fleurie |
sanctuary:layered_lower_grove |
Bosquet inférieur |
sanctuary:layered_mossy_terraces |
Corniches moussues |
sanctuary:layered_rocky_terraces |
Affleurements rocheux |
LowerTerraceVegetationFeature parcourt aussi les sols naturels sous les
surplombs, au moins huit blocs sous une surface supérieure. Elle demande trois
blocs pleins de support et deux blocs libres au-dessus. Elle peut remplacer la
surface existante par de la mousse et planter fougères, fleurs ou petits arbustes
lorsque leurs règles de survie le permettent. Les cellules hydrologiques, les
sources, les parcours d’eau prévus et les supports de lave sont protégés.
Il n’y a ni corniche construite dans l’air ni ajout d’éclairage artificiel.
Bassins et sources de paroi
LayeredHydrology conserve les petits bassins et les dépôts épais, avec une
plus grande présence de pierre. Le court STREAM à niveau constant de l’alpha.5
n’est pas repris. Cette version retient uniquement les étangs et les petits
lacs ; elle ne cherche pas de grande rivière. Le parcours traversant avec
source, cascade et bassin reste un ticket distinct, à démontrer sur le relief
Minecraft réel. Aucun chenal de secours n’est creusé.
La profondeur reste limitée à trois blocs et l’incision à quatre. Le plan vérifie le fond et les rives avant d’appliquer ses écritures, dans les nouveaux chunks seulement. Le sable, le gravier, l’argile et la roche suivent les rives. Des niches de source sont également recherchées dans les strates inférieures, et pas seulement près de la surface la plus haute. Leurs chutes sont produites par les ticks de Minecraft à partir d’un seul bloc source. Le post-traitement des nouveaux chunks libère uniquement leur ouverture, déjà vide dans la densité naturelle, pour qu’un lichen ou une plante ne bouche pas la source. Les positions sont marquées dans la file vanilla pendant la génération, puis consommées une seule fois. Un rechargement ne dégage pas une bouche modifiée par un joueur. Aucune chute n’est préremplie et aucun nouveau passage n’est creusé dans la roche.
Les parcours, les écoulements et la végétation réellement observés, ainsi que les limites du modèle, sont consignés dans Validation.
Apparition commune
Une injection limitée à la création initiale cherche du sol naturel depuis
l'origine vers l'extérieur, dans toute l'emprise finie de l'île. Elle préfère
une surface stable de 3 × 3 blocs, avec deux blocs libres en hauteur. En
l'absence d'une telle surface, elle retient une colonne de sol praticable ; si
aucun emplacement naturel sûr n'existe, la création signale la seed concernée
plutôt que d'ajouter une plateforme. Elle ne s'applique qu'à l'Overworld
utilisant les paramètres sanctuary:sanctuary, sanctuary:sanctuary_384 ou
sanctuary:sanctuary_hydrology, sanctuary:sanctuary_natural ou
sanctuary:sanctuary_layered.
Elle enregistre le spawn partagé dans la sauvegarde et ne le réinitialise pas
au redémarrage : les modifications administratives de /setworldspawn restent
conservées. Les lits et la dispersion habituelle du spawn suivent encore les
règles de Minecraft.
Adaptation 26.2 → 26.3
Les références historiques sont
sanctuary/worldgen/density_function/base_3d_noise.json et
floating_archipelago.json dans l'ancien module Sanctuary. L'ancien masque
annulaire n'est pas conservé : après son anneau de vide, il faisait réapparaître
un archipel infini. Les anciennes surcharges de minecraft:normal, dimensions
supplémentaires, intégrations TerraMix et injections globales de features ne
font pas partie de ce port.
Minecraft 26.3 a changé l'API de génération : les fonctions de densité compilent
maintenant un DensitySampler, leurs opérateurs JSON utilisent
left / right / input, les gradients utilisent from_coordinate et les
surfaces passent par le registre worldgen/material_rule. Les données de cette
branche suivent ces formats réels ; copier directement les JSON 26.2 ne suffit
pas. Les bruits utilisent également base_octave, octave_count et
amplitude_modifiers. Le seul opérateur Java ajouté, sanctuary:main_island,
compose le terrain et les bruits de sculpture, applique le repère vertical
choisi et impose la limite extérieure après interpolation.
Vérification
./gradlew :sanctuary:worldgenSmoke
./gradlew :sanctuary:runGameTest
Le smoke test vérifie qu'aucun sol n'est ajouté, que l'intérieur conserve le champ naturel et que l'érosion évolue progressivement sur un profil de terrain contrôlé. Il vérifie aussi qu'un lobe plein recule d'au moins 30 blocs en haut et en bas par rapport à son milieu, pour éviter une paroi verticale simplement déplacée. Il couvre aussi l'influence des deux bruits de sculpture, le vide avant les bornes de sécurité, et le vide dans les quatre directions même avec un bruit entièrement positif. Les coordonnées testées incluent les limites de Minecraft et des entiers Java pour détecter débordements et répétitions involontaires.
Les GameTests chargent le preset réel sur un serveur éphémère, vérifient le
spawn après décoration, puis inspectent des chunks complets à distance dans
les quatre directions. Ils comparent aussi la densité compilée avec deux
instances de la même seed et une seed différente. Cela détecte les références
JSON invalides et les blocs que des features pourraient ajouter après le calcul
de densité. Les injections du serveur de test sont isolées dans
src/gametest et ne sont pas distribuées dans le mod.
Les graines de régression des générations v2 et v3 sont 0, 42 et 8675309.
Le serveur de test exporte leurs cartes de hauteur et coupes de densité dans
mods/sanctuary/build/run/gameTest/diagnostics/. Ces images permettent de
comparer la vraie densité alpha.2, toujours chargée, avec la nouvelle île relevée
dans toute la hauteur 0..383. Les assertions vérifient la translation du relief
supérieur, la variation des hauteurs du dessous, l'absence de plancher, les
384 blocs de génération et la conservation des anciens paramètres 256.
Ces images ne montrent
pas les arbres ni les matériaux et ne remplacent pas un essai visuel en jeu.
Contrat du prochain ticket : expansion
Avant de créer des continents, définir une donnée persistante par monde contenant pour chaque région son identifiant, centre, direction, emprise, seed dérivée, version de générateur et état de déblocage. L'île principale devient la première région de ce registre ; les nouvelles régions utilisent des coordonnées absolues, sans cellules périodiques.
L'activation doit être une action du serveur, reproductible et sauvegardée, conditionnée ensuite par les contributions collectives. Elle doit tenir compte du fait qu'un joueur peut déjà avoir chargé ou construit dans le vide : un chunk existant ne se régénère pas simplement parce que la liste des continents change. Le ticket doit choisir une réservation d'espace ou une matérialisation contrôlée qui protège les constructions et ne remplace jamais aveuglément des chunks sauvegardés.
La version de génération et les emprises doivent être gelées avant les premières sauvegardes destinées à durer. Ce prototype ne promet pas encore de migration automatique des mondes entre deux versions de terrain.
Forêts, corniches humides et affleurements — génération v7
L’alpha.7 crée les nouveaux mondes avec sanctuary:sanctuary_woodland et
sanctuary:woodland_island. La densité sanctuary:final_density_384, les
formes rocheuses, la hauteur et le ciel restent identiques. Les plans des
bassins, sources et petites niches de lave reprennent les algorithmes alpha.6.
Les anciens paramètres, biomes et features sont conservés ; cette livraison
ne modifie pas les mondes existants.
La palette comporte huit biomes :
| Identifiant | Rôle |
|---|---|
sanctuary:woodland_oak_forest |
Forêt de chênes dominante, bouleaux secondaires |
sanctuary:woodland_birch_forest |
Forêt de bouleaux complémentaire |
sanctuary:woodland_clearing |
Clairière fleurie |
sanctuary:woodland_dry_woodland |
Bois sec plus clairsemé |
sanctuary:woodland_rocky_heath |
Masses rocheuses exposées |
sanctuary:woodland_dark_grove |
Corniches humides à chênes noirs et champignons |
sanctuary:woodland_bamboo_grove |
Rare intérieur à jungle et bambou |
sanctuary:woodland_sulfur_depths |
Rare poche profonde de soufre sur roche existante |
Une altitude élevée ne transforme plus automatiquement une forêt en prairie ou en roche. Les forêts utilisent les véritables arbres vanilla avec leurs conditions de croissance ; les affleurements sont des patches horizontaux et des variations de matériau sur le terrain existant.
woodland_groves place de vrais chênes noirs sur des sols naturels de 2×2,
avec trois blocs de support et une place suffisante pour le tronc et la
canopée sous le plafond. Des champignons accompagnent les sols de podzol et
de mycélium, avec quelques touches de mousse. La jungle et le bambou restent
limités aux rares poches qui leur conviennent.
Un seul emplacement remarquable est recherché par graine, avec une essence choisie parmi cerisier (favorisé), épicéa, jungle, acacia, palétuvier et chêne pâle. Il ne produit pas de terrain : si le site ou les conditions de l’arbre vanilla ne conviennent pas, il ne pousse pas. Ce n’est pas une garantie de chaque essence sur chaque île. Aucun cœur de Creaking n’est ajouté par l’arbre pâle utilisé ici.
Les affleurements mêlent des nappes cohérentes de pierre, andésite, diorite et
granite. Les berges conservent leur excavation limitée et leurs dépôts de
3 à 5 blocs, avec des patches de sable, gravier, argile et roche. Les plantations de woodland_groves évitent les sources, leurs exutoires
et les niches de lave. Les décorations vanilla conservent leurs placements ;
le traitement unique après génération peut rouvrir la seule bouche de source
déclarée si une plante l’obstrue. Le soufre
reste une matière rare des profondeurs ; les grands bassins et sources
vanilla du biome Sulfur Caves ne sont pas activés.
Les anciens petits filons souterrains de charbon, fer et cuivre étaient peu
susceptibles d’atteindre les surfaces hautes ; leur réglage écartait aussi une
partie des blocs voisins de l’air. Les nouvelles features woodland_ore_*
utilisent des tailles vanilla limitées (size=6 pour le charbon, size=5
pour fer/cuivre), sans garantir ce nombre de blocs produits par filon,
autorisent cette exposition et ajoutent des essais aléatoires sur les roches
de surface et les corniches rencontrées depuis l’air. Elles remplacent
seulement les roches naturelles reconnues par Minecraft, dont andésite,
diorite et granite. Les autres minerais et les anciens générateurs gardent
leurs réglages ; aucune quantité cible n’est réinjectée après mesure.
La version et les graines de validation sont consignées dans Validation.