Files
sanctuary-beta/docs/alpha12-laboratory.md
T
koka cdfbba0089
Build Sanctuary / build (push) Canceled after 0s
feat: add alpha.12 branching expansion laboratory
2026-09-09 07:07:04 +02:00

10 KiB
Raw Blame History

Alpha.12 — laboratoire dexpansion

Ticket local WG-13, branche codex/expansion-lab. Contrat du laboratoire et guide dessai. Cette livraison reste une alpha ; le canal distribué est suivi séparément dans Distribution.

Décisions de conception

La direction géographique et le climat deviennent deux choix distincts. La boussole nord froid / sud chaud / ouest sec / est humide reste un raccourci facultatif. Une île peut prolonger le climat de son parent ou ouvrir une branche vers un autre climat. Les parents et les coordonnées forment un graphe persistant, permettant plusieurs couronnes autour de Sanctuary. Les recherches, leurs coûts, les boîtes aux lettres et les boîtes de dépôt sont planifiés pour plus tard.

Cette alpha fournit des commandes opérateur : créer, suivre, lister et visiter les expansions. Les tailles nominales des nouvelles îles sont 64, 128, 256 et 512 blocs. Les reliefs de laboratoire sappliquent aussi à l’île initiale, dans un nouveau preset expérimental. Les structures vanilla compatibles sont admises après contrôle de leur emprise et de leur support. Une absence reste possible.

Lalpha sert à éprouver les outils et les paysages. Le passage en bêta se fera après définition du périmètre de la vision et de la progression jouable ; ce numéro ne désigne pas une progression collective déjà livrée.

Contrat de sauvegarde et douverture v1

  • Activation exclusivement dans un nouveau monde du laboratoire alpha.12. Les anciens presets, leurs paramètres, leurs chunks et leurs sauvegardes ne sont pas convertis. Il nexiste pas de commande de migration ou de régénération.
  • Un journal serveur propre au monde enregistre graine, version, origine, identifiant, parent, direction, climat, relief, diamètre, centre et statut. Les paramètres dune île sont immuables après réservation.
  • Toute la réservation inclut terrain, décorations et halo moteur. Les régions déjà présentes sur disque, chargées ou en cours de déchargement sont refusées, même si leurs blocs sont tous vides. Une erreur de lecture interdit louverture.
  • Le journal est écrit atomiquement et relu avant de publier le nouveau plan au générateur. Un journal existant absent ou corrompu nest jamais remis à zéro.
  • La génération travaille uniquement dans la région nouvelle. Les chunks voisins nécessaires au moteur restent dans son halo. Aucun bloc dune ancienne région nest remplacé. Les références et le placement des structures utilisent le moteur.
  • Une réservation interrompue conserve son identité et sa graine. La préparation peut reprendre, sans double île ni nouveau tirage, jusquau statut prêt.
  • Les commandes exigent la permission opérateur. Être en créatif seul ne confère aucun droit sur le serveur. Une opération ne téléporte personne implicitement.
  • Le refuge Void et le déplacement collectif des joueurs restent un système distinct à concevoir. Ils ne servent pas de mécanisme de protection des chunks.

Le halo impose une distance supplémentaire dans cette première version. Le placer au plus proche ne permet pas de réutiliser silencieusement du vide déjà généré. Les points dorigine enregistrés ne suivent pas les changements de lit ou de spawn.

Commandes et palette

Créer un nouveau monde, type Sanctuary — Laboratoire, avec les commandes activées. Pour un serveur neuf, utiliser level-type=sanctuary:expansion_lab et un nouveau level-name. La graine 42 fournit un cas reproductible observé avec un camp abandonné ; aucune structure nest garantie sur chaque graine.

/sanctuary expansion quick north autumn 128 peaks
/sanctuary expansion list
/sanctuary expansion visit island_1
/sanctuary expansion create oasis island_1 east arid 64 natural
/sanctuary expansion preview glacier sanctuary south glacial 256 canyon

quick part toujours de Sanctuary et attribue un identifiant island_N. create <id> <parent> <direction> <climate> <diameter> <relief> ouvre une branche nommée depuis nimporte quelle île prête. preview emploie les mêmes paramètres ; il propose des coordonnées mais ne valide ni loccupation des chunks ni le sol. Répéter un create identique rend la même réservation ; un autre profil sous le même identifiant est refusé. resume <id> reprend une préparation interrompue. Après une erreur du journal, il faut rétablir le stockage puis recharger le monde.

Profil de commande Surface recherchée
temperate Chênes, bouleaux, clairières et fleurs
boreal Taïga, bosquets et neige en hauteur
glacial Plaines enneigées, pics gelés et pointes de glace
cold_humid Vieilles taïgas et bosquets froids
humid Forêt sombre, marécages et Pale Garden ponctuel
tropical Jungle, bambous et mangrove basse
warm Savane et plateaux
arid Désert, badlands et cheminées érodées
dry Prairies exposées et reliefs pierreux
cold_dry Neige, gravier et sommets gelés
autumn Dappled Forest, prairies et bouleaux ponctuels
cherry Cerisiers, prairies et bosquets en hauteur

La sélection dépend de la graine, de laltitude et de variations locales ; une petite île naffiche pas nécessairement tous les biomes de son profil. Des poches luxuriantes, à spéléothèmes ou soufrées diversifient les étages inférieurs. Les reliefs natural, peaks, canyon et volcano sont indépendants du climat. Le volcan déforme et creuse la matière existante ; il ne garantit pas un cône plein ni un lac de lave lorsque la géométrie centrale est ajourée.

Les valeurs par défaut de quick suivent la boussole décrite dans Expansion, avec diamètre 128 et relief naturel. Les directions acceptées sont north, northeast, east, southeast, south, southwest, west, northwest. Lautocomplétion fournit les paramètres disponibles.

Portée technique et limites

Le codec sanctuary:expansion_lab enregistre le générateur ; le journal conserve les descripteurs de génération 12. Chaque île emploie sa propre graine dérivée de la graine du monde et de son identifiant. Changer didentifiant change donc le tirage. Les instances de bruit sont propres aux îles, y compris après reload. Les 34 biomes vanilla sont déclarés avant la première expansion.

La densité flottante existante sert de base. Le laboratoire ajoute les transformations des reliefs hauts et utilise les matériaux et décorations natifs. Ses carvers vanilla sont désactivés pour conserver les supports prospectés. Les grandes rivières et terrasses hydrologiques alpha.11 ne sont pas transférées dans ce prototype : les anciens presets les conservent. Le laboratoire essaie seulement de petites sources facultatives sur support rocheux fermé.

Les structures autorisées sont les villages (diamètre au moins 256), pyramides du désert et de jungle, cabanes de marais et camps abandonnés. Les starts natifs sont acceptés après vérification de leur emprise et de leurs fondations ; le moteur place les pièces, références et butins. Leur grille de sélection diffère de celle de /locate vanilla : cette commande nest pas un outil fiable pour les retrouver dans le laboratoire. La preuve actuelle porte sur un camp ; elle ne valide pas visuellement chaque type de village ou de temple.

La réservation ajoute 32 blocs de décoration et 176 blocs de halo moteur autour de lenveloppe de terrain. Les petites îles sont donc encore assez éloignées : le test de diamètre 64 place une première île à 800 blocs du centre de Sanctuary, puis une branche à 544 blocs de son parent. Un emplacement déjà exploré est refusé ; le laboratoire ne réécrit pas le vide pour rapprocher les îles. Il existe une limite de 64 régions, origine comprise, et de ±100 000 blocs pour leurs centres. La vérification initiale doccupation est synchrone et peut suspendre brièvement le serveur pendant les lectures disque ; la préparation suivante avance chunk par chunk.

Les bateaux volants, montgolfières, panthéons, îles uniques en béton coloré, océans coralliens, recherches, coûts et boîtes de dépôt restent dans la vision. Aucun command block, transfert collectif au Void ou reset global nest nécessaire pour utiliser ces commandes.

Observations reproductibles

Sur la graine 42, le scénario moteur a ouvert une île tropicale de 64 blocs au nord, puis une île aride de 64 blocs à lest de celle-ci. Chaque préparation a atteint 100 chunks FULL. Les biomes sauvegardés, les points darrivée sur sol réel, les permissions du dispatcher, le refus des doublons incohérents, la conservation dun bloc témoin sur Sanctuary et le refus du vide déjà chargé ont été vérifiés. Un camp abandonné possède un tonneau placé avec sa table de butin vanilla. Sur la graine 0, ces expansions fonctionnent mais aucun des 11 sites de structure candidats na passé les conditions de terrain ; le test exigeant une preuve de butin a donc échoué sur cette graine.

Un second processus Java a rouvert le monde de développement de graine 42 et retrouvé les trois régions prêtes, le bloc dor écrit avant larrêt, les colonnes de blocs, biomes, densités et le tonneau. Le codec sauvegardé a aussi été décodé. Le framework GameTest reconstruit ses réglages depuis le preset : ce contrôle ne remplace pas un essai du parcours normal de chargement dans le client. La reprise dun journal réservé est contrôlée séparément par le smoke ; un crash forcé en pleine génération, les téléportations de vrais joueurs et la charge multijoueur ne sont pas simulés.

Les smokes parcourent cinq graines, les quatre tailles et les quatre reliefs : transformation verticale monotone, dessous de lorigine conservé, canyon retirant de la matière et couronne volcanique. Ce sont des contrôles géométriques ; les profils 128/256/512 et les quatre reliefs demandent encore une appréciation visuelle en jeu. Voir Validation pour les commandes et preuves.