Files
sanctuary-beta/docs/testing-alpha23.1.md

26 KiB
Raw Permalink Blame History

Validation alpha.23.1

Cible : Minecraft 26.3-pre-2, Fabric Loader 0.19.5, Fabric API 0.160.0+26.3, Java 25. Branche codex/natural-secrets-alpha23, ticket WG-27.

Livraison locale vérifiée le 11 septembre 2026. Les neuf cas de la matrice initiale, les structures natives et leurs réouvertures, les océans échantillonnés et le cycle réel dexpansion passent. check build, assemblePack et le MRpack sont vérifiés. Publication et synchronisation Prism restent bloquées par lauthentification Git indisponible. Le contrat de génération décrit le périmètre ; les limites de chaque preuve sont conservées ci-dessous.

Environnement et preuves

Les essais utilisent un serveur Fabric GameTest sans interface graphique sur Mac, dans des mondes de développement ignorés. Aucun monde personnel na été ouvert ou modifié. Windows na pas été testé ; aucune validation visuelle client, avec ou sans shaders, na été effectuée.

Les preuves locales sont dans build/alpha231-evidence/matrix.json et les rapports secrets-<graine>-<diamètre>.json du même dossier. Pour le Moyen, graine 0, les rapports finaux final-medium.json et final-medium-reload.json remplacent le résultat intermédiaire de secrets-0-724.json ; leurs durées figurent dans postchecks.json. Les réouvertures possèdent un rapport *-reload.json. Ces fichiers de développement ne sont pas des artefacts publics versionnés. Les journaux correspondants sont indiqués dans la matrice ; les assertions sont dans Secrets23WorldGameTests.

Les premières exécutions précèdent la dernière optimisation du préfiltre minéral. La distinction est conservée ci-dessous, avec la reprise du Moyen, graine 0, et la réouverture du Petit, graine 42, sur le préfiltre final.

Créations réellement vérifiées en FULL

Les neuf cas ci-dessous ont passed: true et un code de sortie nul. Dans ces témoins, aucun quartier Lost City nest demandé sur l’île initiale ; un observatoire et un hall indépendant sont toujours présents. Le réseau datelier caché apparaît dans huit cas sur neuf : il nest pas retenu dans le Petit, graine 0. Lorsquil est présent, il ne contient que son accès, un corridor et latelier. Le hall ninclut aucune piscine. Les structures expérimentales sont activées.

Graine Taille nominale Chunks FULL contrôlés Modules de traversée Liaisons patrimoniales Rails natifs vérifiés Sanctuaire minéral État
0 Petit 512 88 19 2 85 Présent Réussi avec le préfiltre final ; atelier caché non retenu
0 Moyen 724 85 23 2 68 Présent Création et réouverture finales réussies (final-medium*.json)
0 Grand 1 024 105 35 2 73 Présent Réussi avec le préfiltre final
42 Petit 512 88 17 1 23 Présent Création réussie ; réouverture avec le préfiltre final réussie
42 Moyen 724 82 23 3 135 Présent Réussi avec le préfiltre final
42 Grand 1 024 125 31 1 43 Présent Réussi avec le préfiltre final
2026 Petit 512 85 17 2 36 Présent Réussi avec le préfiltre final
2026 Moyen 724 79 23 1 54 Présent Réussi avec le préfiltre final
2026 Grand 1 024 107 31 2 58 Présent Réussi avec le préfiltre final

Le nombre de chunks contrôlés correspond aux emprises des structures retenues, pas à toute l’île. Ces neuf témoins ne garantissent pas le même résultat sur toutes les graines. Le nombre de liaisons ne signifie pas que tous les lieux sont reliés : les tronçons ferroviaires locaux peuvent subsister quand un raccord lointain est refusé par le terrain.

Les durées du runner consignées pour les neuf créations retenues vont de 68,38 à 148,52 secondes. Elles incluent le lancement de la JVM, la préparation du monde, la génération FULL des emprises et les assertions.

Graine Petit 512 Moyen 724 Grand 1 024
0 78,86 s 96,19 s 148,52 s
42 68,38 s 79,60 s 113,23 s
2026 70,20 s 89,04 s 133,05 s

Le Moyen, graine 0, utilise ici la durée de sa création finale dans postchecks.json, et non les 99,07 secondes de son ancien essai. Sa réouverture finale prend 57,24 secondes.

Ce ne sont ni des temps de rendu client, ni un benchmark Windows, ni une mesure du gain de performance par rapport à lalpha.22.

Ce que le GameTest contrôle

  • Chaque emplacement accepté possède un vrai départ de structure natif. Les pièces sauvegardées retrouvent les mêmes données après sérialisation puis lecture ; leurs emprises sont chargées jusquau statut FULL.
  • La traversée est parcourue par un contrôle des collisions natives pour un volume de joueur de 0,6 × 1,8 bloc. Les montées souterraines exigent un escalier orienté ; les abords naturels des portiques peuvent comporter un saut normal dun bloc. La trappe, les échelles et les ouvertures du hall sont contrôlées.
  • Toutes les cellules marquées comme portant un rail possèdent réellement un bloc de rail après décoration, avec un ballast solide dessous. Les lacunes prévues restent réparables ; aucun trajet réel en wagon na été testé.
  • Le centre du sanctuaire minéral est contrôlé par échantillonnage dans les chunks FULL : sol solide et deux blocs dair au-dessus. Le test pur vérifie aussi lintégralité du centre de 39 × 39 et les quatre orientations.
  • Les voies de surface préservent le disque naturel darrivée de 48 blocs de rayon. Les volumes retenus ne nécessitent aucune ville de surface.

Ces contrôles ne constituent pas une appréciation esthétique des ruines ou des cavités. La présence de géométrie et la circulation vérifiée ne valident pas encore l’équilibrage des ressources, lexpérience multijoueur ou les effets visuels de leau et de la lumière.

Repères de visite — graine 42

Ces coordonnées proviennent des géométries des rapports. Elles sappliquent à un nouveau monde de génération 23, avec les structures et les secrets expérimentaux activés, dans la taille correspondante. Ce sont des repères de développement ; aucune téléportation dans un monde personnel na été effectuée.

Lieu ou accès, coordonnées X Y Z Petit 512 Moyen 724 Grand 1 024
Entrée de lobservatoire 54 243 -40 186 251 -110 204 250 -121
Accès de latelier caché -45 244 -131 -116 250 -157 -174 251 -128
Trappe du hall indépendant 32 168 -72 -97 223 -53 46 256 146
Premier portique parcouru -68 250 -93 -170 256 82 -272 249 -8
Second portique parcouru 68 250 43 170 252 82 204 250 -8
Point de localisation intérieur du sanctuaire minéral -144 165 -61 -121 208 -23 -103 144 194
Coin minimal de son enveloppe -183 161 -97 -160 204 -59 -142 140 158

Lenveloppe minérale conserve 79 × 73 × 27 blocs — largeur, profondeur, hauteur — et un centre dégagé de 39 × 39. Une ouverture sur un flanc exposé peut donner sur le vide ; les essais ne garantissent pas un chemin extérieur déjà construit jusqu’à elle. Le point de localisation reste dans la salle.

Réouverture et limites de ladmission minérale

Le Petit, graine 42, passe sa réouverture dans une JVM distincte : processus 7581 pour la création et 7664 pour la lecture. Les paramètres du générateur, les plans, les départs natifs et la modification témoin de lobservatoire sont conservés. Le sanctuaire reste présent, avec 23 rails natifs dans le monde. La création précédait le préfiltre final ; sa réouverture, avec ce préfiltre, conserve la même géométrie. Ce cas ne valide pas toutes les sauvegardes.

Le Moyen, graine 0, passe sa création et sa réouverture finales dans deux JVM distinctes, processus 8650 puis 8777 (final-medium.json et final-medium-reload.json). Le sanctuaire est présent, avec 85 chunks FULL contrôlés et 68 rails natifs. Les paramètres du générateur, les géométries, les départs natifs et la modification témoin sauvegardée sont identiques entre les deux rapports. Le point de localisation intérieur du sanctuaire est -93 143 81, dans une enveloppe dont le coin minimal est -132 139 45. Ce résultat final remplace le refus minéral de la recherche intermédiaire.

La recherche du sanctuaire reste bornée : 48 positions, quatre orientations, trois profondeurs, au plus 10 000 colonnes et 1 200 000 sondages. Le préfiltre examine une grille avant la certification détaillée. Celle-ci conserve au moins 60 % de couverture et dappuis directs sur deux blocs de roche native ; chaque colonne sans appui direct doit être à dix blocs au plus dun appui. Le volume protégé est vérifié intégralement. Le rendu ne pose aucun pilier hors de son enveloppe pour sauver un mauvais emplacement.

Les diagnostics distinguent ouverture obstruée, couverture ou roche insuffisantes, appuis trop éloignés, volumes protégés et budget épuisé. Un refus ne prouve pas quaucun emplacement imaginable nexiste ailleurs dans l’île. Les témoins obtenus ne garantissent donc pas la présence du sanctuaire pour toutes les graines. Les règles des autres structures nont pas été assouplies pour faire accepter ce lieu.

Autres vérifications

Réalisées

Le smoke ciblé secrets23Smoke a passé ses témoins de géométrie, sauvegarde et refus ; structureCensusSmoke possède également une réussite dans le journal local build/alpha23.1-corrected-smokes.log.

La suite générale réussit ses 24 GameTests obligatoires dans build/alpha23.1-general.log : 51,84 secondes pour lexécution des tests et 117,75 secondes pour le runner complet. La dernière entrée general de postchecks.json possède un code de sortie nul. Elle remplace le premier essai interrompu par lancienne assertion du nombre de biomes, depuis actualisée. Les suites spécialisées et les commandes finales sont attestées séparément dans les sections suivantes.

Les deux modes OFF passent dans les mondes de développement de graine 0, taille Moyen 724. Les reçus et les durées se trouvent dans build/alpha231-evidence/ et postchecks.json :

Option Preuve Résultat contrôlé Durée du runner
sanctuaryExperimentalStructures=false optional-off.json Aucun observatoire, atelier, sanctuaire minéral ni rail patrimonial ; les 23 modules de traversée et le hall indépendant restent présents. 43 chunks FULL contrôlés, parcours de la traversée et accès du hall réussis. 69,04 s
sanctuaryGenerateStructures=false global-off.json Aucun départ natif valide dans les trois chunks contrôlés ; 293 376 positions vérifiées sans les rails et blocs manufacturés ciblés par le test. 30,50 s

Ces essais attestent les comportements observés dans leurs emprises ; le contrôle global OFF nest pas un inventaire de tous les chunks de l’île.

La création puis la réouverture du générateur historique sanctuary:island_v22 passent également pour la graine 0, taille Moyen 724, avec les structures expérimentales activées. Les rapports legacy22.json et legacy22-reload.json proviennent de JVM distinctes, processus 9088 puis 9208, en 130,05 et 86,11 secondes. Ils contrôlent 115 chunks FULL et conservent 14 sites patrimoniaux, sept liaisons, 23 modules de traversée, un hall indépendant et la modification témoin sauvegardée.

legacy22-comparison.json compare ces résultats aux rapports alpha.22 de référence build/alpha22-evidence/native22-create.json et native22-reload.json. Tous les champs de référence restent identiques, à lexception des identifiants de processus et chemins de mondes, volontairement exclus. Les seules clés supplémentaires autorisées dans les nouveaux rapports sont transit_native_walk et hall_native_access : ce sont des diagnostics de parcours ajoutés au test, pas une modification du format de sauvegarde. Ils passent aussi : les deux portiques sont reliés par un parcours de 548 pas de contrôle et le hall dispose dun accès utilisable avec 22 blocs d’échelle et huit ouvertures libres.

Le même reçu atteste que le preset conservé sanctuary_v22.json est identique octet par octet à lancien preset sanctuary.json du commit e654d56. Cette comparaison porte sur ce témoin de génération 22 créé et rechargé avec le code actuel ; elle ne constitue ni une migration ni un essai de tous les anciens mondes personnels.

Réservations réelles dexpansion

Quatre appels réels à ExpansionRuntime.Session.create passent dans des JVM neuves, sans aperçu dexpansion avant lappel, sur des mondes de développement de graine 0 et de génération 23. Chaque essai réussit dès le premier identifiant admission_23_0, conserve le délai de recherche de production de 30 secondes et termine avec une seule nouvelle île au statut reserved.

Les preuves sont dans build/alpha231-evidence/admission-costs.json et les quatre rapports ci-dessous. La durée dadmission est celle de lappel à Session.create ; la durée du runner inclut le lancement et les contrôles.

Demande Preuve Admission Runner complet
512, tempéré, naturel reserve-512-temperate-natural.json 206 ms 53,62 s
1 024, tempéré, naturel reserve-1024-temperate-natural.json 698 ms 52,33 s
1 024, tempéré, océan reserve-1024-temperate-ocean.json 441 ms 53,40 s
1 024, Lost City, naturel reserve-1024-lost_city-natural.json 12 849 ms 64,15 s

Le contrôle vérifie la garantie native appliquée par Session.create, la relecture du journal durable, la conservation du profil capturé avant lappel et lidempotence : répéter le même identifiant ne crée pas une seconde réservation et ne réécrit pas le journal. Le profil initial de priorités est vide dans ces quatre témoins ; ils ne couvrent pas encore son évolution après le recensement dun continent généré.

Pour Lost City, le journal build/alpha23.1-reserve-1024-lost_city-natural.log atteste un plan accepté comportant un quartier et un réseau souterrain ; cette planification prend 12 575 ms à lintérieur de lappel dadmission.

Ces quatre essais sont des réservations uniquement. Leurs reçus indiquent reserve_only: true et full_generation_checked: false. Ils ne valident pas la préparation complète, le passage à ready, les blocs posés en FULL ou leur réouverture ; leurs durées ne sont donc pas des temps de génération de continents. Aucune publication ni expansion dans un monde personnel nest attestée par ces essais.

Cycle complet dune expansion réelle

build/alpha231-evidence/admission.json atteste le passage complet de Session.create à ready, processus 11335, sur un monde de graine 0 : expansion tempérée naturelle de 256 blocs, identifiant admission_23_0, centre 2096 -160, graine d’île -6422943410799146666. Cette taille est distincte des réservations de 512 et 1 024 blocs mesurées plus haut.

La première demande est réservée en 1 034 ms sous le délai de 30 secondes. La préparation prend 94 780 ms ; le journal build/alpha23.1-admission.log confirme 418 chunks FULL lorsque lexpansion devient prête. Le runner complet termine avec un code de sortie nul en 160,01 secondes.

Un portail en ruine natif est effectivement généré au départ de chunk 131 -10. Le contrôle vérifie la couverture complète du recensement, la présence de ce départ natif, le journal durable et lidempotence avant et après la préparation. Le profil capturé pour cette réservation reste vide ; après génération, le recensement propose douze familles prioritaires pour les recherches suivantes, sans réécrire le profil de l’île déjà créée.

Le reçu indique reserve_only: false, census_verified: true, idempotent: true et passed: true. Ce terrain distant ne nécessite pas de certificat de réutilisation de chunks du vide.

admission-reload.json confirme la réouverture réussie dans le processus 11614, distinct du processus 11335 de création, en 56,07 secondes de runner. L’île est immédiatement retrouvée à l’état ready, sans nouvel appel de création (create_called: false) ni redémarrage de sa préparation. Le test retrouve le journal à lidentique, le descripteur et son profil, le départ natif et ses références, ainsi que le recensement. La preuve reste limitée à ce cycle tempéré naturel de 256 blocs ; les grandes réservations ne deviennent pas pour autant des témoins FULL.

Catalogue et structures natives en FULL

build/alpha231-evidence/native-create.json atteste la réussite de la création native, processus 10548 : 206 chunks FULL contrôlés, sur cinq témoins de structures. La dernière entrée native-create de postchecks.json possède un code de sortie nul, en 232,40 secondes de runner. Les assertions sont dans Native23WorldGameTests. Les témoins utilisent des îles et des priorités choisies pour exercer ces structures ; ils ne constituent pas une mesure de leur fréquence naturelle.

Le catalogue contient exactement les 52 identifiants distincts du registre Minecraft 26.3-pre-2. Parmi eux, 46 sont classés admissibles dans lOverworld ; la cité ancienne reste réservée aux Cavernes, quatre entrées au Nether et la cité de lEnd à lEnd. Cette concordance du catalogue ne signifie pas que les 52 structures ont été générées en FULL dans cet essai.

La vérification dadmission est rejouée avec le descripteur Lost City du témoin de réservation précédent : le quartier et le réseau souterrain existent dans le plan avant et après son insertion dans la liste des îles du générateur. Le placement natif reste accepté lorsque leurs volumes de construction sont pris en compte. Ce contrôle porte sur une ville réellement planifiée, pas sur un plan vide ; il ne valide pas encore son quartier entier en FULL.

Témoin FULL Présences contrôlées après décoration
Forteresse (stronghold) Salle de portail native, 12 cadres de portail de lEnd, générateur de monstres et coffres.
Chambres des épreuves (trial_chambers) Générateurs d’épreuves et coffres-forts natifs (vault).
Monument océanique Salles immergées en prismarine, eau et trois grands gardiens chargés dans le monde ; eau de surface et roche sous le fond vérifiées au centre de l’île témoin.
Igloo Neige, coffre du sous-sol natif et échelles de son puits.
Pyramide du désert Grès, quatre coffres et neuf TNT du piège natif.

Les compteurs bruts full_blocks parcourent les emprises des pièces, qui peuvent se recouvrir : leurs valeurs ne forment pas un inventaire de blocs uniques. Ainsi, la valeur 91 pour vault natteste pas 91 coffres-forts distincts. Le tableau rapporte surtout les présences requises. Aucun combat, déclenchement d’épreuve, ouverture de butin ou usage du portail na été joué.

Les départs gardent leur identité dans le registre, leur géométrie admise et leurs données après sérialisation et lecture. Le monument est adapté au fond océanique et son agencement intérieur se reconstruit avec la graine de l’île. Pour les chambres des épreuves, seule la hauteur absolue de départ est adaptée : les pools, processeurs, alias et contenus natifs restent identiques.

La localisation par les tags natifs de l’œil de lEnder et des cartes de monument, de chambres des épreuves et de pyramide trouve les vrais départs. Une sélection mélangeant plusieurs types vanilla réussit également. La recherche en lecture seule conserve les compteurs de références ; avec skipReferenced, seul le départ gagnant reçoit une référence supplémentaire. Ces recherches ne changent pas la liste des îles.

La présence des trois grands gardiens est vérifiée après chargement effectif des entités des chunks du monument. Elle ne repose pas uniquement sur leur NBT sauvegardé. La réouverture réussit aussi : native-reload.json, processus 10722, contrôle de nouveau 206 chunks FULL. Les données full_tags des cinq départs, incluant leurs références, et les compteurs full_blocks sont identiques entre création et réouverture ; les trois grands gardiens sont présents après rechargement des entités. Cette preuve reste limitée aux cinq témoins retenus.

Six profils océaniques en FULL

build/alpha231-evidence/ocean.json atteste la réussite de la matrice océanique, processus 11735, graine de monde 0, génération 23 : 34 chunks échantillons demandés au statut FULL pour six îles temporaires. Le runner termine en 91,39 secondes, avec un code de sortie nul. Cette sélection couvre un bassin profond, une rive et lextérieur de chaque profil, ainsi que les chunks voisins nécessaires aux témoins de glace ; elle ne génère pas la totalité des six océans.

Diamètre Climat Graine d’île Eau à Y Fond au point témoin Biome profond stocké
512 Glacial 23 042 220 176 minecraft:deep_frozen_ocean
512 Tempéré 23 143 220 171 minecraft:deep_ocean
512 Chaud 23 244 220 176 minecraft:deep_lukewarm_ocean
1 024 Glacial 23 345 241 193 minecraft:deep_frozen_ocean
1 024 Tempéré 23 446 241 195 minecraft:deep_ocean
1 024 Chaud 23 547 241 198 minecraft:deep_lukewarm_ocean

Chaque profil conserve 16 appuis rocheux sur 16 et 16 échantillons immergés sur 16, après décoration native. Les rives stockent minecraft:snowy_beach pour les deux profils glaciaux et minecraft:beach pour les autres. Les points extérieurs contrôlés restent entièrement dans lair et le biome minecraft:the_void.

Les deux profils glaciaux passent également un placement explicite des features natives diceberg et de glace bleue. Avec la graine de feature 23 041, les sommets de glace atteignent respectivement Y 223 et Y 244, au-dessus de leur niveau marin local. Le contexte de décoration de production fournit ce niveau au générateur et à la région, conserve la protection du fond, puis restaure le niveau global à 64. Ces placements explicites contrôlent la compatibilité des features ; ils nattestent pas une fréquence naturelle dicebergs dans toutes les graines.

Lancien échec ocean-ice-failure.json utilisait un tirage diceberg pouvant ne poser aucune glace dans le code vanilla. Le nouveau témoin déterministe remplace ce tirage ; ocean.json constitue la preuve finale de cette suite. La liste initiale des îles et les fichiers du journal sont inchangés après les essais (journal_unchanged: true). La réouverture des six profils dans une autre JVM na pas été exécutée ; le monument océanique dispose, lui, de la preuve de réouverture décrite plus haut.

Fabrication et distribution

./gradlew check build réussit en 3 min 48 s : 80 tâches, dont 73 exécutées. Ses 24 GameTests passent en 51,12 s, avec les régressions historiques, le Blocodex, les priorités, le journal, le recensement et les protections. ./gradlew assemblePack réussit en 3 min 45 s : 81 tâches, dont 70 exécutées. Cette seconde commande relance ses dépendances de vérification ; aucun échec. Journaux : build/alpha23.1-check-build.log et build/alpha23.1-assemble-pack.log.

Lexport packwiz produit build/Sanctuary-0.1.0-alpha.23.1.mrpack. Le contrôle des artefacts vérifie les versions, le contenu de lindex packwiz, le JAR embarqué identique au JAR construit, labsence de classes de test dans le JAR et le bootstrap Prism officiel v0.0.3. Reçu : build/alpha231-evidence/delivery.json.

Artefact SHA-256
JAR Sanctuary alpha.23.1 906fd2e12be4233676a1a561556508eee7412183698c2cac704dc1191324f136
MRpack alpha.23.1 d791025721ae52a3bb7b8d385fd5930cd4fc1a2dc9a4fa255ffb72a27a2455ad

Le MRpack est local, pas encore publié. Le gestionnaire didentifiants Git ne fournit aucun accès à git.botsu.net ; aucune release ni mise à jour du canal na été effectuée. Le canal public a été relu à 0.1.0-alpha.22. Linstance Prism existante, ses sauvegardes et ses réglages nont pas été modifiés. Les synchronisations réelles de linstallateur et de Prism restent à effectuer après publication. Le ZIP damorçage préparé pointe vers ce canal stable ; il ne constitue donc pas une installation de lalpha.23.1 à ce stade.

La matrice océanique ne possède pas de réouverture complète ; le monument océanique a son témoin de réouverture. Windows et le rendu client restent non testés.

Reproduire les essais de secrets

Utiliser uniquement un dossier de monde de développement prévu pour la création correspondante. Chaque nouvelle création doit disposer dun monde de test neuf ; une réouverture suit sa création avec la même graine, la même taille et les mêmes options. Exécuter les JVM Gradle séquentiellement.

./gradlew :sanctuary:secrets23Smoke
./gradlew :sanctuary:runGameTest -PsanctuarySecrets23Tests=true -PsanctuaryDensityMaps=false -PsanctuaryTestSeed=42 -PsanctuaryTestDiameter=512
./gradlew :sanctuary:runGameTest -PsanctuarySecrets23Tests=true -PsanctuaryDensityMaps=false -PsanctuaryTestSeed=42 -PsanctuaryTestDiameter=512 -PsanctuaryExpansionReload=true

Les tailles alternatives utilisent 724 et 1024. Les scénarios OFF ajoutent respectivement -PsanctuaryExperimentalStructures=false ou -PsanctuaryGenerateStructures=false. Ces commandes décrivent les contrôles à exécuter ; leur présence dans le rapport natteste pas leur réussite. Les rapports originaux du runner sont dans mods/sanctuary/build/run/gameTest/diagnostics/secrets23-<graine>-<diamètre>/.