22 KiB
Alpha.14 — Lost City et expansions
État : code et artefacts vérifiés ; publication et installation en attente.
check build assemblePack passe sur les sources finales avec les 8 GameTests
requis, le 9 septembre 2026 à 13 h 57 min 48 s. La création de quartiers,
leur réouverture et la reprise différée du vide passent également dans leurs
mondes de développement distincts. Le JAR, le MRpack et le ZIP Prism sont
vérifiés ; le canal public et l’instance Prism ne sont pas encore attestés ici.
Les résultats des alpha.12, 13 et 13.1 restent historiques. Ticket WG-17.
Les smokes des sources finales passent sous Gradle et Java 25 :
LostCityRendererSmoke pour les 17 types, dont confinement
et accès des piscines dans quatre orientations, parcs distincts et sous-sols ;
ExpansionJournalSmoke, dont l’immuabilité du jeton de reprise du vide ; et
le contrôle de placement spatial de génération 14. LostCityPlannerSmoke
passe également. Ses
32 graines sur terrain contrôlé couvrent tous les types de lots ; un témoin
distinct de faille couvre le pont, soit les 17 types. Le test de pente ascendante
et descendante protège la sélection des lots contre le rejet asymétrique des
terrains montants. Sur l’ancien planificateur compilé, ce nouveau test échouait
avec 0 contre 9 lots ; le planificateur corrigé satisfait l’égalité des
deux sens et le minimum de cinq lots demandé par le test. Cette comparaison
provient de la sortie d’exécution ; aucun journal séparé n’a été conservé.
:sanctuary:expansionVoidCertificateSmoke passe aussi sous Gradle :
champs NBT natifs obligatoires, types stricts, refus des contenus, preuves de
chunks absents et stabilité du certificat face aux seuls compteurs volatils.
Ces contrôles unitaires sont complétés par les essais moteur consignés plus
bas.
Périmètre et création d’un monde
Minecraft 26.3-pre-2, Fabric et Java 25, selon les versions épinglées dans
gradle.properties. La livraison cible 0.1.0-alpha.14 pour le mod et le pack.
Créer un nouveau monde, type Sanctuary, puis le bouton natif
Personnaliser : Petit 512, Moyen 724 par défaut ou Grand 1 024 blocs de
diamètre nominal. La hauteur reste de 384 blocs. Le codec public est
sanctuary:island_v14 ; les racines et les extensions de ces mondes portent la
génération 14. Le journal est séparé :
data/sanctuary-world-v14/expansions.json, schéma 1.
Les mondes de générations 12 et 13 conservent leurs codecs, paramètres et journaux. Ils ne reçoivent pas Lost City par conversion et ne changent pas de générateur au chargement. Aucune sauvegarde personnelle ne doit être utilisée pour les essais ci-dessous.
Lost City
Les quartiers sont composés par du code Sanctuary original. Une poche urbaine
peut être retenue sur l’île initiale ; les extensions de profil lost_city
recherchent également des emplacements. Le biome suit les parcelles acceptées
en surface et laisse les biomes de cavités profonds. Une île peut ne fournir
aucun site convenable : la ville et ses différents types ne sont pas garantis.
| Type | Aménagement distinctif |
|---|---|
| Rue | Chaussée, bordures de pierre lisse et variations de hauteur accessibles |
| Pont | Tablier et garde-corps au-dessus d’une courte faille, appuis naturels aux deux extrémités |
| Parc boisé | Chemins croisés, arbres et bancs |
| Jardin | Haies basses, parterres fleuris et allées |
| Aire de jeux | Sable, portique de balançoire, plate-forme et petit toboggan |
| Parc mémorial | Cour, monument de pierre et bancs |
| Place | Pavage et fontaine sèche |
| Marché | Étals, auvents sobres et réserves |
| Parking | Places marquées, poteaux, garage souterrain si la roche le permet, sinon en surface |
| Excavation | Fouille ouverte, fondations inachevées, barrières et escalier |
| Piscine abandonnée | Bassin de trois couches d’eau, marches immergées et plage minérale |
| Immeuble d’appartements | Étages, chambres, coin cuisine et escaliers |
| Hôtel | Réception, couloir central et chambres séparées |
| Bibliothèque | Rayonnages, tables de lecture et pupitre |
| Restaurant | Cuisine équipée et tables, espace de service à l’étage |
| Caserne | Dortoirs et réserves |
| Hall | Grande salle, estrade, rangées de sièges et balcon |
Pierre, pierre lisse et briques de pierre dominent ; briques fissurées ou moussues, andésite, vitres, détails de fer et intérieurs en chêne noir complètent la palette. L’usure est déterministe. Les accès et les escaliers restent distincts des brèches de façade et de toiture. Le butin des coffres utilise des tables vanilla différées ; aucune génération de spawner ou de villageois.
Le spawn naturel de monstres du biome et des pièces de structure est limité aux zombies vanilla. Lumière, difficulté, limites de population et distance aux joueurs continuent de s’appliquer ; une ruine n’implique pas la présence immédiate d’un groupe de zombies. Les classes de zombies spécifiques restent pour la bêta.
Le placement vérifie la roche sous toute l’emprise. Un sous-sol, une piscine ou une excavation exige une continuité jusqu’à huit blocs sous le plancher de référence. À défaut, le parking reste en surface et piscine ou excavation se replient en parc. Les piscines gardent un fond et des parois continus ; les ponts ne construisent pas de piliers jusqu’au vide. Les volumes protégés de l’hydrologie et les sites insuffisamment supportés sont écartés.
Commandes d’essai et placement des expansions
Les commandes restent des outils opérateur, accessibles avec les permissions adéquates. Elles n’utilisent pas encore la progression ou les ressources.
/sanctuary expansion quick east lost_city 256 natural
/sanctuary expansion list
/sanctuary expansion visit island_1
/sanctuary expansion preview quartier sanctuary northeast lost_city 128 natural
/sanctuary expansion create quartier sanctuary northeast lost_city 128 natural
/locate structure sanctuary:lost_city
island_1 est l’exemple du premier identifiant libre créé par quick ; utiliser
l’identifiant réellement indiqué par la commande. visit attend une île prête.
preview examine un emplacement sans l’activer. resume <id> sert à reprendre
une réservation interrompue. create choisit aussi son parent explicitement.
La recherche exacte /locate structure sanctuary:lost_city retrouve les
quartiers Sanctuary admissibles ; elle peut échouer si aucun quartier ne se
trouve dans sa portée de recherche. Un profil lost_city ne garantit pas un
terrain suffisamment adapté pour accepter un quartier.
Les diamètres d’expansion possibles dans les mondes 14 sont 64, 128, 256,
512 et 1 024. Avec quick east ou quick east lost_city, le diamètre est tiré
de manière reproductible à partir de la graine et de l’identifiant :
| Diamètre | Poids du tirage |
|---|---|
| 64 | 40 % |
| 128 | 30 % |
| 256 | 18 % |
| 512 | 9 % |
| 1 024 | 3 % |
Ces poids décrivent la distribution du tirage, pas un quota de cinq îles à reproduire sur chaque serveur. Une taille explicite remplace le tirage. Les recherches d’emplacement ne changent ni cette taille ni la graine retenue. Les mondes historiques gardent leurs tailles et comportements antérieurs.
La direction choisit un secteur de 45° autour du parent. La recherche essaie d’abord des positions proches, puis des couronnes plus éloignées, avec un nombre borné de candidats. Les centres restent alignés sur les chunks. Les emprises circulaires incluent le terrain, la marge de décoration et une garde empêchant deux îles de posséder le même chunk de coin. Le voisinage lu par les étapes de génération n’est pas intégralement réservé comme terrain. Une distance minimale entre centres reste possible comme dernier argument.
Contrat de reprise différée du vide
Ce mécanisme concerne uniquement les nouveaux mondes de génération 14 et une expansion explicitement demandée. Les générations 12/13 gardent leur refus des chunks déjà générés, même vides. Il ne permet pas la régénération générale d’une île, d’un terrain occupé ou d’une construction.
- Examiner toute l’emprise d’écriture et produire, pour chaque chunk existant, une preuve stricte qu’il est FULL, entièrement vide et vierge. Les positions encore absentes sont également certifiées, y compris leurs stockages d’entités et de POI. La simple absence de bloc visible ne suffit pas : entités persistées, chargées ou en attente, POI, ticks, événements de blocs et autres indices de contenu font partie des refus.
- Lier le certificat à l’identité exacte de l’expansion et à un jeton immuable dans le journal. Une preuve isolée sans réservation correspondante ne donne aucune autorisation ; un changement de paramètres ou une preuve manquante doit faire échouer la reprise.
- Enregistrer la réservation et demander de fermer puis rouvrir le monde. L’expansion reste différée pendant la session ayant établi la preuve.
- Au chargement suivant, vérifier le journal, le certificat et les données actuelles sur toute l’emprise avant toute préparation. Une divergence bloque la reprise avant l’écriture des positions absentes. Seuls les chunks explicitement certifiés peuvent être réutilisés par cette expansion.
La preuve lit le format natif exact de Minecraft 26.3-pre-2 : l’état d’air sans
propriétés s’écrit comme la chaîne minecraft:air dans la palette ; sa forme
composée autorisée utilise le champ id. L’ancien champ Name ne suffit pas
à certifier un chunk. Les types NBT, sections, palettes, heightmaps et données
annexes restent contrôlés strictement ; une métadonnée inconnue provoque un
refus. Seuls les compteurs temporels et caches de lumière valides sont exclus
de l’empreinte sémantique du vide.
Il ne faut supprimer ni certificat, ni journal, ni dossier de région pour débloquer une commande. L’absence de preuve est un refus, pas une invitation à reconstruire l’historique. Les sauvegardes personnelles ne sont pas ouvertes par les tests ou par la mise à jour packwiz.
Protocole et preuves attendues
Un seul processus Gradle ou Minecraft de développement à la fois. Les suites
de création repartent de mondes ignorés sous mods/sanctuary/build/run/.
Un scénario de réouverture doit suivre sa création sans intercaler un test qui
effacerait ce monde de développement.
./gradlew :sanctuary:lostCityPlannerSmoke :sanctuary:lostCityRendererSmoke --console=plain
./gradlew check build assemblePack -PsanctuaryTestSeed=0 -PsanctuaryResourceSurvey=off -PsanctuaryDensityMaps=false --console=plain
./gradlew :sanctuary:runGameTest -PsanctuaryLostCityTests=true -PsanctuaryTestDiameter=724 -PsanctuaryTestSeed=0 -PsanctuaryResourceSurvey=off -PsanctuaryDensityMaps=false --console=plain
./gradlew :sanctuary:runGameTest -PsanctuaryLostCityTests=true -PsanctuaryExpansionReload=true -PsanctuaryTestDiameter=724 -PsanctuaryTestSeed=0 -PsanctuaryResourceSurvey=off -PsanctuaryDensityMaps=false --console=plain
La suite de reprise du vide repart ensuite d’un autre monde de développement neuf. La commande de réouverture est exécutée deux fois de suite :
./gradlew :sanctuary:runGameTest -PsanctuaryVoidReuseTests=true -PsanctuaryTestSeed=0 -PsanctuaryResourceSurvey=off -PsanctuaryDensityMaps=false --console=plain
./gradlew :sanctuary:runGameTest -PsanctuaryVoidReuseTests=true -PsanctuaryExpansionReload=true -PsanctuaryTestSeed=0 -PsanctuaryResourceSurvey=off -PsanctuaryDensityMaps=false --console=plain
./gradlew :sanctuary:runGameTest -PsanctuaryVoidReuseTests=true -PsanctuaryExpansionReload=true -PsanctuaryTestSeed=0 -PsanctuaryResourceSurvey=off -PsanctuaryDensityMaps=false --console=plain
Résultats moteur — graine 0
Le 9 septembre 2026, la création sur les sources finales passe à 13 h 55 min
15 s dans le processus 19155 (build/alpha14-city-final-create.log,
deux tests requis réussis, commande terminée en 2 min 24 s). La réouverture
du même monde de développement passe à 13 h 55 min 58 s dans un second
processus, 19372 (build/alpha14-city-final-reload.log, deux tests requis
réussis, 33 s).
Ces durées sont celles des commandes Gradle complètes, pas des mesures de
chargement en jeu ou de performance multijoueur.
Les rapports locaux ignorés sont
mods/sanctuary/build/run/gameTest/diagnostics/lost-city-alpha14-seed-0.json
et lost-city-alpha14-reload-seed-0.json dans le même dossier. Leurs copies
sont conservées dans build/alpha14-evidence/ avant le nettoyage du monde de
développement. Le monde racine est de diamètre 724, graine 0, codec
sanctuary:island_v14.
Trois extensions de diamètre 256 ont été examinées en lecture seule :
| Candidat | Graine de l’extension | Quartiers admissibles |
|---|---|---|
city_test |
7890860792428309400 |
0 |
city_harbor |
-1594320136210322067 |
0 |
city_gardens |
6666275329838981856 |
1 |
Seule city_gardens a ensuite été activée, à l’est, centre (2032, 624).
Sa préparation a terminé 418 chunks FULL. L’inspection urbaine ci-dessous
couvre les chunks des quartiers, pas la totalité de cette préparation.
| Site généré | Parcelles sauvegardées | Chunks FULL inspectés | Coffres non ouverts à butin différé |
|---|---|---|---|
| Île initiale | 26 : appartement, hôtel, bibliothèque, marché, parc boisé, mémorial et 20 rues | 26 | 4 |
city_gardens |
12 : appartement, parc boisé et 10 rues | 13 | 1 |
Les deux quartiers possèdent leurs références de structure natives ; la recherche native retrouve respectivement (-49, 253, 13) et (2012, 229, 621). Les intérieurs traversables et les tables de spawn limitées aux zombies sont contrôlés. Cela ne garantit pas des zombies visibles de jour. La couverture des 17 types dans quatre orientations provient de 68 rendus témoins indépendants ; elle ne signifie pas que cette graine contient tous les types dans ses quartiers naturels.
L’inspection native des bâtiments contrôle également qu’aucun minerai ne remplace la maçonnerie dans leurs volumes à partir du plancher. Cette preuve concerne les bâtiments effectivement générés et inspectés ; les minerais du terrain sous les fondations restent possibles.
Une piscine native isolée, indépendante du tirage des quartiers, conserve 189 cellules d’eau, ses marches et son confinement après l’exécution d’un tick d’eau. La réouverture conserve les mêmes 189 cellules et les marches ; elle n’exécute pas un second tick témoin.
Dans le second processus, les 38 pièces natives, les 5 coffres non
ouverts, le bloc d’or témoin à (-61, 250, 11) et le journal sont conservés.
L’empreinte du journal contrôlé est
38e4bc1b2e493628d1e5d1775250c0bc48821bf49d025df3c37159fcff5801ba.
Ces essais utilisent uniquement un monde de développement ignoré, sans ouvrir
de sauvegarde personnelle.
Reprise du vide — création et deux réouvertures
Les trois exécutions Minecraft, sur la graine 0, génération 14, passent le 9 septembre 2026 :
| Étape | Journal local | Résultat et durée de la commande |
|---|---|---|
| Preuves et réservations | build/alpha14-void-create.log |
Deux tests requis réussis à 13 h 43 ; 41 s |
| Première réouverture | build/alpha14-void-reload.log |
Deux tests requis réussis à 13 h 45 ; 1 min |
| Deuxième réouverture | build/alpha14-void-second-reload.log |
Deux tests requis réussis à 13 h 46 ; 29 s |
Les rapports sont void-reuse-before-reload.json,
void-reuse-after-reload.json et void-reuse-second-reload.json, sous
mods/sanctuary/build/run/gameTest/world/. Ce sont des preuves locales à
conserver avant le nettoyage du monde de développement.
La première expansion, void_loaded, couvre 77 chunks FULL vides déjà
chargés. La seconde, void_saved, couvre un chunk FULL vide uniquement
stocké et 76 positions absentes. Ce dernier scénario emploie une copie NBT
native de chunk vide, déplacée uniquement pour constituer le témoin dans ce
monde jetable. Chaque réservation reçoit son jeton durable propre et reste
différée, sans publication dans le générateur pendant la session initiale.
Quatre témoins indépendants, chacun contrôlé vide avant modification, prouvent le refus d’un bloc, d’un coffre avec son entité de bloc, d’une entité vivante enregistrée et d’un tick de bloc programmé. Une métadonnée NBT étrangère ajoutée après certification fait également échouer la vérification globale : l’empreinte SHA-256 du fichier de région et le contenu NBT modifié restent identiques après ce refus. Le test restaure ensuite son témoin vide pour poursuivre le scénario positif.
À la première réouverture, les deux expansions atteignent 154 chunks FULL, chacun conservant le marqueur de son jeton exact, avec 128 sections non vides. Un bloc d’or témoin est alors posé à (6080, 376, 1264). À la deuxième réouverture, il est préservé : les 154 chunks FULL marqués et 129 sections non vides sont retrouvés. Ce passage contrôle donc aussi qu’une reprise terminée ne réinitialise pas les blocs ajoutés ensuite.
Une réouverture supplémentaire passe à 13 h 48, avec deux tests requis
réussis en 37 s (build/alpha14-void-final-reload.log). Elle contrôle
explicitement la lumière native terminée (isLightCorrect) sur les 154
chunks et 32 échantillons de biomes hors the_void à l’intérieur des
extensions. Le bloc d’or et les 129 sections non vides sont toujours conservés.
Ce dernier rapport est copié hors du monde de test dans
build/alpha14-evidence/void-reuse-second-reload.json pour survivre à son
nettoyage. Les 32 échantillons ne constituent pas un relevé exhaustif de tous
les biomes des extensions.
Vérification finale du build et des artefacts
./gradlew check build assemblePack passe en 1 min 34 s : 40 tâches, dont
33 exécutées et 7 à jour. Le journal est build/alpha14-check-build-pack.log.
Les huit tests moteur requis réussissent ; le témoin hydrologique de graine 0
contrôle 125 chunks FULL, 5 923 blocs d’eau conservés et 1 800 ticks de
fluides. La même suite vérifie la sérialisation des tailles 512 / 724 /
1 024, le défaut Moyen et le codec historique de génération 13.
Le smoke du journal valide aussi la politique de synchronisation de dossier Windows par simulation, ainsi que les échecs de stockage après remplacement. Ce résultat ne constitue pas une exécution native sous Windows.
build/verify-alpha14-artifacts.py valide les versions alignées, l’index packwiz,
le JAR de production sans classes de test, son inclusion dans le MRpack et le
ZIP d’amorçage Prism. Le SHA-256 du JAR sanctuary-0.1.0-alpha.14.jar est :
1c517a13e1151501c6f4974d1bc00faedf67aaecd9bf58f34ac4a655d09dc6ef
Ces vérifications portent sur les artefacts locaux. La publication du canal, les installations packwiz isolées et la synchronisation de l’instance Prism restent à consigner.
| Contrôle | Preuve attendue | État de livraison |
|---|---|---|
| Géométrie et fondations | Déterminisme, budget de colonnes, sites protégés, certificat de roche et ponts | Smoke Gradle réussi sur les sources finales |
| Rendu des 17 types | Quatre orientations, limites des pièces, parcours vers les étages, lits complets, accès aux sous-sols et piscine contenue | Smoke Gradle réussi sur les sources finales |
| Placement des expansions | Cinq tailles, tirage stable, huit secteurs, séparation et garde aux coins | Smoke Gradle réussi sur les sources finales |
| Structures dans Minecraft | Quartier initial et extension Lost City réellement générés, références natives et coffres à butin différé | Réussi, graine 0 : 38 pièces et 5 coffres |
| Rechargement dans un second processus | Journal et structures identiques, butin non recréé, bloc témoin de joueur conservé | Réussi sur les sources finales, graine 0, processus 19372 |
| Protection de la maçonnerie | Aucun minerai dans les volumes des bâtiments à partir de leur plancher | Réussi sur les quartiers natifs inspectés, graine 0 |
| Eau après ticks moteur | Piscine retenue et accès après écoulement, sans fuite extérieure | Réussi sur piscine native isolée : 189 cellules et marches conservées après tick puis réouverture |
| Certificat de vide | Schéma NBT strict, refus des contenus et preuves de chunks absents | Smoke Gradle réussi, complété par les témoins natifs de création |
| Reprise du vide | Refus des contenus et preuves invalides ; reprise bornée après réouverture avec preuve intacte | Réussi après deux réouvertures : 154 chunks FULL marqués, bloc d’or conservé |
| Lumière et biomes après reprise | Lumière native terminée et remplacement du biome vide à l’intérieur des extensions | Réussi à 13 h 48 : 154 chunks éclairés correctement, 32 échantillons hors the_void, bloc d’or conservé |
| Sérialisation et stockage | Trois tailles, codec historique et erreurs de stockage bloquantes | Suite native réussie pour les trois tailles et le codec 13 ; politique Windows simulée réussie |
| Hydrologie conservée | Eau retenue après écoulement moteur | Réussi : 125 chunks FULL, 5 923 blocs d’eau, 1 800 ticks de fluides |
| Build et pack | check build assemblePack réussi avec versions alignées |
Réussi à 13 h 57 min 48 s, huit GameTests requis, JAR/MRpack/ZIP Prism vérifiés |
| Distribution | Artefacts immuables vérifiés, canal avancé, deux installations isolées et deux synchronisations de la même instance | À exécuter et consigner |
Les reçus devront préciser commit source, graine, diamètre, commandes, journaux, résultats et SHA-256 des artefacts ; ne pas remplacer une absence de témoin par une affirmation de présence. Aucun essai Windows natif, mesure de FPS ou test de charge multijoueur n’est attesté par cette liste. Une validation de géométrie en mémoire ne remplace pas la génération, les ticks et la persistance du moteur.
La publication suit Distribution packwiz et Prism. Elle conserve l’instance existante, ses sauvegardes, ses réglages et les mods tiers.