Compare commits
169
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
00d175cb98 | ||
|
|
a7bdfe6998 | ||
|
|
f9c2ce8835 | ||
|
|
3d56d7de7f | ||
|
|
f2ac23b4f4 | ||
|
|
9c096b2563 | ||
|
|
bc27606b3e | ||
|
|
8531bb3476 | ||
|
|
8e9b8fbd62 | ||
|
|
308c0dc2ff | ||
|
|
50aaa5c135 | ||
|
|
cf5699cfe1 | ||
|
|
d9979100a9 | ||
|
|
5f3d110773 | ||
|
|
a2201cc422 | ||
|
|
42e42fea2a | ||
|
|
55df522b1e | ||
|
|
b77d71bd0d | ||
|
|
70a34df2d5 | ||
|
|
5fb1407705 | ||
|
|
e2b9ee7aaf | ||
|
|
1388d8a443 | ||
|
|
4554ea1882 | ||
|
|
9063e16e7c | ||
|
|
2d656d9525 | ||
|
|
a3dd17c37a | ||
|
|
58aa4c2ae1 | ||
|
|
988a6c8f51 | ||
|
|
3adb08eaa6 | ||
|
|
f8456df256 | ||
|
|
0eb4517961 | ||
|
|
03aab49996 | ||
|
|
b82ab378f0 | ||
|
|
da838b9e8e | ||
|
|
3941bd4711 | ||
|
|
7375046488 | ||
|
|
2ee53e1065 | ||
|
|
efb1097b65 | ||
|
|
d021341d3e | ||
|
|
bb10c24ada | ||
|
|
6f780547bb | ||
|
|
bf5df3885b | ||
|
|
2463db72f7 | ||
|
|
454d9a5c08 | ||
|
|
ba1b228e76 | ||
|
|
1d60a3eedc | ||
|
|
16d81d892f | ||
|
|
7497d9182d | ||
|
|
6b97d57bde | ||
|
|
7c14696020 | ||
|
|
39ff7e95d5 | ||
|
|
918143aaa6 | ||
|
|
9da3f7f13b | ||
|
|
7179b5d4cb | ||
|
|
78f047d3dc | ||
|
|
c7f32c9416 | ||
|
|
97ea94e482 | ||
|
|
51e7e2590e | ||
|
|
658aaf8732 | ||
|
|
c53b39e71c | ||
|
|
f40382ad04 | ||
|
|
a067c7e66b | ||
|
|
6cfa4c07bf | ||
|
|
1ca01a47b7 | ||
|
|
a46946bd4c | ||
|
|
65e7127b1d | ||
|
|
5f32455f79 | ||
|
|
459420503e | ||
|
|
a82fc559b1 | ||
|
|
5a74ba57ed | ||
|
|
db6194c3c0 | ||
|
|
9613322c6b | ||
|
|
96433d3306 | ||
|
|
ba4cf19233 | ||
|
|
968c8d7a43 | ||
|
|
b9727dfa41 | ||
|
|
63e4dab140 | ||
|
|
9f993989b0 | ||
|
|
24c3315f56 | ||
|
|
55c745a46d | ||
|
|
43ac3c7c5f | ||
|
|
6e2336db9d | ||
|
|
3faea2c9af | ||
|
|
8ab5a45bd3 | ||
|
|
fff288f27e | ||
|
|
0315fe2b05 | ||
|
|
c2dfa9e171 | ||
|
|
b49b3e2549 | ||
|
|
e382a65aae | ||
|
|
7979f33028 | ||
|
|
460c4706d3 | ||
|
|
ad960ef9bc | ||
|
|
835e6116e6 | ||
|
|
aadff6fd5e | ||
|
|
705fe9c1a0 | ||
|
|
dbb9e3428d | ||
|
|
9a429c40a1 | ||
|
|
905b3bcfa1 | ||
|
|
0c55a37562 | ||
|
|
8deba7cfb4 | ||
|
|
c1d2278674 | ||
|
|
bdaad0c940 | ||
|
|
19aa8054a5 | ||
|
|
9791d178ab | ||
|
|
32158e2e05 | ||
|
|
3bfb3cb251 | ||
|
|
0eb1a381d4 | ||
|
|
8de569bbf1 | ||
|
|
b97ec6c9e8 | ||
|
|
448e2febff | ||
|
|
1c23d0c17e | ||
|
|
6f871446bb | ||
|
|
96a36d99be | ||
|
|
cf9a670f44 | ||
|
|
ed2d088272 | ||
|
|
0cfd51eb4f | ||
|
|
38f4d6c9a9 | ||
|
|
580b2414da | ||
|
|
97ff2b54cb | ||
|
|
59346d7f0a | ||
|
|
ea151dd5df | ||
|
|
7ce01c47f2 | ||
|
|
93ed5574a4 | ||
|
|
c9f5c56e68 | ||
|
|
6e1b3b7108 | ||
|
|
c05c338e6b | ||
|
|
dc33ffa546 | ||
|
|
9d84a02ed9 | ||
|
|
91181865d5 | ||
|
|
daf36fdeac | ||
|
|
7f576d14d9 | ||
|
|
2d7072b8a8 | ||
|
|
0781cbd964 | ||
|
|
71296a9cfb | ||
|
|
07d09c8508 | ||
|
|
7fada570ef | ||
|
|
b7cf4bc294 | ||
|
|
fc4a0cb68e | ||
|
|
17172fd18b | ||
|
|
216d3f75b5 | ||
|
|
e48fc656c7 | ||
|
|
7e21781a9a | ||
|
|
d941b91265 | ||
|
|
078d3e6833 | ||
|
|
afa77f3d62 | ||
|
|
534dfec4f8 | ||
|
|
26e305d15f | ||
|
|
35103a7ea8 | ||
|
|
6502883cc4 | ||
|
|
a4e96c0d99 | ||
|
|
7c63865157 | ||
|
|
00be1eb0d0 | ||
|
|
adde24aa7e | ||
|
|
99860af312 | ||
|
|
1547396c06 | ||
|
|
4ec5b0d028 | ||
|
|
67e6e7c4f2 | ||
|
|
00179e30ef | ||
|
|
87f823af67 | ||
|
|
4552cc347b | ||
|
|
49131b4c53 | ||
|
|
edc7fc3dfb | ||
|
|
9b0104d27a | ||
|
|
d9b3dd6bed | ||
|
|
e732da8800 | ||
|
|
248dff47b7 | ||
|
|
6aaabf1cb9 | ||
|
|
72e9263339 | ||
|
|
3fd64e1f2a |
@@ -11,6 +11,7 @@ La vision est dans `docs/vision.md` ; elle décrit aussi des fonctionnalités fu
|
||||
- Ne pas modifier un monde existant, régénérer des chunks, changer un format de sauvegarde ou activer une expansion sans contrat de migration explicite.
|
||||
- Garder les identifiants `sanctuary:*` stables et documenter toute évolution de la génération avec graine et version.
|
||||
- Ajouter les libellés FR/EN des nouvelles interfaces. Vérifier les dépendances pour la version Minecraft exacte ; aucune compatibilité supposée à partir du nom d'un mod.
|
||||
- Les tests graphiques Sanctuary ciblent uniquement Vulkan. OpenGL est abandonné comme cible de validation depuis le 18 septembre 2026 : ne plus lancer de suite OpenGL ni revendiquer sa prise en charge à partir des essais historiques.
|
||||
- Lancer `./gradlew check build` pour livrer du code, et `./gradlew assemblePack` si la distribution change. Ajouter seulement les tests utiles au comportement touché.
|
||||
- Pour chaque nouvelle livraison du mod, incrémenter le compteur `beta.xxx` (départ `beta.001`) dans `mod_version` et `pack_version` de `gradle.properties`, synchroniser `packwiz/pack.toml` et documenter le changement. Le tag reprend cette version exacte, sans préfixe `v` ; voir `docs/versioning.md`. Une simple modification documentaire n'incrémente pas les binaires.
|
||||
- Le pack Beta suit un canal packwiz stable et une seule instance Prism. Pour une mise à jour demandée, suivre `docs/packwiz.md` : publier un artefact vérifié et immuable, avancer le canal, puis synchroniser l'instance existante en conservant ses sauvegardes et réglages.
|
||||
|
||||
@@ -1,5 +1,74 @@
|
||||
# beta.172 — cartes de horde utilisables en jeu
|
||||
|
||||
- Suppression de la restriction au cercle laboratoire : une carte peut ouvrir
|
||||
une invasion à la position du joueur dans tout monde chargé.
|
||||
- Activation autorisée en Survie et en Créatif, avec consommation serveur et
|
||||
synchronisation immédiate de l'inventaire dans les deux modes.
|
||||
- Les joueurs créatifs restent participants aux invasions de carte ; le socle
|
||||
historique conserve ses anciennes règles d'inscription.
|
||||
- Les apparitions cherchent un sol sûr jusqu'à six blocs au-dessus ou en dessous
|
||||
du point prévu, sans écrire de bloc ni charger de chunk supplémentaire.
|
||||
- [Contrat et vérifications](docs/horde-runtime-beta172.md).
|
||||
|
||||
# beta.171 — familles de hordes dimensionnelles
|
||||
|
||||
- Chaque carte possède une famille majoritaire stable : zombies, squelettes,
|
||||
creepers, arthropodes, pillards, cauchemars, infernaux, piglins, flétris ou End.
|
||||
- La dimension de découverte favorise ses familles et espèces ; des créatures
|
||||
locales aléatoires et de rares intrus interdimensionnels cassent la régularité.
|
||||
- Catalogue porté à 34 monstres terrestres ou volants, du zombie au blaze, au
|
||||
ghast et au shulker ; les boss et créatures strictement aquatiques sont exclus.
|
||||
- Illustration divisée : file exacte des apparitions en haut, toutes les piles
|
||||
de butin garanties en bas, avec chevauchement lorsque nécessaire.
|
||||
- Le vieux socle rejoint la carte native dans le langage de particules et
|
||||
n'émet plus de messages Horde dans le chat ou la barre d'action.
|
||||
- [Contrat et vérifications](docs/horde-families-beta171.md).
|
||||
|
||||
# beta.170 — carte de horde native et langage visuel
|
||||
|
||||
- Nouvel objet `sanctuary:horde_trial_card` fondé sur la carte native 26.3,
|
||||
visible dans l'onglet créatif Outils et utilitaires.
|
||||
- Chaque exemplaire vierge tenu en main découvre une identité unique et stable ;
|
||||
les copies d'une carte découverte gardent son identité.
|
||||
- Révélation, activation, progression, refus et fin d'invasion passent par des
|
||||
connexions et glyphes de particules, sans message Sanctuary dans le chat.
|
||||
- Compatibilité conservée avec les cartes remplies beta.168/beta.169.
|
||||
- [Contrat et vérifications](docs/horde-map-native-beta170.md).
|
||||
|
||||
# beta.169 — invasion continue des cartes de horde
|
||||
|
||||
- Les cartes sont inconnues avant leur prise en main et se révèlent durablement.
|
||||
- Remplace les trois vagues par 12, 18 ou 27 arrivées individuelles qui accélèrent.
|
||||
- Mélange jusqu’à dix espèces selon la difficulté ; dessin et butins suivent le roster réel.
|
||||
- Butins généreux propres aux monstres, rubis et saphirs inclus ; anciennes cartes préservées.
|
||||
- Runes SGA natives, combat spontané élargi et interruptions diagnostiquées.
|
||||
- [Contrat et vérifications](docs/horde-invasion-beta169.md).
|
||||
|
||||
# beta.168 — cartes de horde (prototype local)
|
||||
|
||||
- Trois cartes natives illustrées et consommables ; invocation immédiate sans socle.
|
||||
- Participation spontanée et butins physiques sur les zombies, ramassage libre.
|
||||
- Nouveau labo isolé beta.168 ; cercle beta.167 conservé pour les futurs donjons.
|
||||
- [Contrat et vérifications](docs/horde-cartes-beta168.md).
|
||||
|
||||
# Changelog
|
||||
|
||||
## beta.167 — Carte de horde et socle d'épreuve, prototype local
|
||||
|
||||
- Arène circulaire dans un nouveau laboratoire, scène préservée aux redémarrages.
|
||||
- Carte réutilisable, inscriptions de 1 à 4 joueurs, préparation et lancement
|
||||
explicites, trois vagues de zombies et résultat commun.
|
||||
- Nettoyage des monstres à l'interruption et reprise du labo au repos ; aucune
|
||||
récompense économique, aucun changement de monde Sanctuary existant.
|
||||
- [Contrat et vérifications](docs/horde-lab-beta167.md).
|
||||
|
||||
## beta.144 — Code d’accès à la création
|
||||
|
||||
- Hello World demande le code `SANC-XXXX-XXXX` quand le serveur a l’URL et le jeton du site.
|
||||
- Le client ne contacte pas le site. Le serveur vérifie, puis consomme le code au moment de créer l’habitant.
|
||||
- Le lien Discord est enregistré à part. Une création interrompue après `redeemed` peut se terminer sans nouveau code si le compte est encore connu.
|
||||
- [Contrat](docs/access-code-beta144.md).
|
||||
|
||||
## beta.110 — Atelier d’argile inclus
|
||||
|
||||
- Une seule livraison réunit l’atelier d’argile, les statuaires et l’import GLB de beta.106 avec les œufs et la neige saisonnière de beta.107 à beta.109.
|
||||
|
||||
+18
-2
@@ -52,11 +52,11 @@ Les resource packs, shaders et mods communautaires envisagés dans la vision
|
||||
ne sont pas inclus automatiquement. Chaque ajout aura une version, une source,
|
||||
un hash et les crédits de sa distribution.
|
||||
|
||||
Demeure est embarqué comme mod autonome, sous GPL-3.0-or-later. Son modèle
|
||||
Demeure est intégré au code de Sanctuary depuis beta.204, sous GPL-3.0-or-later. Son modèle
|
||||
provient des sources de KOKA99CAB dans `Structures/demeure`, référencées par
|
||||
l’inventaire 26.2, et a été adapté à Minecraft 26.3-pre-2. Voir
|
||||
`mods/demeure/PROVENANCE.md` pour les empreintes et les différences du port.
|
||||
Le JAR Demeure contient sa licence et ce document de provenance.
|
||||
Le JAR Sanctuary conserve sa licence GPL et `licenses/Demeure-PROVENANCE.md`.
|
||||
|
||||
## Inventaire beta.010
|
||||
|
||||
@@ -127,3 +127,19 @@ de modèles, butin et états reprennent leurs équivalents natifs 26.3.
|
||||
`tools/generate-colored-bricks.py` documente cette transformation ;
|
||||
`tools/colored-bricks-palette.json` conserve couleurs et empreintes des PNG fournis.
|
||||
Ces ressources dérivées ne sont pas présentées comme des créations originales.
|
||||
|
||||
## Clé dorée beta.121
|
||||
|
||||
Le PNG 16 × 16 `golden_wrench.png` a été fourni par le créateur de Sanctuary
|
||||
le 17 septembre 2026. Il est conservé octet pour octet dans le mod, le pack
|
||||
intégré et le template personnel (SHA-256
|
||||
`a97570908db75caf8e6fc2f5ecabf12c54fd99bfea7be634df66c4310dca22af`).
|
||||
Le template regroupe les ressources client déjà distribuées par Sanctuary ;
|
||||
leurs crédits et conditions respectives restent applicables.
|
||||
|
||||
MariaDB Connector/J 3.5.10 (`org.mariadb.jdbc:mariadb-java-client`),
|
||||
MariaDB Corporation et contributeurs : LGPL-2.1-or-later. Le JAR officiel est
|
||||
embarqué comme dépendance imbriquée, sans modification, pour le stockage
|
||||
communautaire optionnel. Sa licence est fournie dans `licenses/mariadb-connector-j-LGPL-2.1.txt` du JAR Sanctuary.
|
||||
Sources correspondantes : https://github.com/mariadb-corporation/mariadb-connector-j/tree/3.5.10
|
||||
(distribution Maven Central 3.5.10).
|
||||
|
||||
+21
-3
@@ -3,8 +3,8 @@ plugins {
|
||||
id 'net.fabricmc.fabric-loom' version "${loom_version}" apply false
|
||||
}
|
||||
|
||||
tasks.named('build') { dependsOn(':sanctuary:build', ':demeure:build', ':jei:build', ':sanctuary-test:build') }
|
||||
tasks.named('check') { dependsOn(':sanctuary:check', ':demeure:check', ':jei:check', ':sanctuary-test:check', 'verifyPack') }
|
||||
tasks.named('build') { dependsOn(':sanctuary:build', ':jei:build', ':sanctuary-test:build') }
|
||||
tasks.named('check') { dependsOn(':sanctuary:check', ':jei:check', ':sanctuary-test:check', 'verifyPack') }
|
||||
|
||||
tasks.register('verifyPack', Exec) {
|
||||
group = 'verification'
|
||||
@@ -15,7 +15,7 @@ tasks.register('verifyPack', Exec) {
|
||||
tasks.register('assemblePack', Exec) {
|
||||
group = 'distribution'
|
||||
description = 'Assemble a local packwiz pack including the built Sanctuary mod.'
|
||||
dependsOn(':sanctuary:build', 'verifyPack', 'assembleResourcePack')
|
||||
dependsOn(':sanctuary:build', 'verifyPack', 'assembleResourcePack', 'assembleResourceTemplate')
|
||||
commandLine('python3', 'scripts/pack.py', 'assemble')
|
||||
}
|
||||
|
||||
@@ -46,3 +46,21 @@ tasks.register('assembleTestPack', Exec) {
|
||||
dependsOn('assemblePack', ':sanctuary-test:build')
|
||||
commandLine('python3', 'scripts/test_pack.py')
|
||||
}
|
||||
|
||||
tasks.register('assembleResourceTemplate', Zip) {
|
||||
group = 'distribution'
|
||||
description = 'Export all Sanctuary client assets as an editable personal resource pack.'
|
||||
dependsOn(':sanctuary:processResources', 'verifyResourcePack')
|
||||
def resources = project(':sanctuary').layout.buildDirectory.dir('resources/main')
|
||||
// Same precedence as the native exporter: built-in textures override mod defaults.
|
||||
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
|
||||
from(resources.map { it.dir('resourcepacks/textures/assets') }) { into 'assets' }
|
||||
from(resources.map { it.dir('assets') }) { into 'assets' }
|
||||
from(resources.map { it.dir('resourcepacks/template') })
|
||||
from(resources.map { it.file('resourcepacks/textures/pack.png') })
|
||||
exclude '**/.DS_Store'
|
||||
destinationDirectory = layout.buildDirectory
|
||||
archiveFileName = "Sanctuary-Template-${mod_version}.zip"
|
||||
preserveFileTimestamps = false
|
||||
reproducibleFileOrder = true
|
||||
}
|
||||
|
||||
@@ -0,0 +1,61 @@
|
||||
# beta.144 — Code d’accès à la création
|
||||
|
||||
Document historique de la PR de Chris. Le contrat de reprise ci-dessous est
|
||||
remplacé par [beta.166](inscription-web-beta166.md), notamment pour les codes
|
||||
consommés et les déconnexions.
|
||||
|
||||
Le site accepte la candidature, whitelist le pseudo et envoie un code `SANC-XXXX-XXXX`.
|
||||
Hello World demande ce code avant de créer le personnage. Le client ne parle pas
|
||||
au site. Seul le serveur appelle l’API, avec le jeton `SANCTUARY_API_TOKEN`.
|
||||
|
||||
Sans ces réglages, Hello World reste celui de beta.143 : biographie, couleur et
|
||||
familier, sans code. Dès que l’URL et le jeton sont présents, un nouveau
|
||||
personnage exige un code reconnu. Un habitant déjà enregistré entre sans écran.
|
||||
|
||||
## Réglage serveur
|
||||
|
||||
Variables d’environnement, ou fichier `config/sanctuary/access.json` si une
|
||||
variable manque :
|
||||
|
||||
```json
|
||||
{"appUrl":"https://exemple.sanctuary","token":"..."}
|
||||
```
|
||||
|
||||
`appUrl` est l’origine du site, sans barre finale. Le serveur appelle
|
||||
`POST {appUrl}/api/v1/access-codes/verify` puis `redeem`. Le jeton n’est pas
|
||||
écrit dans les logs, le client ou le pack. Une URL ou un jeton illisible ferme
|
||||
la création : aucun personnage n’est inventé hors ligne.
|
||||
|
||||
## Parcours
|
||||
|
||||
1. La whitelist laisse passer le pseudo. L’écran s’ouvre tant que l’UUID n’a pas
|
||||
d’habitant.
|
||||
2. Le joueur saisit le code. L’affichage du champ et de l’exemple utilise
|
||||
l’alphabet galactique standard (`minecraft:alt`, la police de la table
|
||||
d’enchantement). La valeur envoyée reste le texte tapé. Un format complet
|
||||
déclenche `verify`, pas chaque frappe. « Code reconnu » n’écrit rien.
|
||||
3. Confirmer envoie le code de la session, la biographie, la couleur et le
|
||||
familier. Le pseudo envoyé au site est celui de la session.
|
||||
4. `redeem` répond `redeemed` avec `discord_id` : le lien est enregistré, puis
|
||||
l’habitant est créé. Les connexions suivantes sautent l’écran.
|
||||
5. Erreur, site injoignable ou jeton refusé : le joueur reste sur Hello World.
|
||||
|
||||
Une déconnexion avant `redeemed` ne consomme pas le code. Si le site a répondu
|
||||
`redeemed` et que l’écriture de l’habitant est interrompue, le lien Discord
|
||||
reste dans `data/sanctuary-access.json` (`pending`, schéma 1, graine du monde).
|
||||
La confirmation suivante termine le personnage sans rappeler `redeem`.
|
||||
|
||||
Si le code est déjà consommé et que le site ne renvoie plus `discord_id`, le
|
||||
joueur reste bloqué avec un message de reprise. Le site doit alors renvoyer
|
||||
`minecraft_username` et `discord_id` pour le même pseudo. Le mod accepte cette
|
||||
réponse, que `valid` soit vrai ou faux, et finit la création.
|
||||
|
||||
Le registre des habitants ne change pas. Le Discord est un fichier à part.
|
||||
Un fichier illisible est conservé et refuse l’accueil.
|
||||
|
||||
## Limites
|
||||
|
||||
Le gel dans le monde n’est pas ajouté : Hello World reste avant l’entrée, comme
|
||||
aujourd’hui. Inventaire, commandes et dimensions ne sont pas accessibles tant
|
||||
que l’habitant n’existe pas. La whitelist RCON reste celle du site. Un pseudo
|
||||
ajouté à la main, sans code, voit l’écran sans pouvoir le valider.
|
||||
@@ -0,0 +1,55 @@
|
||||
# Actualisation des tests — socle beta.165
|
||||
|
||||
Suite à l’audit des 23 échecs. Changements limités aux GameTests et à leur
|
||||
préparation ; aucun changement des règles, des données de production ou de
|
||||
format de monde. Pas de nouvelle version binaire : le laboratoire reste beta.165.
|
||||
|
||||
## Scénarios corrigés
|
||||
|
||||
- Placement : joueur à portée réelle, sans occuper la cellule visée. Les compteurs,
|
||||
événements, empreintes et les huit diamants de la tombe restent vérifiés.
|
||||
- Inventaires : données d’ouverture explicites pour l’atelier d’argile et le
|
||||
multibloc, avec maintien de la boucle sur toutes les entrées du registre.
|
||||
- Familiers : achat de l’accès puis commande serveur de mode travail ; le helper
|
||||
vérifie aussi que le mode combat n’accorde pas les anciens passifs. Les bonus,
|
||||
consommation de ressources et annulations restent vérifiés.
|
||||
- Ancienne invulnérabilité : test des coups amicaux sans dégâts, du K.-O. sur
|
||||
dégât létal et de la conservation de l’œuf. Le poisson terrestre utilise son
|
||||
profil actuel et garde sa vérification de transition aquatique.
|
||||
- Permissions : accès public à l’introduction, restrictions opérateur sur names
|
||||
et community admin. Catalogue recompte les 67 documents, 2042 recettes,
|
||||
1780 items, 1374 blocs et 1937 identifiants distincts. Hauteur actuelle 640.
|
||||
- Dragon : cycle natif tickNonPassenger (commonTick + tick), compteur d’entité
|
||||
contrôlé, déplacement/altitude/collision conservés.
|
||||
- Dalle/coffre : visée à portée du dessus réel, sans collision du joueur avec la
|
||||
surface à bâtir. Les assertions de fusion, collisions et contenu restent.
|
||||
- Hydrologie : les ouvertures OUTLET doivent être des coupes sans source ni
|
||||
sédiment, appartenant à un déversement terminal déclaré. Les autres cellules
|
||||
conservent les contrôles de support naturel.
|
||||
|
||||
## Diagnostics indépendants
|
||||
|
||||
- [Construction](audit-construction-beta165.md)
|
||||
- [Dragon](audit-dragon-beta165.md)
|
||||
- [Berges](audit-berges-beta165.md)
|
||||
|
||||
## Validation
|
||||
|
||||
Premier rejeu ciblé : **81/81 tests obligatoires passent** en 1 min 45 s.
|
||||
Journal : `build/test-refresh-focused.log`.
|
||||
Groupes : inventory, inventoryflow, companions, refonte, accessories, graves,
|
||||
collections, progression, demeure. Ce rejeu valide notamment les nouvelles
|
||||
assertions atteintes et le déplacement du dragon. Construction et hydrologie
|
||||
sont réservées au rejeu complet suivant.
|
||||
|
||||
`./gradlew check build --continue -PsanctuaryQuickTests=true` : **BUILD SUCCESSFUL**
|
||||
en 7 min 11 s. **252/252 GameTests obligatoires réussis**, zéro échec, puis
|
||||
les autres contrôles de `check` terminent avec succès.
|
||||
Journal : `build/test-refresh-full.log`.
|
||||
|
||||
Les quatre cas analysés par les agents passent dans ce rejeu, sans modification
|
||||
production. Le patch supplémentaire de parois OUTLET proposé à titre conditionnel
|
||||
n’a pas été appliqué : aucune assertion correspondante n’a échoué.
|
||||
Ce résultat porte sur la suite configurée ci-dessus ; aucune stabilité statistique
|
||||
sur plusieurs graines, plateformes ou répétitions n’est revendiquée.
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
# WG-ECO-180 — grands bassins et donjon minier
|
||||
|
||||
Suite du retour beta.179 : relief et écologie générale validés ; les petites
|
||||
mares répétées, l’absence de cerisiers et les mines rectilignes sont à corriger.
|
||||
Branche `codex/cave-dungeon-beta180`, nouveau preset de labo
|
||||
`sanctuary_test:adventure_ecology_v1`, profil `adventure`, graine 42.
|
||||
Aucune migration : uniquement un nouveau solo, vue 32, commandes activées.
|
||||
|
||||
Cibles : grands bassins irréguliers réunis par débordements ; arrêt des petites
|
||||
mares et des cornichons hors de l’eau ; trois cerisiers sur l’île principale,
|
||||
un récif cherry et un récif automnal (autres récifs nus, relief conservé).
|
||||
Un donjon ramifié avec salles, boucles, dénivelés, spawners et wagonnets à butin,
|
||||
plus un éclairage ponctuel. La cabane et les habitats souterrains sont conservés.
|
||||
|
||||
Implémentation : deux systèmes de grands bassins sur des sols de cavités,
|
||||
berges irrégulières préservant les reliefs émergents, fonds suivant la roche et
|
||||
bassins inférieurs quatre blocs plus bas. Les anciennes petites mares sont
|
||||
exclues de ce preset. Les trois cerisiers sont réservés et placés avec la
|
||||
fonction native ; les récifs 0 et 1 deviennent cherry et automne, les autres
|
||||
restent nus. La géométrie, les minerais et l’espace ISS sont conservés.
|
||||
|
||||
Donjon : 13 salles, embranchements et boucles, cinq spawners natifs
|
||||
(squelettes et araignées des cavernes pour cette graine), quatre wagonnets-coffres.
|
||||
Butin différé natif, contenant diamants, émeraudes, `sanctuary:ruby` et
|
||||
`sanctuary:sapphire`, plus des provisions. Pas d’emblème : clarification du
|
||||
créateur, il parlait bien des gemmes dans le butin. Une lanterne tous les
|
||||
quatre portiques environ, éclairage sur tonneau dans les caches.
|
||||
|
||||
Contrôle `solo180c`, graine 42 : trois vrais troncs de cerisiers vérifiés,
|
||||
deux surfaces d’eau connectées de 1 232 et 1 221 blocs, passages praticables,
|
||||
spawners et tirage des quatre gemmes vérifiés. La réouverture avec fluides
|
||||
actifs confirme les deux chutes d’eau ; chargements forcés retirés avant arrêt.
|
||||
Dernière correction ensuite : support des lanternes des caches. Contrôle
|
||||
final `solo180d` réussi, quatre wagonnets avec leur table de butin conservée
|
||||
en sauvegarde. Suite `check build assemblePack assembleTestPack` réussie
|
||||
(11 min 26 s, journal local `build/adventure180-check-build.log`).
|
||||
|
||||
Points de visite : cerisiers près de (38,301,101), grand bassin vers
|
||||
(-192,198,32), donjon vers (120,145,48), récifs thématiques aux mêmes
|
||||
emplacements que les récifs précédents. Nouveau solo `visite180/adventure/42`,
|
||||
commandes activées, vue 32, simulation 12, créatif et difficulté normale.
|
||||
Les premières proportions restent à juger en jeu ; aucune ancienne sauvegarde
|
||||
ni distribution personnelle modifiée.
|
||||
|
||||
Ouverture confirmée le 30 septembre à 00:28 : Vulkan sur Apple M1,
|
||||
KokaLab connecté, distance serveur 32 et simulation 12.
|
||||
@@ -0,0 +1,137 @@
|
||||
# Audit du support naturel des berges — beta.165
|
||||
|
||||
## Verdict
|
||||
|
||||
L’échec initial est une **attente de test antérieure aux ouvertures de berges
|
||||
alpha.30**, avec une confiance très forte. La cellule signalée n’est pas une
|
||||
terrasse sèche avec sédiments : c’est la deuxième ouverture `Kind.OUTLET` du
|
||||
plan régional. Son absence de fondation est intentionnelle. Aucune modification
|
||||
de génération n’est recommandée pour faire passer cette assertion.
|
||||
|
||||
Ce diagnostic ne démontre pas que le reste du test passe : celui-ci échoue dès
|
||||
la préparation, avant sa vérification des blocs après décoration et ticks.
|
||||
Aucun monde, chunk, fichier de production ou test partagé n’a été modifié pour
|
||||
cet audit. Aucun serveur ni JVM supplémentaire n’a été lancé.
|
||||
|
||||
## Preuves et chaîne de traitement
|
||||
|
||||
1. `build/beta165-check-build.log:962` signale, au tick 0 :
|
||||
`Cell[x=-141, z=-86, waterY=-1, bedY=238, carveTop=241, material=STONE,
|
||||
featureId=15307446929, sedimentDepth=0]`.
|
||||
2. `PopulationHydrologyRuntime.regionPlan` construit un plan classique admis,
|
||||
puis applique `BankOutlets30.openBanks` pour les réglages `unified_5/10/20`.
|
||||
La densité vient du même `finalDensity` et du même `RandomState` que le
|
||||
diagnostic, via un mémo de signe. Les coordonnées locales sont translatées
|
||||
avec l’origine régionale. Dans la région `(0,0)`, cette translation est nulle.
|
||||
3. `BankOutlets30.java:30–45` cherche le vide à 1–5 blocs d’un bassin et crée
|
||||
des cellules sèches de profondeur de sédiments zéro, classées `OUTLET`.
|
||||
Ces cellules n’ajoutent ni roche ni eau : elles décrivent la coupe de la berge.
|
||||
4. Recalcul indépendant des opérations entières 64 bits en Python, sans moteur
|
||||
Minecraft : pour graine 0 et région `(0,0)`, la graine régionale non signée vaut
|
||||
`12661893618221475390`; la base des identifiants de sorties vaut
|
||||
`15307446928`. L’identifiant en échec vaut exactement base + 1, donc la
|
||||
deuxième sortie (index 1). Ce calcul renforce l’identification par
|
||||
`sedimentDepth=0`, au lieu de la supposer depuis le nom du test.
|
||||
5. `PopulationHydrologyRuntime.apply` exclut explicitement `plan.isOutletCell`
|
||||
de la validation des deux couches de support. Sa boucle de sédiments ne fait
|
||||
aucune écriture avec profondeur zéro ; la boucle de coupe supprime les blocs
|
||||
entre `bedY+1` et `carveTop`. L’eau se propage ensuite par les ticks vanilla.
|
||||
6. `PopulationDiagnostics.checkOwnership:333–344` applique au contraire la
|
||||
densité positive à **toutes** les cellules, donc impose ici une fondation à
|
||||
Y237 et Y238. C’est précisément la contrainte absente du contrat des sorties.
|
||||
7. Le contrat publié dans `docs/generation-alpha30.md`, section Hydrologie,
|
||||
autorise une chute dans le vide et précise l’absence de fondation ou de
|
||||
colonne d’eau artificielle. `River30Smoke.java:23–24` vérifie déjà profondeur
|
||||
zéro et absence de nouvelle source. Ce smoke a passé dans le journal beta.165
|
||||
(lignes 453–454).
|
||||
|
||||
La documentation Java de `PopulationHydrology.Cell:53` décrit encore seulement
|
||||
les cellules sédimentaires : elle mérite une clarification future pour le cas
|
||||
OUTLET, mais ne prévaut pas sur le contrat alpha.30 ni son implémentation dédiée.
|
||||
|
||||
## Adaptation ciblée proposée
|
||||
|
||||
Le patch préparé dans `build/audit-berges.patch` ne change que
|
||||
`PopulationDiagnostics.checkOwnership`. Il conserve les assertions de région
|
||||
et d’appartenance de toutes les cellules. Pour une cellule **explicitement
|
||||
classée OUTLET**, il exige :
|
||||
|
||||
- aucune source d’eau, aucun sédiment, un intervalle de coupe positif ;
|
||||
- un déversement terminal déclaré avec le même identifiant.
|
||||
|
||||
Les autres cellules conservent intégralement l’assertion de densité naturelle des
|
||||
sédiments et des deux couches de support. Ne pas remplacer ce contrôle par une
|
||||
exception générale pour toutes les cellules sèches ou de profondeur zéro.
|
||||
|
||||
Le patch reste isolé et non appliqué pour intégration par l’agent principal.
|
||||
|
||||
## Reproduction et validation minimales
|
||||
|
||||
Le défaut de contrat se reproduit sans monde avec le témoin existant
|
||||
`River30Smoke` : la côte synthétique est solide à x≤4 ; la brèche atteint x=5,
|
||||
qui est du vide. Exiger un support positif sous cette cellule ferait échouer
|
||||
une ouverture intentionnelle que le smoke valide.
|
||||
|
||||
Pour confirmer le témoin réel, rejouer le GameTest
|
||||
`UnifiedWorldGameTests.retainedHydrologySurvivesNativeDecoration` après application
|
||||
ciblée, dans le **monde jetable de tests**, graine 0, population 10, diamètre 724.
|
||||
Conserver les vérifications de blocs FULL, de sédiments, de coquille et de ticks.
|
||||
La commande et l’ordonnancement seront assurés par l’agent principal pour ne pas
|
||||
saturer les 8 Go du Mac. Aucun passage de ce test n’est revendiqué ici.
|
||||
|
||||
## Points à surveiller après la première correction
|
||||
|
||||
- `verifyFinishedShell:460` impose sédiments 3–5 à ses cellules sélectionnées.
|
||||
La sélection normale porte sur lac/étang/terrasse et exclut les OUTLET ; son
|
||||
fallback prend la première feature. Si une ouverture est sélectionnée à
|
||||
l’avenir, elle nécessitera son propre contrôle de coupe, sans support imposé.
|
||||
- Le contrôle de paroi humide reconnaît `isSpillOpening`, qui ne contient que
|
||||
la position terminale. Une ouverture de trois blocs de large peut également
|
||||
créer une paroi ouverte avant ce point. Si cette assertion échoue ensuite,
|
||||
vérifier le voxel contre une cellule OUTLET déclarée et son intervalle exact
|
||||
de coupe ; ne pas désactiver le contrôle de toutes les parois.
|
||||
- Le test complet n’a pas encore atteint ses contrôles finaux avec ce patch.
|
||||
Les éventuels nouveaux échecs doivent être diagnostiqués séparément.
|
||||
- Les plafonds historiques à Y384 restent présents dans certaines inspections
|
||||
naturelles alors que la dimension atteint Y640. Ils ne causent pas l’échec
|
||||
ici à Y237/238, et ne sont pas modifiés dans ce patch ciblé.
|
||||
|
||||
## Fichiers examinés
|
||||
|
||||
- `mods/sanctuary/src/main/java/fr/koka/sanctuary/worldgen/BankOutlets30.java`
|
||||
- `mods/sanctuary/src/main/java/fr/koka/sanctuary/worldgen/PopulationHydrology.java`
|
||||
- `mods/sanctuary/src/main/java/fr/koka/sanctuary/worldgen/PopulationHydrologyRuntime.java`
|
||||
- `mods/sanctuary/src/main/java/fr/koka/sanctuary/worldgen/PopulationIslandDensity.java`
|
||||
- `mods/sanctuary/src/main/java/fr/koka/sanctuary/worldgen/IslandCapacity.java`
|
||||
- `mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/PopulationDiagnostics.java`
|
||||
- `mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/River30WorldGameTests.java`
|
||||
- `mods/sanctuary/src/test/java/fr/koka/sanctuary/worldgen/River30Smoke.java`
|
||||
|
||||
## Complément : contrôle précis de la paroi ouverte
|
||||
|
||||
Un second patch non appliqué, `build/audit-berges-shell.patch`, est disponible
|
||||
**uniquement si l’exécution atteint un échec de paroi correspondant à une
|
||||
ouverture réelle**. Il ajoute un cas au contrôle des parois de
|
||||
`verifyFinishedShell`, après ses exceptions existantes pour l’eau planifiée et
|
||||
le voxel terminal du spill.
|
||||
|
||||
Le voxel doit appartenir au plan de sa propre position X/Z, à une cellule
|
||||
explicitement `OUTLET`, sans eau planifiée ni sédiments, associée par son
|
||||
identifiant à un spill terminal. Son Y doit être **strictement supérieur à
|
||||
bedY et inférieur ou égal à carveTop**. Le bloc final doit alors être de l’air
|
||||
ou de l’eau vanilla ; un bloc solide ou de la lave fait toujours échouer le test.
|
||||
Les couches sous la coupe, les voisins latéraux hors emprise, les autres types
|
||||
de cellules et les voxels au-dessus de la coupe conservent leur contrôle normal.
|
||||
|
||||
Le patch parcourt `cellsAt` plutôt que de se fier seulement à `cellAt(x,y,z)` :
|
||||
ce dernier inclut aussi les couches de support dans sa sélection, ce qui aurait
|
||||
créé une exception trop large. Les assertions sur les sédiments sélectionnés
|
||||
restent inchangées. La suite en cours doit décider si ce patch est nécessaire ;
|
||||
aucun résultat d’exécution n’est anticipé.
|
||||
|
||||
## Résultat de l’intégration
|
||||
|
||||
Le patch proposé a ensuite été intégré aux tests par l’agent principal.
|
||||
Le rejeu complet `build/test-refresh-full.log` termine avec 252/252 GameTests
|
||||
réussis et `check build` réussi. Aucun code de production ni monde existant modifié.
|
||||
Voir [la validation consolidée](actualisation-tests-beta165.md).
|
||||
@@ -0,0 +1,98 @@
|
||||
# Audit ciblé — construction groupée sur dalle et coffre
|
||||
|
||||
Audit du 24 septembre 2026, sources beta.165. Aucun changement de production,
|
||||
aucun monde lancé ou modifié, aucune nouvelle exécution de GameTest dans cet audit.
|
||||
|
||||
## Conclusion
|
||||
|
||||
Les deux refus initiaux ont une explication commune de **fixture hors portée**, avec
|
||||
une confiance forte : le rayon de visée s’arrête à 3,5 blocs avant la surface réelle.
|
||||
Ils ne démontrent ni une fusion de dalle cassée, ni une altération du contenu du coffre.
|
||||
Les assertions suivantes restent à rejouer ; elles ne sont pas déclarées réussies.
|
||||
|
||||
Le contrat beta.009 utilisait la portée native, tandis que le contrat actuel
|
||||
[beta.081](build-reach-beta081.md) fixe le rang 1 à 3,5 blocs. Le même point de vue
|
||||
atteint encore un cube plein, mais pas les surfaces plus basses.
|
||||
|
||||
## Chaîne de refus
|
||||
|
||||
- `Building009GameTests.java:107–113` : plan 3×3 de dalles basses ; joueur au rang 1 ;
|
||||
`aim` place ses pieds en `(0,5 ; 1 ; −2,5)` par rapport à l’origine, puis vise
|
||||
`(0,5 ; 0,5 ; 0,5)`.
|
||||
- `Building009GameTests.java:165–170` : coffre central et pierre autour ; même position,
|
||||
mais `aim` conserve la cible d’un cube plein `(0,5 ; 1 ; 0,5)`.
|
||||
- `BuildReach.java:13–21` et `BuildingLimits.java:6` : portée 3,5 ; le contrôle préalable
|
||||
de proximité utilise l’AABB du **bloc entier**, pas la forme de la dalle/coffre.
|
||||
- `BuildSelection.java:40–44` : `player.pick(3.5, 1, false)` doit réellement toucher
|
||||
le bloc d’origine. Un MISS ou un autre bloc donne `null`.
|
||||
- `BuildingSession.java:26–30` : ce `null` empêche de créer la session, avant tout
|
||||
placement, fusion ou usage du coffre.
|
||||
- Le journal existant `build/beta165-check-build.log:1105–1138` confirme les refus
|
||||
à `start`, lignes 113 et 170 des tests, au tick 0.
|
||||
|
||||
## Géométrie vérifiée
|
||||
|
||||
Les constantes natives ont été inspectées par `javap -c -p` dans le JAR local exact
|
||||
Minecraft 26.3 : `Avatar` définit les yeux debout à 1,62 ; `SlabBlock` utilise
|
||||
`column(16,0,8)` pour la dalle basse ; `ChestBlock` utilise `column(14,0,14)` pour
|
||||
le coffre simple. Traces dans `build/audit-construction-avatar-bytecode.txt` et
|
||||
`build/audit-construction-native-bytecode.txt`. Aucun serveur/JVM Minecraft lancé.
|
||||
|
||||
Les yeux sont donc en **E=(0,5 ; 2,62 ; −2,5)**. Calculs Python indépendants du jeu :
|
||||
|
||||
| Surface et visée actuelle | Premier impact géométrique prévu | Distance yeux-impact |
|
||||
|---|---|---:|
|
||||
| Cube plein témoin | `(0,5 ; 1 ; 0,5)` | 3,409457 |
|
||||
| Dalle basse, visée corrigée sur son dessus | `(0,5 ; 0,5 ; 0,5)` | **3,673472** |
|
||||
| Coffre, visée restée au dessus d’un cube plein | `(0,5 ; 0,875 ; 0,731481)` | **3,672533** |
|
||||
|
||||
Le coffre occupe horizontalement `[1/16 ; 15/16]`, donc ce point est bien dans son
|
||||
dessus. Les cubes de pierre voisins ne coupent pas ce rayon avant lui : à `y=1`,
|
||||
le rayon est déjà au centre de la cellule d’origine. Les autres dalles basses ne
|
||||
coupent pas davantage le rayon avant `y=0,5`. Le précontrôle AABB entier passe,
|
||||
avec une distance minimale de 2,978993 : il ne garantit pas que le rayon atteigne
|
||||
la forme réelle.
|
||||
|
||||
L’écart d’environ 0,173 bloc dépasse largement les arrondis float de la direction
|
||||
et de la hauteur des yeux. Ces calculs expliquent le refus dans les deux fixtures ;
|
||||
une trace native reste utile pour confirmer explicitement le MISS en exécution.
|
||||
|
||||
## Correction recommandée, limitée aux tests
|
||||
|
||||
Patch proposé, **non appliqué** : `build/audit-construction.patch`.
|
||||
|
||||
Le helper dédié `aimInsetTop` rapproche les pieds à `z=−1,5`, conserve `y=1` et
|
||||
vise le centre du dessus réel (`y=0,5` pour la dalle, `14/16` pour le coffre).
|
||||
Les distances deviennent respectivement **2,914515** et **2,654247** blocs.
|
||||
Le joueur reste hors du plan 3×3 (son bord proche est vers `z=−1,2`, le plan
|
||||
commence à `z=−1`) afin de ne pas exclure une pose par sa propre collision.
|
||||
Une assertion explicite vérifie que le rayon atteint la face UP avant le démarrage.
|
||||
|
||||
Toutes les assertions métier existantes restent : neuf consommations/fusion,
|
||||
dalles de plafond, exclusion de la vache, trois diamants conservés, menu fermé,
|
||||
refus des objets à placement particulier. Aucun changement de portée de production,
|
||||
aucune suppression de test, aucun passage en créatif pour masquer le problème.
|
||||
|
||||
## Protocole ciblé restant
|
||||
|
||||
1. Relire/appliquer le patch de tests sur une branche de correction coordonnée.
|
||||
2. Rejouer la famille `building` dans un monde GameTest jetable, avec le filtre
|
||||
du dépôt `-PsanctuaryFocusedTests=building`, après libération de la mémoire du
|
||||
laboratoire. Ne pas exécuter en parallèle plusieurs serveurs sur le Mac 8 Go.
|
||||
3. Si un refus subsiste, tracer yeux, portée, `player.pick(...)`, bloc/face/distance,
|
||||
`BuildSelection.aimed`, puis nombre de cibles : ne pas augmenter arbitrairement
|
||||
la portée ou neutraliser une validation.
|
||||
4. Confirmer les assertions suivantes : une fois la première barrière levée, des
|
||||
défauts secondaires peuvent devenir visibles. Garder un scénario séparé de refus
|
||||
hors portée à la limite, sans le confondre avec fusion ou conservation d’objets.
|
||||
|
||||
Risque du patch faible et limité à la géométrie de test. Risque de modifier la
|
||||
production maintenant inutilement élevé : cela modifierait le contrat de portée
|
||||
pour contourner un scénario préparé avec l’ancien contrat.
|
||||
|
||||
## Résultat de l’intégration
|
||||
|
||||
Le patch proposé a ensuite été intégré aux tests par l’agent principal.
|
||||
Le rejeu complet `build/test-refresh-full.log` termine avec 252/252 GameTests
|
||||
réussis et `check build` réussi. Aucun code de production ni monde existant modifié.
|
||||
Voir [la validation consolidée](actualisation-tests-beta165.md).
|
||||
@@ -0,0 +1,79 @@
|
||||
# Audit dragon — beta.165
|
||||
|
||||
## Verdict
|
||||
|
||||
L’échec de `Companion019GameTests.creatureProfilesActuallyMove` est expliqué par
|
||||
une simulation incomplète du cycle natif de l’entité. Il ne démontre pas un
|
||||
blocage du dragon en jeu. Aucune correction de locomotion ne se justifie avant
|
||||
le rejeu du scénario avec son horloge d’entité effective.
|
||||
|
||||
## Chaîne causale confirmée
|
||||
|
||||
1. [Le test](../mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Companion019GameTests.java)
|
||||
appelle `pet.tick()` 120 fois immédiatement, au tick GameTest 0. Le journal
|
||||
`build/beta165-check-build.log` confirme l’assertion de déplacement échouée au tick 0.
|
||||
2. Dans Minecraft **26.3**, `ServerLevel.tickNonPassenger(Entity)` appelle
|
||||
**`Entity.commonTick()` puis `Entity.tick()`**. L’incrément `tickCount++` se trouve
|
||||
dans `commonTick`, avec la mise à jour des anciennes positions et du délai
|
||||
d’invulnérabilité ; il ne se trouve pas dans `Entity.tick()` ou `baseTick()`.
|
||||
Vérification directe du bytecode du JAR natif local par `javap -c -p` :
|
||||
`build/audit-dragon-serverlevel.txt` (méthode `tickNonPassenger`),
|
||||
`build/audit-dragon-entity.txt` (méthode `commonTick`).
|
||||
3. Au premier tick, [FamiliarEntity.configureMotion](../mods/sanctuary/src/main/java/fr/koka/sanctuary/cosmetics/FamiliarEntity.java)
|
||||
choisit `FlyingPathNavigation`, `FlyingMoveControl`, désactive la gravité et
|
||||
appelle `stopRoaming()`.
|
||||
4. [FamiliarRoam.reset](../mods/sanctuary/src/main/java/fr/koka/sanctuary/familiar/FamiliarRoam.java)
|
||||
fixe `nextChoice = pet.tickCount + 20`. L’errance lit **pet.tickCount**, pas
|
||||
`level.getGameTime()`. Les 120 appels directs laissent donc `now = 0` et
|
||||
`nextChoice = 20`. La condition `if(now < nextChoice) return` interdit toute
|
||||
première destination.
|
||||
5. Le familier apparaît déjà près du joueur, à environ +2 blocs en Y grâce à
|
||||
`teleportNearOwner`. Il n’atteint pas le seuil de retour vers le propriétaire
|
||||
qui pourrait contourner cette attente. Aucun déplacement vers une destination
|
||||
n’est donc engagé dans ce scénario.
|
||||
|
||||
L’hypothèse initiale d’une simple dépendance au temps du monde était trop vague :
|
||||
la cause directe est l’absence de **commonTick**, et donc le compteur d’entité figé.
|
||||
|
||||
## Correction de test recommandée
|
||||
|
||||
Pour ce test synchrone de locomotion, remplacer les appels de simulation par
|
||||
`h.getLevel().tickNonPassenger(pet)` ; cela reproduit le préambule natif complet,
|
||||
contrairement à un simple `pet.tickCount++`. Conserver les assertions sur le profil,
|
||||
le déplacement supérieur à un bloc, l’altitude et l’absence de collision.
|
||||
Ajouter une assertion du nombre de ticks réellement avancés afin d’éviter une
|
||||
régression de la fixture. Rejouer les vérifications Ghast et Wither, masquées
|
||||
jusqu’ici par l’échec dragon.
|
||||
|
||||
Le correctif proposé est disponible dans `build/audit-dragon.patch`, sans avoir
|
||||
été appliqué aux sources par cet audit. Cette boucle reste synchrone : le temps
|
||||
du monde, les hooks serveur et le propriétaire ne progressent pas. Elle vérifie
|
||||
le cycle de locomotion de l’entité, pas une séance complète de suivi en jeu.
|
||||
|
||||
Un scénario supplémentaire de suivi en ticks réels est utile si ce premier rejeu
|
||||
échoue : propriétaire déplacé sans dépasser le seuil de téléportation, personnage
|
||||
et graine d’errance fixés, trajet effectivement parcouru contrôlé. Il doit vivre
|
||||
dans un monde de test jetable, jamais dans la sauvegarde du laboratoire.
|
||||
|
||||
## Aléa et limites
|
||||
|
||||
Le tempérament provient du UUID du lien, créé aléatoirement. Les rayons d’errance
|
||||
sont 2,5 / 4 / 5 blocs et les pauses 100–139 / 25–64 / 50–89 ticks. Ces pauses
|
||||
sont intentionnelles : ne pas imposer un mouvement à chaque tick. Pour une
|
||||
reproduction déterministe, fixer la graine du générateur de l’entité et le
|
||||
tempérament dans les données du test, ou tester explicitement les trois.
|
||||
|
||||
Les destinations nécessitent des chunks chargés, une autorisation de mouvement,
|
||||
un volume libre et un chemin accessible. Aucun de ces refus n’a été démontré
|
||||
ici : l’ancien scénario s’arrêtait **avant** leur évaluation.
|
||||
|
||||
Audit statique et lecture du bytecode terminés. À ce stade, aucun serveur de test
|
||||
supplémentaire lancé, aucune source de jeu modifiée, aucune sauvegarde touchée.
|
||||
Le passage effectif du test corrigé reste à confirmer dans l’exécution coordonnée.
|
||||
|
||||
## Résultat de l’intégration
|
||||
|
||||
Le patch proposé a ensuite été intégré aux tests par l’agent principal.
|
||||
Le rejeu complet `build/test-refresh-full.log` termine avec 252/252 GameTests
|
||||
réussis et `check build` réussi. Aucun code de production ni monde existant modifié.
|
||||
Voir [la validation consolidée](actualisation-tests-beta165.md).
|
||||
@@ -0,0 +1,100 @@
|
||||
# Audit des 23 échecs GameTest — socle beta.165
|
||||
|
||||
Audit initial du 24 septembre 2026, code `dbb9e34` (tag beta.165).
|
||||
|
||||
Suite : [actualisation des tests et validation](actualisation-tests-beta165.md).
|
||||
|
||||
## Portée et méthode
|
||||
|
||||
Lecture des 23 messages du dernier journal `build/beta165-check-build.log`, des
|
||||
méthodes de test et des chemins de production concernés. La liste a été comparée
|
||||
à beta.164 : mêmes 23 identifiants. Recompte local des JSON de collections.
|
||||
Aucun test désactivé, aucune correction de code, aucune modification du monde,
|
||||
aucun nouveau lancement Minecraft pendant cet audit. Le laboratoire reste disponible.
|
||||
|
||||
Il s’agit d’un diagnostic statique étayé par l’exécution précédente, pas d’une
|
||||
preuve que les tests passeront après adaptation. Un échec à la première assertion
|
||||
masque potentiellement des problèmes dans la suite de la même méthode.
|
||||
|
||||
## Conclusion
|
||||
|
||||
**19 échecs ont une explication étayée dans le scénario de test ou un ancien
|
||||
contrat ; 4 nécessitent encore une reproduction ciblée.** Ce ne sont donc pas
|
||||
23 bugs joueurs démontrés. Inversement, la stabilité de la liste ne prouve pas
|
||||
l’absence de bugs. Les objectifs des tests restent majoritairement pertinents.
|
||||
|
||||
| Famille | Nombre | Lecture principale |
|
||||
| --- | ---: | --- |
|
||||
| Placement simple / empreinte / tombe | 5 | Positions de test hors portée |
|
||||
| Menus d’inventaire | 3 | Constructeur incompatible avec les menus étendus |
|
||||
| Bonus de familiers | 6 | Mode travail absent des fixtures |
|
||||
| Invulnérabilité et poisson familier | 2 | Anciennes règles remplacées par le système de combat |
|
||||
| Collections, permissions, hauteur du monde | 3 | Attentes historiques à remettre à jour |
|
||||
| Construction dalle/coffre | 2 | Raycast et portée à instrumenter |
|
||||
| Déplacement du dragon | 1 | Ticks réels et navigation à reproduire |
|
||||
| Hydrologie | 1 | Contrat de support naturel à examiner |
|
||||
|
||||
## Inventaire exhaustif
|
||||
|
||||
| Test | Verdict | Preuve et limite | Suite pertinente |
|
||||
| --- | --- | --- | --- |
|
||||
| [BlockKnowledgeGameTests.placementCountsConfirmedStatesAndRejectsFailure](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/BlockKnowledgeGameTests.java:44) | Test mal positionné — forte confiance | Joueur en (5,5 ; 3 ; 5,5), support en (1 ; 1 ; 1) : la distance horizontale seule dépasse 5,65 blocs. Le mixin de placement applique la portée réelle (vanilla ou progression), avant les assertions métier. | Rapprocher le joueur et viser la face réelle ; conserver les assertions de compteurs, événements et empreinte. Ajouter/conserver un cas hors portée refusé. |
|
||||
| [BlockKnowledgeGameTests.listenersReceiveUpdatedProgressionAndStockChanges](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/BlockKnowledgeGameTests.java:220) | Test mal positionné — forte confiance | Joueur en (5,5 ; 3 ; 5,5), support en (1 ; 1 ; 1) : la distance horizontale seule dépasse 5,65 blocs. Le mixin de placement applique la portée réelle (vanilla ou progression), avant les assertions métier. | Rapprocher le joueur et viser la face réelle ; conserver les assertions de compteurs, événements et empreinte. Ajouter/conserver un cas hors portée refusé. |
|
||||
| [MaterialActivityGameTests.nativeActionsProduceDatedDeltasWhileObservationsProduceNone](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/MaterialActivityGameTests.java:39) | Test mal positionné — forte confiance | Joueur en (5,5 ; 3 ; 5,5), support en (1 ; 1 ; 1) : la distance horizontale seule dépasse 5,65 blocs. Le mixin de placement applique la portée réelle (vanilla ou progression), avant les assertions métier. | Rapprocher le joueur et viser la face réelle ; conserver les assertions de compteurs, événements et empreinte. Ajouter/conserver un cas hors portée refusé. |
|
||||
| [Demeure006GameTests.confirmedGesturesAndPersonalAtlasBoundary](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Demeure006GameTests.java:20) | Test mal positionné — forte confiance | Joueur en (5,5 ; 3 ; 5,5), support en (1 ; 1 ; 1) : la distance horizontale seule dépasse 5,65 blocs. Le mixin de placement applique la portée réelle (vanilla ou progression), avant les assertions métier. | Rapprocher le joueur et viser la face réelle ; conserver les assertions de compteurs, événements et empreinte. Ajouter/conserver un cas hors portée refusé. |
|
||||
| [GravesFood038GameTests.ordinaryPlacementAndCreativeBreakPreserveGrave](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/GravesFood038GameTests.java:120) | Test mal positionné — forte confiance | Joueur novice à 3 blocs horizontalement du clic, yeux au-dessus : distance supérieure aux 3 blocs de portée initiale. Le test échoue avant la conservation des composants et la casse créative. | Remettre le clic à portée, puis vérifier impérativement les 8 diamants après pose et casse ; le résultat actuel ne prouve aucune perte d’objets. |
|
||||
| [Inventory010GameTests.machineQuickMovesAndMounts](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Inventory010GameTests.java:77) | Initialisation de test incompatible — certaine | Boucle sur tout BuiltInRegistries.MENU et appel create(id, inventory). Des menus Sanctuary sont ExtendedMenuType et exigent des données supplémentaires ; exception avant les comparaisons. | Séparer menus vanilla et menus étendus ; fournir les données requises aux menus Sanctuary, garder les tests de conservation et de shift-clic. |
|
||||
| [Inventory010GameTests.everyNativeContainerKeepsItsIndices](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Inventory010GameTests.java:58) | Initialisation de test incompatible — certaine | Boucle sur tout BuiltInRegistries.MENU et appel create(id, inventory). Des menus Sanctuary sont ExtendedMenuType et exigent des données supplémentaires ; exception avant les comparaisons. | Séparer menus vanilla et menus étendus ; fournir les données requises aux menus Sanctuary, garder les tests de conservation et de shift-clic. |
|
||||
| [Inventory012GameTests.nativeAndExtraRowsHaveIdenticalMachinePriorities](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Inventory012GameTests.java:38) | Initialisation de test incompatible — certaine | Même boucle sur tous les menus et même constructeur sans données réseau. | Même adaptation commune ; comparer les destinations et reliquats des lignes natives et supplémentaires. |
|
||||
| [Companion019GameTests.switchingEggRemovesPassiveAndActive](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Companion019GameTests.java:45) | Contrat du scénario périmé — forte confiance | L’attribut de chute du chat n’est pas actif dans le mode de combat par défaut. Le helper equip règle l’attunement, mais FamiliarBattle.prepare initialise workMode=false ; CompanionService.passive renvoie alors null. | Préparer explicitement le mode travail par le chemin prévu, puis tester aussi l’absence de bonus en mode combat. Rejouer le reste du scénario : ses assertions suivantes restent non validées. |
|
||||
| [Companion019GameTests.poisonDurationAndMilkUseNativeHooks](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Companion019GameTests.java:53) | Contrat du scénario périmé — forte confiance | La réduction de poison est attendue sans sélectionner le mode travail. Le helper equip règle l’attunement, mais FamiliarBattle.prepare initialise workMode=false ; CompanionService.passive renvoie alors null. | Préparer explicitement le mode travail par le chemin prévu, puis tester aussi l’absence de bonus en mode combat. Rejouer le reste du scénario : ses assertions suivantes restent non validées. |
|
||||
| [Companion019GameTests.cropCyclesStopAfterOwnerLeaves](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Companion019GameTests.java:152) | Contrat du scénario périmé — forte confiance | La préparation BEE n’active pas le mode travail nécessaire au bonus de culture. Le helper equip règle l’attunement, mais FamiliarBattle.prepare initialise workMode=false ; CompanionService.passive renvoie alors null. | Préparer explicitement le mode travail par le chemin prévu, puis tester aussi l’absence de bonus en mode combat. Rejouer le reste du scénario : ses assertions suivantes restent non validées. |
|
||||
| [Companion019GameTests.furnaceBonusConsumesFuelAndKeepsOneOutput](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Companion019GameTests.java:163) | Contrat du scénario périmé — forte confiance | La préparation BLAZE n’active pas le mode travail nécessaire au bonus de cuisson. Le helper equip règle l’attunement, mais FamiliarBattle.prepare initialise workMode=false ; CompanionService.passive renvoie alors null. | Préparer explicitement le mode travail par le chemin prévu, puis tester aussi l’absence de bonus en mode combat. Rejouer le reste du scénario : ses assertions suivantes restent non validées. |
|
||||
| [Companion032GameTests.axolotlFoodDurationAndGolemKnockbackUseNativeHooks](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Companion032GameTests.java:77) | Contrat du scénario périmé — forte confiance | Le bonus de durée de consommation est attendu hors du mode autorisant les anciens passifs. Le helper equip règle l’attunement, mais FamiliarBattle.prepare initialise workMode=false ; CompanionService.passive renvoie alors null. | Préparer explicitement le mode travail par le chemin prévu, puis tester aussi l’absence de bonus en mode combat. Rejouer le reste du scénario : ses assertions suivantes restent non validées. |
|
||||
| [GravesFood038GameTests.familiarSaturationPreviewUsesActualServerPassive](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/GravesFood038GameTests.java:130) | Contrat du scénario périmé — forte confiance | L’assertion passive(p)==species échoue avant de comparer l’aperçu et la consommation. Le helper equip règle l’attunement, mais FamiliarBattle.prepare initialise workMode=false ; CompanionService.passive renvoie alors null. | Préparer explicitement le mode travail par le chemin prévu, puis tester aussi l’absence de bonus en mode combat. Rejouer le reste du scénario : ses assertions suivantes restent non validées. |
|
||||
| [Accessory018GameTests.familiarIsHarmlessAndEscapesWalls](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Accessory018GameTests.java:82) | Ancien contrat invulnérable — forte confiance | Le test exige que genericKill ne cause aucun dégât. hurtServer délègue désormais à FamiliarBattle.hurt ; le système possède santé et K.-O. depuis beta.054. | Remplacer l’invulnérabilité universelle par les règles actuelles : dégâts autorisés, coups amicaux, K.-O., œuf préservé. Conserver les vérifications de collisions, sortie de mur et non-duplication. |
|
||||
| [Companion019GameTests.aquaticPetFlopsAndThenSwims](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Companion019GameTests.java:113) | Ancien contrat de déplacement — forte confiance | Le test exige une vitesse ≤ 0,06 sur terre. configureMotion réserve le mode poisson ralenti aux familiers aquatiques sans profil de combat actif ; sinon la vitesse vient du profil. | Tester séparément le profil actuel sur terre et la transition dans l’eau. Ne pas rétablir automatiquement l’ancien poisson ralenti. |
|
||||
| [Companion019GameTests.creatureProfilesActuallyMove](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Companion019GameTests.java:104) | À isoler — navigation | Le profil aérien est reconnu ; c’est le déplacement > 1 et l’altitude > propriétaire + 0,5 qui échouent. Le test appelle pet.tick 120 fois sans faire avancer normalement le monde ; l’errance actuelle dépend de destinations sûres, du pathfinding et comporte des pauses. | Reproduire dans un monde de test avec ticks réels, graine/personnalité fixées, propriétaire déplacé, cible et chemin enregistrés. Si l’immobilité persiste, corriger la navigation. |
|
||||
| [Collections035GameTests.exhaustiveCatalogueMatchesLoadedVanilla](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Collections035GameTests.java:17) | Constantes périmées — certaine | Le dernier comptage attend 1658 items / 1286 blocs / 1815 identifiants distincts. Recompte des 67 JSON : 1780 / 1374 / 1937. Les 2042 recettes uniques sont toujours présentes ; le test a déjà passé les contrôles précédents des identifiants et recettes. | Comparer la couverture aux registres et au contrat de collections ; documenter les nombres actuels, éviter qu’un total historique soit l’unique preuve d’exhaustivité. |
|
||||
| [Progression003GameTests.serverCustomNameConfiguration](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Progression003GameTests.java:120) | Permission testée au mauvais niveau — certaine | Le test exige que toute la racine /sanctuary soit inaccessible aux joueurs. intro et community link sont maintenant publics ; names et community admin portent leur propre condition opérateur. | Tester un joueur ordinaire et un opérateur sur chaque sous-commande sensible. Vérifier names reload en particulier ; ne pas rebloquer toute la racine. |
|
||||
| [UnifiedWorldGameTests.populationTerrainAndNaturalSpawnRemainPresent](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/UnifiedWorldGameTests.java:56) | Hauteur historique périmée — certaine | Attend minY=0 et hauteur=384. La dimension Sanctuary actuelle déclare hauteur et logical_height=640, minY=0 ; le test client de création attend lui aussi 640. | Actualiser le contrat de hauteur, puis rejouer les assertions suivantes sur le spawn naturel. Ne pas modifier la dimension ni les mondes existants. |
|
||||
| [Building009GameTests.slabMergingCeilingAndEntityCollisions](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Building009GameTests.java:107) | À isoler — construction groupée | Échec au premier start (ligne 113), avant fusion des dalles. Le fixture vise le centre d’une dalle basse depuis une position conçue pour un cube plein ; la portée au rang 1 est 3,5 et le point visé sur la dalle est plus éloigné. | Journaliser hit réel, bloc touché, distance, portée et raison de refus ; reproduire à portée courte puis à la limite. Conserver fusion, plafond et exclusion des entités. |
|
||||
| [Building009GameTests.containerSupportsAndUnsupportedItems](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/Building009GameTests.java:165) | À isoler — construction groupée | Échec au premier start sur coffre (ligne 170), avant toute vérification du contenu. Le coffre n’a pas la collision d’un cube plein ; le raycast peut toucher le support voisin ou dépasser la portée. | Même diagnostic que la dalle ; vérifier que le coffre ne s’ouvre pas et garde ses 3 diamants. Ne pas assimiler l’échec à une corruption d’inventaire. |
|
||||
| [UnifiedWorldGameTests.retainedHydrologySurvivesNativeDecoration](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/UnifiedWorldGameTests.java:39) | À isoler — génération, priorité haute | Échec dans PopulationDiagnostics.checkOwnership sur la densité naturelle du support à x=-141, z=-86, bedY=238, sedimentDepth=0, waterY=-1 (terrasse sèche). Ce contrôle survient avant la vérification finale des blocs décorés ; son nom ne prouve donc pas une fuite d’eau en jeu. | Comparer l’admission de cette cellule et la densité réellement utilisée, puis les blocs finaux dans un monde jetable, graine 0 / 10 joueurs / diamètre 724. Le contrat Cell annonce un support naturel : ne pas supprimer cette assertion sans explication. |
|
||||
|
||||
## Priorités proposées
|
||||
|
||||
1. **Remettre les tests en mesure de vérifier leur sujet** : placements à portée,
|
||||
construction correcte des menus, sous-commandes protégées, inventaire de
|
||||
collections et hauteur 640. Changements de tests ciblés, sans affaiblir leurs
|
||||
vérifications métier. Les tombes et transferts d’inventaire sont prioritaires
|
||||
parce qu’ils protègent les objets des joueurs.
|
||||
2. **Isoler dalle/coffre et hydrologie** : les deux premiers concernent une action
|
||||
courante ; le dernier touche la génération et exige un monde jetable, jamais
|
||||
une régénération de la sauvegarde de test actuelle. Aucun changement de
|
||||
génération n’est autorisé implicitement par cet audit.
|
||||
3. **Actualiser les scénarios familiers** selon le mode travail/combat, puis
|
||||
reproduire le vol du dragon avec une horloge de monde réelle. Garder les
|
||||
contrôles d’anti-duplication, de ressources consommées et d’annulation.
|
||||
4. Rejouer les familles corrigées, puis la suite complète. Toute nouvelle
|
||||
assertion atteinte doit être réévaluée ; ne pas annoncer « 19 réglés » avant cela.
|
||||
|
||||
La correction des fixtures et constantes paraît contenue. Les quatre cas à
|
||||
reproduire ne permettent pas encore une estimation fiable. Aucune suppression de
|
||||
fonctionnalité ni suppression de test n’est recommandée à ce stade.
|
||||
|
||||
## Points d’entrée dans le code
|
||||
|
||||
- [BlockPlacementReachMixin](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/mixin/BlockPlacementReachMixin.java:14)
|
||||
- [BuildingLimits](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/building/BuildingLimits.java:6)
|
||||
- [CompanionService](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/companion/CompanionService.java:71)
|
||||
- [FamiliarBattle](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/familiar/FamiliarBattle.java:125)
|
||||
- [FamiliarEntity](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/cosmetics/FamiliarEntity.java:262)
|
||||
- [FamiliarRoam](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/familiar/FamiliarRoam.java:16)
|
||||
- [Statuary](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/plans/Statuary.java:39)
|
||||
- [Multiblocks](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/multiblock/Multiblocks.java:36)
|
||||
- [ProgressionService](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/progression/ProgressionService.java:178)
|
||||
- [PopulationDiagnostics](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/gametest/java/fr/koka/sanctuary/gametest/PopulationDiagnostics.java:333)
|
||||
- [PopulationHydrology](/Users/koka/Documents/sanctuary/sanctuary-community-beta154/mods/sanctuary/src/main/java/fr/koka/sanctuary/worldgen/PopulationHydrology.java:56)
|
||||
|
||||
Contrat fonctionnel des familiers : [beta.054](familiar-combat-beta054.md).
|
||||
+179
@@ -1,5 +1,184 @@
|
||||
# Backlog Sanctuary
|
||||
|
||||
## PAUSE-235 — groupes côte à côte avant Atlas — essai livré localement
|
||||
|
||||
Branche `codex/pause-columns-beta235`, base beta.234. Avant Atlas : Aventure à
|
||||
gauche, Communauté à droite et Game juste dessous, bloc centré. Avec Atlas :
|
||||
une colonne étroite à gauche dans l'ordre Communauté → Aventure → Game,
|
||||
carte centrale et fils à droite. [Contrat et vérifications](pause-columns-beta235.md),
|
||||
parcours Vulkan Pause et Story FR/EN GUI 2/3/4, build, quatre GameTests ciblés
|
||||
et MRpack local vérifiés ; rendu à apprécier.
|
||||
Commit de disposition `a7bdfe6` séparé des métadonnées pour permettre son retour.
|
||||
|
||||
## STORY-234 — recueil personnel avec recherche — livré localement
|
||||
|
||||
Branche `codex/story-beta234`, base beta.233. Story sous Progression dans
|
||||
Aventure ; 100 histoires inconnues, barre de recherche et filtre de découverte.
|
||||
Cadre commun avec Discovery, état de recherche et défilement conservés au
|
||||
redimensionnement, accès avant et après Atlas. [Résultat et vérifications](story-beta234.md) :
|
||||
build, quatre GameTests requis et parcours Vulkan FR/EN GUI 2/3/4 réussis.
|
||||
[Modèle Markdown](story/TEMPLATE.md) pour les textes de l'auteur.
|
||||
Les récits et leurs conditions de découverte restent des tickets suivants ;
|
||||
aucun moteur de quête, format persistant ou déploiement ajouté.
|
||||
|
||||
## WG-RESTORE-191 — annuler les plateaux et leurs affleurements
|
||||
|
||||
La visite beta.190 ne valide pas le relief corrigé. [Retour exact à la base
|
||||
beta.188](restore-relief-beta191.md), pour la densité et la géologie naturelle.
|
||||
Conserver les aménagements indépendants ; réserver les futures singularités
|
||||
de relief à quelques endroits. Nouveau profil `original` ; 134 480 densités
|
||||
comparées à l’identique, génération/réouverture et 265 GameTests réussis.
|
||||
|
||||
## WG-NATURE-190 — revenir au relief organique
|
||||
|
||||
Retour beta.189 : [contrat beta.190](natural-refinement-beta190.md). Relief local
|
||||
adouci, sortie d’étang large et proche, coffres de fer enchanté dans les ruines.
|
||||
Profil neuf de laboratoire ; génération, réouverture, 265 GameTests et assemblages
|
||||
validés. Solo Vulkan ouvert à 32 chunks.
|
||||
|
||||
## Réserve d’expansion — grandes surfaces ciselées
|
||||
|
||||
Conserver la variante de terrasses beta.189 comme piste pour une autre expansion :
|
||||
grands plateaux, falaises étagées, profondeurs et verticalité variables selon
|
||||
l’identité de l’île. Ne plus appliquer ces niveaux partout sur Sanctuary Island.
|
||||
Aucune expansion activée. Le portail à remplissage avec ressource renouvelable
|
||||
reste à concevoir ; les perles d’Ender sont une possibilité, pas une décision.
|
||||
|
||||
## WG-ECO-177 — écologie liée au relief
|
||||
|
||||
Branche `codex/relief-ecology-beta177`. Nouveau solo à 32 chunks demandé
|
||||
après la visite beta.176 : plateau forestier/fleuri, vallées automnales,
|
||||
hauteurs à cerisiers, cavités humides arborées, retrait de la neige et de
|
||||
la mangrove, pierres mêlant strates et gisements. Profil de labo distinct ;
|
||||
[contrat et vérifications](relief-ecology-beta177.md).
|
||||
|
||||
## WG-ECO-176 — strates, biomes et mares locales
|
||||
|
||||
Branche `codex/island-ecology-beta176`. Le créateur autorise la mise à
|
||||
l’essai des [retours de visite](worldgen-retours-beta175.md). Nouveau monde
|
||||
de labo, relief conservé ; géologie continue, larges régions automne et
|
||||
cerisiers, récifs humides et mares bornées. Aucun mineshaft ni village
|
||||
natif. Prototype jouable, mesures natives validées sur trois graines.
|
||||
[Contrat, résultats et réserve sur la suite générale](island-ecology-beta176.md).
|
||||
|
||||
## WG-SKY-175 — récifs rares et ressources de l’île
|
||||
|
||||
Suite du labo rapide : l’île principale est conservée, les anciennes masses
|
||||
flottantes sont remplacées et la bande 512–640 reste libre pour l’ISS. Le
|
||||
créateur demande des relevés scientifiques, puis précise la répartition
|
||||
des minerais et la présence de deepslate. Nouveau monde de labo uniquement.
|
||||
[Contrat et résultats](sky-fragments-beta175.md).
|
||||
|
||||
## WG-LAB-174 — worldgen rapide en laboratoire
|
||||
|
||||
**Priorité demandée pendant la séance du 29 septembre.** Profil de relief
|
||||
réservé aux nouveaux mondes de labo, sans plans d'hydrologie ni structures,
|
||||
avec une référence complète séparée et des mesures reproductibles. La
|
||||
génération normale reste inchangée. [Contrat et mesures](worldgen-lab-beta174.md).
|
||||
Ce lot précède les maquettes de halte du Storyquest : l'outil d'itération
|
||||
permet de reprendre d'abord les formes et la géographie de Sanctuary Island.
|
||||
|
||||
**Livré localement en beta.174 :** profil relief, lanceur protégé, comparaison
|
||||
à froid/réouverture, graines 0/42/173 et client Vulkan vérifiés. `check build`
|
||||
et les deux assemblages réussis ; génération normale conservée. L'optimisation
|
||||
des algorithmes complets reste le travail suivant.
|
||||
|
||||
## SQ-173 — Refonte Storyquest et géographies indépendantes
|
||||
|
||||
**Direction actualisée le 29 septembre 2026.** Branche `codex/storyquest-beta173`,
|
||||
issue de beta.172 (`55c745a`), avec prototype local beta.173 livré depuis.
|
||||
Le [fil rouge courant](storyquest-fil-rouge.md) fait autorité pour les priorités ;
|
||||
le [cadrage général](storyquest-beta173.md) conserve les autres intentions.
|
||||
Le créateur abandonne le palais souterrain, ses accès et ses raccordements.
|
||||
La refonte concerne Sanctuary Island, l'île de départ.
|
||||
|
||||
Ordre de travail proposé, à ajuster après chaque visite :
|
||||
|
||||
1. Un parcours extérieur arrivée → halte → ancre, comparé dans deux ambiances.
|
||||
2. Une première conséquence territoriale réelle, sous contrat de nouveaux mondes.
|
||||
3. Une préparation utile au parcours : familier, produit ou plan constructible.
|
||||
4. Un premier accès vertical, puis la déclinaison des lieux qui fonctionnent.
|
||||
|
||||
Chaque étape croise géographie, récit, retour d'information et ambiance. Les
|
||||
critères d'essai sont dans le fil rouge ; cet ordre n'est pas un verrouillage
|
||||
de progression joueur. Pas de nouveau code ni de carte de terrain livré par
|
||||
cette révision documentaire. Les autres sujets — menus, Friends, PNJ, cuisine,
|
||||
économie, ISS, créatures et communauté — restent dans la réserve de conception.
|
||||
|
||||
## PALAIS-173 — prototype livré ; architecture abandonnée le 29 septembre
|
||||
|
||||
Première implémentation dans un laboratoire neuf : un palais par seed, huit
|
||||
ancres extérieures, huit matériaux distincts et huit couleurs indépendantes
|
||||
sur le bloc originel. [Contrat, essai et validation](palais-prototype-beta173.md).
|
||||
Le code et le laboratoire sont conservés comme preuve technique. **Le placement
|
||||
du palais sous l'île n'est plus prévu.** Les mécaniques d'ancres et du bloc
|
||||
originel peuvent alimenter le nouveau parcours ; leur intégration indépendante
|
||||
et l'ouverture effective d'une expansion restent à réaliser.
|
||||
|
||||
## HORDE-170 — Objet-carte natif et langage de particules
|
||||
|
||||
[Contrat de la carte native](horde-map-native-beta170.md). L'objet créatif
|
||||
vierge découvre une identité stable et différente à sa première prise en main.
|
||||
Toutes les étapes des invasions par carte sont signalées visuellement, sans chat.
|
||||
La distribution en survie depuis les campements reste un ticket futur : aucune
|
||||
génération existante n'est modifiée dans cette livraison.
|
||||
|
||||
## HORDE-169 — Cartes inconnues et invasion accélérée
|
||||
|
||||
[Contrat de l'invasion](horde-invasion-beta169.md). La prise en main révèle la
|
||||
difficulté et le contenu. Les nouvelles cartes remplacent les vagues par un flux
|
||||
de 12, 18 ou 27 monstres de plus en plus rapide, avec jusqu'à dix espèces et des
|
||||
butins généreux correspondants. Les cartes beta.168 restent lisibles et jouables.
|
||||
|
||||
## FAMILIERS-COMBAT — Refonte à définir après essai de horde
|
||||
|
||||
Retour du créateur : les familiers ne lui semblent pas utiles au combat. Examiner
|
||||
leurs comportements réels et définir une contribution perceptible avant de modifier
|
||||
leurs statistiques. Tester avec joueurs sur une horde. Intention consignée, non implémentée.
|
||||
|
||||
## HORDE-168 — Cartes consommables et participation spontanée
|
||||
|
||||
Branche `codex/cartes-horde-beta168`. [Contrat du labo](horde-cartes-beta168.md).
|
||||
Trois cartes natives illustrées, invocation immédiate sans socle, vagues ouvertes
|
||||
et butins sur les monstres ramassables librement. L’ancien cercle est conservé
|
||||
pour les futurs donjons. Suite générale 254/254, puis validation ciblée serveur
|
||||
et client Vulkan des derniers ajustements réussies.
|
||||
|
||||
## HORDE-167 — Premier essai de carte d'épreuve en laboratoire
|
||||
|
||||
Branche `codex/communaute-economie-beta167`. [Contrat et vérifications](horde-lab-beta167.md).
|
||||
Prototype local vérifié sur son parcours serveur et client Vulkan : arène ronde, bloc central, carte réutilisable,
|
||||
inscriptions et trois vagues coopératives. Aucun gain d'XP ou de butin de récompense.
|
||||
La simplification du tableau, la BDD et les autres cartes restent à réaliser.
|
||||
La suite complète reste à 252/253 : un échec de déplacement des familiers,
|
||||
reproduit au rejeu ciblé, est signalé dans le contrat de livraison.
|
||||
|
||||
## Direction de travail — communauté, économie et aventures
|
||||
|
||||
[Cadrage du 25 septembre 2026](ecosysteme-communaute-economie.md) : décisions
|
||||
du créateur, état beta.166, propositions et questions ouvertes. Conception
|
||||
uniquement ; branche `codex/communaute-economie-beta167`, basée sur le dernier
|
||||
`main` beta.166. Le prototype beta.167 a été intégré sur `main` localement.
|
||||
|
||||
Dernière orientation de conception : cartes de découverte, cartes d'épreuve,
|
||||
clés/reliques, avec une piste de cartes collectionnables générées. Imaginer une
|
||||
arène ronde de laboratoire et son nouveau bloc central pour une carte de horde
|
||||
de zombies par vagues. Le [prototype beta.167](horde-lab-beta167.md) fait maintenant
|
||||
l'objet d'une réalisation séparée ; les autres familles restent en conception.
|
||||
|
||||
Ordre proposé : tableau à message général → statistiques existantes en BDD et
|
||||
premier rapport quotidien → première bounty physique jouable → navets et machine
|
||||
du dimanche avec suivi économique → huit structures et ancres d'expédition.
|
||||
Le contrat de ballast doit être livré avant les Backrooms ; site et Discord
|
||||
prolongent progressivement ces parcours. Aucun de ces nouveaux lots n'est livré.
|
||||
|
||||
## COMM-154 — Communauté dans le menu pause et sur le site
|
||||
|
||||
Branches `codex/community-beta154` (mod) et `codex/community-contract` (site).
|
||||
Résultat : Gazette, tableau et intendance avec lecture, publication, réponses,
|
||||
droits serveur et comptes liés ; fichier autonome ou MariaDB partagée.
|
||||
[Contrat](community-contract-v1.md), [livraison locale](community-beta154.md).
|
||||
|
||||
## STAT-03 — Atelier d’argile et hotbar — beta.112
|
||||
|
||||
Branche `codex/clay-workshop-hotbar-beta112`. [Contrat et vérifications](clay-workshop-hotbar-beta112.md).
|
||||
|
||||
@@ -0,0 +1,103 @@
|
||||
# UNI-WG-204 — Sanctuary autonome et Nord Peaks
|
||||
|
||||
Branche `codex/sanctuary-base-peaks-beta204`, depuis beta.203 (`454d9a5`).
|
||||
|
||||
Demande : absorber Demeure dans Sanctuary, rendre le terrain validé du laboratoire
|
||||
accessible avec le mod normal seul, puis remplacer la nappe nordique par le
|
||||
générateur Peaks existant en conservant taïga géante, glaces et igloos.
|
||||
|
||||
## Contrat
|
||||
|
||||
- Demeure interne : même chemin `data/demeure/footprints-v1.json`, schéma 1,
|
||||
mêmes règles serveur et attribution. Aucun transfert de données.
|
||||
- Nouveau preset public Sanctuary, trois tailles ; types vanilla conservés.
|
||||
Introduction normale conservée ; diagnostics et raccourcis de labo facultatifs.
|
||||
- Codecs et ressources historiques `sanctuary:*` et `sanctuary_test:*` conservés.
|
||||
Le transfert de module ne renomme pas ces identifiants.
|
||||
- Nouveau profil 204 uniquement pour le Nord Peaks, diamètre 1024. L'île de
|
||||
départ reprend les paramètres 203 ; aucun terrain déjà créé régénéré.
|
||||
- Essais sur mondes de développement neufs et copies de développement seulement,
|
||||
graines 0, 42 et 4736390610738281858 ; publication/installation non demandée.
|
||||
|
||||
## Réalisation
|
||||
|
||||
### Mod normal
|
||||
|
||||
Demeure n'est plus un JAR Fabric imbriqué : ses quatre classes, son mixin de
|
||||
placement, ses tests et son attribution sont intégrés à Sanctuary. Le service
|
||||
s'enregistre une seule fois depuis l'initialisation principale. Un ancien JAR
|
||||
Demeure séparé est refusé pour éviter deux installations des mêmes hooks.
|
||||
|
||||
Le terrain validé restait dans `sanctuary-test` ; le preset public du mod normal
|
||||
ne pointait donc pas vers ce terrain. Le runtime de l'île, ses ressources,
|
||||
ses mixins et son écran de taille sont désormais dans Sanctuary : biomes,
|
||||
grottes, minerais, bassins, mines, ruines, ancres, rosace, station et expansions.
|
||||
Les variantes historiques restent enregistrées pour lire leurs identifiants,
|
||||
mais une seule entrée Sanctuary apparaît dans le menu, à côté des types vanilla.
|
||||
Small/Medium/Large sélectionnent les nouveaux paramètres `sanctuary:island204_*`.
|
||||
|
||||
Le module Test conserve uniquement ses outils : diagnostics, visites guidées de
|
||||
développement, monde plat, commandes et raccourcis d'essai. Il ne fournit plus
|
||||
de mixin ou de ressource indispensable au monde normal. Le nom du package Java
|
||||
`fr.koka.sanctuarytest` et les anciennes clés `sanctuary_test:*` restent inchangés
|
||||
dans le runtime déplacé afin de limiter la portée du transfert.
|
||||
|
||||
### Nord
|
||||
|
||||
Pour les nouveaux profils 204, le Nord 1024 utilise directement la densité Peaks
|
||||
du moteur d'expansion, avec son épaisseur et son amplitude verticales normales.
|
||||
La coque de plateaux `NorthShape203` n'intervient plus. L'écologie s'appuie sur
|
||||
des colonnes mesurées dans cette densité, mises en cache sur une grille de huit
|
||||
blocs : vallées, taïga, vieux épicéas, roche, neige, pics et glaciers dépendent
|
||||
du relief. Les épicéas géants 203 et les formations de glace vanilla sont repris.
|
||||
La glace des cavernes reste conditionnée à une couverture rocheuse suffisante.
|
||||
|
||||
Les cinq igloos cherchent des épaules enneigées suffisamment soutenues, sans
|
||||
aplatir toute la montagne ; un seul possède le laboratoire de guérison. L'arrivée
|
||||
et le relais évitent les bâtiments. Les deux bassins imposés dans les anciens
|
||||
profils nordiques ne sont pas transposés : ils reformaient des plateformes dans
|
||||
le nouveau relief. Les autres directions et les profils 200–203 ne changent pas.
|
||||
|
||||
## Vérifications — 4/5 octobre 2026
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=base204,demeure,menus,operator,realtime
|
||||
-PsanctuaryAtlasOnly=true` : succès, tests de logique et 13 GameTests natifs
|
||||
ciblés. Ces GameTests vérifient notamment l'absence de Test et de Demeure
|
||||
séparé, les presets publics/historiques, les empreintes Demeure et l'amplitude
|
||||
Peaks réservée au Nord 204. La suite native historique entière n'a pas été rejouée.
|
||||
- `:sanctuary:runClientGameTest -PsanctuaryClientTests=true
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryShared196ClientTests=true` :
|
||||
`SHARED196_CLIENT_PASS`, sans Test chargé. FR/EN, tailles, Annuler/Échap,
|
||||
relecture des paramètres sauvegardés et éditeur Plat vanilla vérifiés.
|
||||
- Création sur le classpath de production sans Test, heap 2048 Mio : Small
|
||||
graine 42, Medium graine 0 et Large graine 4736390610738281858. Les trois
|
||||
serveurs atteignent l'état prêt et placent le spawn sur l'île. Journaux dans
|
||||
`build/base204-standalone/`. Ce ne sont pas des mesures comparatives de performance.
|
||||
- Nord natif Small 42, profil 204 : offrande réelle, rejet des mauvaises offres
|
||||
et doublons, interruption puis reprise du journal, arrivée/relais et cinq
|
||||
igloos dont une cave vérifiés. Centre de l'expansion `(-128, -944)` ; arrivée
|
||||
`(-112, 308, -1056)`. L'annonce SGA est émise après préparation.
|
||||
- Échantillonnage du Nord : sommets Y=103–455, épaisseur maximale 381 blocs ;
|
||||
prairie, taïga, forêt ancienne, neige, pics, glacier et roche présents.
|
||||
Dans les chunks inspectés autour de `(-256, 283, -848)`, le plus grand tronc
|
||||
mesure 60 blocs. Glace et air vérifiés dans une caverne ; glacier vérifié
|
||||
autour de `(-80, 303, -1120)`. Reçus `build/worldgen-lab/north204-a/small/42/`.
|
||||
- MRpack normal `Sanctuary-beta.204.mrpack` exporté et ZIP vérifié : Minecraft
|
||||
26.3, Loader 0.19.5, Fabric API 0.160.5+26.3 ; ni JAR Test ni Demeure séparé.
|
||||
SHA-256 : `8c90090a784bd7c799849e916be2e3e36214a3dbf6ce8b4925d31a9fca8c5086`.
|
||||
|
||||
## Limites et livraison
|
||||
|
||||
Les essais natifs du nouveau Nord couvrent la graine 42. Son aspect reste à
|
||||
évaluer en visite, et la recherche d'un village n'a pas été vérifiée sur toutes
|
||||
les graines. Ces résultats macOS/Vulkan ne constituent pas une validation Windows.
|
||||
L'hydrologie du Nord reste à reprendre sur son relief Peaks si l'on souhaite
|
||||
rétablir de grands lacs. Aucun ancien monde, chunk ou format de sauvegarde n'a
|
||||
été migré ; les nouvelles formes nécessitent un nouveau profil 204.
|
||||
|
||||
Artefact local dans `build/` et copie dans `~/Downloads/`. Une copie indépendante
|
||||
du monde de test est ouverte pour la visite `north204-visit`, en créatif,
|
||||
commandes autorisées et vue 32 chunks (`NORTH204_VISIT_OPEN`, Vulkan confirmé).
|
||||
Aucun packwiz public, serveur personnel
|
||||
ou instance Prism n'a été mis à jour par ce chantier.
|
||||
@@ -0,0 +1,112 @@
|
||||
# LIGHT-140 — Lumières colorées portées et distance
|
||||
|
||||
Socle beta.139 `c05c338`, branche `codex/colored-dynamic-beta140`.
|
||||
Minecraft 26.3 / Java 25. Livraison beta.140.
|
||||
|
||||
## Contrat
|
||||
|
||||
Relier les couleurs aux vraies sources de lumière dynamique : mains, tête,
|
||||
cosmétiques, objets au sol et feu, selon le système existant. Renforcer la
|
||||
teinte et activer les lumières colorées par défaut à 30 %. Ajouter une distance
|
||||
d'affichage de 8, 16, 32 ou 64 blocs (16 par défaut), indépendante de la portée
|
||||
native de chaque source. Augmenter la distance coûte davantage en mémoire et
|
||||
calcul ; aucun chargement forcé de chunk. Les choix sauvegardés sont conservés.
|
||||
|
||||
Sources portées actualisées avec le système dynamique, sans reconstruire tout
|
||||
le champ statique à chaque mouvement. Aucun changement de monde ou de règle
|
||||
serveur. Vérifications natives OpenGL et Vulkan, puis construction et archives.
|
||||
|
||||
## Couleurs et fondus
|
||||
|
||||
Torches ordinaires : température native par défaut ; option « Torches chaudes »
|
||||
pour retrouver l'orangé. Glowstone jaune, lave jaune-rouge, redstone rouge saturé,
|
||||
cuivre vert (posé, en main ou sur la tête). Le cuivre est reconnu avant les
|
||||
familles génériques de torches et lanternes. Les palettes explicites restent
|
||||
indépendantes des packs ; le repli des autres matériaux suit leurs textures.
|
||||
|
||||
Le rendu s'atténue sur le dernier quart de la distance choisie. Le champ précédent
|
||||
reste disponible pendant un fondu de 300 ms vers le nouveau champ ; l'activation
|
||||
et les sources dynamiques ont aussi un fondu. Le changement de distance est
|
||||
interpolé. Les sources mobiles utilisent la même sélection bornée et les mêmes
|
||||
intensités que la lumière dynamique existante, avec interpolation visuelle des
|
||||
positions et couleurs. Elles héritent de sa propagation radiale, y compris de
|
||||
ses limites d'occultation ; les blocs posés conservent leur propagation avec murs.
|
||||
|
||||
Le volume varie réellement selon la distance (56, 72, 104 ou 168 blocs de côté,
|
||||
avec marge de propagation). Les grandes distances augmentent la mémoire et le
|
||||
délai de reconstruction ; la construction reste répartie entre les images.
|
||||
Deux champs coexistent brièvement pour le fondu. Seuls les chunks déjà chargés
|
||||
sont lus. La portée lumineuse native des torches n'est pas allongée.
|
||||
|
||||
## Frontières de saturation
|
||||
|
||||
Le stockage beta.139 tronquait les canaux faibles séparément en fin de portée :
|
||||
un bleu pouvait perdre son rouge avant son vert, puis devenir plus saturé sur
|
||||
une frontière visible. Le stockage logarithmique conserve maintenant une marge
|
||||
sous le niveau lumineux natif zéro. Le shader applique la coupure à l'énergie
|
||||
globale en conservant les rapports RGB. La réponse devient linéaire près du noir,
|
||||
sans amplification par racine quatrième des très faibles contributions.
|
||||
|
||||
La transition des champs interpole le résultat colorimétrique rendu, pas une
|
||||
énergie ensuite amplifiée. Les sources mobiles ont une atténuation de fondu
|
||||
compensée pour la même réponse. Le test contrôle les rapports rouge/bleu et
|
||||
vert/bleu d'une torche des âmes de 1 à 9 blocs, jusqu'au bord de sa portée.
|
||||
|
||||
## Vérifications natives
|
||||
|
||||
Minecraft 26.3 / Java 25 sur Apple M1, mondes de test neufs de graine 122 :
|
||||
|
||||
- OpenGL 4.1 Metal : **2 min 40 s**, `build/colored140-opengl.log`.
|
||||
- Vulkan / MoltenVK 1.4.2, profondeur 0–1 et transparence améliorée :
|
||||
**2 min 26 s**, `build/colored140-vulkan.log`.
|
||||
|
||||
Les deux exécutions passent `COLORED139_PASS` et `COLORED140_PASS` :
|
||||
propagation avec murs, sources hors champ, lampes allumées/éteintes, retrait,
|
||||
rechargement des ressources, cache, déplacement/retour de caméra, OFF/zéro,
|
||||
préférences et traductions FR/EN. Les nouveaux contrôles couvrent la teinte
|
||||
bleue jusqu'à neuf blocs, la torche native inchangée, l'option chaude, le cuivre
|
||||
vert et le rouge saturé, les deux mains et le cosmétique de tête, la position
|
||||
en troisième personne, les quatre distances et un fondu sans dépassement.
|
||||
|
||||
Dans la même scène contrôlée, la somme d'écarts OFF/torche chaude à 30 % vaut
|
||||
3 926 093 / 3 926 092 sur OpenGL/Vulkan, contre 2 025 577 en beta.139 à 35 %.
|
||||
Cette mesure vérifie l'accentuation demandée, pas la performance. Le test fige
|
||||
uniquement le scintillement de la lightmap native ; cette sonde et les tests
|
||||
client ne sont pas distribués. Les captures finales sont conservées sous
|
||||
`build/colored140-opengl-screenshots/` et `build/colored140-vulkan-screenshots/`.
|
||||
Comparatif autonome : `build/Shader-beta.140-comparaison.html`.
|
||||
|
||||
Pas de validation des pilotes Windows de l'utilisateur revendiquée. Les
|
||||
limites de beta.139 pour le rendu sous l'eau/lave et les panoramas restent
|
||||
ouvertes. Les sources dynamiques gardent l'occultation du système existant.
|
||||
Aucun monde personnel ouvert ni modifié.
|
||||
|
||||
## Construction et archives
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
réussit en **2 min 22 s**, 126 tâches. Le GameTest serveur dédié reste exclu
|
||||
conformément au refus EULA antérieur ; les tests clients ci-dessus sont exécutés
|
||||
séparément. Log : `build/shader140-build.log`.
|
||||
|
||||
La comparaison avec beta.139 trouve **18 entrées de production modifiées**,
|
||||
limitées aux lumières dynamiques/colorées, options et aides FR/EN. Les sources
|
||||
des JAR correspondent aux fichiers du dépôt. Les archives normale/Test contiennent
|
||||
le même JAR Sanctuary ; la version, les dépendances exactes, les textures de
|
||||
gemmes et de la clé de Steve, l'absence de classes de test et le template complet
|
||||
sont vérifiés. Reçu : `build/shader140-artifact.json`.
|
||||
|
||||
SHA-256 du JAR : `853284c1a61c7fce12edd2f7763717321eef56977290eb0e7c5db5e30bff442f`.
|
||||
|
||||
- Sanctuary-beta.140.mrpack : `1b366746e4d6bebfbe0115c849524bdeb81c14eee89a2510f9dbe18808974d6a`.
|
||||
- Sanctuary-Test-beta.140.mrpack : `50c3cdf759117bb5286d41b4535fde15d9d84deaac833b7f8f61c4a0d29b72e7`.
|
||||
|
||||
## Livraison
|
||||
|
||||
[Release beta.140](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.140)
|
||||
publiée sur le commit source `6e1b3b71088437fe57cf2b9b979b6d62711628d3` ; canal stable
|
||||
`2c360a0759d4a164f82c89ac2bef04ff69d50875` vérifié après publication.
|
||||
Deux synchronisations isolées puis deux dans la même instance Sanctuary Beta
|
||||
réussissent. Les **923 fichiers personnels** suivis gardent leurs hashes.
|
||||
Sauvegarde préalable : `sanctuary-backups/before-beta.140/`. Aucun monde personnel
|
||||
ouvert. Reçus : `build/shader140-isolated.json` et `build/shader140-prism.json`.
|
||||
Archives normale/Test/template et comparaison copiées dans `sanctuary-beta/build/`.
|
||||
@@ -0,0 +1,107 @@
|
||||
# LIGHT-139 — Lumières colorées
|
||||
|
||||
Socle beta.138 + vérification Vulkan `9d84a02`, Minecraft 26.3 / Java 25.
|
||||
Branche `codex/colored-lights-beta139`, livraison beta.139.
|
||||
|
||||
## Contrat
|
||||
|
||||
Option locale « Lumières colorées » avec intensité. Les vrais blocs émetteurs
|
||||
teintent discrètement leurs environs, y compris hors champ. Torches/lanternes,
|
||||
lave et feu chauds ; sources des âmes bleues ; redstone active rouge ;
|
||||
froglights par variante ; sources Sanctuary selon leur texture/matière.
|
||||
Les blocs éteints n'émettent pas. Le bloom et les inclusions émissives des
|
||||
minerais restent indépendants ; aucune lumière de gameplay n'est ajoutée.
|
||||
|
||||
Propagation RGB dans un volume local de blocs chargés, obstacles et formes
|
||||
natives, construction répartie entre les images, cache des couleurs de
|
||||
matériaux. Aucun chargement forcé de chunk, accès aux mondes personnels,
|
||||
changement de sauvegarde, réseau ou règles serveur.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Dans les options du shader : « Lumières colorées », désactivées initialement,
|
||||
et une intensité de 0 à 100 %, réglée à 35 %. Zéro ou OFF libère les ressources.
|
||||
Les préférences existantes sont conservées. Libellés et aides FR/EN.
|
||||
|
||||
Les familles vanilla demandées ont une palette dédiée. Les autres émetteurs,
|
||||
y compris ceux de Sanctuary, utilisent la couleur des pixels lumineux de leurs
|
||||
textures de modèle, calculée puis mise en cache. Ce repli suit les packs de
|
||||
ressources ; les palettes dédiées vanilla restent constantes. Une texture
|
||||
illisible ou sans pixels exploitables utilise du blanc. Les blocs purement
|
||||
émissifs du bloom, sans émission lumineuse native, ne deviennent pas des lampes.
|
||||
|
||||
Le champ couvre un cube de 64 blocs de côté autour de la caméra. Une marge de
|
||||
14 blocs réserve la propagation aux sources présentes dans le volume ; le rendu
|
||||
s'atténue progressivement sur 4 blocs à sa périphérie. C'est donc un effet de
|
||||
proximité, pas une illumination de tous les chunks visibles. Les formes et
|
||||
l'opacité natives règlent le passage de la lumière. Les canaux utilisent des
|
||||
maxima indépendants, sans addition illimitée des sources superposées.
|
||||
|
||||
Le calcul CPU est réparti avec un budget visé de 2 ms par image, plus les
|
||||
allocations et chargements ponctuels de matériaux ; aucun chiffre de FPS n'est
|
||||
garanti. Un monde immobile réutilise son champ. Les changements rapides et les
|
||||
déplacements peuvent présenter un bref retard, le temps de publier un champ
|
||||
complet. Aucun chargement forcé de chunk. Une texture 512 × 512 contient le champ.
|
||||
La passe GPU teinte les surfaces visibles, atténue l'effet au soleil et dans le
|
||||
brouillard, puis laisse agir le SSGI et le bloom. Les sources tenues, entités,
|
||||
particules et le rendu sous l'eau/lave ne sont pas couverts par cette option.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Essais client natifs réussis dans des mondes neufs (graine 122) sur Apple M1 :
|
||||
|
||||
- OpenGL 4.1 Metal : **1 min 46 s**, `build/colored139-opengl.log`.
|
||||
- Vulkan / MoltenVK 1.4.2, profondeur 0–1 et transparence améliorée :
|
||||
**1 min 30 s**, `build/colored139-vulkan.log`.
|
||||
|
||||
Les deux journaux contiennent `COLORED139_PASS` et le backend réellement actif.
|
||||
Torche et torche des âmes hors champ, trois froglights, pierre lumineuse dont
|
||||
la couleur vient de sa texture, intensité 35/100, cache statique, déplacement
|
||||
et retour de caméra, mur fermé puis ouvert, lampe redstone allumée puis éteinte,
|
||||
retrait de source, rechargement des ressources et OFF/zéro vérifiés.
|
||||
Les préférences persistantes et les libellés FR/EN sont contrôlés ; une dernière
|
||||
capture active conjointement PBR, SSGI, bloom, ombres, highlights et rayons.
|
||||
|
||||
Les sommes d'écart entre OFF et 35 % sont presque identiques entre backends :
|
||||
torche 2 025 577 / 2 025 576 ; âmes 964 200 / 964 201. Il s'agit de mesures
|
||||
sur les pixels de cette scène, pas d'un indice de performance.
|
||||
Comparatif autonome : `build/Shader-beta.139-comparaison.html`.
|
||||
Pas de validation du pilote Vulkan Windows de l'utilisateur revendiquée.
|
||||
Le test fige uniquement le scintillement vanilla des torches afin de comparer
|
||||
les images ; cette sonde est exclue du JAR distribué. Aucun monde personnel ouvert.
|
||||
|
||||
## Diagnostic des essais
|
||||
|
||||
La première comparaison de stabilité détectait le scintillement natif de la
|
||||
lightmap des torches, même avec un champ coloré inchangé. La sonde de test
|
||||
stabilise ce seul facteur ; aucune désactivation de scintillement en production.
|
||||
La pièce d'essai est désormais construite après le chargement de ses chunks,
|
||||
et l'absence de lumière du ciel est vérifiée avant les captures.
|
||||
|
||||
## Construction et archives
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
réussit en **2 min 22 s**, 126 tâches. Le serveur GameTest dédié reste exclu
|
||||
conformément au refus EULA antérieur. Log : `build/shader139-build.log`.
|
||||
La comparaison à beta.138 trouve **13 entrées de production** modifiées,
|
||||
limitées au shader, à son menu et aux aides FR/EN. Les sondes de test sont
|
||||
absentes du JAR distribué. Sources, archives normale/Test et template complets
|
||||
vérifiés ; textures des gemmes et clé de Steve conservées à l'identique.
|
||||
Reçu local : `build/shader139-artifact.json`.
|
||||
|
||||
JAR SHA-256 : `7b958f6576adbabb2b1af589b866cb52b1a65600ea2fa505b05dd283f8d595df`.
|
||||
|
||||
- `Sanctuary-beta.139.mrpack` : 10450317 octets ; SHA-256 `13f3a283c260876d28ce0c6504615b4a8f4d575906badfbb2b39558f312e9fbb`.
|
||||
- `Sanctuary-Test-beta.139.mrpack` : 10469244 octets ; SHA-256 `c1e0b684dc2650950a0925c4625ef5eb4b78fb5f1c5680f5e302550424fa6d81`.
|
||||
|
||||
## Publication et instance
|
||||
|
||||
[Release beta.139](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.139)
|
||||
publiée depuis `dc33ffa54697f61cd8f579235e7cebdbf0765f7c`, tag exact `beta.139`.
|
||||
Canal packwiz : `9f10167b6acfece9c045573580e186aa72bc91dc`.
|
||||
Deux synchronisations isolées puis deux synchronisations de la même instance
|
||||
Prism réussissent. Un seul JAR Sanctuary beta.139 actif, empreinte identique
|
||||
à l'archive vérifiée ; les **923 fichiers personnels suivis** conservent leurs
|
||||
empreintes. Sauvegarde des fichiers gérés dans
|
||||
`sanctuary-backups/before-beta.139/`. Aucun monde personnel ouvert.
|
||||
Reçus : `build/shader139-isolated.json`, `build/shader139-prism.json`.
|
||||
@@ -0,0 +1,115 @@
|
||||
# COMM-154 — Communauté et conversations, beta.154
|
||||
|
||||
Livraison locale préparée sur `codex/community-beta154`, depuis beta.151
|
||||
`b97ec6c9e820bed7693e75f200a02b16af01cf89`. Le site est préparé sur
|
||||
`codex/community-contract`, depuis `4af93d1e42ba6084ecd654967ad6d8f317a5d3ef`.
|
||||
Contrat identique dans les deux dépôts : [communauté v1](community-contract-v1.md).
|
||||
|
||||
## Résultat
|
||||
|
||||
Gazette à gauche et tableau à droite du menu pause, intendance au-dessus ;
|
||||
accès compacts lorsque la largeur GUI ne permet pas trois colonnes.
|
||||
Lire, publier et répondre, modifier son texte, masquer et clôturer une annonce.
|
||||
Modération autorisée côté serveur et comptes Web liés par code confirmé en jeu.
|
||||
|
||||
Les discussions montrent les visages Minecraft, le pseudo, la date et chaque
|
||||
message dans un bloc de conversation. Les actions secondaires sont regroupées
|
||||
sous « ⋯ » ; la réponse se saisit directement sous le fil. Même présentation
|
||||
sur le site, avec rendu des visages par UUID via son prestataire existant.
|
||||
|
||||
Fichier JSON atomique par défaut ; MariaDB optionnelle partagée avec Laravel.
|
||||
Le serveur exécute la persistance hors du thread de jeu. Brouillons conservés
|
||||
en cas de refus ; aucun repli silencieux vers un fichier après une panne SQL.
|
||||
Aucun changement des shaders, de leurs réglages, de la génération ou des
|
||||
sauvegardes existantes. Le delta part exactement du shader beta.151.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Environnement : macOS Apple M1, Java Temurin 25, Minecraft 26.3,
|
||||
Fabric Loader 0.19.5, Fabric API 0.160.5+26.3, Vulkan/MoltenVK 1.4.2.
|
||||
Site : PHP 8.5.10, Laravel 13.32.0, PHPUnit 12.5.35. MariaDB locale 12.3.3,
|
||||
Connector/J 3.5.10 imbriqué dans le mod.
|
||||
|
||||
- Scénario de stockage commun réussi sur fichier et MariaDB : persistance,
|
||||
redémarrage, exact retry, conflits de révision, auteurs, opérateurs,
|
||||
fermeture/réouverture, masquage, pagination, texte Unicode et isolation.
|
||||
Codes expirés, consommés et tentative de réattribution d’identité refusés.
|
||||
`build/community-client-database-final.log`, marqueurs FILE_PASS et SQL_PASS.
|
||||
- Aller-retour réel Java → HTTP Laravel → Java réussi : article, création d’un
|
||||
code Web, liaison côté Java, modification Web et réponse relues par Java.
|
||||
`build/community-interop-{seed,claim,verify}.log` ; deux phases PHPUnit,
|
||||
3 puis 6 assertions. Migration Laravel sur les tables déjà créées par le SQL
|
||||
du mod réussie ; création depuis Laravel également testée par les tests HTTP.
|
||||
- Tests client Vulkan réussis en FR/EN, GUI 2/3 (panneaux et mode compact),
|
||||
publication, réponse intégrée, clôture, actions contextuelles, visages,
|
||||
brouillon refusé et réponse tardive après fermeture.
|
||||
Fichier : `build/community-conversation-client.log`.
|
||||
MariaDB : `build/community-conversation-database.log`, mode explicitement
|
||||
vérifié par le client. Captures dans `mods/sanctuary/build/run/clientGameTest/screenshots/`.
|
||||
- Panne SQL testée avec une adresse locale sans service : erreur visible,
|
||||
brouillon conservé, aucune création de fichier de repli.
|
||||
`build/community-client-outage.log`, marqueur COMMUNITY154_OUTAGE_PASS.
|
||||
- Web : **12 tests / 60 assertions** communautaires réussis, comprenant
|
||||
validation, identité non falsifiable, restrictions du staff, auteur,
|
||||
XSS/texte échappé, formulaires, pagination, compte lié et rejet CSRF réel.
|
||||
Pint réussi. Rendu des pages et visages vérifié dans le navigateur local,
|
||||
navigation accueil → discussion et FR/EN. Aucune erreur console applicative ;
|
||||
avertissement THREE.Clock hérité du panorama.
|
||||
- Suite Web complète : **55 réussites, 1 échec, 1 test optionnel ignoré** sur
|
||||
57. L’échec existant de PlayerModerationTest attend « Nommer admin », alors
|
||||
que ViewUser affiche déjà « Nommer staff » dans le commit de départ.
|
||||
- `./gradlew check build --continue` exécuté : **229/252 GameTests réussis**,
|
||||
**23 échecs strictement identiques à beta.151** (comparaison des identifiants).
|
||||
`build/community-check-build.log`, `build/community-server-failures.json`.
|
||||
Ce passage a aussi rencontré un `ClassNotFoundException` temporaire dans
|
||||
seasonal105Smoke pendant des compilations concurrentes de vérification.
|
||||
Le contrôle final est relancé seul, avec la tâche GameTests exclue (les 252 cas ont été exécutés lors du premier passage).
|
||||
|
||||
Le contrôle complet reste rouge : cette livraison ne prétend pas réparer les
|
||||
23 GameTests historiques ni l’ancienne assertion de libellé Web. Les parcours
|
||||
communautaires sont validés indépendamment.
|
||||
|
||||
## Rejouer les tests ciblés
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:community154Smoke
|
||||
./gradlew :sanctuary:runClientGameTest \
|
||||
-PsanctuaryClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryCommunity154ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
```
|
||||
|
||||
Pour le même scénario en base, préparer une MariaDB de développement vide
|
||||
avec `src/main/resources/community/schema-v1.sql`, puis définir
|
||||
`SANCTUARY_COMMUNITY_TEST_JDBC` (URL JDBC),
|
||||
`SANCTUARY_COMMUNITY_CLIENT_DATABASE=true` et
|
||||
`SANCTUARY_COMMUNITY_DB_PASSWORD`. Ces fixtures de développement utilisent
|
||||
`root` sans mot de passe, uniquement dans la MariaDB locale isolée de test.
|
||||
Ne jamais les lancer sur une base personnelle ou de production.
|
||||
|
||||
L’aller-retour utilise une autre base isolée, également migrée par Laravel :
|
||||
`community154Interop -PcommunityInteropPhase=seed`, puis CommunityInteropTest
|
||||
avec `SANCTUARY_COMMUNITY_INTEROP_PHASE=link`, Java `claim`, PHP `write`, Java
|
||||
`verify`. Les deux programmes reçoivent le même chemin absolu
|
||||
`SANCTUARY_COMMUNITY_INTEROP_FILE` vers un JSON dans un dossier ignoré.
|
||||
Le test PHP reçoit les paramètres DB_CONNECTION/DB_HOST/DB_PORT/DB_DATABASE
|
||||
pointant exclusivement vers cette base. Sans cette variable, il est ignoré.
|
||||
|
||||
## Limites de livraison
|
||||
|
||||
Code et artefacts locaux ; aucun déploiement Web, serveur personnel, canal
|
||||
packwiz ou instance Prism. Validation Windows et connexion Discord réelle sur
|
||||
le domaine de production à faire lors du déploiement. Le compte Web utilisé
|
||||
dans les essais est fictif, la liaison passe cependant par le vrai stockage.
|
||||
Pas de pièces jointes, de notification poussée ou d’import fichier → base.
|
||||
Les anciens JAR encore présents sont conservés.
|
||||
|
||||
## Artefacts vérifiés
|
||||
|
||||
Export packwiz réussi. ZIP, versions Minecraft/Fabric, JAR unique, pilote JDBC
|
||||
imbriqué, licence, absence des tests et égalité octet pour octet des 29 fichiers
|
||||
shader avec beta.151 vérifiés. Reçu : `build/community-artifacts.json`.
|
||||
|
||||
- `mods/sanctuary/build/libs/sanctuary-beta.154.jar` — SHA-256 `07e7419cb3e814d59a6b6f130a1b05b4f65c2407a0ffbd00b194ba97614923ad`.
|
||||
- `build/Sanctuary-beta.154.mrpack` — SHA-256 `fbc007fe59777b0c52b30b6e461b09fe0636fb0b86d254b9e98952856b7f6c8a`.
|
||||
|
||||
Site : commit local `32d804a` sur `codex/community-contract`.
|
||||
@@ -0,0 +1,98 @@
|
||||
# beta.158 — cartes communautaires et demandes suivies
|
||||
|
||||
## Contrat v3 et migration
|
||||
|
||||
Les règles de génération et les inventaires Minecraft ne changent pas. Les coffres
|
||||
sont des sélections descriptives : aucun objet n'est prélevé, réservé, livré ou
|
||||
créé. Les échanges et la répartition des récompenses sont organisés entre joueurs.
|
||||
Il n'y a ni gagnant automatique ni validation automatique d'une livraison.
|
||||
|
||||
Une annonce peut porter `task` : position facultative (dimension, x/y/z), liste
|
||||
`materials` de 27 identifiants d'objets et quantités (1 à 999999), participation
|
||||
`shared` ou `single`, récompense `none`, `items` (27 sélections) ou `custom` (240
|
||||
caractères). Les catégories info/work/need/event gardent leurs identifiants.
|
||||
Le serveur Minecraft valide aussi les objets et dimensions contre son registre.
|
||||
Les données du site sont descriptives et restent lisibles si un objet manque côté
|
||||
client ; les identifiants inconnus ne créent jamais d'objet.
|
||||
|
||||
Les abonnements sont authentifiés, idempotents, au plus 16 par joueur et 64 par
|
||||
annonce. Une annonce single accepte un seul abonné. L'auteur ne s'abonne pas à sa
|
||||
propre annonce. Fermeture et masquage retirent le suivi actif ; réouvrir autorise
|
||||
à nouveau l'abonnement. Les abonnements existants ne sont pas supprimés par la
|
||||
fermeture : un joueur peut se désabonner. Changer shared vers single est refusé
|
||||
si plusieurs abonnés sont présents. La liste côté HUD est issue du serveur ; les
|
||||
notifications affichent les trois suivis ouverts les plus récents, avec le lieu
|
||||
et un rappel des matériaux. La fermeture est annoncée, sans attribuer de gain.
|
||||
|
||||
Fichier : ajout du champ task et de la collection followers ; lecture v1/v2 sans
|
||||
écriture. À la première écriture, backup exact `.v1.bak` ou `.v2.bak` sans
|
||||
écrasement puis écriture atomique en v3. Le plafond 64 Mio reste appliqué. Aucun
|
||||
monde personnel n'est migré pendant le développement. Retour arrière : serveur
|
||||
arrêté, restauration du backup et de la version logicielle correspondante.
|
||||
|
||||
MariaDB : arrêter les écritures du mod et du site, sauvegarder, appliquer la
|
||||
migration v2→v3 (SQL livré ou Laravel), puis mettre à jour les deux applications.
|
||||
Colonne task nullable, tables followers et subscribers (verrous par joueur).
|
||||
Aucune migration automatique par le mod ; aucune suppression des anciens posts.
|
||||
Les anciens articles et annonces restent lisibles. Rollback uniquement par
|
||||
restauration explicite ; pas de suppression automatique des nouvelles données.
|
||||
|
||||
La Gazette et le tableau utilisent une grille à deux colonnes. Les aperçus de
|
||||
photo sont bornés à 6 Kio binaires par carte ; les listes ne diffusent pas les
|
||||
photos complètes. L'intendance reste affichée dans l'en-tête, sans accès public
|
||||
à son historique ni à son éditeur ; sa gestion est réservée au panneau admin.
|
||||
Le panneau Web est complété par `/sanctuary community admin` côté jeu, réservé
|
||||
aux opérateurs par le serveur, notamment pour les installations en mode fichier.
|
||||
Les métadonnées de l’article (visage, nom, date) sont sur la rangée du bouton
|
||||
« … », juste sous l’encadré photo/texte. La galerie est plafonnée à 420 unités
|
||||
de largeur et 180 de hauteur ; l’aperçu du formulaire est limité à 160 × 72.
|
||||
Le bouton de liaison du compte Web disparaît des écrans communautaires en jeu.
|
||||
Les sondages restent une piste, sans fonctionnalité livrée dans cette version.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Vérifications ciblées du 23 septembre 2026 :
|
||||
|
||||
- Stockage fichier et MariaDB : métadonnées, inscription exclusive concurrente,
|
||||
idempotence, limite de 16 suivis, fermeture/réouverture, désabonnement,
|
||||
refus shared→single occupé, masquage et redémarrage. Migration v1/v2 avec
|
||||
conservation exacte des backups.
|
||||
- Client natif Vulkan : français/anglais, échelles GUI 2/3/4, grilles de deux
|
||||
colonnes, défilement et chargement des cartes suivantes sans retour en haut,
|
||||
galerie compacte, photo obligatoire, publication, coffre de sélection,
|
||||
position courante, récompense personnalisée, abonnement et HUD.
|
||||
- Vérification du déplacement visage/nom/date sous l’article, à côté de « … ».
|
||||
- Accès opérateur au panneau d’intendance en jeu : refus au joueur ordinaire,
|
||||
ouverture et publication après activation des permissions natives.
|
||||
- Régression du menu pause : colonnes, boutons, carte, défilements indépendants,
|
||||
longs articles/annonces et réponse, sous Vulkan en FR/EN et GUI 2/3/4.
|
||||
- Site : 23 tests / 131 assertions, dont droits, migrations v3 sans perte ni
|
||||
rétrogradation, validation des matériaux et inscription exclusive.
|
||||
- Interopérabilité MariaDB réelle Java→PHP→Java : photo, édition, réponse,
|
||||
identité vérifiée, demande et abonnement Web relus par le mod (18 assertions PHP).
|
||||
- Ressources de shaders : 29 fichiers identiques au JAR beta.157, qui conservait
|
||||
le socle beta.151. Les anciens JAR et MRpack sont conservés.
|
||||
|
||||
Suite générale : `./gradlew check build assemblePack` exécuté ; 252 GameTests,
|
||||
229 réussites et les mêmes 23 échecs identifiés dans la beta.157, aucun nouvel ID.
|
||||
Comparaison conservée dans `build/cards158-server-failures.json`. Les autres
|
||||
contrôles, le build et l’assemblage passent avec cette suite déjà vérifiée exclue :
|
||||
`./gradlew check build assemblePack :sanctuary:runClientGameTest -x :sanctuary:runGameTest`
|
||||
avec les propriétés client Cards158/Vulkan et la base MariaDB de développement.
|
||||
Le dernier parcours confirme aussi le refus des quantités invalides et la
|
||||
conservation des 17 bûches et 3 diamants réels après publication descriptive.
|
||||
|
||||
Export packwiz réussi ; version interne beta.158 et JAR embarqué vérifiés.
|
||||
Captures finales : `build/cards158-database-screens/` ; captures fichier :
|
||||
`build/cards158-file-screens/`. Les grilles, la galerie et le pied d’article
|
||||
ont été inspectés visuellement. Journaux : `build/beta158-*.log`.
|
||||
|
||||
Site local : commit `0dcab21` sur
|
||||
`codex/community-quests`. Aucun déploiement dans une installation personnelle,
|
||||
aucune publication du canal packwiz ni modification d’un monde existant.
|
||||
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
- `mods/sanctuary/build/libs/sanctuary-beta.158.jar` — SHA-256 `0590320dcece7f94543ab17e99fb23ac37cc3e2578499aa6e80ad801212675e8`.
|
||||
- `build/Sanctuary-beta.158.mrpack` — SHA-256 `9c1e556ddce3094febf92631c8a1c8cc0ec56971b332cd9c2d7448f2f9931b89`.
|
||||
@@ -0,0 +1,240 @@
|
||||
# Communauté Sanctuary — contrat v1
|
||||
|
||||
> Depuis beta.158, le schéma actif est la v3 : photos et demandes suivies.
|
||||
> Appliquer les migrations avant de connecter les deux applications.
|
||||
|
||||
Ticket beta.154, branche `codex/community-beta154`, socle beta.151 `b97ec6c`.
|
||||
Ce contrat décrit le comportement cible et les échanges implémentés par ce ticket.
|
||||
La note de livraison indique séparément les vérifications effectivement réussies.
|
||||
Les shaders de beta.151 sont conservés sans modification.
|
||||
|
||||
## Périmètre
|
||||
|
||||
Gazette (`article`), tableau (`notice`), intendance (`bulletin`) et réponses
|
||||
(`reply`). Contenus texte brut : titre 120 caractères Unicode, corps 4 000,
|
||||
réponse 1 000. Aucune interprétation HTML, Markdown ou commande Minecraft.
|
||||
Catégories stables : `info`, `work`, `need`, `event`. Photos et pièces jointes
|
||||
sont hors de cette première livraison.
|
||||
|
||||
La pause présente la Gazette à gauche, les actions natives au centre, le tableau
|
||||
à droite et l'intendance au-dessus. À faible largeur GUI, accès compacts vers
|
||||
les mêmes écrans. Publication et réponses disponibles dès cette version.
|
||||
|
||||
## Autorité et identité
|
||||
|
||||
Le client passe exclusivement par le serveur Minecraft. L'auteur vient de la
|
||||
session serveur, jamais d'un UUID fourni par le client. Chaque installation
|
||||
possède un `serverId` UUID stable, également configuré sur le site. Chaque
|
||||
requête SQL inclut ce serveur. Les sauvegardes du monde restent indépendantes.
|
||||
|
||||
Tous les joueurs connectés peuvent publier et répondre. L'auteur peut modifier
|
||||
ou masquer son contenu et clôturer/réouvrir son annonce. Un opérateur Minecraft
|
||||
ou membre du staff Web disposant de `users.moderate` peut masquer des contenus, épingler les publications et
|
||||
publier l'intendance ; il ne réécrit pas le texte d'un autre auteur.
|
||||
Le site exige un compte connecté lié à l'UUID Minecraft : code aléatoire à usage
|
||||
unique créé sur le site, valable 10 minutes, confirmé en jeu. Seul le hash SHA-256
|
||||
est conservé. La confirmation nécessite un serveur authentifié (`online-mode`).
|
||||
Une identité déjà liée ne peut être réattribuée automatiquement.
|
||||
|
||||
## Stockage
|
||||
|
||||
`config/sanctuary-community.json` sélectionne `file` (défaut) ou `database`.
|
||||
Le fichier du monde `data/sanctuary-community.json` est remplacé atomiquement
|
||||
après synchronisation disque. Une corruption ou modification externe est une
|
||||
erreur : aucune réinitialisation silencieuse.
|
||||
|
||||
En mode base, MariaDB utilise les tables `sanctuary_community_*`, utf8mb4,
|
||||
InnoDB. Les nouvelles tables sont additives. Le schéma SQL v1 livré peut être
|
||||
installé par l'administrateur ; Laravel possède la migration équivalente.
|
||||
Le mod vérifie la version et ne lance jamais de migration au démarrage.
|
||||
Une seule application du schéma suffit avant de démarrer les deux applications.
|
||||
Les évolutions futures auront une migration explicite commune.
|
||||
|
||||
Aucun basculement automatique base → fichier lors d'une panne. Les lectures en
|
||||
cache restent signalées comme anciennes ; une écriture n'est confirmée qu'après
|
||||
commit. Les brouillons restent côté client durant la session. Les requêtes SQL
|
||||
s'exécutent hors du thread de jeu, avec délais et file d'attente bornés.
|
||||
Le passage fichier ↔ base nécessite un export/import explicite ; changer le mode
|
||||
ne migre ni ne fusionne les données. La v1 ne fournit pas cet importateur.
|
||||
|
||||
## Enregistrements et concurrence
|
||||
|
||||
Les entrées portent : serveur, UUID, parent éventuel, type, catégorie, UUID et nom
|
||||
d'auteur, titre, corps, état (`open`, `closed`, `hidden`), épingle, révision,
|
||||
date de création et date de modification (millisecondes Unix UTC).
|
||||
Une réponse a un parent article/annonce du même serveur ; pas de réponses imbriquées.
|
||||
Masquer un parent masque également sa discussion dans toutes les lectures.
|
||||
|
||||
Chaque création utilise un UUID d'opération stable. La répétition exacte rend le
|
||||
même résultat ; une réutilisation avec d'autres données est un conflit. Chaque
|
||||
modification exige la révision courante. La transaction verrouille le parent
|
||||
avant de répondre, empêchant la course avec une clôture ou un masquage.
|
||||
Les listes sont paginées (10 entrées), épingles puis date/id décroissants ; les
|
||||
réponses sont ordonnées par date/id croissants. L'intendance montre le bulletin
|
||||
visible le plus récent. Les textes et le nombre de résultats sont bornés.
|
||||
|
||||
## Vérification attendue
|
||||
|
||||
Même scénario sur fichier et vraie MariaDB : publication, réponses, redémarrage,
|
||||
idempotence, conflits, droits, masquage, fermeture et isolation de deux serveurs.
|
||||
Aller-retour Java → PHP → Java sur les mêmes tables. Essais client Vulkan FR/EN,
|
||||
GUI 2/3, mode compact, publication/refus/brouillon et fermeture avant réponse.
|
||||
Tests HTTP du site : identité, CSRF (middleware), validation, permissions,
|
||||
échappement HTML, erreurs, pagination. `./gradlew check build` et `assemblePack`
|
||||
sont consignés avec leurs éventuels échecs hérités.
|
||||
|
||||
## Mise en service
|
||||
|
||||
### Serveur autonome (fichier, défaut)
|
||||
|
||||
Installer le JAR ou le pack beta.154. La première ouverture d’un panneau crée
|
||||
`config/sanctuary-community.json` et son `serverId`. La première publication
|
||||
crée uniquement le fichier communautaire du monde. Aucun service externe requis.
|
||||
Les joueurs utilisent Échap → Gazette/Tableau → Publier, puis Répondre dans
|
||||
une discussion. Le mode fichier n’est pas partagé avec le site Web.
|
||||
|
||||
Conserver le `serverId` et sauvegarder le fichier communautaire avec son monde.
|
||||
Ne pas éditer ce fichier pendant que le serveur tourne. La limite de la v1 est
|
||||
64 Mio par fichier communautaire ; une écriture qui la dépasse est refusée.
|
||||
|
||||
### Même MariaDB pour Minecraft et Laravel
|
||||
|
||||
1. Sauvegarder la base existante. Déployer le code Web puis appliquer sa migration
|
||||
`php artisan migrate --force`. Elle ajoute quatre tables sans modifier les
|
||||
données de jeu. Un schéma déjà installé par `schema-v1.sql` est reconnu.
|
||||
À l’inverse, ne pas rejouer le SQL brut sur des tables déjà créées par Laravel.
|
||||
2. Dans le `.env` du site, garder ses paramètres MariaDB et définir
|
||||
`SANCTUARY_COMMUNITY_SERVER_ID` avec le même UUID que le mod. Recharger
|
||||
la configuration Laravel (`php artisan config:cache` en production).
|
||||
3. Arrêter Minecraft et éditer sa configuration :
|
||||
|
||||
```json
|
||||
{
|
||||
"mode": "database",
|
||||
"serverId": "11111111-1111-4111-8111-111111111111",
|
||||
"jdbcUrl": "jdbc:mariadb://db.example.net:3306/sanctuary?sslMode=verify-full",
|
||||
"user": "sanctuary_game",
|
||||
"passwordEnv": "SANCTUARY_COMMUNITY_DB_PASSWORD"
|
||||
}
|
||||
```
|
||||
|
||||
L’UUID ci-dessus est un exemple : reprendre celui de votre installation.
|
||||
Définir `SANCTUARY_COMMUNITY_DB_PASSWORD` dans l’environnement du service Minecraft,
|
||||
puis le redémarrer. Utiliser un certificat TLS valide pour l’hôte de la base.
|
||||
Le compte de jeu a besoin de SELECT sur `sanctuary_community_schema`, SELECT,
|
||||
INSERT et UPDATE sur `sanctuary_community_entries`, SELECT et INSERT sur
|
||||
`sanctuary_community_identities`, SELECT et DELETE sur `sanctuary_community_links`.
|
||||
Il n’a besoin ni des tables de comptes Web, ni de droits de création de tables.
|
||||
Le compte Laravel conserve ses permissions habituelles et celles des migrations.
|
||||
|
||||
4. Sur le site : se connecter avec Discord, ouvrir Gazette, demander un code de
|
||||
liaison. En jeu : Gazette → Lier mon compte → saisir le code. La liaison
|
||||
exige `online-mode=true`. Recharger le site après confirmation ; les boutons
|
||||
Publier et Répondre deviennent accessibles.
|
||||
5. Modération : opérateur Minecraft ou staff Web autorisé à `users.moderate`,
|
||||
avec compte lié. Les fonctions de lecture seule du staff ne donnent aucun
|
||||
droit de masquage, épinglage ou publication officielle.
|
||||
|
||||
L’accueil du site conserve sa version de téléchargement beta.151 tant que le
|
||||
pack public n’est pas mis à jour. Ce ticket ne publie pas le site, le canal
|
||||
packwiz ou une installation Prism.
|
||||
|
||||
### Synchronisation et limites de la v1
|
||||
|
||||
Le menu pause recharge ses aperçus toutes les 5 secondes. Les pages de lecture
|
||||
ont un bouton Actualiser. Le site charge les publications à chaque navigation.
|
||||
Les brouillons Minecraft restent en mémoire jusqu’à déconnexion ; le site garde
|
||||
ses brouillons dans le stockage local du navigateur, par compte et serveur.
|
||||
Aucune notification poussée ni import automatique d’archives ou de fichier vers
|
||||
MariaDB. Les anciennes publications d’exemple du site étaient du texte statique,
|
||||
pas des données à migrer. Les pièces jointes et la réattribution d’un compte lié
|
||||
restent hors périmètre.
|
||||
|
||||
### Présentation des discussions et visages
|
||||
|
||||
Les réponses se lisent en conversation : visage Minecraft, pseudo et date,
|
||||
texte dans un bloc distinct, actions compactes derrière « ⋯ ». Le formulaire
|
||||
reste sous la discussion. Les listes et les aperçus du menu pause affichent
|
||||
également les visages. En jeu, les profils sont résolus par les widgets natifs
|
||||
Minecraft, avec leur texture de repli tant que le skin n’est pas disponible.
|
||||
Sur le site, le rendu par UUID utilise le prestataire mc-api.io déjà employé
|
||||
par la page de compte ; chargement différé, sans référent, initiale locale en
|
||||
cas d’erreur. Aucune image ni URL arbitraire n’entre dans le contrat des posts.
|
||||
Documentation du rendu : https://mc-api.io/docs (GET `/render/{uuid}?size=64`).
|
||||
|
||||
|
||||
## Évolution v2 (beta.157)
|
||||
|
||||
Le champ photo et sa migration explicite, avec conservation des anciens articles,
|
||||
sont décrits dans [Photos de Gazette](gazette-photos-beta157.md).
|
||||
Pour une nouvelle base partagée avec le site, utiliser les migrations Laravel.
|
||||
Pour une base autonome administrée par SQL, appliquer schema-v1.sql puis
|
||||
schema-v1-to-v2.sql avant de connecter le mod beta.157.
|
||||
|
||||
|
||||
## Évolution v3 — demandes suivies (beta.158)
|
||||
|
||||
Annonce : `task` contient `location` nullable (`dimension`, `x`, `y`, `z`),
|
||||
`materials` et `rewards` (27 objets maximum, `item` namespacé de 100 caractères
|
||||
maximum, `count` de 1 à 999999), `audience` shared/single, `reward` none/items/custom
|
||||
et `customReward` (240 caractères). Les coffres sont descriptifs : échanges
|
||||
et partage des récompenses entre joueurs, sans transaction d'inventaire.
|
||||
|
||||
Les tables `sanctuary_community_followers` et `sanctuary_community_subscribers`
|
||||
portent les abonnements et les verrous par joueur. Maximum 16 abonnements/joueur,
|
||||
64/annonce, un seul en mode single ; pas d'auto-abonnement de l'auteur.
|
||||
Le masquage supprime les abonnements ; la fermeture les conserve mais suspend
|
||||
le suivi actif. Un passage en single est refusé au-delà d'un abonné.
|
||||
|
||||
Arrêter les écritures et sauvegarder avant migration. Installation SQL neuve :
|
||||
schema-v1.sql, schema-v1-to-v2.sql, puis schema-v2-to-v3.sql du mod. Sur le site,
|
||||
`php artisan migrate` applique l'équivalent et reconnaît les tables déjà créées.
|
||||
Le compte JDBC nécessite SELECT/INSERT/DELETE sur followers et SELECT/INSERT
|
||||
sur subscribers, en plus des permissions v2. Aucun DDL automatique par le mod.
|
||||
|
||||
L'intendance se gère dans le panneau admin ; seul son dernier message reste
|
||||
public en en-tête. La liaison de compte se fait avec le code généré sur le site
|
||||
et `/sanctuary community link <code>` en jeu (serveur authentifié requis).
|
||||
Les anciens boutons de liaison et d'historique public de l'intendance disparaissent.
|
||||
|
||||
En mode fichier, le panneau d’intendance en jeu s’ouvre avec
|
||||
`/sanctuary community admin` ; le serveur exige les permissions opérateur.
|
||||
|
||||
## Évolution beta.159 — recherche et lecture de l’intendance
|
||||
|
||||
Le schéma reste **v3** : aucune migration de données. Cette évolution remplace
|
||||
la restriction de lecture publique de beta.158 : les onglets Gazette, Tableau
|
||||
et Serveur permettent de lire leurs historiques. La publication et la gestion
|
||||
de l’intendance restent dans l’administration, sans réponse ni abonnement.
|
||||
|
||||
`list` et `cards` acceptent une recherche facultative dans `Request.body` (120
|
||||
caractères maximum, vide par défaut). Le site utilise le paramètre GET `q`,
|
||||
conservé dans la pagination. Recherche littérale de sous-chaîne dans le nom de
|
||||
l’auteur, le titre **ou** le corps, sans distinction de casse, avant pagination.
|
||||
Les accents restent significatifs et `%` / `_` sont des caractères ordinaires.
|
||||
Le filtre reste limité au serveur et à la rubrique sélectionnés ; les contenus
|
||||
masqués restent exclus. Les épingles gardent leur priorité. Le client attend
|
||||
300 ms après la frappe et ignore les réponses correspondant à un ancien filtre.
|
||||
Les pages restent bornées à 10 publications ; aucune recherche dans les réponses.
|
||||
|
||||
Les dates des publications affichent l’année (UTC). Le menu pause affiche la date
|
||||
complète dans la langue et le fuseau local du joueur. La galerie utilise la
|
||||
surface disponible du GUI, adapte ses colonnes et conserve ses pages de 24
|
||||
captures défilantes. Le clic ouvre un aperçu dans cette surface, en conservant
|
||||
les proportions et les boutons Retour / Assigner. Le formulaire conserve son
|
||||
aperçu compact. Les PNG sources ne sont pas modifiés.
|
||||
|
||||
Les demandes suivies ouvertes qui ont une position affichent un `!` sur la carte
|
||||
de pause et le grand atlas, dans la dimension correspondante. Elles ne révèlent
|
||||
pas le terrain et ne chargent aucun chunk. L’infobulle montre titre, auteur,
|
||||
résumé, coordonnées, matériaux et récompense ; les listes longues sont abrégées
|
||||
pour rester dans le GUI. Le clic ouvre l’annonce. « Voir sur la carte » centre
|
||||
l’atlas sur son lieu dans la dimension courante, sans téléportation. Les repères
|
||||
suivent tous les abonnements, indépendamment des trois suivis visibles dans le
|
||||
HUD ; ils disparaissent au désabonnement, à la clôture ou au masquage. Un
|
||||
rafraîchissement des suivis reste actif lorsque la carte ou la pause est ouverte
|
||||
(période de cinq secondes, différée si une autre requête est en cours).
|
||||
|
||||
Le message réseau `following` ajoute `summary`, extrait littéral du corps limité
|
||||
à 240 caractères Unicode plus une ellipse. Le texte intégral et les photos ne
|
||||
sont pas diffusés dans ce message. Aucun champ persistant supplémentaire.
|
||||
@@ -0,0 +1,81 @@
|
||||
# beta.159 — recherche communautaire et galerie adaptable
|
||||
|
||||
Branche `codex/community-search-gallery-beta159`, socle beta.158.
|
||||
|
||||
## Résultat
|
||||
|
||||
Une barre de recherche filtre les publications par auteur, titre ou texte côté
|
||||
serveur, avant pagination. Le filtre accompagne les pages suivantes, conserve
|
||||
les épingles et se réinitialise en effaçant le champ. Les réponses aux anciennes
|
||||
recherches sont ignorées et le focus de saisie est conservé.
|
||||
|
||||
Les trois onglets Gazette / Tableau / Serveur donnent accès aux publications de
|
||||
chaque rubrique. L’en-tête d’intendance de la pause ouvre aussi son historique.
|
||||
La lecture est publique ; la publication et la gestion des messages du serveur
|
||||
restent réservées au panneau administrateur, même pour un opérateur visitant
|
||||
l’écran public. Les messages du serveur n’acceptent ni réponses ni abonnements.
|
||||
|
||||
L’année figure dans la date de pause et les métadonnées des publications. La
|
||||
galerie utilise l’espace disponible aux différentes échelles de GUI et tailles
|
||||
de fenêtre. Les captures restent paginées par 24 avec défilement. Cliquer une
|
||||
capture ouvre un grand aperçu avec les commandes de retour et d’assignation.
|
||||
La photo assignée reste compacte dans le formulaire et les brouillons sont
|
||||
conservés lors du retour. Aucune modification des PNG originaux.
|
||||
|
||||
Les annonces suivies géolocalisées portent un « ! » sur les deux cartes.
|
||||
L’infobulle fournit titre, auteur, résumé, coordonnées, matériaux et récompense
|
||||
sans ouvrir la discussion ; le clic reste disponible. Un bouton dans l’annonce
|
||||
centre le grand atlas sur sa position, dans la dimension courante. Aucune
|
||||
téléportation ni révélation du terrain : seules les coordonnées publiées sont
|
||||
projetées. Les annonces fermées, masquées, sans lieu ou non suivies ne portent
|
||||
pas de repère. Les longues infobulles sont abrégées pour tenir dans le GUI.
|
||||
|
||||
Le site suit le même contrat de recherche et de lecture. Schéma v3 inchangé,
|
||||
aucune migration de sauvegarde ni de base. Libellés français et anglais.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- Stockage fichier et MariaDB : recherche par auteur et corps, casse et accents,
|
||||
filtre avant pagination, épingles conservées, caractères `%` / `_` littéraux,
|
||||
rubrique et serveur isolés, contenus masqués exclus, borne de 120 caractères.
|
||||
- Client natif Minecraft 26.3 / Java 25 / Vulkan : galerie et aperçu en FR/EN,
|
||||
GUI 2/3/4 et fenêtres 1280×960 / 1920×1080 ; retour au brouillon, assignation,
|
||||
publication, listes défilantes et chargement des pages suivantes.
|
||||
- Recherche en jeu au-delà de la première page, filtre par joueur, effacement,
|
||||
conservation du focus et rejet d’une réponse correspondant à l’ancien filtre.
|
||||
- Lecture des messages serveur par un joueur ordinaire, aucun contrôle d’écriture
|
||||
dans les pages publiques, y compris pour l’opérateur ; administration inchangée.
|
||||
- Carte : projection dans la dimension correspondante, titre/auteur/résumé,
|
||||
matériaux et récompense au survol ; ouverture de la demande par clic sur les
|
||||
deux cartes ; retrait immédiat du repère après désabonnement.
|
||||
- Date avec année en FR/EN, GUI 2/3/4, sans chevauchement de l’intendance.
|
||||
- Site : 24 tests / 157 assertions sur SQLite puis MariaDB de développement,
|
||||
formatage Pint réussi. Commit local `e70e78d`, branche `codex/community-search`.
|
||||
|
||||
La commande complète `./gradlew :sanctuary:runClientGameTest check build assemblePack`
|
||||
avec les propriétés client Cards158, QuickTests et Vulkan a exécuté 252 GameTests :
|
||||
229 réussites et les mêmes 23 échecs que beta.158. Aucun test serveur supprimé
|
||||
ou modifié. La comparaison est conservée dans `build/search159-server-failures.json`
|
||||
et le journal dans `build/beta159-check-build.log`.
|
||||
|
||||
Les contrôles restants, la compilation et `assemblePack` passent avec la suite
|
||||
serveur déjà exécutée exclue (`-x :sanctuary:runGameTest`) : 133 tâches, journal
|
||||
`build/beta159-release.log`. Le parcours client final passe en mode MariaDB,
|
||||
puis en mode fichier (`build/beta159-file-client.log`). Les repères ont été
|
||||
vérifiés avec et sans terrain d’atlas débloqué ; les infobulles restent dans la
|
||||
fenêtre aux GUI 2/3/4. Captures représentatives inspectées :
|
||||
`build/search159-file-screens/` et `build/search159-database-screens/`.
|
||||
|
||||
L’export packwiz est vérifié : intégrité ZIP, version beta.159, JAR embarqué
|
||||
identique au JAR de livraison. Les 29 ressources de shaders sont identiques à
|
||||
beta.158, qui conserve le socle beta.151. Les anciens JAR et MRpack beta.154 à
|
||||
beta.158 restent présents. Aucun monde personnel, déploiement de serveur, canal
|
||||
packwiz ou instance Prism n’est modifié.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
|
||||
|
||||
- `mods/sanctuary/build/libs/sanctuary-beta.159.jar` — SHA-256 `c30d57a5f37e0a5c9dbb387ca831ce9e5c15a1dfe4cb55af0af20a376e862576`.
|
||||
|
||||
- `build/Sanctuary-beta.159.mrpack` — SHA-256 `868932d88bc241bfb526a7c5e4054009e247658bd0784b7141d82017edcc2823`.
|
||||
@@ -0,0 +1,114 @@
|
||||
# Diagonales : transitions, dessous et cavités — beta.227
|
||||
|
||||
Retour R045 sur beta.226, 5 octobre 2026. Branche `codex/diagonal-caves-beta227`,
|
||||
base `5fb1407`. Anciennes générations conservées ; nouveaux profils 227 uniquement.
|
||||
|
||||
- NE jardin pâle/marais : transitions d’étangs sans paliers brutaux, relief 3D
|
||||
plus présent à l’intérieur, fragmentation prononcée du pourtour, petites
|
||||
échappées d’eau admises mais pas de rideau d’eau massif.
|
||||
- SO : surface désert/savane appréciée ; retirer de l’épaisseur rocheuse inutile
|
||||
sous le plateau sans refaire sa surface.
|
||||
- SE : mangroves et silhouette validées ; ajouter de grandes régions de lush
|
||||
caves et dripstone caves dans les parties inférieures.
|
||||
- NO : grandes plaines validées ; commencer le grignotage 3D plus près du centre.
|
||||
|
||||
Captures consultées dans le labo 226 : `2026-10-05_21.05.12.png` et
|
||||
`2026-10-05_21.07.21.png`. Elles montrent des fonds d’étangs à transitions nettes.
|
||||
La profondeur binaire et le masque de protection des bassins dans 226 sont
|
||||
remplacés par des transitions continues. La photo seule ne prouve pas un
|
||||
problème de frontière de chunk ; les contrôles ci-dessous portent sur les
|
||||
transitions du champ et la décoration native.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Les champs 225/226 restent figés. 227 s’appuie sur le champ 226 pour conserver
|
||||
la surface méridionale et la forme des récifs de mangrove. Aucun changement
|
||||
de sauvegarde, de génération existante ou de dimension.
|
||||
|
||||
NE : retrait du halo binaire autour des lacs ; profondeur interpolée, relief
|
||||
intérieur continu avant arrondi en blocs, rugosité 3D atténuée près de l’eau.
|
||||
La bordure entière peut être découpée, y compris les anciens abords protégés.
|
||||
L’eau n’est placée que sur les fonds encore présents ; pas de remplissage des
|
||||
grandes failles ouvertes. De petites échappées restent possibles. Il ne s’agit
|
||||
pas d’une simulation d’hydrologie ni d’un réseau de cascades.
|
||||
|
||||
SO : amincissement variable, environ 40 à 64 blocs sous le toit avec irrégularité
|
||||
3D du dessous. Les 24 blocs supérieurs restent sur le champ accepté. Sur les
|
||||
grilles de sondage 0/42, environ 49 à 51 % du volume rocheux échantillonné est
|
||||
retiré ; ce n’est pas un recensement exhaustif de toute l’île.
|
||||
|
||||
SE : densité et biomes de surface 226 conservés. Sous la surface, de larges
|
||||
régions de grottes luxuriantes et à concrétions reçoivent les features natives
|
||||
26.3 (mousse, lianes lumineuses, fleurs sporifères, argile, grandes concrétions,
|
||||
stalactites/stalagmites). Plages de placement adaptées à Y=40–320. Aucune
|
||||
nouvelle lave, forêt d’azalées de surface ou nouvelle distribution de minerais
|
||||
ajoutée par ces deux biomes de cavités. Les volumes existants servent de support,
|
||||
sans nouvelle excavation de la silhouette validée.
|
||||
|
||||
NO : le masque peut maintenant agir jusqu’à 340 blocs de distance interne
|
||||
au bord (contre 180), sans modifier le noyau de plaines restant. Le champ
|
||||
supplémentaire ne fait que retirer de la matière.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Six GameTests ciblés réussis : transitions NE et relief intérieur sur quatre
|
||||
graines, extension des découpes NO et centre conservé, surface SO intacte et
|
||||
volume réduit, champ SE identique et deux vastes biomes souterrains, trois
|
||||
presets publics, ordre des features, déterminisme après recompilation et
|
||||
anciens profils lisibles.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal227 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 4 min 2 s (`build/diagonal227-build.log`).
|
||||
|
||||
Les premiers essais natifs 0/42 valident le NE, les arbres immergés et les
|
||||
décorations des deux types de caves au SE. Ils s’arrêtent sur un contrôle trop
|
||||
étroit des arbres de savane : un seul chunk de chaque biome, tous sans arbre
|
||||
complet. Lecture des chunks FULL sauvegardés : 11 troncs / 70 feuilles sur 0,
|
||||
24 troncs / 214 feuilles sur 42. L’instrumentation élargit désormais la recherche
|
||||
à d’autres chunks de savane, sans changer la production. Helper recompilé et
|
||||
exporté ; nouveaux essais isolés `diagonal227-final0` et `diagonal227-final42`
|
||||
réussis, processus terminés normalement. Les mondes du premier essai restent
|
||||
intacts. Le helper final est recompilé puis exécuté dans ces deux essais ;
|
||||
aucun changement de production après le build complet.
|
||||
|
||||
Les quatre offres réelles, leur coût, le refus d’un double paiement, la reprise
|
||||
après interruption et les quatre relais utilisables sont vérifiés sur chaque
|
||||
graine. Chaque activation prépare 49 chunks FULL. Les arbres natifs sont
|
||||
présents dans les quatre expansions ; 3 et 7 troncs enracinés dans les marais
|
||||
peu profonds ont été observés. Les sondages des cavités SE trouvent respectivement
|
||||
120/171 blocs de décoration lush et 34/30 de pointed dripstone. Ces comptages
|
||||
prouvent la décoration native dans les chunks examinés, pas sa densité globale.
|
||||
Les cannes à sucre de l’île principale restent présentes : 42 pieds sur 0,
|
||||
94 sur 42. Rapports ignorés sous `build/worldgen-lab/diagonal227-final{0,42}`.
|
||||
|
||||
## Distribution et visite
|
||||
|
||||
MRpack normal : `build/Sanctuary-beta.227.mrpack`, copie dans Downloads.
|
||||
Minecraft 26.3, Fabric Loader 0.19.5. Archive contrôlée, JAR conforme au build,
|
||||
trois tailles présentes, aucun module Test ni monde inclus. Les 398 ressources
|
||||
historiques de worldgen comparées sont identiques à 226 ; seul l’alias public
|
||||
Sanctuary pointe désormais vers les nouveaux profils.
|
||||
|
||||
- SHA-256 MRpack : `5ffa88d0a8d30b17276bda0e644e3406dd2a2bdc7727a27e546320a502adf547`.
|
||||
- SHA-256 JAR : `e759515e49cd254f41e9ab786478cba02613c560534f77d89b820f69ae384dee`.
|
||||
|
||||
Nouvelle visite isolée `diagonal227-final-visit`, monde
|
||||
`Sanctuary-Diagonal-227-0` : copie du nouveau monde de vérification arrêté,
|
||||
graine 0, île principale Petit, quatre expansions de 1024 prêtes, créatif avec
|
||||
commandes, distance 32 chunks et simulation 5. Départ au-dessus du relais NE.
|
||||
Ouverture confirmée le 5 octobre à 21:33:59 : `DIAGONAL227_VISIT_OPEN`,
|
||||
position `848, 384, -496`, backend Vulkan confirmé dans
|
||||
`build/diagonal227-solo.log`. Aucune validation OpenGL.
|
||||
|
||||
| Région | Relais X, Y, Z sur la graine 0 |
|
||||
| --- | --- |
|
||||
| NE jardin pâle/marais | 848, 336, -496 |
|
||||
| SE mangroves/cavités | 560, 377, 816 |
|
||||
| SO savane/désert | -832, 217, 512 |
|
||||
| NO plaines/taïga | -608, 238, -768 |
|
||||
|
||||
Le rendu reste à apprécier par le joueur, notamment les berges très découpées
|
||||
et l’étendue visible des cavités. Pas de visite complète Moyen/Grand, de mesure
|
||||
de fluidité ni d’essai Windows revendiqués. Aucun ancien monde modifié, aucun
|
||||
canal packwiz avancé et aucune installation Prism synchronisée.
|
||||
@@ -0,0 +1,100 @@
|
||||
# Diagonales climatiques et cannes à sucre — beta.225
|
||||
|
||||
## Contrat
|
||||
|
||||
Demande du 5 octobre 2026 : cannes à sucre près de l’eau de Sanctuary Island,
|
||||
puis quatre expansions diagonales de **1024 blocs** (512 remplacé pendant
|
||||
le chantier à la demande du joueur). Nord froid, Sud chaud,
|
||||
Est humide, Ouest sec. Branche `codex/diagonal-islands-beta225`, base `1388d8a`.
|
||||
|
||||
- Nord-Est : marais frais, jardin pâle, forêt sombre et taïga.
|
||||
- Nord-Ouest : meadow, prairies, taïga et bosquets froids.
|
||||
- Sud-Est : mangroves, jungle et bambou.
|
||||
- Sud-Ouest : désert, savane et prairies sèches.
|
||||
|
||||
Première variante : surfaces étendues, collines, dessous flottant irrégulier,
|
||||
zones humides fermées dans les dépressions du terrain. Végétation et faune
|
||||
des biomes natifs 26.3. Relais de continuation conservé. Les quatre cardinales
|
||||
restent en 1024 avec leur génération validée. Pas de nouvelle structure ici.
|
||||
|
||||
Nouveaux profils 225 seulement, dans les trois tailles Sanctuary. Les profils
|
||||
224 et antérieurs gardent leurs règles et leurs tailles d’expansion. Aucune migration ou régénération de sauvegarde.
|
||||
Les essais utilisent uniquement des mondes neufs de développement (42 et 0).
|
||||
Le message SGA et l’aide de visite réservée aux opérateurs sont conservés.
|
||||
|
||||
## Implémentation
|
||||
|
||||
Champ de relief déterministe, collines à grande échelle, bordure irrégulière et
|
||||
bruit 3D dans le dessous. Épaisseur variable, de neuf blocs sur les extrémités
|
||||
à 68 blocs à l’intérieur. Les dépressions humides ont un niveau commun Y=204,
|
||||
un fond protégé et une couronne de terrain ferme ; aucune simulation
|
||||
hydrologique supplémentaire. La sélection des biomes est continue dans les
|
||||
coordonnées du monde et utilise les végétations natives 26.3.
|
||||
|
||||
Les offres des ancres diagonales demandent un diamètre 1024 et conservent
|
||||
l’éventail de placement existant. Préparation limitée à 49 chunks autour du
|
||||
relais ; le reste se génère à l’exploration. Relais simple de continuation pour
|
||||
cette première variante. Les monuments régionaux des cardinales sont conservés.
|
||||
|
||||
Les cannes réutilisent le plan des berges de surface, après leur aménagement.
|
||||
Groupes de deux ou trois blocs, sur sol accepté par Minecraft et à côté d’une
|
||||
eau réellement présente. Écriture limitée au chunk décoré, sans dépendre de
|
||||
l’ordre de décoration des chunks voisins. Aucun nouveau bassin créé.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Six GameTests ciblés (`base204,diagonal225`) réussis : trois tailles publiques
|
||||
sans Test, lecture des anciens profils, biomes et étanchéité sur quatre graines,
|
||||
reproductibilité aux limites des chunks, éventail directionnel et absence de
|
||||
collision, conservation des matériaux du volcan, règles de survie des cannes.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal225 -PsanctuaryAtlasOnly=true`
|
||||
réussit en 3 min 57 s. Log : `build/diagonal225-build.log`.
|
||||
|
||||
L’essai natif 42 passe les quatre offres, le paiement, l’interruption/reprise,
|
||||
les relais et la végétation des quatre directions. 94 pieds de canne observés
|
||||
sur les berges de l’île principale. Le premier essai 0 a révélé une erreur
|
||||
**du contrôle** : son premier échantillon de mangrove était sur la berge sèche,
|
||||
ce qui ne prouvait rien sur l’eau de la dépression. Le contrôle cherche désormais
|
||||
une colonne réellement immergée et vérifie son fluide natif. Le nouvel essai 0 passe aussi les quatre activations et les contrôles natifs ;
|
||||
43 pieds de canne observés. La correction ne touche que l’instrumentation du
|
||||
module Test, recompilée et réassemblée ensuite ; le terrain livré est identique.
|
||||
|
||||
| Graine | Nord-Est X/Z | Sud-Est X/Z | Sud-Ouest X/Z | Nord-Ouest X/Z | Cannes |
|
||||
| --- | --- | --- | --- | --- | --- |
|
||||
| 42 | 544 / -816 | 816 / 544 | -816 / 512 | -704 / -736 | 94 |
|
||||
| 0 | 848 / -496 | 560 / 816 | -832 / 512 | -608 / -768 | 43 |
|
||||
|
||||
Les huit expansions mesurent 1024 blocs et passent chacune par 49 chunks FULL
|
||||
préparés. Présence de bois/feuilles natifs dans les quatre directions, mangroves
|
||||
et bambou à l’Est, cactus dans le désert à l’Ouest. Ces relevés sont locaux,
|
||||
pas un inventaire exhaustif de chaque île. Reçus ignorés :
|
||||
`build/worldgen-lab/diagonal225-check42/small/42/{cold,warm}.json` et
|
||||
`build/worldgen-lab/diagonal225-wet-check0/small/0/{cold,warm}.json`.
|
||||
|
||||
## Distribution et limites
|
||||
|
||||
MRpack standard vérifié : archive intègre, JAR exact, dépendances 26.3/Loader
|
||||
0.19.5, trois tailles 225 et 382 ressources historiques de génération identiques
|
||||
à beta.224 (sauf alias public du preset). Aucun monde ni module Test inclus.
|
||||
SHA-256 : `b178c15d8a40a1627134c64b343d13d508f9e7c95f85d43a1a88c8769d8e8c0c`.
|
||||
|
||||
Le rendu reste à apprécier en jeu. Pas de campagne graphique ou Windows,
|
||||
ni de nouvelle exploration complète Medium/Large. Pas de changement du canal
|
||||
packwiz ni de l’installation Prism personnelle. Les mondes de contrôle restent
|
||||
dans les dossiers de développement ignorés.
|
||||
|
||||
|
||||
## Visite du 5 octobre 2026
|
||||
|
||||
À la demande du joueur, nouveau solo `Sanctuary-Diagonal-225-0`, graine 0,
|
||||
copie du serveur de contrôle arrêté. Les quatre diagonales sont déjà prêtes ;
|
||||
départ au Nord-Est en 848 / 254 / -496. Vulkan, rendu 32 chunks, simulation 5,
|
||||
créatif/vol et commandes autorisées. Le client confirme `DIAGONAL225_VISIT_OPEN`.
|
||||
|
||||
Ajout du nom Diagonal-225 à la liste du lanceur de visites et à son aide client
|
||||
optionnelle, compilée avec `:sanctuary-test:exportDuoLaunch`. L’identité des
|
||||
sources du contrôle a été vérifiée avant ce seul changement de lanceur ;
|
||||
génération et ressources de production identiques. Les anciens mondes et le
|
||||
MRpack beta.225 livré restent inchangés. La visite est une copie neuve isolée.
|
||||
@@ -0,0 +1,64 @@
|
||||
# Jardins pâles bas et roche jaune — beta.230
|
||||
|
||||
Retour R048 sur beta.229, 5 octobre 2026. Base `55df522`, branche
|
||||
`codex/lower-groves-beta230`. Nouveaux profils uniquement, aucune migration
|
||||
ou régénération des anciennes cartes.
|
||||
|
||||
NE : garder le relief validé et étendre les chênes pâles aux terrasses situées
|
||||
sous le niveau du plateau, y compris à ciel ouvert. Dripstone dans les parties
|
||||
inférieures ; marais et lucioles restent sur le plateau. Eau toujours
|
||||
facultative et conditionnée à une cuvette naturellement fermée.
|
||||
|
||||
SO : mêler la roche jaune existante à la pierre normale en masses continues,
|
||||
en conservant les minerais natifs et les cavités soufre/dripstone.
|
||||
SE mangroves et NO plaines validés par le joueur, champs de relief conservés.
|
||||
|
||||
Le seuil inférieur suit le plafond ondulé du terrain savane (Y=230 ± 18),
|
||||
avec une bande supérieure de 12 blocs laissée au marais. Il ne suit plus le
|
||||
sommet local de chaque colonne : une terrasse basse ouverte est désormais un
|
||||
sol de jardin pâle. Même support 2 × 2 et même dégagement pour les arbres.
|
||||
Les formations natives de dripstone sont ajoutées au biome pâle inférieur.
|
||||
Les buissons à lucioles restent exclusivement au-dessus de ce seuil.
|
||||
|
||||
La roche jaune est répartie par un bruit volumique lent, sans changer la
|
||||
forme de la savane. La substitution après décoration ne vise que Stone ;
|
||||
elle conserve les blocs de minerai, leur voisinage immédiat dans le chunk,
|
||||
les autres roches, le soufre et le cinabre. Aucune variante de minerai jaune
|
||||
ajoutée et aucun changement des tags minéraux globaux.
|
||||
|
||||
Neuf GameTests ciblés réussis : reliefs conservés, séparation des habitats,
|
||||
terrasses ouvertes et sols abrités, cuvettes fermées, cavités sèches SO,
|
||||
substitution réelle de pierre avec conservation des minerais, presets et
|
||||
ordre des features. Les grilles 0/42 trouvent 274/285 sites de chêne pâle,
|
||||
dont 216/245 ouverts ; ces chiffres ne sont pas un inventaire de l’île.
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal230 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 2 min 38 s. Contrôles natifs réussis sur 0/42 : quatre activations réelles, paiements et
|
||||
refus des doubles offres, interruption/reprise, 49 chunks FULL par expansion,
|
||||
relais utilisables. Les nouveaux mondes de contrôle sont arrêtés normalement.
|
||||
|
||||
Au NE, dans les chunks sondés : 38/32 blocs de tronc pâle, quatre colonnes
|
||||
de racine à ciel ouvert sur chaque graine (un tronc de 2 × 2), 103/76 blocs
|
||||
de pointed dripstone et 7/1 buissons à lucioles supérieurs. Au SO : les deux
|
||||
roches sont présentes (462/1711 blocs jaunes et 7180/2707 Stone dans les
|
||||
échantillons), avec pics de soufre et dripstone. Ces comptes attestent la
|
||||
présence, sans mesurer la proportion globale sur chaque île.
|
||||
Rendu à apprécier en jeu.
|
||||
|
||||
MRpack normal vérifié, copie dans Downloads : Minecraft 26.3 / Fabric Loader
|
||||
0.19.5, trois tailles, JAR identique au build, aucun module Test ni monde.
|
||||
Les 432 ressources historiques de worldgen comparées à 229 sont identiques.
|
||||
SHA-256 pack : `b080b17d7e54427d3a6b89da2b009637e99a648752ba49068a274fa35499f8e4`.
|
||||
SHA-256 JAR : `c72cc0afea27e7d71c73d6f4edc4f874bc5fb665288eba243d7faafcba5e3276`.
|
||||
Reçu : `build/diagonal230-mrpack-receipt.json`.
|
||||
|
||||
Aucune publication de canal ni synchronisation Prism, aucune validation
|
||||
Windows ou mesure de fluidité.
|
||||
|
||||
|
||||
Nouvelle visite isolée `diagonal230-visit`, monde `Sanctuary-Diagonal-230-0`,
|
||||
copiée depuis le contrôle graine 0 arrêté. Île principale Petit et quatre
|
||||
expansions 1024 prêtes. Créatif avec commandes, 32 chunks, simulation 5 ;
|
||||
départ au relais NE (856, 273, -496). Ouverture Vulkan confirmée à 22:45:00
|
||||
le 5 octobre 2026, `DIAGONAL230_VISIT_OPEN` dans `build/diagonal230-solo.log`.
|
||||
Le rendu reste à apprécier par le joueur ; anciennes visites conservées.
|
||||
@@ -0,0 +1,110 @@
|
||||
# Reliefs distincts des diagonales — beta.226
|
||||
|
||||
Retour du 5 octobre 2026 sur beta.225. Biomes appréciés, silhouettes refusées :
|
||||
grands plateaux identiques, bords tranchés. Branche `codex/diagonal-relief-beta226`,
|
||||
base `e2b9ee7` et conservation des ajustements locaux du lanceur de visite 225.
|
||||
|
||||
- Nord-Est : garder les bassins, davantage de hauts reliefs émergés sans excaver
|
||||
leur intérieur ; marais moins profonds, arbres plus fréquents dans l’eau,
|
||||
quelques grands lacs conservés.
|
||||
- Nord-Ouest : grandes plaines et végétation validées ; bords rongés fortement
|
||||
en 3D, effet qui diminue en allant vers le centre, centre préservé.
|
||||
- Sud-Ouest : remplacer la base par un terrain flottant 3D natif, grandes
|
||||
surfaces de sable et roche, plateaux de savane, léger rehaussement local.
|
||||
- Sud-Est : relief très fragmenté, hauts et bas, récifs verticaux, davantage
|
||||
de mangroves ; boue, argile et calcite. Abandon de l’ambiance plate.
|
||||
|
||||
Diamètre 1024, Est humide/Ouest sec. Nouveaux profils 226 seulement. Île
|
||||
principale, cannes à sucre et quatre cardinales conservées. Pas de migration
|
||||
des mondes 225 ou antérieurs ; nouvelles visites isolées pour les essais.
|
||||
|
||||
## Réalisation
|
||||
|
||||
La révision 225 reste figée. Trois nouveaux profils 226 réutilisent exactement
|
||||
la génération de Sanctuary Island ; seules les diagonales passent au nouveau
|
||||
champ. Les anciennes ressources et leurs identifiants restent lisibles.
|
||||
|
||||
Le Nord-Ouest réemploie les colonnes et matériaux 225 à plus de 180 blocs de
|
||||
la bordure. À l’extérieur, deux échelles de bruit volumique découpent le bord
|
||||
et le dessous ; un masque continu réduit l’effet en approchant du centre.
|
||||
Le Nord-Est conserve les dépressions et leur enveloppe étanche, garde une
|
||||
partie des lacs profonds et relève les autres fonds à une ou deux couches
|
||||
d’eau. Des reliefs émergés ajoutés en 3D restent à distance des bassins. Les
|
||||
chênes de marais natifs reçoivent davantage de tentatives de plantation.
|
||||
|
||||
Le Sud-Ouest repart du champ flottant `PopulationIslandDensity`, sans le
|
||||
plateau commun 225, avec une limite haute légèrement ondulée pour les savanes.
|
||||
Le Sud-Est étire verticalement ce champ, ajoute des fractures et des récifs
|
||||
volumiques, et favorise les mangroves natives. Les différentes corniches
|
||||
exposées reçoivent du sol, pas seulement le sommet de la colonne ; les veines
|
||||
cohérentes de calcite et d’argile traversent la roche. Le sable repose sur une
|
||||
base solide. Les biomes de végétation natifs restent ordonnés et compatibles.
|
||||
|
||||
Les bassins 225 conservés concernent le Nord-Est. Le Sud-Est abandonne ses
|
||||
anciens bassins plats ; ses mangroves poussent sur les corniches de boue.
|
||||
|
||||
La préparation d’une expansion reste limitée à 49 chunks autour du relais.
|
||||
Pas de passe d’hydrologie ou de simulation supplémentaire, ni de nouvelle
|
||||
structure. Relais cherché sur un support réel ; le petit socle 3 × 3 existant est conservé,
|
||||
sans grande terrasse artificielle.
|
||||
|
||||
## Contrôles
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal226 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 2 min 42 s (`build/diagonal226-build.log`). Six GameTests : trois profils
|
||||
publics et historiques, conservation du centre NO, bords rongés, bassins NE
|
||||
étanches et moins profonds sur quatre graines (0, 42, 2026, -9137), volumes
|
||||
natifs méridionaux, part des mangroves, déterminisme après recompilation,
|
||||
relais supportés, ordre des features et routage des cardinales validées.
|
||||
|
||||
Sur la grille de contrôle des deux graines 0/42, le NO perd plus de la moitié
|
||||
de ses colonnes de bord à leur ancienne hauteur, avec un centre strictement
|
||||
conservé. Le NE conserve des lacs profonds et 56 à 84 % de colonnes humides
|
||||
peu profondes sur les quatre graines. Les reliefs ajoutés dépassent localement
|
||||
85 blocs. Au SE, la mangrove couvre 67 à 73 % des colonnes émergées échantillonnées
|
||||
sur les graines de champ 0/42 ; les surfaces vont localement de Y=63 à Y=439.
|
||||
Ce sont des sondages de champs, pas des mesures exhaustives des mondes.
|
||||
|
||||
Deux mondes natifs neufs, graines **0 et 42**, passent les quatre offres réelles,
|
||||
le refus des paiements incorrects et doubles offres, l’interruption après
|
||||
réservation, la reprise, les relais utilisables et la décoration native.
|
||||
Chaque préparation reste à 49 chunks FULL. Trois troncs natifs enracinés
|
||||
sous le niveau de l’eau ont été constatés dans le marais de chaque monde
|
||||
(arrêt du contrôle dès trois arbres). Bois et feuilles présents sur les quatre
|
||||
îles, mangroves sur les corniches SE. Cannes de l’île principale : 42 pieds
|
||||
sur 0, 94 sur 42. Les relevés de plantes portent sur quelques chunks par biome ;
|
||||
un échantillon désert sans cactus ne constitue pas un inventaire de l’île.
|
||||
|
||||
Reçus ignorés :
|
||||
`build/worldgen-lab/diagonal226-check0/small/0/{cold,warm}.json` et
|
||||
`build/worldgen-lab/diagonal226-check42/small/42/{cold,warm}.json`.
|
||||
|
||||
## Distribution
|
||||
|
||||
MRpack standard beta.226 dans `build/` et `~/Downloads/`, contrôlé après
|
||||
assemblage : archive intègre, JAR construit exact, Minecraft 26.3 / Loader
|
||||
0.19.5, trois nouveaux profils et 388 ressources historiques de génération
|
||||
identiques à beta.225 (hors alias public). Aucun monde ou module Test inclus.
|
||||
SHA-256 : `c1ce5fc71a3e0417194d591d1ddd04b00dcef46565dfdb34ccd7ee2a01217e02`.
|
||||
|
||||
Pas de publication du canal packwiz, de push ou de modification de Prism.
|
||||
Les mondes existants restent sur leur révision. Rendu à apprécier par le joueur ;
|
||||
pas de campagne de screenshots, de validation Windows ou d’exploration complète
|
||||
Medium/Large. Les contrôles des trois tailles vérifient leurs registres et presets.
|
||||
|
||||
## Visite
|
||||
|
||||
Copie isolée du serveur 0 arrêté dans
|
||||
`build/worldgen-lab/diagonal226-visit/small/0/client/saves/Sanctuary-Diagonal-226-0`.
|
||||
Créatif, vol et commandes autorisés ; 32 chunks de rendu, simulation 5,
|
||||
mémoire 4 Gio. Départ NE à 848 / 270 / -496. Vulkan confirmé ; `DIAGONAL226_VISIT_OPEN` le 5 octobre à 20:32:59.
|
||||
Le joueur passe en Spectateur à 20:33:04.
|
||||
|
||||
Points d’observation libres, téléportation possible :
|
||||
|
||||
- NE : `/tp @s 848 270 -496`
|
||||
- SE : `/tp @s 560 425 816`
|
||||
- SO : `/tp @s -832 265 512`
|
||||
- NO : `/tp @s -608 286 -768`
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
# Diagonales : abaisser et ciseler — beta.228
|
||||
|
||||
Retour R046 sur beta.227, 5 octobre 2026. Base `70a34df`, branche
|
||||
`codex/diagonal-shaping-beta228`. Nouveaux profils uniquement.
|
||||
|
||||
Le jardin pâle monte trop haut entre les étangs. Conserver son pourtour 3D,
|
||||
abaisser fortement le relief et rendre les lacs lisibles. Les mangroves et
|
||||
leurs cavités conviennent, mais leurs volumes demandent des arêtes moins
|
||||
rondes. Même finition sur les bordures des plaines NO, plateau général
|
||||
conservé. L’épaisseur et la surface désert/savane SO sont validées et figées.
|
||||
|
||||
Captures consultées dans le labo 227 : `2026-10-05_21.36.56.png` et
|
||||
`2026-10-05_21.40.07.png` ; grandes buttes NE et découpe arrondie NO visibles.
|
||||
|
||||
## Réalisation
|
||||
|
||||
NE : comprimer les hauteurs émergées, réduire la surélévation et l’annuler sur
|
||||
les fonds aquatiques. SE/NO : fractures Voronoi à largeur modulée par du bruit
|
||||
3D ; calcul cellulaire mis en cache par colonne. Le noyau de plaines NO et le
|
||||
champ SO restent ceux de 227. Réutiliser les deux biomes de cavités 227 au SE.
|
||||
|
||||
La partie émergée du NE est comprimée à 55 % de sa hauteur au-dessus de l’eau.
|
||||
Les deux surélévations passent de 120 + 100 à 12 + 8 blocs, avec une transition
|
||||
continue qui les annule sur les fonds aquatiques. Le masque 3D du bord reste
|
||||
celui de 227. L’eau garde son niveau Y=204, sans nouvelle simulation hydrologique.
|
||||
|
||||
Le Voronoi SE/NO fournit la distance aux faces des cellules ; deux bruits 3D
|
||||
modulent la largeur des fractures à différentes échelles. Le calcul cellulaire
|
||||
est réutilisé sur la colonne entière. Au NO, l’action supplémentaire cesse
|
||||
à 280 blocs de distance interne au bord : le centre est exactement celui de
|
||||
227. Au SE, seules des découpes sont ajoutées ; les cavités existantes ne sont
|
||||
pas remplies. Les nouveaux rebords reçoivent les matériaux du terrain 226.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Sept GameTests ciblés réussis (`build/diagonal228-tests.log`). Sur les grilles
|
||||
NE de quatre graines, dont les deux graines d’expansion réellement visitées :
|
||||
sommets entre Y=228 et 237, baisse moyenne intérieure de 30 à 39 blocs,
|
||||
2,4 à 2,6 fois plus de colonnes en eau qu’en 227. Plus de 95 % des anciens fonds
|
||||
aquatiques 225 du centre sont de nouveau en eau. Ce sont des échantillons,
|
||||
pas une mesure exhaustive de la superficie des lacs.
|
||||
|
||||
Sur 0/42, environ 8–10 % de matière en moins au NO et 22 % au SE dans les
|
||||
grilles sondées ; centre NO conservé, deux biomes de caves présents, relais
|
||||
sur support, surfaces de mangrove préservées comme habitats. Le champ de
|
||||
densité et les matériaux SO sont identiques à 227 sur les échantillons.
|
||||
Déterminisme, trois presets publics et anciens identifiants contrôlés.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal228 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 2 min 43 s (`build/diagonal228-build.log`), avec les sept GameTests.
|
||||
|
||||
Contrôles natifs réussis sur deux nouveaux mondes isolés, graines 0/42 :
|
||||
`diagonal228-check0` et `diagonal228-check42`. Paiements et refus des doubles
|
||||
offres, interruption/reprise, quatre expansions de 1024, 49 chunks FULL par
|
||||
activation et relais utilisables vérifiés. Les sondages trouvent des arbres
|
||||
dans chaque région, ainsi que des troncs enracinés dans l’eau au NE (3/7).
|
||||
Au SE, présence native des décorations lush (389/114 blocs échantillonnés) et
|
||||
pointed dripstone (38/76). Ces comptages ne mesurent pas leur abondance globale.
|
||||
Les deux processus se terminent normalement. Aucun ancien monde modifié.
|
||||
|
||||
## Artefact local
|
||||
|
||||
MRpack normal `build/Sanctuary-beta.228.mrpack`, copié dans Downloads.
|
||||
Archive et JAR vérifiés, Minecraft 26.3 / Fabric Loader 0.19.5, trois tailles,
|
||||
aucun module Test ni sauvegarde dans le pack. Les 415 ressources historiques
|
||||
de worldgen comparées à 227 sont identiques ; seul l’alias public est avancé.
|
||||
|
||||
- SHA-256 MRpack : `5e808121a2b1e3e358c58a2bb4616592521a4bd54cb18fe25c3ab68b05a4ee9d`.
|
||||
- SHA-256 JAR : `4a62259e1d941079de44237ed3a342a5a5e7fbe443fce07826fda76be2dd2a58`.
|
||||
|
||||
Nouvelle visite `diagonal228-visit`, monde `Sanctuary-Diagonal-228-0`, copiée
|
||||
depuis le nouveau monde de contrôle arrêté. Graine 0, île principale Petit,
|
||||
quatre expansions de 1024 prêtes, créatif avec commandes, 32 chunks et simulation
|
||||
5. Ouverture Vulkan confirmée le 5 octobre à 21:54:28 dans
|
||||
`build/diagonal228-solo.log` : `DIAGONAL228_VISIT_OPEN`, position 848, 267, -496.
|
||||
|
||||
| Région | Relais X, Y, Z sur la graine 0 |
|
||||
| --- | --- |
|
||||
| NE jardin pâle/marais | 848, 219, -496 |
|
||||
| SE mangroves/cavités | 560, 377, 816 |
|
||||
| SO savane/désert | -832, 217, 512 |
|
||||
| NO plaines/taïga | -608, 238, -768 |
|
||||
|
||||
Le rendu reste à apprécier par le joueur. Ces essais ne constituent pas une
|
||||
mesure de fluidité ni une visite exhaustive des tailles Moyen/Grand. Aucun
|
||||
essai Windows, aucune modification d’un ancien monde, aucune publication de
|
||||
canal packwiz ou synchronisation Prism dans ce chantier.
|
||||
@@ -0,0 +1,76 @@
|
||||
# Sous-bois pâles et visite des neuf îles — beta.231
|
||||
|
||||
Retours R049–R050 du 5 octobre 2026. Base `42e42fe`, branche
|
||||
`codex/pale-understory-beta231`. Correctif livré ; nouvelle visite ouverte.
|
||||
|
||||
Compléter les sols inférieurs du jardin pâle : herbes, fleurs natives
|
||||
(eyeblossoms), tapis et mousse suspendue sous les feuillages. Conserver les
|
||||
formes, arbres, dripstones, marais supérieurs et géologie de savane validés.
|
||||
L’eau reste facultative, seulement dans les cuvettes naturelles existantes.
|
||||
Nouvelle révision de génération, sans modifier les anciens profils ou mondes.
|
||||
|
||||
Préparer une nouvelle visite isolée sur la graine 0 : Sanctuary Island Grand
|
||||
(1024 blocs), huit expansions de 1024, toutes activées. Le joueur a choisi ensuite une ouverture immédiate,
|
||||
avec chargement des zones restantes pendant l’exploration. Créatif, commandes, Vulkan, distance 32 chunks. Aucun changement
|
||||
à la génération normale du rythme d’ouverture des expansions. Pas de
|
||||
publication de canal, ni modification de l’instance Prism personnelle.
|
||||
|
||||
Le correctif réutilise exactement le champ de terrain 230 et ses biomes.
|
||||
Une décoration supplémentaire parcourt les sols inférieurs réels du NE,
|
||||
à ciel ouvert ou abrités : herbe courte/haute, tapis de mousse pâle et fleurs
|
||||
fermées natives, avec leur transition jour/nuit. Petits rideaux de mousse
|
||||
sous le feuillage pâle. Les regroupements suivent des bruits lents ; aucune
|
||||
plante ne remplace eau, roche, tronc, dripstone ou végétation existante.
|
||||
|
||||
Cinq GameTests passent, dont support réel des plantes, double hauteur,
|
||||
protection des obstacles et conservation du champ accepté sur 0/42.
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal231 -PsanctuaryAtlasOnly=true` passe
|
||||
en 2 min 34 s. MRpack normal vérifié (Minecraft 26.3 / Loader 0.19.5), trois
|
||||
tailles, JAR exact, sans Test ni monde ; 439 ressources historiques identiques.
|
||||
SHA-256 pack : `3a9763cb81e088a0beeb4e4044dd35586a590c75f6c2f9a035937c8df4dee14c`.
|
||||
SHA-256 JAR : `8ba7b19428094e01ac9f3b6b3f8054343bc7a3df60f786260f01b487ee2f675a`.
|
||||
Copie `Downloads/Sanctuary-beta.231.mrpack`, reçu
|
||||
`build/diagonal231-mrpack-receipt.json`.
|
||||
|
||||
La préparation complète est explicite :
|
||||
`python3 scripts/worldgen_lab.py verify --run archipelago231-check0 --profile large
|
||||
--seed 0 --checks diagonal231 --all-islands --memory 2048`.
|
||||
Elle utilise les paiements natifs, conserve l’interruption/reprise du premier
|
||||
relais, puis charge les neuf emprises avec une limite de quatre chunks en
|
||||
cours. Chaque chunk doit atteindre FULL, tickets libérés au fur et à mesure.
|
||||
Rapport final et arrêt propre requis avant de copier la nouvelle visite.
|
||||
Sur la graine 0 en Grand, les quatre contrôles natifs des diagonales passent :
|
||||
NE, dans un chunk inférieur sondé, 75 blocs d’herbe, 24 fleurs, 37 tapis,
|
||||
8 mousses suspendues, 44 troncs pâles, 105 dripstones et 5 lucioles supérieures.
|
||||
Ces nombres attestent leur présence ; ils ne mesurent pas toute l’île.
|
||||
Savane : 7731 blocs jaunes et 101 de pierre dans les échantillons ; cavités
|
||||
soufre/dripstone présentes. Mangroves et plaines conservent leurs habitats.
|
||||
|
||||
Les huit activations réelles aboutissent, relais présents, journal relu :
|
||||
neuf îles de diamètre 1024 en état `ready`, génération 231, graine racine 0.
|
||||
La prégénération intégrale visait 41 458 chunks ; le joueur choisit de lancer
|
||||
le solo immédiatement. Arrêt demandé à 23:06:09, sauvegarde normale achevée,
|
||||
dernier jalon 256/41 458 (en plus des zones d’arrivée et échantillons).
|
||||
Ce contrôle interrompu volontairement n’est **pas** une prégénération complète
|
||||
réussie ; les zones restantes se chargent pendant l’exploration.
|
||||
Reçu : `build/worldgen-lab/archipelago231-check0/large/0/visit-readiness.json`.
|
||||
Anciennes visites conservées, aucune validation Windows ou mesure de fluidité.
|
||||
|
||||
|
||||
Visite `archipelago231-visit/large/0`, monde `Sanctuary-Diagonal-231-0`,
|
||||
créée depuis le serveur arrêté et ouverte à 23:07:33 le 5 octobre 2026.
|
||||
Vulkan confirmé, marqueur `DIAGONAL231_VISIT_OPEN`, départ (0, 320, 0),
|
||||
créatif/vol/commandes, rendu 32 chunks, simulation 5. Les données du labo
|
||||
restent dans `build/` ignoré. Aucun ancien monde modifié.
|
||||
|
||||
| Île | Centre X/Z | Commande de visite |
|
||||
| --- | --- | --- |
|
||||
| Nord | 32 / -1984 | `/sanctuary expansion visit r2yyuk27a85c8p` |
|
||||
| Nord-Est | 736 / -960 | `/sanctuary expansion visit r7vapqz7anv7c` |
|
||||
| Est | 1776 / -208 | `/sanctuary expansion visit r2zwcc9ktr14ds` |
|
||||
| Sud-Est | 960 / 736 | `/sanctuary expansion visit r3bswui5wc00kk` |
|
||||
| Sud | 0 / 1536 | `/sanctuary expansion visit r391kr4y3lwlzy` |
|
||||
| Sud-Ouest | -960 / 736 | `/sanctuary expansion visit rclt83rncgsv1` |
|
||||
| Ouest | -1792 / -192 | `/sanctuary expansion visit r3r7b6q184g2a1` |
|
||||
| Nord-Ouest | -736 / -960 | `/sanctuary expansion visit r81ebztggj346` |
|
||||
@@ -0,0 +1,97 @@
|
||||
# Marais étagé et cavités sèches — beta.229
|
||||
|
||||
Retour R047 sur beta.228, 5 octobre 2026. Base `b77d71b`, branche
|
||||
`codex/wetland-reset-beta229`. Nouveaux profils uniquement ; aucun ancien
|
||||
monde, chunk ou identifiant de génération migré.
|
||||
|
||||
## Contrat
|
||||
|
||||
Refaire entièrement le NE : même géométrie que la savane amincie validée,
|
||||
chênes pâles sur les sols abrités sous la roche, marais en haut. Lucioles
|
||||
uniquement dans le marais supérieur. Eau facultative, seulement quand le
|
||||
relief possède une dépression fermée ; abandon des lacs à niveau constant.
|
||||
SO : soufre et dripstone dans les parties inférieures, sans lush caves et
|
||||
sans changer la surface. SE mangrove entièrement validé ; NO conservé
|
||||
provisoirement malgré les réserves esthétiques, aucune retouche des deux.
|
||||
|
||||
## Implémentation
|
||||
|
||||
Le NE réutilise le champ de densité SO 228, avec la graine propre à cette
|
||||
expansion. Épaisseur variable et plateau restent ceux de ce champ ; seules
|
||||
les matières et les habitats changent. Sous les 12 derniers blocs du toit,
|
||||
biome jardin pâle ; en haut, biome marais. Plantation native des chênes pâles
|
||||
sur des sols naturels de 2 × 2 avec le dégagement nécessaire sous un surplomb.
|
||||
Les buissons à lucioles sont posés sur le sol supérieur réel, jamais sur des
|
||||
feuilles ni dans le jardin pâle inférieur.
|
||||
|
||||
Aucune simulation hydrologique ni construction de cuvette : une recherche
|
||||
locale bornée accepte seulement des dépressions d’un bloc de profondeur,
|
||||
avec deux blocs de fond solide et des murs naturels continus. Si une paroi
|
||||
manque, toute la mise en eau est abandonnée. Ces mares peuvent être rares
|
||||
ou absentes suivant la graine. Les biomes NE n’ajoutent aucune source native.
|
||||
|
||||
SO : régions de soufre/cinabre ou dripstone sous le plateau, dans les
|
||||
cavités du terrain existant. Formations natives de pics de soufre et de
|
||||
speleothèmes ; aucun creusement nouveau ni décor lush. Les deux autres
|
||||
champs et leurs décorations restent en révision 228.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Huit GameTests ciblés passent (`build/diagonal229-tests.log`). Sur les graines
|
||||
0/42, identité du champ NE avec le SO 228, habitats séparés en hauteur,
|
||||
65/46 emplacements de chênes pâles sur les grilles sondées, mares toutes
|
||||
bordées de matière naturelle, déterminisme, cavités SO et conservation des
|
||||
champs SE/NO contrôlés. Les nombres d’emplacements ne représentent pas un
|
||||
inventaire exhaustif des arbres de l’île.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,diagonal229 -PsanctuaryAtlasOnly=true` réussit
|
||||
en 2 min 38 s. Contrôles natifs 0/42 réussis, avec quatre offres réelles,
|
||||
refus des doubles offres, consommation correcte, interruption/reprise,
|
||||
49 chunks FULL par activation et relais utilisables.
|
||||
|
||||
Dans les chunks sondés au NE : 40/44 blocs de tronc pâle et 9/4 buissons à
|
||||
lucioles supérieurs ; racines sous des surplombs et aucune luciole basse.
|
||||
Au SO : 32/37 pics de soufre et 9/76 pointed dripstone ; aucun décor lush
|
||||
trouvé dans les cavités inspectées. Ces chiffres attestent la présence,
|
||||
pas l’abondance globale. Les cavités lush/dripstone SE restent présentes.
|
||||
|
||||
Lecture des deux sauvegardes arrêtées (`build/diagonal229-water-audit.json`) :
|
||||
52/51 chunks NE FULL, 36/12 colonnes de racines pâles, aucune cellule d’eau.
|
||||
Les rares mares du plan théorique n’étaient donc pas présentes dans cet
|
||||
échantillon natif ; leur fréquence visuelle reste à apprécier ailleurs.
|
||||
Aucun ancien monde n’a été modifié.
|
||||
|
||||
## Artefact local
|
||||
|
||||
MRpack normal `build/Sanctuary-beta.229.mrpack`, copie dans Downloads.
|
||||
Archive et JAR construits vérifiés, Minecraft 26.3 / Fabric Loader 0.19.5,
|
||||
trois tailles publiques, aucun module Test ni sauvegarde. Les 421 ressources
|
||||
historiques de worldgen comparées à 228 sont identiques ; seul l’alias public
|
||||
est avancé. Reçu : `build/diagonal229-mrpack-receipt.json`.
|
||||
|
||||
- SHA-256 MRpack : `788b3aa5898f12aed4570224beb4dd44505eb9e5cae89cefdef9fe7549c85f8b`.
|
||||
- SHA-256 JAR : `50fd7d6c04c9060abf3eca89bbaf936b39c6e9e82051d2d6559f197f425fdda9`.
|
||||
|
||||
Aucune validation Windows ni mesure de fluidité. Aucun ancien monde modifié,
|
||||
aucune publication du canal packwiz ni synchronisation Prism.
|
||||
|
||||
|
||||
## Visite
|
||||
|
||||
Nouvelle visite isolée `diagonal229-visit`, monde `Sanctuary-Diagonal-229-0`,
|
||||
copiée depuis le nouveau contrôle graine 0 arrêté. Île principale Petit,
|
||||
quatre expansions de 1024 prêtes, créatif avec commandes, vue 32 chunks,
|
||||
simulation 5. Ouverture Vulkan confirmée à 22:23:49 le 5 octobre 2026 :
|
||||
`DIAGONAL229_VISIT_OPEN` dans `build/diagonal229-solo.log`. Rendu à apprécier
|
||||
par le joueur.
|
||||
|
||||
| Région | Relais X, Y, Z sur la graine 0 |
|
||||
| --- | --- |
|
||||
| NE marais / jardin pâle inférieur | 856, 225, -496 |
|
||||
| SE mangroves / cavités | 560, 377, 816 |
|
||||
| SO savane / cavités sèches | -832, 217, 512 |
|
||||
| NO plaines / taïga | -608, 238, -768 |
|
||||
|
||||
Exemple de pied de chêne pâle observé dans la sauvegarde : 475, 174, -541.
|
||||
Le joueur démarre au-dessus du relais NE. Anciennes visites conservées.
|
||||
@@ -0,0 +1,127 @@
|
||||
# LIGHT-141 — Direction locale pour les normales PBR
|
||||
|
||||
Socle beta.140 `c9f5c56`, branche `codex/directional-lights-beta141`.
|
||||
Minecraft 26.3 / Java 25. Livraison beta.141.
|
||||
|
||||
## Contrat
|
||||
|
||||
Estimer une direction d'arrivée depuis les six voisins du champ lumineux,
|
||||
avec intensité et confiance. Conserver cette estimation dans une texture
|
||||
compacte reconstruite avec le champ, uniquement quand le PBR est actif.
|
||||
Les sources portées utilisent leurs positions déjà disponibles. Brancher ces
|
||||
directions sur les normales et reflets PBR existants, sans nouveau bouton.
|
||||
Les sources opposées doivent réduire la directionnalité, sans bascule brutale.
|
||||
Les champs précédent/courant gardent leur fondu et les obstacles restent pris
|
||||
en compte pour les blocs posés. Aucun changement de lumière de gameplay,
|
||||
de sauvegarde ou de génération ; aucune promesse de lancer de rayons exact.
|
||||
|
||||
## Programme de vérification
|
||||
|
||||
Contrôles natifs OpenGL/Vulkan : direction, sources opposées, murs, rendu de
|
||||
relief en intérieur, déplacement des sources, transitions et PBR OFF.
|
||||
Régression des lumières beta.139/140 puis check/build et assemblage. GameTest
|
||||
serveur dédié exclu selon le refus EULA antérieur. Aucun monde personnel ouvert.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Le champ RGB conserve une texture directionnelle RGBA8 supplémentaire :
|
||||
les trois composantes codent la direction pondérée, l'alpha sa réponse lumineuse.
|
||||
Les voisins plus lumineux et accessibles contribuent à l'estimation ; les
|
||||
arrivées opposées s'annulent dans le vecteur, sans supprimer l'éclairage natif.
|
||||
Le shader interpole les moments pondérés avant normalisation, y compris entre
|
||||
les champs précédent et courant. La confiance réduit le relief quand aucune
|
||||
direction ne domine.
|
||||
|
||||
Cette texture est préparée dans le budget de reconstruction existant, avec
|
||||
un maximum de six voisins par cellule éclairée et une table d'énergie réutilisée.
|
||||
Aucune recherche de sources ni rayons par pixel pour les blocs posés. La
|
||||
lecture GPU interpole huit cellules par champ ; les deux champs sont utilisés
|
||||
pendant le fondu. Les sources mobiles réutilisent les positions, intensités et
|
||||
transitions déjà collectées, dans la limite existante de 128 sources.
|
||||
|
||||
Une texture directionnelle occupe environ 1,5 Mo à 16 blocs de distance et
|
||||
19 Mo à 64 blocs, par copie CPU/GPU ; deux champs coexistent lors des transitions.
|
||||
Le champ directionnel n'est construit que si PBR est actif avec une intensité
|
||||
non nulle. Sa désactivation libère les directions après la transition.
|
||||
Le coût est borné par ces réglages, sans garantie de FPS.
|
||||
|
||||
La passe PBR applique la différence entre normale de base et normale perturbée,
|
||||
puis un reflet GGX local. Elle garde sa portée de 32 blocs et les réglages PBR
|
||||
existants ; Lumières colorées doit être actif. Le soleil et la lune continuent
|
||||
à fonctionner lorsque les lumières colorées sont coupées. Les aides FR/EN
|
||||
expliquent cette dépendance.
|
||||
|
||||
C'est une direction dominante approximative : deux lumières colorées opposées
|
||||
ne produisent pas deux reflets indépendants. Les sources mobiles gardent la
|
||||
propagation radiale et les limites d'occultation existantes. Les normales PBR
|
||||
concernent les surfaces de blocs prises en charge, pas tous les modèles de mobs.
|
||||
Les exclusions existantes des panoramas et de l'immersion restent inchangées.
|
||||
|
||||
## Premier essai ciblé
|
||||
|
||||
L'essai natif OpenGL ciblé réussit en **1 min 12 s** : direction gauche/droite,
|
||||
annulation des sources opposées avec énergie conservée, occultation par un mur,
|
||||
relief sur la pierre en intérieur et avec une torche en main, stabilité au repos,
|
||||
libération des directions avec PBR OFF et maintien du chemin solaire avec
|
||||
Lumières colorées OFF. La somme d'écarts PBR OFF/ON sur la pierre vaut 878 114
|
||||
au réglage PBR 100 % ; c'est une comparaison de pixels, pas une mesure de FPS.
|
||||
Log : `build/directional141-focused.log`.
|
||||
|
||||
Les essais de préparation ont révélé un conflit de nom de matrice GLSL, corrigé,
|
||||
puis des erreurs de fixture (angle 180° normalisé par Minecraft, suppression
|
||||
d'entités alors que la sélection était vide, commande d'heure déjà à minuit),
|
||||
corrigées sans changer le rendu.
|
||||
|
||||
## Validation complète OpenGL
|
||||
|
||||
La chaîne complète réussit en **3 min 1 s** sur OpenGL / Apple M1 :
|
||||
`COLORED139_PASS`, `COLORED140_PASS` et `DIRECTIONAL141_PASS`.
|
||||
Elle réunit les contrôles de couleurs, objets portés, caméra, occultation,
|
||||
rechargement des ressources, préférences, distances/fondus et directions PBR.
|
||||
Le test ciblé est reproductible avec `-PsanctuaryDirectional141Only=true` ;
|
||||
la chaîne complète utilise `-PsanctuaryDirectional141ClientTests=true` avec
|
||||
les deux suites de lumières existantes.
|
||||
Log : `build/directional141-opengl.log`. Captures natives conservées dans
|
||||
`build/directional141-opengl-screenshots/`. Comparaison autonome sans retraitement :
|
||||
`build/Shader-beta.141-comparaison.html`.
|
||||
|
||||
## Validation complète Vulkan
|
||||
|
||||
La même chaîne réussit en **2 min 56 s** sur Vulkan / Apple M1, MoltenVK 1.4.2,
|
||||
profondeur 0–1 et transparence améliorée. Les trois marqueurs de réussite sont
|
||||
présents dans `build/directional141-vulkan.log`. L'écart PBR local OFF/ON vaut
|
||||
878 107, contre 878 114 sous OpenGL dans cette scène. Les captures natives sont
|
||||
conservées dans `build/directional141-vulkan-screenshots/`.
|
||||
Les deux moteurs vérifient la compilation, les chemins actifs et désactivés,
|
||||
le cache, les murs, les sources opposées et portées, ainsi que les régressions
|
||||
beta.139/140. Pas de validation des pilotes Windows de l'utilisateur revendiquée.
|
||||
|
||||
## Construction et archives
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
réussit en **2 min 35 s**, 126 tâches. Le GameTest serveur dédié reste exclu
|
||||
selon le refus EULA antérieur. Les suites clientes ci-dessus ont été exécutées
|
||||
séparément. Log : `build/shader141-build.log`.
|
||||
|
||||
Comparaison à beta.140 : **8 entrées de production modifiées**, limitées au
|
||||
champ lumineux, à sa préparation avant le PBR, au shader PBR et aux aides FR/EN.
|
||||
Les archives normale/Test contiennent le même JAR Sanctuary, sans classes
|
||||
de test. Version, dépendances exactes, sources des JAR, textures de gemmes et
|
||||
de la clé de Steve, et template complet sont vérifiés.
|
||||
Reçu : `build/shader141-artifact.json`.
|
||||
|
||||
SHA-256 du JAR : `660f29c3fa77fee4de6a8db5673c61619985804494f70e961998da36f396d0f1`.
|
||||
|
||||
- Sanctuary-beta.141.mrpack : `08df23dac9e98fbfa2935f747345c38244bddc3a3d9371c6416f251e85a7eb19`.
|
||||
- Sanctuary-Test-beta.141.mrpack : `a300ef5bfff7b6990c9f5c2760e9c3a23d7a27aeb10b8f04d29db9a7409fa0e1`.
|
||||
|
||||
## Livraison
|
||||
|
||||
[Release beta.141](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.141)
|
||||
publiée sur le commit source `93ed5574a4f77bd3a083b254498f4994efe31179` ; canal stable
|
||||
`7e6c84400f80db24bf5204cd21d628194ae9f0f7` vérifié après publication.
|
||||
Deux synchronisations isolées puis deux dans la même instance Sanctuary Beta
|
||||
réussissent. Les **923 fichiers personnels** suivis gardent leurs hashes.
|
||||
Sauvegarde préalable : `sanctuary-backups/before-beta.141/`. Aucun monde personnel
|
||||
ouvert. Reçus : `build/shader141-isolated.json` et `build/shader141-prism.json`.
|
||||
Archives normale/Test/template et comparaison copiées dans `sanctuary-beta/build/`.
|
||||
@@ -0,0 +1,60 @@
|
||||
# Récap Discord — beta.130 à beta.160
|
||||
|
||||
Brouillon à relire avant publication. Les captures sont des scènes de test,
|
||||
pas des photos d'un serveur public. Aucune annonce envoyée automatiquement.
|
||||
|
||||
## Message 1 — l'image et la lumière
|
||||
|
||||
**Sanctuary — retour sur les beta.130 à 160**
|
||||
|
||||
On a d'abord beaucoup travaillé l'ambiance : bloom, minerais lumineux, rebonds
|
||||
de couleur, relief des matériaux, reflets, rayons du soleil et lumières portées.
|
||||
L'eau a reçu ses propres réglages, puis plusieurs passes de correction ont
|
||||
amélioré les transitions, les distances et les matières.
|
||||
|
||||
La version du shader conservée est celle du socle beta.151. Elle reste gourmande,
|
||||
mais on garde ce travail ! En beta.160, le shader devient **désactivé par défaut
|
||||
sur une nouvelle configuration**, et peut être réactivé dans les options.
|
||||
|
||||
Images : `01-minerais-bloom-beta130.png`, `02-eau-beta144.png`.
|
||||
|
||||
## Message 2 — la vie du serveur
|
||||
|
||||
Le chantier suivant rapproche Minecraft et le site Sanctuary : **Gazette,
|
||||
tableau d'affichage et intendance** partagent un contrat de publications.
|
||||
Le mod fonctionne avec des fichiers par défaut ; une base MariaDB permet de
|
||||
partager les données avec le site.
|
||||
|
||||
Le menu pause a été réorganisé autour des systèmes Sanctuary, de la carte et
|
||||
des publications. La Gazette accepte les articles avec une capture obligatoire,
|
||||
les réponses, les épingles et la recherche par joueur ou contenu.
|
||||
|
||||
Le tableau distingue les types d'annonces par couleur. Les demandes peuvent
|
||||
indiquer un lieu, des matériaux, une récompense et des participants. Ce sont
|
||||
des descriptions pour organiser les échanges entre joueurs : aucun coffre de
|
||||
dépôt ni paiement automatique. Une demande suivie apparaît avec un **! sur la
|
||||
carte**, et son résumé se lit au survol.
|
||||
|
||||
Images : `03-menu-et-quete-beta159.png`, `04-materiaux-beta158.png`.
|
||||
|
||||
## Message 3 — tester ensemble
|
||||
|
||||
Avec la beta.160, on prépare nos séances de test en binôme sur Mac : un petit
|
||||
serveur local, un seul Minecraft à l'écran et des personnages de laboratoire.
|
||||
Le but : vérifier les échanges côté technique pendant que les vrais essais en
|
||||
jeu nous montrent ce qu'il faut simplifier dans l'interface.
|
||||
|
||||
Des scènes courtes et des captures horodatées permettront de reprendre les
|
||||
moments où l'on hésite, cherche un bouton ou perd le fil. Le prochain chantier
|
||||
est l'ergonomie, dans le jeu comme sur le site.
|
||||
|
||||
## Sources et pièces jointes
|
||||
|
||||
Les images originales et leurs empreintes sont rassemblées dans
|
||||
`build/discord-beta130-160/` (ignoré par Git), avec `images.json` pour la provenance.
|
||||
Les captures anciennes illustrent leur version d'origine, sans revendiquer une
|
||||
nouvelle validation graphique. Les sondages restent une idée, pas une fonction livrée.
|
||||
|
||||
Références : `shader-beta130.md` à `nether-pbr-beta151.md`,
|
||||
`community-beta154.md`, `pause-redesign-beta155.md`, `gazette-photos-beta157.md`,
|
||||
`community-cards-beta158.md`, `community-search-beta159.md`, `duo-lab-beta160.md`.
|
||||
@@ -0,0 +1,155 @@
|
||||
# DUO-160 — laboratoire Mac et tests en binôme
|
||||
|
||||
Branche `codex/duo-lab-beta160`, base `beta.159`. Minecraft 26.3, Java 25,
|
||||
Fabric 0.19.5 ; mêmes dépendances. Validation graphique Vulkan uniquement.
|
||||
|
||||
## Contrat
|
||||
|
||||
Le shader natif est OFF quand sa préférence est absente. Un choix sauvegardé
|
||||
ON ou OFF reste respecté, ainsi que ses intensités. Aucun shader supprimé :
|
||||
les ressources beta.151 restent identiques. Le client du laboratoire reçoit
|
||||
explicitement `enabled:false`, indépendamment de l'installation personnelle.
|
||||
|
||||
Tout le laboratoire réside dans `build/duo/`, ignoré par Git. Le monde plat
|
||||
`duo-flat-160`, graine 160, sert aux interfaces et aux échanges ; il ne valide
|
||||
pas le terrain Sanctuary. Aucun monde personnel ouvert ou modifié.
|
||||
Le module `sanctuary-test` fournit les personnages uniquement avec
|
||||
`-Dsanctuary.duo=true`. Il ne fait pas partie du pack normal.
|
||||
|
||||
## Préparer et lancer
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary-test:exportDuoLaunch --max-workers=1 -Dorg.gradle.jvmargs=-Xmx1G
|
||||
python3 scripts/duo_lab.py prepare
|
||||
python3 scripts/duo_lab.py server
|
||||
# Dans un autre terminal :
|
||||
python3 scripts/duo_lab.py client
|
||||
```
|
||||
|
||||
L'export permet ensuite de lancer Java directement, sans conserver un processus
|
||||
Gradle pendant la séance. Préparer à nouveau ne remplace aucun fichier existant.
|
||||
Le client rejoint automatiquement `127.0.0.1:25575`. Au premier accès,
|
||||
choisir la couleur et le familier dans HELLO_WORLD puis entrer dans Sanctuary.
|
||||
Depuis la console serveur : `op KokaLab` donne les commandes au client de test.
|
||||
|
||||
Le serveur écoute seulement sur loopback et utilise des identités hors ligne
|
||||
pour ce laboratoire. Ce profil ne doit pas être exposé sur le réseau. La liaison
|
||||
authentifiée d'un compte web exige toujours un vrai serveur en mode en ligne ;
|
||||
elle n'est pas contournée par les outils du laboratoire.
|
||||
|
||||
Réglages de départ : serveur 256–768 Mio de heap, vue 4 chunks, simulation 3 ;
|
||||
client 512–2048 Mio, vue 6, simulation 4, 30 FPS, fenêtre 1280×720. La mémoire
|
||||
native, graphique et macOS s'ajoute au heap. Aucun engagement de tenir dans
|
||||
une consommation totale de 2,75 Gio. Ne pas exécuter la compilation en même
|
||||
temps qu'une séance. Augmenter seulement après mesure :
|
||||
|
||||
```sh
|
||||
python3 scripts/duo_lab.py server --memory 1024
|
||||
python3 scripts/duo_lab.py client --memory 2560
|
||||
```
|
||||
|
||||
Le mode fichier reste le défaut. Pour une préparation neuve avec le site local :
|
||||
|
||||
```sh
|
||||
python3 scripts/duo_lab.py prepare --storage database --server-id UUID_DU_SERVEUR \
|
||||
--jdbc jdbc:mariadb://127.0.0.1:33077/BASE_DE_TEST
|
||||
SANCTUARY_COMMUNITY_DB_PASSWORD='' python3 scripts/duo_lab.py server
|
||||
```
|
||||
|
||||
La base doit déjà avoir le schéma communautaire v3. Le site doit utiliser le
|
||||
même identifiant de serveur. Aucun schéma ni sauvegarde n'est migré ici.
|
||||
|
||||
## Personnages et séances
|
||||
|
||||
```text
|
||||
/duo spawn Alice
|
||||
/duo spawn Bob
|
||||
/duo list
|
||||
/duo remove Alice
|
||||
/duo trace start
|
||||
/duo trace stop
|
||||
```
|
||||
|
||||
Les personnages portent le préfixe `Lab_`, sont créatifs et apparaissent près
|
||||
de la source de commande. Limite de quatre, noms uniques de 1–12 caractères
|
||||
ASCII alphanumériques ou `_`. Ce sont des ServerPlayer sans transport réseau
|
||||
ni rendu, pas des IA et pas des clients réseau supplémentaires. On peut les
|
||||
cibler avec les commandes natives, par exemple `tp Lab_Bob ~2 ~ ~`.
|
||||
Ils ne valident pas seuls le protocole d'un deuxième client réel.
|
||||
|
||||
La trace consigne noms de test, dimension, positions et angles toutes les deux
|
||||
secondes dans `build/duo/server/duo-sessions/`. Activation explicite, arrêt au
|
||||
bout de cinq minutes maximum ou à la fermeture du serveur. Pas de frappe clavier,
|
||||
mot de passe, navigateur ou audio enregistré.
|
||||
|
||||
Pour la relecture visuelle, identifier la fenêtre Minecraft puis lancer :
|
||||
|
||||
```sh
|
||||
python3 scripts/duo_lab.py windows
|
||||
python3 scripts/duo_lab.py record --window ID_FENETRE_MINECRAFT --seconds 120
|
||||
```
|
||||
|
||||
Une séquence PNG horodatée toutes les deux secondes, un index HTML et une fiche
|
||||
de notes sont écrits dans `build/duo/sessions/`. Ctrl-C termine la capture ; limite
|
||||
de cinq minutes. macOS peut demander l'autorisation de capture. Cette version
|
||||
ne produit pas une vidéo continue et peut manquer une interaction très courte.
|
||||
On ne démarre une capture qu'au début d'une scène annoncée.
|
||||
|
||||
## Trois premières scènes
|
||||
|
||||
1. Ouvrir la Gazette, retrouver un auteur, lire un article et répondre. Vérifier
|
||||
que l'autre interface retrouve la réponse, puis noter les hésitations.
|
||||
2. Créer une demande avec lieu et matériaux, la suivre, lire son infobulle sur
|
||||
la carte, ouvrir la discussion puis arrêter le suivi.
|
||||
3. Afficher deux figurants, tester les interactions de proximité et comparer
|
||||
la fluidité à un seul joueur. Garder un véritable second client pour une
|
||||
vérification réseau ultérieure si nécessaire.
|
||||
|
||||
Le récap Discord se trouve dans `discord-beta130-160.md` ; les originaux des
|
||||
quatre illustrations sont copiés avec provenance dans `build/discord-beta130-160/`.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- `./gradlew check build assemblePack` : 252 GameTests, 229 réussites et les
|
||||
mêmes 23 échecs que beta.159. Aucun échec ajouté ; comparaison dans
|
||||
`build/duo160-server-failures.json`, log `build/beta160-check-build.log`.
|
||||
- Contrôles restants, compilation, pack et client natif Vulkan réussis avec la
|
||||
suite serveur déjà exécutée exclue (`-x :sanctuary:runGameTest`) : 137 tâches,
|
||||
`build/beta160-release.log`. Le test `ShaderDefaults160ClientChecks` vérifie
|
||||
préférence absente, objet vide, ON explicite, OFF enregistré et réactivation,
|
||||
avec intensité personnelle conservée. Marqueur `SHADER160_DEFAULTS_PASS`.
|
||||
- Module de test reconstruit après ajustement du transport sans réseau : build
|
||||
réussi. L'export de lancement inclut les arguments fournis par Loom et élimine
|
||||
son argfile imbriqué, que Java ne peut pas réinterpréter depuis un autre argfile.
|
||||
- Serveur réel à 768 Mio : démarrage sur loopback, monde plat neuf ; création de
|
||||
quatre acteurs, doublon et cinquième refusés, retrait et acteur absent vérifiés.
|
||||
Le journal produit 56 observations JSON valides puis s'arrête sur commande.
|
||||
- Client réel séparé, Vulkan, 2048 Mio, shader OFF : connexion jusqu'à l'écran
|
||||
HELLO_WORLD vérifiée visuellement. La création du profil et le parcours en jeu
|
||||
avec le joueur restent à faire ensemble ; aucune session ergonomique humaine
|
||||
terminée ni validation d'un deuxième client réseau revendiquée.
|
||||
- Mesure ponctuelle avant l'entrée du joueur : serveur ~313 Mio de heap utilisé,
|
||||
client au menu ~289 Mio. Ce ne sont ni des pics ni une mesure de RAM système
|
||||
totale. Les figurants ne possèdent ni sockets ni fenêtre graphique.
|
||||
- Capture ciblée macOS essayée sur quatre secondes : séquence PNG, manifeste,
|
||||
index HTML et fiche de notes créés. Aucun enregistrement continu ou micro.
|
||||
- Export MRpack : intégrité ZIP, version et JAR embarqué vérifiés. Les 29 ressources
|
||||
de shaders sont inchangées depuis beta.159. JAR et packs beta.154–159 conservés.
|
||||
- Skill personnel `sanctuary-session-notes` installé et validé séparément dans
|
||||
`~/.codex/skills/` pour classer les dictées en Markdown. Il ne change pas le
|
||||
modèle du tour courant ; Luna/low peut être choisi dans une tâche dédiée.
|
||||
|
||||
Le serveur local utilise la base de développement du site, schéma v3 déjà présent,
|
||||
sous le même scope. Aucune validation de liaison de comptes hors ligne : cette
|
||||
opération reste réservée au mode authentifié. Aucun déploiement public, canal
|
||||
packwiz, serveur personnel ou instance Prism modifié.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
- `mods/sanctuary/build/libs/sanctuary-beta.160.jar` — SHA-256
|
||||
`4c19e620e989050488c9a96aaddaf897a74115a9fb4c5099e5518ae32db5b2e8`.
|
||||
- `build/Sanctuary-beta.160.mrpack` — SHA-256
|
||||
`272e3460f35c8d9a4de689d30e4d952c3121923ba5fe30a23c83b3e76bd23bac`.
|
||||
- `build/duo/Jouer.command` et `Serveur.command` : raccourcis locaux de séance.
|
||||
|
||||
@@ -0,0 +1,84 @@
|
||||
# Est — cratère strié et arbres enracinés, beta.224
|
||||
|
||||
## Contrat du 5 octobre 2026
|
||||
|
||||
Retour après visite beta.223 : relief général, arbres et ravins appréciés.
|
||||
Arbres de jungle observés sur d’autres arbres ; cratère jugé trop camouflage.
|
||||
Conserver la géométrie et retravailler ses matériaux : lignes concentriques
|
||||
du fond vers le sommet, stries verticales/hachures qui s’estompent en hauteur,
|
||||
plus d’obsidienne, magma à proximité, transitions légèrement bruitées.
|
||||
Captures évoquées sans chemin fourni : aucune capture inspectée.
|
||||
Branche `codex/east-crater-beta224`, base `9063e16`.
|
||||
|
||||
## Portée
|
||||
|
||||
Nouveaux profils 224 uniquement. Le champ de densité, les hauteurs, ravins,
|
||||
cavités, lave et emplacements de monuments reprennent exactement 223 pour une
|
||||
même graine d’expansion. Habillage minéral de la surface et des sept blocs sous-jacents du
|
||||
cratère uniquement, sans nouvelle simulation ni passe de relief.
|
||||
Les grandes jungles utilisent les mêmes arbres avec un filtre de sol avant
|
||||
plantation, absent du placement custom 223. Tables natives de bambou, pandas
|
||||
et autres arbres conservées. Île principale, Nord, Sud et Ouest conservés.
|
||||
Anciennes sauvegardes et profils intacts ; essai dans un nouveau laboratoire.
|
||||
|
||||
## Vérifications ciblées
|
||||
|
||||
Java 25, Minecraft 26.3, Fabric Loader 0.19.5 et API 0.160.5+26.3.
|
||||
Sept GameTests réussis (`base204,east223,east224`) :
|
||||
|
||||
- Conservation exacte des hauteurs, densités, cavités et volumes de lave entre
|
||||
223 et 224 sur quatre graines d’expansion ; aucun déplacement des monuments.
|
||||
- Matériaux hors du traitement du cratère inchangés ; obsidienne plus abondante
|
||||
et magma présent sur la rive découverte, pas seulement sous la lave.
|
||||
- Admission du grand arbre refusée sur feuilles, troncs, air et pierre ;
|
||||
admise sur herbe, terre et podzol. Le tag natif `minecraft:dirt` de 26.3
|
||||
ne contient ni herbe ni podzol : le filtre utilise les sols explicites et
|
||||
la règle native de survie du jeune arbre, testés depuis le registre chargé.
|
||||
- Profils de création et anciens profils chargés, anciens contrôles Est 223
|
||||
et conservation de l’Ouest validé.
|
||||
|
||||
Deux serveurs natifs isolés à 2 Gio passent la demande par ancre, le refus du
|
||||
mauvais paiement, l’interruption/reprise et la préparation de 62 chunks.
|
||||
Même position et graine d’expansion qu’en 223 ; diamètres 1024 :
|
||||
|
||||
| Graine monde | Centre X/Z | Graine expansion | Tronc maximal | Pieds suspendus détectés |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 42 | 944 / 144 | 207124680538740498 | 41 blocs | 0 |
|
||||
| 0 | 944 / -144 | 118376680751547919 | 44 blocs | 0 |
|
||||
|
||||
La recherche de pieds suspendus porte sur 24 chunks par graine (huit par
|
||||
ambiance de jungle) : terre située plus de cinq blocs au-dessus du terrain
|
||||
avec un tronc dessus. Ce contrôle et le filtre de placement corrigent le cas
|
||||
identifié ; ils ne constituent pas une inspection exhaustive de tous les arbres.
|
||||
Les mêmes relevés comptent respectivement 840/1 565 bûches, 2 883/4 646 feuilles
|
||||
et 2 748/2 094 bambous. Deux coffres à butin et deux distributeurs dans chaque
|
||||
temple, relais complet, 919/957 colonnes de lave et 39 464/38 928 contrôles
|
||||
de parois sans fuite.
|
||||
|
||||
Reçus ignorés : `build/east224-gametest-passed.log` et
|
||||
`build/worldgen-lab/east224-checked{42,0}/small/{42,0}/{cold,warm}.json`.
|
||||
|
||||
## Livraison
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,east223,east224 -PsanctuaryAtlasOnly=true`
|
||||
réussit en 5 min 25 s. Log : `build/east224-build.log`.
|
||||
|
||||
MRpack normal vérifié et copié dans `~/Downloads` : archive intègre, JAR exact,
|
||||
trois tailles, filtre de plantation et 371 ressources de génération historiques
|
||||
strictement identiques à beta.223 (hors alias public du preset). Aucun monde ni
|
||||
module de test embarqué. Reçu : `build/east224-mrpack-receipt.json`.
|
||||
SHA-256 de `Sanctuary-beta.224.mrpack` :
|
||||
|
||||
```text
|
||||
01aed4e6a0d9e2965ed8201372eef3aaecab3b0c6dce3fb84586895ed9076885
|
||||
```
|
||||
|
||||
La visite neuve `Sanctuary-East-224-42` est ouverte le 5 octobre à 17:26:25,
|
||||
Vulkan natif, rendu 32 chunks, simulation 5, créatif/vol/commandes. Position
|
||||
initiale 547 / 351 / 144, face au volcan. Copie du serveur de contrôle arrêté,
|
||||
identité de sources vérifiée ; anciennes visites conservées.
|
||||
|
||||
Le rendu des stries reste à apprécier par le joueur. Pas de nouvelle campagne graphique Windows,
|
||||
ni d’exploration complète Medium/Large. Aucune modification d’ancien monde,
|
||||
publication de canal ou mise à jour Prism.
|
||||
@@ -0,0 +1,85 @@
|
||||
# Est — volcan flottant et jungles, beta.223
|
||||
|
||||
## Contrat du 5 octobre 2026
|
||||
|
||||
Après la livraison des déclinaisons de roche jaune (beta.222), le joueur valide
|
||||
l’Ouest 221 et demande le laboratoire Est. Volcan actif, lave dans le cratère,
|
||||
jungle sur les flancs ; la silhouette historique est explicitement rejetée.
|
||||
Il faut un vrai cône volcanique flottant, un temple de jungle, du bambou,
|
||||
des pandas et des jungles clairsemées ou denses avec de très grands arbres.
|
||||
Diamètre de premier essai : 1024 blocs, dans la direction de l’ancre Est.
|
||||
Branche `codex/east-volcano-beta223`, base `2d656d9`.
|
||||
|
||||
## Portée
|
||||
|
||||
Nouveaux profils 223 Small/Medium/Large uniquement ; aucun profil 222 de
|
||||
terrain n’existe (222 ajoutait uniquement des blocs). Île principale, Nord,
|
||||
Sud et Ouest conservent leurs générateurs validés. Les mondes et journaux
|
||||
historiques sont conservés. Nouveau laboratoire et nouvelle activation ;
|
||||
aucune expansion ajoutée à une sauvegarde personnelle.
|
||||
|
||||
Silhouette conique asymétrique, bouche décentrée et légèrement elliptique,
|
||||
ravines ramifiées par bruit cohérent, épaulement ancien et affaissement local
|
||||
du bord du cratère. Répartition des jungles par nappes de bruit, sans secteurs
|
||||
radiaux répétés. Couronne sommitale irrégulière et cuvette de lave
|
||||
fermée, dessous suspendu irrégulier. Roche volcanique au sommet, sol végétal
|
||||
sur les flancs. Biomes de jungle et bambou avec végétation native, dont une
|
||||
variante de grands arbres. Temple natif avec pièges et coffres, fondations
|
||||
locales. Relais sur le flanc extérieur, éloigné du cratère.
|
||||
Pas d’éruption animée ni de simulation géologique/hydrologique globale.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le 5 octobre 2026, Java 25, Minecraft 26.3 et Fabric Loader 0.19.5 :
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,east223,rock222 -PsanctuaryAtlasOnly=true`
|
||||
réussit en 3 min 34 s. Sept GameTests ciblés passent également lors du contrôle
|
||||
préalable : profils historiques et actuels, roche jaune, forme et lave sur
|
||||
quatre graines, direction Est, égalité du relief et des décors Ouest 221/223.
|
||||
- Deux serveurs natifs isolés, graines 42 et 0, mémoire 2 Gio : demande par ancre,
|
||||
refus du mauvais paiement, interruption à 0/62 chunks et reprise persistée.
|
||||
Les deux expansions deviennent disponibles avec 62 chunks préparés ; la suite
|
||||
est générée à l’exploration.
|
||||
- La cuvette est contrôlée dans les chunks réels : 919/957 colonnes de lave et
|
||||
39 464/38 928 vérifications de parois pour 42/0. Aucun débouché vers le vide
|
||||
détecté dans ces contrôles.
|
||||
- Chaque temple contient deux coffres à table de butin et deux distributeurs
|
||||
piégés ; 1 157 blocs de maçonnerie relevés. Le relais possède ses 2 069 blocs
|
||||
attendus et une offre utilisable.
|
||||
- Sur 24 chunks par graine, huit de chaque ambiance de jungle : 1 501/1 446
|
||||
bûches, 3 747/4 398 feuilles, 2 689/2 294 bambous ; tronc continu maximal de
|
||||
44 blocs sur les deux graines. Les tables natives du biome bambou comprennent
|
||||
les pandas ; leur nombre réel n’est pas une assertion de cette campagne.
|
||||
- MRpack vérifié : ZIP, JAR exact, versions, trois tailles, profils historiques,
|
||||
biomes Est, tables de pandas, grands arbres, temple et déclinaisons de roche
|
||||
jaune ; aucun monde ni module de laboratoire embarqué.
|
||||
|
||||
Les logs et reçus ignorés sont `build/east223-build-final.log`,
|
||||
`build/east223-natural-gametest.log`, `build/east223-mrpack-receipt.json` et
|
||||
`build/worldgen-lab/east223-checked{42,0}/small/{42,0}/{cold,warm}.json`.
|
||||
|
||||
| Graine du monde | Centre de l’expansion X/Z | Graine de l’expansion | Temple X/Y/Z |
|
||||
| --- | --- | --- | --- |
|
||||
| 42 | 944 / 144 | 207124680538740498 | 835 / 271 / 418 |
|
||||
| 0 | 944 / -144 | 118376680751547919 | 961 / 300 / 150 |
|
||||
|
||||
## Livraison et visite
|
||||
|
||||
`Sanctuary-beta.223.mrpack`, copié dans `~/Downloads`, SHA-256 :
|
||||
|
||||
```text
|
||||
ac31ff8203dca95265c7d0af545bab231697ad295b48eade2ee115090a9597e6
|
||||
```
|
||||
|
||||
La visite neuve `Sanctuary-East-223-42` est ouverte le 5 octobre à 17:09:45,
|
||||
Vulkan natif, rendu 32 chunks, simulation 5, créatif/vol/commandes. Position
|
||||
initiale 547 / 351 / 144, face au volcan. Copie du laboratoire arrêté,
|
||||
identité de sources vérifiée ; les anciennes visites sont conservées.
|
||||
La roche jaune, ses escaliers et dalles de beta.222 sont inclus.
|
||||
|
||||
Le rendu naturel reste à apprécier par le joueur : les contrôles numériques
|
||||
ne constituent pas une validation esthétique. Essais natifs Small sur deux
|
||||
graines ; Medium/Large sont assemblés et leurs profils vérifiés, sans nouvelle
|
||||
campagne d’exploration complète. Aucun essai Windows ni simulation d’éruption.
|
||||
Pas de publication du canal packwiz ni de mise à jour de l’instance Prism.
|
||||
@@ -0,0 +1,319 @@
|
||||
# Communauté, économie et aventures — cadrage du 25 septembre 2026
|
||||
|
||||
Statut : **cadrage de conception**. La réalisation du premier prototype d'arène
|
||||
autorisé ensuite est suivie séparément dans [beta.167](horde-lab-beta167.md) ;
|
||||
elle ne vaut pas livraison de l'ensemble des systèmes décrits ici. Cette note
|
||||
conserve la discussion du créateur et distingue ses décisions des propositions
|
||||
à éprouver. Base : dernier `origin/main` vérifié, beta.166 (`7979f33`).
|
||||
Le créateur demande finalement une branche dédiée, puis une intégration sur
|
||||
`main` à ne pas oublier. Branche : `codex/communaute-economie-beta167`.
|
||||
La prochaine livraison de code visée est **beta.167** ; ce numéro est désormais
|
||||
préparé dans les métadonnées du prototype, sans publication. On avance par petits résultats
|
||||
jouables, sans figer maintenant toute l'économie.
|
||||
|
||||
## Ce que l'on cherche à produire
|
||||
|
||||
Un serveur semi-anarchique dont l'État assure une administration forte, trace
|
||||
les événements, régule les prix du marché et pose des frontières. Les joueurs
|
||||
peuvent chercher leurs propres moyens de les franchir. Le système doit susciter
|
||||
la coopération, la multiplication, la fabrication, la destruction et la recherche.
|
||||
L'objectif est une émulation collective, avec des conséquences dans le monde.
|
||||
|
||||
Minecraft, le site et Discord prolongent la même vie communautaire. La BDD doit
|
||||
permettre d'analyser les activités à la journée et d'en rendre compte sur le site.
|
||||
Le serveur Minecraft conserve l'autorité sur les actions et récompenses de jeu.
|
||||
|
||||
## Décisions et intentions exprimées par le créateur
|
||||
|
||||
### Tableau et Gazette
|
||||
|
||||
- Le tableau propose **une seule sorte de message général**, sans les quatre
|
||||
catégories obligatoires actuelles. Annonce, demande, besoin, information,
|
||||
rendez-vous et découverte sont des usages de ce même message.
|
||||
- La Gazette accueille les récits, photos et discussions durables ; le tableau
|
||||
sert aux messages immédiats et à l'organisation. Les références Facebook et
|
||||
Twitter expriment ces usages, pas une demande de reproduire leurs fonctions.
|
||||
- Un message peut être associé à une quête donnant de l'XP aux autres joueurs.
|
||||
Une découverte peut être publiée pour organiser son exploration ensemble.
|
||||
Tout message n'a pas à devenir une quête.
|
||||
|
||||
### Quêtes canoniques, coopération et récompenses de prestige
|
||||
|
||||
- Les panneaux émeraude, rubis et saphir testés avec de vrais joueurs conviennent
|
||||
au gain d'XP solo, mais tendent à isoler les participants. Conserver un intérêt
|
||||
solo tout en développant des raisons concrètes de coopérer.
|
||||
- Le tableau accessible dans un menu et ses quêtes proposées pour une durée
|
||||
limitée sont une piste appréciée par le créateur.
|
||||
- Prévoir des quêtes canoniques reconnaissables, par exemple **chasse aux
|
||||
zombies**, avec XP selon les objectifs accomplis, quotas et paliers de
|
||||
récompenses. La référence aux passes de progression de jeux comme Rocket
|
||||
League concerne cette progression visible ; aucun modèle payant n'est demandé.
|
||||
- Des quêtes difficiles à obtenir ou à accomplir peuvent donner des **capes et
|
||||
familiers exclusifs**, recherchés pour leur valeur cosmétique et intrinsèque.
|
||||
Nature de l'exclusivité, disponibilité et capacités des familiers restent à
|
||||
préciser ; ne pas conclure que tous les familiers sont purement cosmétiques.
|
||||
- La discussion retient les deux usages dans une même quête : avancer seul
|
||||
pendant sa partie normale et rejoindre une horde collective déclenchée par
|
||||
bounty. Les zombies remplacent les squelettes comme première piste liée à
|
||||
l'île abandonnée ; aucun scénario d'ossuaire n'est retenu.
|
||||
|
||||
### Familiers comme incubateurs d'XP
|
||||
|
||||
Idée ajoutée par le créateur : les familiers **multiplient leur XP stockée au
|
||||
fil des blocs parcourus à pied, posés et cassés**. Ils servent d'**incubateurs
|
||||
d'XP**, avec une croissance modérée pour éviter un système trop puissant.
|
||||
Ce mécanisme peut donner un rôle aux familiers dans les quêtes.
|
||||
|
||||
« Multiplier » décrit ici l'intention de faire fructifier la réserve ; aucune
|
||||
formule, croissance exponentielle par action, valeur de rendement ou limite
|
||||
n'est décidée. L'origine de l'XP déposée, sa récupération et les conditions de
|
||||
présence du familier restent à choisir, ainsi que la personne dont les actions
|
||||
comptent. Cette idée est à concevoir, pas une nouvelle capacité livrée.
|
||||
|
||||
### État, navets et loterie
|
||||
|
||||
- L'État joue à la fois un rôle d'arbitre et d'acteur du monde. Ses contraintes
|
||||
doivent donner des occasions de jouer et de s'organiser.
|
||||
- Les navets s'achètent auprès d'un **PNJ le dimanche**. Ils se revendent pendant
|
||||
la semaine et **pourrissent après une semaine s'ils ne sont pas vendus**.
|
||||
Il ne s'agit pas d'une culture récoltée par les joueurs.
|
||||
- Des tickets trouvés ou achetés pendant la semaine servent à la loterie du
|
||||
dimanche, avec de **vraies machines manipulant des stocks d'objets**.
|
||||
- Ces machines peuvent notamment dupliquer ou diviser un stock. Les propositions
|
||||
précédentes de simples permis et réductions ne définissent pas ce mécanisme.
|
||||
Les privilèges temporaires restent une idée initiale possible, sans catalogue
|
||||
de récompenses approuvé.
|
||||
- Le rapport entre ces opérations et le **ballast des Backrooms** doit être
|
||||
pensé dès leur conception.
|
||||
|
||||
### Bounties, cartes et extensions
|
||||
|
||||
- Les bounties sont des **objets collectionnables que l'on utilise quand on est
|
||||
prêt**. Elles peuvent être offertes comme occasions d'aventure.
|
||||
- Réutiliser le système de cartes et en créer à la volée pour ces aventures.
|
||||
La forme exacte de la carte et son geste d'activation restent à choisir.
|
||||
- Prévoir **huit structures** permettant d'étendre les huit extensions de l'île
|
||||
principale, en lien avec un **bloc originel sur l'île**, puis des **ancres**
|
||||
permettant de générer des structures d'aventure.
|
||||
- Les objectifs évoqués comprennent primes, objets clés à retrouver et
|
||||
structures à détruire. L'ensemble doit aussi permettre la contrebande
|
||||
organisée et les initiatives des joueurs.
|
||||
- L'ordre de déblocage entre structures, extensions et bloc originel n'est pas
|
||||
encore fixé. Ne pas transformer cette intention en règle « huit sur huit ».
|
||||
|
||||
### Familles d'objets retenues et prochaine scène du labo
|
||||
|
||||
Le créateur retient le tableau fonctionnel suivant :
|
||||
|
||||
| Famille | Fonction |
|
||||
| --- | --- |
|
||||
| **Carte de découverte** | Indiquer un lieu existant à explorer ; transmettre une information. |
|
||||
| **Carte d'épreuve** | Déclencher une activité à l'activation : horde, défense, recherche… |
|
||||
| **Clé ou relique** | Ouvrir un accès ou activer un mécanisme précis dans le monde. |
|
||||
|
||||
Piste accessoire ajoutée : des **cartes collectionnables générées par le jeu**.
|
||||
Leur sujet, leur présentation, leur rareté et leur éventuel lien avec les cartes
|
||||
fonctionnelles restent ouverts. Ne pas leur attribuer automatiquement un pouvoir
|
||||
ou une récompense : collection et activation sont deux usages à distinguer.
|
||||
|
||||
La prochaine scène à **imaginer dans le laboratoire** est une **arène ronde
|
||||
avec un nouveau bloc interactif au centre**. La carte de horde est la première
|
||||
carte d'épreuve envisagée : elle fait apparaître un groupe de monstres par vagues.
|
||||
Le nom, l'apparence, les dimensions et les règles du bloc restent à concevoir.
|
||||
Cette décision portait initialement sur la conception. Le créateur a ensuite
|
||||
autorisé un premier essai jouable ; son état réel est dans le
|
||||
[contrat du prototype](horde-lab-beta167.md).
|
||||
|
||||
Parcours proposé pour ce prototype : présenter une carte au bloc → lire l'épreuve
|
||||
et ses récompenses → rejoindre le groupe → lancer explicitement → affronter les
|
||||
vagues → consulter le résultat. Une activation au clic droit, des apparitions
|
||||
réparties au bord du cercle et un état visuel du bloc sont des propositions.
|
||||
La consommation de carte, l'engagement des participants, les arrivées tardives,
|
||||
la défaite, la déconnexion et les récompenses seront précisés avant le code.
|
||||
|
||||
Le laboratoire doit utiliser une scène de développement neuve et isolée ; ne pas
|
||||
réécrire le monde du labo déjà conservé ni une sauvegarde personnelle. La forme
|
||||
transportable d'une balise d'épreuve reste une possibilité ultérieure. Ce bloc
|
||||
d'arène n'est pas encore assimilé au bloc originel ou à une ancre d'expansion.
|
||||
|
||||
### Données et liens entre les services
|
||||
|
||||
- Intégrer les statistiques du jeu à la BDD quand elles sont disponibles et
|
||||
raccorder progressivement les systèmes déjà en place.
|
||||
- Viser la traçabilité des échanges et événements, les analyses quotidiennes et
|
||||
les comptes rendus sur le site.
|
||||
- Exploiter le lien d'identité Discord/site/Minecraft pour de futures interactions
|
||||
personnelles, dont les notifications. Leur contenu et leur fréquence restent
|
||||
à définir ; cette discussion n'autorise aucun envoi de message.
|
||||
|
||||
## Ce qui existe réellement sur le socle beta.166
|
||||
|
||||
| Socle vérifié dans les sources et contrats | Limite actuelle |
|
||||
| --- | --- |
|
||||
| Gazette, photos, réponses, tableau, abonnements et repères de demandes ; stockage fichier ou MariaDB partagé | Quatre catégories `info/work/need/event` ; matériaux et récompenses descriptifs, sans livraison ni XP automatique |
|
||||
| Compteurs serveur publiés en base toutes les 30 secondes | Dernier instantané : durée de fonctionnement, morts, joueurs connectés, état ; pas un historique individuel quotidien complet |
|
||||
| Activité matérielle locale datée du Blocodex : minage, pose, fabrication, ramassage et jet | Agrégats journaliers sans distinction par joueur ou dimension ; ne prouvent ni échange, ni stock, ni ballast |
|
||||
| Cartes au trésor physiques et import de leurs repères dans l'atlas | Destinations provenant de plans existants ; aucun moteur de bounty activable ni de génération d'aventure à la demande |
|
||||
| Génération d'expansions et quatre anciennes expéditions ouvertes | Les huit nouveaux déblocages, le bloc originel et les ancres restent à concevoir |
|
||||
| Inscription web et reprise des codes d'accès ; lien aux identités Discord | Pas de service de notifications personnelles livré par ce chantier ; le dernier contrat conserve une validation OAuth réelle à terminer |
|
||||
|
||||
Références : [communauté](community-contract-v1.md),
|
||||
[compteurs beta.161](session-fixes-beta161.md),
|
||||
[activité datée](blocodex.md#relevés-datés--portée-de-lalpha23),
|
||||
[cartes beta.059](atlas-markers-beta059.md), [expansions](expansion.md),
|
||||
[inscription beta.166](inscription-web-beta166.md).
|
||||
Cet état décrit le dépôt, pas une vérification du déploiement public.
|
||||
|
||||
## Propositions de fonctionnement à valider
|
||||
|
||||
Pour les quêtes canoniques, la proposition discutée associe des **paliers
|
||||
personnels à un effort collectif**. Émeraude pourrait accueillir les contrats
|
||||
accessibles, rubis les opérations coordonnées, saphir les aventures rares et
|
||||
exigeantes. Cette répartition n'est pas une règle arrêtée.
|
||||
|
||||
Premier essai désormais envisagé : une chasse aux zombies avec paliers d'XP
|
||||
personnels, à laquelle contribue aussi une horde collective activée par carte.
|
||||
Une jauge commune et des préparatifs restent des options, sans scénario imposé.
|
||||
Les nombres 10/30 cités pendant la discussion sont illustratifs. Participation
|
||||
au-delà du dernier coup et conditions de maîtrise pour les trophées restent à définir.
|
||||
Un carnet pourrait présenter les objectifs et gains ; l'échéance de l'offre et
|
||||
le moment d'activation d'une bounty obtenue seraient distincts.
|
||||
|
||||
L'incubation d'XP pourrait accompagner ces parcours d'exploration, de construction
|
||||
et de minage. Avant tout essai, proposer puis mesurer un rendement et un plafond,
|
||||
en examinant les trajets répétitifs, les boucles pose/casse et le cumul de
|
||||
familiers. Ce sont des points d'équilibrage à décider, sans taux ni interdiction
|
||||
déjà validés. Toute future variation de réserve doit pouvoir être expliquée par
|
||||
les actions serveur enregistrées et rester cohérente avec les récompenses de quête.
|
||||
|
||||
Le message général pourrait recevoir des éléments facultatifs : lieu, rendez-vous,
|
||||
objectif et récompense. Le tableau rassemble les participants ; la Gazette garde
|
||||
le récit. La bounty peut être liée à une publication sans que poster un message
|
||||
crée automatiquement une aventure.
|
||||
|
||||
Parcours proposé : obtenir une carte → la conserver ou l'échanger → réunir un
|
||||
groupe → l'activer → accomplir l'objectif → recevoir la récompense. Conserver
|
||||
ensuite une carte souvenir portant le résultat et les participants est une option.
|
||||
Échangeabilité, perte, vol, copie et consommation de l'objet restent à décider.
|
||||
|
||||
Deux usages possibles des cartes : révéler un lieu existant, ou préparer une
|
||||
nouvelle aventure à l'activation dans une ancre. Une copie cartographique pourrait
|
||||
partager les indications sans multiplier les droits à récompense. Ce n'est pas
|
||||
encore un contrat implémenté. Les Backrooms conservent leur intention spécifique
|
||||
de découverte sans coordonnées ni carte automatique.
|
||||
|
||||
Exemple de machine, **sans valeur d'équilibrage approuvée** : un ticket et
|
||||
64 lingots engagés donnent 128 ou 32 lingots. Probabilités, stocks admissibles,
|
||||
fréquence, financement et comportement des objets uniques sont à définir.
|
||||
Conserver l'échéance d'origine des navets lors d'un transfert ou d'une duplication
|
||||
est proposé pour que ces opérations ne rajeunissent pas les lots.
|
||||
|
||||
Pour le ballast, une perte pourrait laisser un dépôt, une duplication une trace
|
||||
architecturale ou une anomalie. Aucune équivalence quantitative n'est décidée.
|
||||
Le [contrat cosmologique](cosmologie.md#le-ballast-de-léconomie) reste ouvert sur
|
||||
matière retirée, empreinte ou combinaison des deux. Une trace ne donne pas à elle
|
||||
seule le droit de créer des objets récupérables.
|
||||
|
||||
Boucle envisagée : **production et échanges → machine → ballast → lieu à
|
||||
explorer → bounty → expédition → trouvailles et nouveaux échanges**.
|
||||
Le lien automatique entre chaque étape est une proposition à éprouver.
|
||||
|
||||
## Ordre de travail proposé
|
||||
|
||||
**Dernière orientation : cadrer d'abord la scène d'arène ronde du labo et son
|
||||
bloc central**, pour rendre la carte d'épreuve concrète. Le tableau ci-dessous
|
||||
conserve les dépendances générales ; son ordre initial n'impose pas de terminer
|
||||
la BDD ou la simplification du tableau avant de concevoir cette scène.
|
||||
|
||||
| Étape | Résultat concret à obtenir | Ce qui doit être précisé juste avant |
|
||||
| --- | --- | --- |
|
||||
| 1. Simplifier le tableau | Publier et lire un message général en jeu et sur le site, retrouver les anciennes annonces et leurs suivis | Présentation des champs facultatifs ; compatibilité des anciennes catégories sans effacer l'historique |
|
||||
| 2. Observer l'existant | Produire un premier compte rendu quotidien depuis des données serveur réelles en BDD | Périmètre des statistiques, unités, identité joueur/monde, jours, visibilité et reprise après panne |
|
||||
| 3. Jouer une première bounty | Obtenir une carte, la garder, l'activer et terminer un objectif vérifié par le serveur, avec une seule attribution de récompense | Un objectif simple, par exemple une livraison ; rôle du groupe, financement et nature de l'XP |
|
||||
| 4. Éprouver l'économie du dimanche | Un PNJ vend des navets qui vieillissent ; une machine engage un stock et rend son résultat, chaque opération étant tracée | Cours et revente, échéance exacte, tickets, hasard et conversion en ballast |
|
||||
| 5. Relier les aventures au territoire | Définir les huit structures, puis éprouver une première activation et une expédition par ancre avant de décliner les huit | Articulation avec les quatre anciennes régions, emplacement, coûts, graine/version et protection des terrains existants |
|
||||
| 6. Faire vivre les prolongements | Alimenter les nouvelles régions des Backrooms avec le ballast validé ; ouvrir les notifications choisies et les récits du site | Contrat de ballast livré avant BR-01 ; règles de publication et préférences Discord |
|
||||
|
||||
Cet ordre est une proposition de départ, pas six grosses livraisons promises.
|
||||
Chaque étape peut être divisée selon les essais. Les rapports du site commencent
|
||||
à l'étape 2 ; les Backrooms et notifications sont des suites distinctes.
|
||||
Les nouveaux systèmes produisent leurs événements dès leur première livraison.
|
||||
Le premier parcours bounty peut utiliser un objectif existant sans attendre la
|
||||
génération des huit structures.
|
||||
|
||||
## Points à trancher au fil de ces premières étapes
|
||||
|
||||
1. **Récompenses** : quelle XP, payée par qui, attribuée à qui dans un groupe,
|
||||
pour quelle preuve d'accomplissement ?
|
||||
2. **Bounties** : carte physique liée à l'atlas ou autre présentation ; échange,
|
||||
copie, vol, perte, activation, abandon, échec et souvenir ?
|
||||
3. **Navets** : sept jours après achat ou échéance hebdomadaire commune ; horloge
|
||||
pendant les arrêts, cours de revente et devenir des navets pourris ?
|
||||
4. **Machines et ballast** : quels stocks, probabilités et résultats ; quelle
|
||||
part est une trace, une perte ou une matière récupérable ?
|
||||
5. **Territoire** : emplacement des huit structures, ordre d'ouverture et rôle
|
||||
du bloc originel ; frontières franchissables par quels moyens de jeu ?
|
||||
6. **Information** : ce que l'administration technique enregistre, ce que l'État
|
||||
sait dans la fiction, ce que le public voit et ce que Discord signale ?
|
||||
7. **Incubateurs d'XP** : dépôt initial, actions reconnues, croissance et plafond,
|
||||
familier porté ou présent, cumul, transfert/retrait et articulation avec les
|
||||
quêtes ? L'XP incubée et les récompenses directement attribuées doivent être
|
||||
distinguées pour éviter un double compte.
|
||||
|
||||
Ces distinctions doivent laisser exister secrets, découverte et contrebande.
|
||||
Un objet ramassé après un jet n'est pas automatiquement une vente. Les compteurs
|
||||
cumulés historiques ne permettent pas de reconstruire les journées antérieures.
|
||||
Une période non observée doit rester identifiable, sans inventer des zéros.
|
||||
|
||||
## Conditions de réalisation
|
||||
|
||||
Avant des écritures réelles : contrat de données additif, événements identifiés
|
||||
et datés, reprise sans double récompense ni double consommation, comportement
|
||||
explicite en cas de panne et séparation entre résultat tenté et résultat acquis.
|
||||
La BDD sert les analyses sans imposer des requêtes bloquantes au thread de jeu.
|
||||
Les frontières, prix, récompenses et pertes sont des règles serveur.
|
||||
|
||||
Aucune modification de monde, migration, régénération ou activation d'expansion
|
||||
n'est autorisée par cette note. Leurs futurs contrats doivent préserver les
|
||||
sauvegardes et secteurs existants. L'évolution des anciens contenus communautaires
|
||||
devra également être explicitée avant de changer leur stockage.
|
||||
|
||||
La première passe était documentaire. La réalisation autorisée ensuite porte
|
||||
uniquement sur le laboratoire de horde, selon son contrat propre. Les autres
|
||||
systèmes décrits comme futurs le restent.
|
||||
|
||||
### Retour sur main et prochaine version
|
||||
|
||||
- **À faire avant livraison : intégrer le travail validé sur `main`**, vérifier
|
||||
le résultat après intégration et reprendre le travail depuis cette base.
|
||||
- Le premier périmètre proposé était la simplification du tableau. La discussion
|
||||
se concentre maintenant sur la conception de l'arène du labo et du bloc central ;
|
||||
le périmètre de code de beta.167 est maintenant le prototype de horde du labo.
|
||||
L'ensemble de cette feuille
|
||||
de route n'est pas promis dans une seule version.
|
||||
- À la première livraison de code, revérifier le compteur disponible, synchroniser
|
||||
`mod_version`, `pack_version` et `packwiz/pack.toml`, puis exécuter les contrôles
|
||||
requis. Le prototype prépare désormais ces trois valeurs à beta.167.
|
||||
- Aucun tag, push, artefact public, canal packwiz ou déploiement personnel n'est
|
||||
effectué par cette prise de notes.
|
||||
|
||||
## Ajustement du 26 septembre — cartes de horde
|
||||
|
||||
La carte est consommable et invoque immédiatement des vagues là où on se trouve.
|
||||
Aucune inscription : on participe spontanément en arrivant sur le combat.
|
||||
Les monstres portent les butins spéciaux, ramassés librement par les joueurs.
|
||||
Chaque carte possède une illustration mappifiée (monstres, textures des butins),
|
||||
une identité et une difficulté lisible. Le décor circulaire reste une piste
|
||||
pour les futurs donjons. [Premier labo à trois cartes](horde-cartes-beta168.md).
|
||||
|
||||
## Retour de combat du 26 septembre — familiers et horde
|
||||
|
||||
Le créateur constate que les familiers ne sont pas utiles au combat : prévoir
|
||||
une refonte de leur contribution, à évaluer en combat réel contre une horde.
|
||||
Ce constat ne prouve pas une panne technique ; diagnostic des comportements,
|
||||
rôles et lisibilité encore à faire. Aucune refonte des familiers livrée dans ce lot.
|
||||
|
||||
Les [cartes beta.169](horde-invasion-beta169.md) restent inconnues avant leur
|
||||
prise en main. Elles ouvrent une invasion continue de monstres variés, dont la
|
||||
cadence accélère, avec butins propres aux espèces, rubis et saphirs. Apparition et
|
||||
mort réelle utilisent les runes SGA et les particules natives Minecraft.
|
||||
@@ -0,0 +1,85 @@
|
||||
# WG-ERODED-192 — couronnes et faces du massif
|
||||
|
||||
Branche `codex/eroded-massif-beta192`, Minecraft 26.3, graine de visite 42.
|
||||
Profil `eroded`, preset neuf `sanctuary_test:eroded_massif_v1`.
|
||||
|
||||
## Retour et résultat attendu
|
||||
|
||||
Après la restauration beta.191, les captures du 30 septembre à 22:02–22:05
|
||||
montrent des marches de terre et d’herbe sur les sommets arrondis. Le créateur
|
||||
souhaite de vrais changements de forme : quelques dessus plus plats sous les
|
||||
arbres, des faces plus franches, des creux d’érosion et des pentes conservées.
|
||||
Ne pas reproduire les terrasses périodiques 189 ou simplement peindre la roche.
|
||||
|
||||
## Variante
|
||||
|
||||
Trois couronnes sont choisies dans les points hauts du massif existant. Leur
|
||||
altitude dépend du terrain original. Les trois cerisiers réservés occupent ces
|
||||
couronnes, avec exclusion des points de plantation encore trop raides. Une coupe légèrement inclinée rabote le
|
||||
sommet ; une face plus raide regarde son versant descendant. Les empreintes
|
||||
ont des limites adoucies et irrégulières ; les petites entailles entre couronnes
|
||||
s’appuient sur la distance aux deux centres de Voronoï les plus proches.
|
||||
Les coupes retirent au plus 24 blocs du plafond géométrique local. Une cavité
|
||||
préexistante découverte par la coupe peut donner un sol visible plus bas.
|
||||
|
||||
C’est une érosion géométrique locale sur le bruit 3D existant, sans simulation
|
||||
physique. Pas de grille de niveaux Y, de remplissage des cavités ni de lissage
|
||||
global. Aucun changement de densité à Y≤240, dans les îlots aériens ou hors du
|
||||
massif central. Les formes originales restent la base sous le plafond sculpté.
|
||||
|
||||
La couverture végétale du massif n’est posée que sur les surfaces capables de
|
||||
la porter : les fortes pentes gardent la géologie réelle (stone, gisements,
|
||||
strates). Le gradient est mesuré sur des colonnes du massif en coordonnées
|
||||
monde, traversant les limites des chunks et ignorant les îlots aériens. Les
|
||||
hauteurs et pentes sont mises en cache dans un domaine borné. Cette variante
|
||||
n’utilise pas le solveur d’hydrologie ; les étangs et déversoirs existants restent
|
||||
responsables de l’eau.
|
||||
|
||||
Ancres, donjon, gemmes, soufre, ruines à coffres, galerie, rosace et palais sont
|
||||
conservés. La règle de roche historique garde son comportement lorsque son
|
||||
nouveau champ optionnel `slope` est absent. Les anciens presets gardent leurs
|
||||
paramètres ; aucun monde existant n’est modifié ou régénéré.
|
||||
|
||||
## Vérifications et limites
|
||||
|
||||
Génération native finale et réouverture réussies, graine 42 :
|
||||
`build/eroded192e-cold.json` et `build/eroded192e-warm.json`.
|
||||
Les hauteurs mesurées sont identiques après rechargement ; les trois troncs
|
||||
sont relus dans les chunks sauvegardés.
|
||||
|
||||
- 1 008 colonnes modifiées dans le relevé espacé de deux blocs ; 392 échantillons
|
||||
de sommet peu pentus. Trois couronnes et trois cerisiers contrôlés en blocs réels.
|
||||
- 39 366 densités profondes et aériennes identiques à la base ; comparaison
|
||||
supplémentaire hors du massif. Aucun niveau Y périodique réintroduit.
|
||||
- 1 545 échantillons rocheux contre 8 de terre/herbe parmi les fortes pentes
|
||||
contrôlées. Les plantations trouvent un sol de pente ≤0,75 dans leur chunk.
|
||||
- Ancres, 49 cartes/cadres, rosaces, galerie, quatre coffres de ruines, donjon,
|
||||
gemmes, soufre et étangs contrôlés. Cascade large et absence d’arbres dans
|
||||
les colonnes d’eau et de berge contrôlées conservées.
|
||||
|
||||
Démarrage final : 12,126 s à froid et 0,613 s à chaud, zéro région d’hydrologie ;
|
||||
83,610 s à froid et 18,501 s à chaud avec
|
||||
l’ensemble des contrôles et le remplissage de l’atlas. Ces contrôles ne tournent
|
||||
pas au lancement du solo. Les mesures intermédiaires pendant la compilation
|
||||
concurrente ne servent pas de référence de performance.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack` réussi en 9 min 9 s,
|
||||
265 GameTests réussis. Après ajustement du placement des cerisiers et de son
|
||||
contrôle de réouverture, `:sanctuary-test:check :sanctuary-test:build` réussi et
|
||||
pack de test réassemblé : 175 classes et 121 ressources vérifiées dans le JAR,
|
||||
identique à sa copie distribuée (`build/eroded192-pack-receipt.json`).
|
||||
|
||||
La validation technique ne vaut pas validation esthétique du créateur. Cette
|
||||
itération vise le massif central de la graine de visite ; elle ne remodèle pas
|
||||
les récifs aériens. Pas de publication ni de mise à jour de l’installation Prism.
|
||||
|
||||
## Visite
|
||||
|
||||
Nouveau solo `Sanctuary-Eroded-Massif-192-Solo`, run `visite192`, profil `eroded`,
|
||||
graine 42, vue 32 et simulation 12, spectateur et commandes autorisées.
|
||||
Position préparée (94,316,153), face au massif. Les 49 cartes et cadres ainsi
|
||||
que les huit ancres éteintes et l’origine sans relais ont été relus dans cette
|
||||
copie neuve. Options et shader repris du solo 191, fermé et sauvegardé à 22:14.
|
||||
Client Vulkan lancé et entrée dans le monde confirmée à 22:34 ; vue 32,
|
||||
simulation 12 et visibilité de l’ascension contrôlées dans
|
||||
`build/eroded192-solo.log`.
|
||||
@@ -0,0 +1,83 @@
|
||||
# STEM-185 — ligne fine, portail de toiture et vitres reliées
|
||||
|
||||
Ticket du 30 septembre 2026, branche `codex/fine-stem-beta185`.
|
||||
Le créateur valide la fleur et le palais beta.184, ainsi que la galerie inférieure.
|
||||
Il demande de supprimer l'escalier, les paliers et la grosse colonne : une ligne
|
||||
d'un bloc doit guider visuellement le bateau-poule vers le palais. Compléments
|
||||
pendant la réalisation : incruster le portail horizontal au sommet du dôme,
|
||||
libérer l'espace au-dessus de la carte, fermer le jour sous les vitres supérieures.
|
||||
|
||||
## Contrat
|
||||
|
||||
Nouveau profil de labo `stem`, preset `sanctuary_test:fine_stem_v1`, réglages
|
||||
`sanctuary_test:fine_stem_v1_10`, graine de visite **42**, version **beta.185**.
|
||||
La dimension 1600, le champ de bruit 640, l'île et les eaux retenues restent
|
||||
ceux de beta.184. Aucun changement de format, d'ancien preset ou de sauvegarde.
|
||||
La visite beta.184 a été arrêtée proprement à la demande du créateur ; une
|
||||
nouvelle sauvegarde est préparée pour la relance.
|
||||
|
||||
## Résultat
|
||||
|
||||
- Rosace et Bugrock toujours en (0,640,0), palette et huit axes conservés.
|
||||
- **Une seule colonne de calcite en (0,Y,0)** au-dessus du dôme inférieur,
|
||||
de Y=652 jusqu'au départ de l'évasement à 1160. Pas de spirale, de marches,
|
||||
de plateforme intermédiaire, de balustrade ou de pont d'escalier.
|
||||
- Les huit nervures s'élargissent progressivement près du sommet, en partant
|
||||
du même bloc central. Fleur, balcon et pièce du palais à Y=1278 conservés.
|
||||
- Portail horizontal 7×7, ouverture 5×5, **incrusté à Y=1309 dans le dôme**.
|
||||
Son cadre remplace les vitres sommitales et touche la toiture sur tout son
|
||||
pourtour extérieur. Le passage central traverse la voûte ; plus de cadre
|
||||
suspendu au milieu de la salle, au-dessus des 49 cartes au sol.
|
||||
- Un soubassement de calcite ferme le bloc d'air sous les panneaux de verre.
|
||||
Les huit passages restent ouverts. Leur dégagement est vérifié avec les
|
||||
collisions natives, pour une coque standard de 1,375 bloc et son pilote.
|
||||
- Les moteurs du bateau-poule existant ne comportent pas de plafond fixe à
|
||||
640. Aucun changement de mécanique de vol ni de comportement de familier.
|
||||
|
||||
La révélation de la couronne en montant reprend beta.184. La galerie inférieure,
|
||||
son portail 5×5, le soufre, les secteurs miniers, les étangs et le donjon restent
|
||||
ceux validés. Les portails restent des infrastructures, sans voyage dimensionnel.
|
||||
|
||||
## Vérifications et visite
|
||||
|
||||
Contrôle natif final `solo185c/stem/42` réussi : **508 tranches d'un seul bloc**,
|
||||
16 approches libres (huit par lieu, coque et pilote légèrement au-dessus des
|
||||
tapis de mousse), 104 colonnes vitrées appuyées sur calcite, 24 blocs de cadre
|
||||
reliés à la toiture. Les 16 868 entrées du plan correspondent aux blocs générés.
|
||||
La voûte hors de l'ouverture centrale reste identique à beta.184. Aucune marche
|
||||
ni palier dans cette variante. Reçu : `build/stem185-quick-result.json`.
|
||||
|
||||
L'île conserve ses 567 échantillons de densité vérifiés, zéro région d'hydrologie,
|
||||
les trois cerisiers, cinq spawners, quatre wagonnets à butin, la galerie, le soufre
|
||||
et les trois secteurs de gemmes. Le serveur démarre en 5,2 s ; préparation avec
|
||||
sondages, atlas et contrôles en 42,3 s. Ce dernier temps inclut les tests.
|
||||
|
||||
Lecture NBT du monde arrêté : 49 cartes complètes et figées, cadres horizontaux
|
||||
et identifiants uniques. Ancien cadre suspendu en air, nouveau cadre de toiture
|
||||
en obsidienne, tige centrale isolée et soubassement du vitrage confirmés.
|
||||
Reçus : `build/stem185-saved-atlas.json`, `build/stem185-saved-blocks.json`.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch`
|
||||
réussi en **7 min 3 s**, **265/265 GameTests**. Journal :
|
||||
`build/stem185-check-build.log`. Le daemon de compilation a été arrêté pour
|
||||
libérer la mémoire avant le client Vulkan.
|
||||
|
||||
Solo Vulkan ouvert le 30 septembre à **07:32:51**. Nouveau monde
|
||||
`visite185/stem/42`, `Sanctuary-Fine-Stem-185-Solo`, créatif, commandes et vol,
|
||||
vue 32 chunks et simulation 12. Départ préparé dans le palais supérieur.
|
||||
Entrée confirmée en (6.5,1280,8.5), vue 32 et simulation 12 dans le journal
|
||||
`build/stem185-solo.log`. Vérification native du frustum réussie à 07:32:53 :
|
||||
couronne cachée depuis le sol, révélée en arrivant à la rosace. Inspection de
|
||||
la fenêtre du jeu : carte au sol présente et vitrages reliés au soubassement.
|
||||
L'ancienne sauvegarde beta.184 reste conservée. Aucun canal public ou instance
|
||||
Prism modifié ; seuls les artefacts locaux et le laboratoire sont livrés.
|
||||
Les contrôles de passage ne
|
||||
remplacent pas un trajet intégral piloté en bateau-poule.
|
||||
|
||||
| Lieu | Téléportation |
|
||||
| --- | --- |
|
||||
| Rosace du Bugrock | `/tp 0.5 639 5.5 180 -20` |
|
||||
| Palais et carte au sol | `/tp 6.5 1280 8.5 140 35` |
|
||||
| Portail dans la toiture | `/tp 0.5 1312 0.5 180 75` |
|
||||
| Liaison fine, vue extérieure | `/tp 24 920 24 135 -20` |
|
||||
| Portail inférieur | `/tp 0.5 177 7.5 180 30` |
|
||||
@@ -0,0 +1,53 @@
|
||||
# Les quatre îles dans Sanctuary normal
|
||||
|
||||
## Validation du 5 octobre 2026
|
||||
|
||||
Le joueur valide le rendu beta.224 et demande que les quatre îles soient
|
||||
disponibles dans Sanctuary de base, sans Sanctuary Test.
|
||||
Branche de vérification : `codex/four-islands-base224`, base `4554ea1`.
|
||||
|
||||
L’audit confirme que cette intégration est déjà effective dans le mod et le
|
||||
MRpack normal beta.224. Aucun transfert supplémentaire de code n’est nécessaire.
|
||||
Cette livraison documentaire ne change ni les binaires ni leur version.
|
||||
|
||||
| Ancre | Expansion validée | Contenu principal |
|
||||
| --- | --- | --- |
|
||||
| Nord | Glaciale | Taïgas géantes, glace, améthyste, igloos et manoir |
|
||||
| Sud | Aride | Canyons colorés, forêts, sentiers et pyramide piégée |
|
||||
| Ouest | Océanique | Océan, monument, épaves et berges en roche jaune |
|
||||
| Est | Volcanique | Volcan actif, jungles, bambou et temple de jungle |
|
||||
|
||||
Créer un **nouveau monde Sanctuary**, avec le choix Petit/Moyen/Grand.
|
||||
Les expansions de 1024 blocs sont débloquées par leurs ancres cardinales
|
||||
et leurs demandes de matériaux ; elles ne sont pas toutes prégénérées au départ.
|
||||
Les anciens mondes conservent leur génération enregistrée.
|
||||
|
||||
## Contrôle de l’intégration
|
||||
|
||||
- Le preset public `sanctuary:sanctuary` utilise `island224_medium`. Le sélecteur
|
||||
du mod normal propose également les profils Small et Large de cette génération.
|
||||
- `SanctuaryMod` enregistre directement les générateurs, l’adaptateur d’expansion
|
||||
et les interactions des ancres. Aucun de ces chemins ne dépend de l’activation
|
||||
de `QuickTestMod`. Les anciens noms Java et identifiants `sanctuary_test:*`
|
||||
sont conservés pour la compatibilité ; ils ne constituent pas une dépendance
|
||||
au module optionnel.
|
||||
- Vérification du MRpack normal : générateurs, structures et biomes des quatre
|
||||
directions présents pour les trois tailles ; un seul JAR Sanctuary, aucune
|
||||
dépendance au module `sanctuary_test`, aucun monde ni JAR Sanctuary Test inclus.
|
||||
- La création conserve les types vanilla et une seule entrée publique Sanctuary.
|
||||
- Le build complet et les sept GameTests beta.224 ont déjà réussi, dont le
|
||||
chargement des profils sans le module de labo. Ils ne sont pas relancés pour
|
||||
cette modification documentaire. Les essais natifs des différentes îles sont
|
||||
décrits dans leurs tickets ; cet audit ne revendique pas une nouvelle partie
|
||||
complète avec les quatre îles simultanément.
|
||||
|
||||
Reçu local : `build/four-islands-base224-receipt.json`.
|
||||
Artefact standard : `build/Sanctuary-beta.224.mrpack`, copie identique dans
|
||||
`~/Downloads/Sanctuary-beta.224.mrpack`, SHA-256 :
|
||||
|
||||
```text
|
||||
01aed4e6a0d9e2965ed8201372eef3aaecab3b0c6dce3fb84586895ed9076885
|
||||
```
|
||||
|
||||
Cette validation ne migre aucun monde et ne modifie pas le canal packwiz ou
|
||||
l’installation Prism personnelle.
|
||||
@@ -0,0 +1,101 @@
|
||||
# WG-GALLERY-198 — création Large interrompue par la galerie centrale
|
||||
|
||||
Branche `codex/gallery-generation-beta198`, depuis beta.197. Minecraft 26.3,
|
||||
Fabric 0.19.5, Java 25. Retour R013 et journal `message-11.txt` fourni par le
|
||||
créateur : arrêt Windows à la création Large, graine `4736390610738281858`.
|
||||
|
||||
## Cause et correction
|
||||
|
||||
L'exception `No supported central gallery floor` dans `Cavern183.create`
|
||||
interrompt la décoration du premier chunk. Le repli beta.197 exige encore de
|
||||
la roche exactement en (0,0), sous la surface de cette même colonne. Sur cette
|
||||
graine, son sommet n'est qu'à Y=168 et presque toute la colonne traverse du
|
||||
vide, alors que les colonnes voisines possèdent des assises. L'erreur a été
|
||||
reproduite sur macOS avec la même graine avant modification. Ce journal ne
|
||||
montre pas une panne du pilote Vulkan ni un manque de mémoire.
|
||||
|
||||
Les nouveaux profils beta.198 conservent d'abord toutes les recherches
|
||||
existantes. Un dernier repli ne s'exécute que lorsqu'elles échouent : il compare
|
||||
l'assise et la couverture sur l'emprise de la chambre, de Y=32 à Y=276, sans
|
||||
condition éliminatoire sur la seule colonne centrale. Au plus 12 250 sondes,
|
||||
une seule planification mise en cache par source de biomes. Même un puits
|
||||
entièrement vide conserve la salle et sa fondation locale existante, plutôt
|
||||
que d'annuler la création du monde. Dans ce cas limite, la chambre peut être
|
||||
ouverte sur le vide : ce correctif ne prétend pas créer une cavité fermée dans
|
||||
une roche absente.
|
||||
|
||||
Le portail reste horizontal en X=0, Z=0. Les dimensions de la chambre,
|
||||
maçonnerie et règles du relief, de l’eau, des biomes et des minerais restent
|
||||
identiques.
|
||||
Aucun calcul régional d'hydrologie ajouté.
|
||||
|
||||
## Sauvegardes et distribution
|
||||
|
||||
`stable_gallery198` est un paramètre de codec additif, faux par défaut.
|
||||
Les trois nouveaux profils `shared_island198_{small,medium,large}` et le preset
|
||||
public Sanctuary l'activent. Les profils 196/197 restent présents et gardent
|
||||
leur comportement ; leur personnalisation conserve leur révision exacte.
|
||||
Les protections de spawn introduites en 197 restent actives en 197 et 198.
|
||||
|
||||
Le pack de test est destiné à un **nouveau monde**. Une création interrompue
|
||||
beta.197 ne migre pas automatiquement en beta.198 : recréer un nouveau monde
|
||||
avec la même graine et la taille souhaitée. Aucun monde personnel modifié,
|
||||
aucun chunk régénéré, aucune publication du canal ni installation Prism.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- Échec beta.197 reproduit dans `build/worldgen-lab/gallery198-baseline/`.
|
||||
- Tests synthétiques réussis : puits vide, appuis autour d'un centre vide,
|
||||
fine couche haute, roche pleine, déterminisme et borne de calcul.
|
||||
- Matrice native réussie : Small/Medium/Large, graines 0, 17, 42,
|
||||
`4736390610738281858` et `-9223372036854775808`. Plans répétés à l'identique ;
|
||||
toutes les galeries admises par beta.197 conservent exactement leur plan.
|
||||
Le nouveau repli s'active pour la graine du journal, dans les trois tailles.
|
||||
- Small, Medium et Large sur la graine fournie : création puis réouverture
|
||||
réussies. Portail en `(0,183,0)`, trois salles accessibles, respectivement
|
||||
1 927, 1 925 et 1 930 cellules accessibles ; géométrie et ornements identiques
|
||||
après reprise. Démarrages serveur à froid : 18,4 / 24,2 / 21,1 secondes ;
|
||||
ces mesures locales ne sont pas un temps de chargement garanti sous Windows.
|
||||
- Client intégré **Vulkan**, vue 8 chunks et mémoire Java 2 Gio : Large sur
|
||||
la graine exacte, arrivée réelle en `(-15.5,254,-15.5)`, huit recherches
|
||||
natives de spawn sur l’île. Parcours FR/EN des trois tailles, annulation,
|
||||
aller-retour disque et maintien des révisions historiques 196 et 197.
|
||||
Réussi en 1 min 2 s, trace `build/gallery198-client.log`.
|
||||
|
||||
Commande du contrôle ciblé, rejouable dans un nouveau dossier :
|
||||
|
||||
```sh
|
||||
python3 scripts/worldgen_lab.py verify --profile large \
|
||||
--seed 4736390610738281858 --run galerie-regression-neuve \
|
||||
--checks gallery198 --memory 2048
|
||||
```
|
||||
|
||||
Les traces finales sont dans `build/worldgen-lab/gallery198-targeted/`.
|
||||
Le mode normal `--checks full` conserve toutes ses assertions. Son premier
|
||||
passage dans `gallery198-fixed/` a démarré correctement puis s'est arrêté sur
|
||||
un **autre contrôle de laboratoire** : le secteur émeraude contient 171 blocs,
|
||||
dont 120 exposés, contre le minimum attendu de 200. Ce seuil est uniquement
|
||||
vérifié par le banc de test, pas pendant une partie ordinaire. Ni l'assertion
|
||||
ni les minerais ne sont modifiés ici. La vérification complète de toutes les
|
||||
décorations sur cette graine reste donc ouverte ; seuls les contrôles ciblés
|
||||
explicitement indiqués sont déclarés réussis.
|
||||
|
||||
Aucun essai effectué directement sous Windows ; le défaut du journal est
|
||||
reproduit avec le même générateur natif et la même graine sur cette machine.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -PsanctuaryFocusedTests=menus`
|
||||
réussi en **4 min 27 s**, 139 tâches : contrôles purs dont le nouveau repli,
|
||||
quatre GameTests menus et assemblages. Journal : `build/gallery198-check-build.log`.
|
||||
Le parcours client utilise une instance de développement et ne produit pas de
|
||||
campagne de captures.
|
||||
|
||||
Export local **Sanctuary-Test-beta.198.mrpack**, **12 282 084 octets**.
|
||||
SHA-256 : `647498a0da3330ce0483e65fe6510ec8d09b6975365261fe59a57d61f3ef0688`.
|
||||
Archive ZIP, versions, dépendances et classes de chaque JAR vérifiées contre
|
||||
le build. Toutes les anciennes ressources de données restent identiques à
|
||||
beta.197, sauf le preset public qui sélectionne maintenant Medium beta.198.
|
||||
Les nouvelles ressources activent explicitement le correctif ; les anciens
|
||||
profils ne le font pas. Les tests natifs finaux correspondent à l'empreinte
|
||||
finale des sources de génération. Reçu : `build/gallery198-artifact.json`.
|
||||
Copie et guide dans `Downloads/`, sans sauvegarde, réglage personnel ni journal
|
||||
inclus dans l'archive.
|
||||
@@ -0,0 +1,96 @@
|
||||
# beta.157 — photo obligatoire et galerie de captures
|
||||
|
||||
## Contrat de migration communautaire v2
|
||||
|
||||
La génération, les chunks et les sauvegardes Minecraft ne changent pas.
|
||||
Seul le document communautaire évolue : champ `photo`, JPEG encodé en base64,
|
||||
48 Kio binaires maximum, dimensions de 1 × 1 à 960 × 540 pixels.
|
||||
Les captures originales ne sont jamais modifiées. Les copies destinées à la Gazette
|
||||
sont redimensionnées et réencodées, sans métadonnées, avant transmission.
|
||||
|
||||
Les nouveaux articles exigent une photo valide. Les articles v1 restent lisibles ;
|
||||
leur prochaine modification exige une photo. Avis, intendance et réponses restent
|
||||
textuels. La modération ne nécessite pas d'ajouter une photo à un ancien article.
|
||||
La photo est enregistrée atomiquement avec le texte, auteur et révision ; pas de
|
||||
référence à un chemin local, d'URL distante ou de média orphelin persistant.
|
||||
|
||||
Fichier : v1 est lu sans modification. À la première écriture réussie, une copie
|
||||
exacte `sanctuary-community.json.v1.bak` est créée sans écrasement, puis le document
|
||||
v2 est écrit atomiquement. Un backup différent bloque la migration. La limite de
|
||||
64 Mio du document reste appliquée, photos comprises. Un retour à beta.156 exige
|
||||
de restaurer la copie v1 et perd les changements communautaires postérieurs.
|
||||
Ne pas restaurer pendant que le serveur tourne.
|
||||
|
||||
MariaDB : arrêter les écritures du site et du serveur, sauvegarder la base, exécuter
|
||||
explicitement `community/schema-v1-to-v2.sql` ou la migration Laravel équivalente,
|
||||
puis lancer les deux applications v2. Migration additive : colonne `photo` nullable,
|
||||
aucune suppression ni réécriture des articles existants. Le mod n'exécute aucune
|
||||
migration SQL au démarrage. Les applications v1 refusent le schéma v2. Pas de
|
||||
rollback automatique destructif ; restaurer la sauvegarde avec les deux logiciels
|
||||
v1 si nécessaire. Aucun changement n'est appliqué aux bases ou mondes personnels
|
||||
par la préparation de cette livraison.
|
||||
|
||||
Réseau : canaux v1 conservés, action `photo` par fragments de 8 000 caractères,
|
||||
au plus 9 fragments et 65 536 caractères, accusés un par un. Une seule photo
|
||||
transitoire par joueur, liée à l'UUID de publication, expire après deux minutes ;
|
||||
limite globale de 128 transferts. Les listes ne transportent pas les photos ;
|
||||
seul le détail d'un article les contient. Le plafond des réponses
|
||||
passe à 262 144 caractères pour une photo et une discussion complète ; les
|
||||
clients et le serveur doivent être mis à jour ensemble vers beta.157. Les
|
||||
anciens clients ne peuvent plus créer d'article sans photo.
|
||||
|
||||
Galerie : grille de 2 ou 3 colonnes selon la taille d'interface, molette et barre
|
||||
native, 24 captures par page parmi les 4 096 PNG les plus récents par nom, lecture
|
||||
en arrière-plan. Aperçu puis assignation explicite ; Annuler conserve le brouillon.
|
||||
Les captures illisibles restent visibles mais désactivées. Limites sources :
|
||||
32 Mio, 8 192 pixels par axe et 32 millions de pixels. Textures libérées à la
|
||||
fermeture. Le site accepte PNG/JPEG et nécessite PHP GD ; le mod propose les PNG
|
||||
du dossier `screenshots` de son instance.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- Tests natifs Vulkan Minecraft 26.3 : galerie FR/EN aux échelles 2/3/4,
|
||||
molette, pagination, aperçu, annulation avec brouillon conservé, bouton Publier
|
||||
désactivé sans photo, envoi fragmenté, photo visible et relecture après
|
||||
réouverture de l'adaptateur. Parcours réussi en fichier et MariaDB.
|
||||
- Tests métier : photo manquante/invalide, révision, auteur, conservation après
|
||||
modification, reprise idempotente, redémarrage fichier/SQL, ancien article v1,
|
||||
copie de migration exacte, fragments hors ordre/incomplets/expirés.
|
||||
- Site : 17 tests HTTP, 97 assertions réussies ; photo obligatoire, faux fichier,
|
||||
dimensions refusées, réduction, lecture, isolement serveur, auteur, masquage,
|
||||
anciennes publications et conservation après modification.
|
||||
- Échange réel Java/PHP sur une MariaDB isolée : création en jeu lue par le site,
|
||||
modification et réponse Web relues en Java, article/photo du site décodés par
|
||||
Java. Migration Laravel et alternative SQL testées sur bases de développement.
|
||||
- `./gradlew check build assemblePack` : 252 GameTests serveur terminés en
|
||||
3,457 minutes, 229 réussis et les mêmes 23 échecs que la baseline beta.154/155
|
||||
(liste comparée intégralement, aucun nouvel identifiant en échec). La commande
|
||||
générale échoue donc après 6 min 59 s ; cette limite préexistante reste ouverte.
|
||||
- Régression native du menu pause : FR/EN, échelles 2/3/4, carte, défilements
|
||||
indépendants, pagination, article et avis longs, réponse, options et reprise :
|
||||
réussie avec les articles munis d'une photo.
|
||||
- Construction et assemblage séparés, sans relancer les 23 GameTests connus :
|
||||
`check build assemblePack -x :sanctuary:runGameTest` réussit (avec le parcours
|
||||
client natif du menu pause), 2 min 56 s.
|
||||
|
||||
Les captures d'essai sont des mires générées dans une instance de développement,
|
||||
sans accès aux captures ou sauvegardes personnelles. Pas de déploiement sur le
|
||||
site public, serveur personnel, canal packwiz ou Prism. Les JAR beta.154–156
|
||||
restent présents ; JAR et MRpack beta.156 gardent leurs empreintes antérieures.
|
||||
|
||||
|
||||
Le site correspondant est sur `codex/community-photos`, commits `e3ae3eb` et
|
||||
`9626e95`, sans push ni publication. Logs de développement :
|
||||
`build/photos157-client-file.log`, `build/photos157-client-database.log`,
|
||||
`build/photos157-interop-*.log`, `build/photos157-check-build.log` et
|
||||
`build/photos157-final-build.log`.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
JAR `mods/sanctuary/build/libs/sanctuary-beta.157.jar` et pack
|
||||
`build/Sanctuary-beta.157.mrpack`, versions et JAR embarqué vérifiés.
|
||||
Les 29 ressources de shaders sont identiques à beta.156 (socle beta.151).
|
||||
Reçu complet : `build/photos157-validation.json`.
|
||||
|
||||
- SHA-256 mods/sanctuary/build/libs/sanctuary-beta.157.jar: `96ff6d22ab593eb113cde63239ff4839f6a75b9a165fbec93a0aaab3c09dee7c`.
|
||||
- SHA-256 build/Sanctuary-beta.157.mrpack: `b03da5f67a3dcf8051666641dccd379a52b8c3c09308e1654b00440a37693e96`.
|
||||
@@ -0,0 +1,26 @@
|
||||
# beta.165 — Gazette en article et conversation
|
||||
|
||||
Photo en tête, titre et description dessous dans le même conteneur sombre.
|
||||
Auteur, visage, date et actions sous le conteneur. Réponses à droite avec
|
||||
défilement indépendant et saisie fixe ; sur GUI étroit, réponses sous l’article.
|
||||
Retour et Actualiser restent en haut, comme pour le tableau.
|
||||
|
||||
Interface cliente uniquement, sans changement de stockage ni de monde.
|
||||
Test client Vulkan réussi en FR/EN aux échelles GUI 2, 3 et 4 :
|
||||
position du panneau de réponses, repli sous l’article, défilement disponible,
|
||||
brouillon conservé après redimensionnement et réponse envoyée puis relue.
|
||||
Le scénario existant du tableau et celui du menu pause passent également.
|
||||
Captures conservées dans `build/qa-beta165/` (image synthétique de test).
|
||||
Inspection visuelle FR GUI 2 et GUI 4 effectuée.
|
||||
Journal : `build/beta165-client.log`.
|
||||
|
||||
`check build assemblePack --continue` exécuté : mêmes 23 GameTests en échec
|
||||
qu’en beta.164, aucun nouvel échec. Comparaison enregistrée dans
|
||||
`build/session165-server-failures.json`. La vérification générale reste en échec.
|
||||
Assemblage séparé réussi avec `build assemblePack :sanctuary-test:exportDuoLaunch
|
||||
-x :sanctuary:check` après cette vérification.
|
||||
|
||||
JAR local : `mods/sanctuary/build/libs/sanctuary-beta.165.jar`.
|
||||
SHA-256 : `03a954caf68089862b1d237dcf1ebaa501e3ce3cfedb1f5184e9412e73fd711d`.
|
||||
Anciens JAR conservés ; aucune publication distante.
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
# GEM-01 — Gemmes, argile et découvertes — beta.126
|
||||
|
||||
Contrat du 17 septembre 2026, branche `codex/gems-beta126`, Minecraft 26.3.
|
||||
|
||||
Deux gemmes natives complètent l'émeraude : `sanctuary:ruby` et
|
||||
`sanctuary:sapphire`. Chaque famille comprend un bloc de stockage, un minerai
|
||||
ordinaire et un minerai des abîmes. Les huit PNG du créateur sont copiés à
|
||||
l'identique ; leurs empreintes figurent dans `tools/gems-textures-beta126.json`.
|
||||
Les noms des fichiers français `saphir` sont associés aux identifiants anglais
|
||||
stables `sapphire`, sans modifier les pixels. Les deux items utilisent les fichiers de remplacement
|
||||
`Desktop/ruby.png` et `Desktop/saphir.png` fournis en fin de livraison.
|
||||
|
||||
L'ordre créatif est émeraude, rubis, saphir : ingrédients, blocs de stockage,
|
||||
minerais ordinaires et minerais des abîmes dans leurs onglets natifs respectifs.
|
||||
Minage à la pioche de fer ou mieux, résistance et expérience comme l'émeraude,
|
||||
Fortune, Toucher de soie, cuisson/four à fusion et conversion 9 gemmes ↔ 1 bloc.
|
||||
Les blocs peuvent former un socle de balise et les gemmes servir de paiement.
|
||||
Les recettes rejoignent la collection actuelle de l'émeraude, sans ajouter de
|
||||
transactions de villageois. Libellés français et anglais, tags communs `c:`.
|
||||
|
||||
## Génération procédurale et contrat de compatibilité
|
||||
|
||||
Profil initial **gemmes 1 / beta.126** : quatre tentatives par chunk et par
|
||||
gemme, filons natifs de taille 3, hauteur uniforme Y0–256, probabilité de rejet
|
||||
au contact de l'air de 0,25. Ces nombres sont un réglage initial à équilibrer
|
||||
lors de la future refonte ; aucun quota de gemmes par chunk n'est garanti.
|
||||
Les variantes ordinaires remplacent les roches du tag vanilla
|
||||
`stone_ore_replaceables`, les variantes des abîmes celles de
|
||||
`deepslate_ore_replaceables`.
|
||||
|
||||
Les fichiers `worldgen/feature/ore_<gemme>.json`,
|
||||
`worldgen/placed_feature/ore_<gemme>.json` et les tags de biomes
|
||||
`has_ore/<gemme>` séparent les cibles, la forme, la fréquence, la hauteur et
|
||||
les régions. Un datapack peut les remplacer sans recompiler le mod. Le code
|
||||
réutilise `OreFeature` et le hasard natif issu de la graine ; il limite ces
|
||||
filons aux mondes utilisant `SanctuaryChunkGenerator`. Les biomes vanilla
|
||||
partagés avec Sanctuary restent compatibles sans ajouter les gemmes aux
|
||||
mondes vanilla, au Nether ou à l'End.
|
||||
|
||||
Cette évolution additive est autorisée pour les **nouveaux chunks uniquement**.
|
||||
Aucun remplissage rétrospectif, aucune régénération, aucun remplacement de chunk
|
||||
sauvegardé ni activation d'expansion. Les codecs du relief, les dimensions et
|
||||
le format des sauvegardes restent inchangés. Les filons suivent les protections
|
||||
existantes de la décoration native. Les anciens profils expérimentaux précédant
|
||||
le générateur Sanctuary unifié ne sont pas étendus.
|
||||
|
||||
## Argile spéciale dans le Clay Workshop
|
||||
|
||||
Le bloc d'argile vanilla conserve les couleurs échantillonnées sur le modèle
|
||||
original, animal découvert ou import GLB. Les argiles colorées et les autres
|
||||
blocs continuent à transférer leur palette de texture. Une même règle est
|
||||
appliquée à l'aperçu client et au résultat serveur. Le changement de matériau
|
||||
invalide le résultat même si les deux palettes sont identiques. Le texte de
|
||||
l'atelier explique l'exception en français et en anglais.
|
||||
|
||||
Une sculpture coûte toujours un bloc ; aucune recette, découverte, donnée de
|
||||
sculpture déjà fabriquée ni règle de placement n'est modifiée.
|
||||
|
||||
## Commande de découverte commune
|
||||
|
||||
`/sanctuary discovery all` découvre tous les blocs, objets et espèces enregistrés.
|
||||
Les variantes `blocks all`, `items all` et `mobs all` ciblent une catégorie ;
|
||||
`block <identifiant>`, `item <identifiant>` et `mob <identifiant>` ciblent une
|
||||
entrée avec la complétion native. Un sélecteur de joueurs en fin de commande
|
||||
est facultatif ; sans cible, elle s'applique au joueur qui l'exécute.
|
||||
|
||||
Exemples :
|
||||
|
||||
```mcfunction
|
||||
/sanctuary discovery all
|
||||
/sanctuary discovery mobs all
|
||||
/sanctuary discovery block minecraft:stone
|
||||
/sanctuary discovery item minecraft:diamond
|
||||
/sanctuary discovery mob minecraft:cow
|
||||
/sanctuary discovery all @a
|
||||
```
|
||||
|
||||
La permission suit « Autoriser les commandes » en solo et les droits opérateur
|
||||
sur serveur. La console doit préciser la cible. Les identifiants invalides,
|
||||
l'air et les types d'entités sans espèce découvrable sont refusés.
|
||||
|
||||
Les blocs passent par le registre de découvertes et son événement existant ;
|
||||
les objets passent par `RecipeService.discover`. Les collections et recettes
|
||||
sont ensuite recalculées normalement. Les espèces rejoignent `seen_mobs`,
|
||||
la même donnée que l'observation naturelle, consommée par les familiers,
|
||||
le Métabli et le Clay Workshop. Il n'existe aucun drapeau de déblocage parallèle.
|
||||
Les catalogues déjà ouverts sont à rouvrir après la commande.
|
||||
|
||||
La commande conserve les quantités possédées et les compteurs de combat,
|
||||
minage, pose et fabrication. Elle ne donne pas d'objets, n'achète pas les skills
|
||||
et n'attribue pas d'advancements. Les recettes réservées aux opérateurs gardent
|
||||
leurs règles. Les historiques personnels sont enrichis sans changer leur
|
||||
schéma ; la commande refuse les données illisibles plutôt que les remplacer.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Client natif Minecraft 26.3 / Java 25, `Gems126ClientChecks`, réussi en
|
||||
1 min 08 s. Les mondes sont jetables, sans sauvegarde personnelle ouverte :
|
||||
|
||||
- Les huit items et six blocs sont présents, avec les huit textures exactes.
|
||||
Quatre groupes créatifs respectent émeraude → rubis → saphir, sans doublons.
|
||||
- Douze recettes natives, découverte du bloc de stockage, outil fer minimum,
|
||||
Fortune III, Toucher de soie et balises passent les contrôles serveur.
|
||||
- Graine **126**, profil gemmes 1, 81 chunks autour de l'origine : 7 rubis dans
|
||||
la pierre et 8 dans la roche des abîmes ; 15 saphirs dans la pierre et 10 dans
|
||||
la roche des abîmes. La génération est refusée dans le monde plat vanilla.
|
||||
Les minerais persistent à la reconnexion, et un minerai retiré ne réapparaît pas.
|
||||
- L'argile conserve exactement les couleurs des voxels d'une vache et d'un GLB
|
||||
texturé. Bois et argile colorée transfèrent toujours leur palette. Le retour
|
||||
à l'argile, l'égalité aperçu/résultat et le coût d'un bloc en survie sont vérifiés.
|
||||
- La commande native respecte « Autoriser les commandes », accepte une cible
|
||||
et la console, refuse les identifiants invalides et permet une espèce, un
|
||||
bloc, un objet, toutes les espèces ou tout le contenu. Les recettes liées
|
||||
sont recalculées. La répétition est idempotente et les découvertes survivent
|
||||
à la reconnexion sans inventer de compteurs de combat ou de possession.
|
||||
|
||||
Logs et captures dans `build/gems126-client.log` et
|
||||
`mods/sanctuary/build/run/clientGameTest/screenshots/`. Le GameTest dédié
|
||||
reste exclu conformément au refus antérieur de son EULA. Le build complet et
|
||||
les archives sont vérifiés séparément avant publication.
|
||||
|
||||
|
||||
Build final `./gradlew check build assemblePack assembleTestPack
|
||||
-x :sanctuary:runGameTest` réussi en **2 min 10 s**, 126 tâches. Les contrôles
|
||||
natifs de gameplay précèdent uniquement le remplacement final des deux PNG
|
||||
d'items ; les huit fichiers livrés sont vérifiés à l'octet près contre les
|
||||
sources, tous en 16 × 16. Les JAR de sources correspondent aux sources courantes.
|
||||
L'audit entre les binaires beta.125 et beta.126 ne trouve que les 112 entrées
|
||||
de production prévues. Les archives normal/Test contiennent le même mod et
|
||||
le template reproduit exactement ses ressources exportables.
|
||||
|
||||
| Artefact | SHA-256 |
|
||||
| --- | --- |
|
||||
| `Sanctuary-beta.126.mrpack` | `716221ce24549781ab91f5437ad2310497b198a4b61c43c40c67a27984365ae5` |
|
||||
| `Sanctuary-Test-beta.126.mrpack` | `bbf22d7dd72e6746538b4ec28686f699225d4a59372304e5db42140a80e88bd1` |
|
||||
| `sanctuary-beta.126.jar` | `85dbe1b41d98751029bb62e87d259522f8609758896c797b1e02fa7656ec0342` |
|
||||
|
||||
## Publication et synchronisation
|
||||
|
||||
[Release beta.126](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.126)
|
||||
publiée depuis `99860af312a1737d938812f3515fcc4acb4291b2` ; artefacts
|
||||
immuables retéléchargés et vérifiés. Canal packwiz : `31749b95d21ce5bced6b9e5759499da6f8a67e6e`.
|
||||
Deux synchronisations isolées, puis deux synchronisations de l'instance existante
|
||||
**Sanctuary Beta** ont réussi. Un seul JAR Sanctuary beta.126, correspondant
|
||||
à l'empreinte ci-dessus. Les **923 fichiers personnels** suivis sont conservés,
|
||||
sauvegardes restées fermées ; copie préalable dans
|
||||
`sanctuary-backups/before-beta.126/`.
|
||||
|
||||
Packs normal/Test et template copiés et vérifiés dans
|
||||
`sanctuary-beta/build/`. Reçus locaux : `build/gems126-artifact.json`,
|
||||
`build/gems126-isolated.json`, `build/gems126-prism.json` et
|
||||
`build/gems126-publication.log`.
|
||||
@@ -0,0 +1,109 @@
|
||||
# TOOL-01 — Clé dorée et états de blocs — beta.120
|
||||
|
||||
Contrat du 17 septembre 2026, branche `codex/golden-wrench-beta120`.
|
||||
Le créateur valide les gestes du debug stick : clic gauche choisit la propriété,
|
||||
clic droit parcourt ses valeurs, Maj inverse le parcours. L'orientation est
|
||||
proposée en premier, puis les propriétés de forme et les autres états natifs.
|
||||
La sélection est personnelle, par type de bloc, pour la session courante.
|
||||
Une indication dans la barre d'action affiche la propriété et sa valeur.
|
||||
La clé ne casse pas le bloc, y compris en créatif, et ne remplace pas son type.
|
||||
|
||||
Les propriétés natives sont disponibles en survie avec la clé, sans condition
|
||||
opérateur, dans le respect des droits de construction, protections, portée et
|
||||
verrous de conteneurs. Comme avec le debug stick, les formes choisies restent
|
||||
en place immédiatement ; les mises à jour ultérieures du jeu peuvent recalculer
|
||||
les états dynamiques (redstone, connexions, cultures…).
|
||||
|
||||
Les multiblocs assemblés gardent leurs commandes d'ouverture/dissociation et
|
||||
leurs propriétés techniques ne sont pas éditées individuellement. Un assemblage
|
||||
complet garde priorité au clic droit ; Maj permet de régler les composants
|
||||
non assemblés. Hors d'un assemblage complet, même un four, un baril, un piston
|
||||
ou un établi reçoit l'action générique.
|
||||
|
||||
## Rotation de texture et contrat de stockage
|
||||
|
||||
La terre n'a pas d'orientation dans son blockstate vanilla. Une propriété
|
||||
supplémentaire de la clé, « Rotation des textures », parcourt 0°, 90°, 180° et
|
||||
270° sur les faces des modèles de blocs. La géométrie, l'éclairage, les teintes,
|
||||
les ressources actives, le bloc, son inventaire et son butin restent natifs.
|
||||
Les rendus spéciaux d'entités de blocs ne sont pas transformés par ce réglage
|
||||
des faces ; leur orientation demeure modifiable par leurs états natifs.
|
||||
|
||||
Nouvelle donnée facultative `sanctuary:wrench_textures_v1`, attachée au chunk :
|
||||
table immuable position entière → quart de tour (1 à 3). Une absence signifie
|
||||
0°. Elle n'est créée qu'après une action de clé ; revenir à 0° retire l'entrée,
|
||||
puis l'attachement s'il est vide. Aucun état vanilla ni format existant n'est
|
||||
modifié ; aucun parcours, conversion ou régénération des anciens mondes.
|
||||
Les modifications de blockstate du même type conservent la rotation. Casser,
|
||||
remplacer ou déplacer par piston retire la rotation à l'ancienne position ;
|
||||
les objets récupérés restent ordinaires. Les nouveaux clients la reçoivent
|
||||
après le chunk natif, par lots bornés de 1 024 entrées au maximum.
|
||||
Déconnexion, changement de dimension et déchargement libèrent le cache visuel.
|
||||
Revenir à une ancienne version du mod supprime seulement cet effet visuel ;
|
||||
les blocs conservent leurs identifiants, données et états natifs.
|
||||
|
||||
## Vérifications et livraison
|
||||
|
||||
Le parcours `Wrench120ClientChecks` passe en **47 s** sur Minecraft 26.3,
|
||||
client macOS et serveur intégré, dans un monde plat jetable de graine 120 :
|
||||
|
||||
- **2 522 propriétés natives** parcourues, avec valeurs inverses et type conservé.
|
||||
- Vrais clics sur les escaliers : orientation, moitié supérieure et forme,
|
||||
sans casser le bloc en créatif ; gestes inverses et sélection distincte.
|
||||
Les doubles événements créatifs d'un même clic sont filtrés à la cadence
|
||||
native de cinq ticks.
|
||||
- Terre en survie : rotation réelle des UV émis, positions des sommets et nombre
|
||||
de faces identiques ; retour exact après quatre quarts de tour ou un inverse.
|
||||
- Rechargement des ressources conservant les UV tournés ; capture de terre relue.
|
||||
- Coffre tourné avec ses 23 diamants intacts, sans ouverture accidentelle.
|
||||
- Assemblage/dissociation par vrais clics des quatre familles : Métabli, Fût,
|
||||
Fourneau et super piston. Un clic gauche sur un assemblage ne modifie pas
|
||||
les numéros de composants ; barils et pistons isolés tournent normalement.
|
||||
- Refus en aventure, spectateur ou hors portée ; retrait des données visuelles
|
||||
après remplacement, maintien lors d'un changement d'état du même bloc.
|
||||
- Sauvegarde/reconnexion : rotation de terre côté serveur et client, état
|
||||
natif de l'escalier et inventaire du coffre conservés.
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest \
|
||||
-PsanctuaryClientTests=true -PsanctuaryWrench120ClientTests=true \
|
||||
-PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true
|
||||
```
|
||||
|
||||
Marqueurs `WRENCH120_PASS` et `WRENCH120_PROPERTIES 2522` dans
|
||||
`build/wrench120-client.log`, captures dans `build/wrench120-evidence/`.
|
||||
Aucun monde personnel ouvert ; pas de validation Windows ni depuis deux
|
||||
ordinateurs. Les rendus de faces natifs et le rechargement du pack sont vérifiés ;
|
||||
pas de validation spécifique d'un shader tiers.
|
||||
Le GameTest dédié reste exclu conformément au refus antérieur de son EULA.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
passe en **2 min 12 s**, 125 tâches. Les sources JAR correspondent exactement
|
||||
aux sources du dépôt. La comparaison avec beta.119 limite les différences de
|
||||
production aux classes de clé/assemblage, aux deux nouveaux hooks, au rendu
|
||||
et aux libellés prévus ; toutes les autres ressources sont identiques.
|
||||
Les packs normal/Test contiennent le même JAR Sanctuary et aucune sauvegarde
|
||||
ni fixture de test.
|
||||
|
||||
- Sanctuary-beta.120.mrpack : 10237973 octets, SHA-256
|
||||
`86b5e480a12ba20b5c1e308c77dbb54bdf8a56806915fb32ca2d16f9a72cc9c9`.
|
||||
- Sanctuary-Test-beta.120.mrpack : 10256895 octets, SHA-256
|
||||
`2e3818483ba7dfa6e5652b97933e105a44e7cc4b269fc567116bf895d54bd8d9`.
|
||||
- JAR Sanctuary : SHA-256
|
||||
`8e35ef0f134a46b7760604175ad768264946d31fdd0694982e049e7a928fde2a`.
|
||||
|
||||
Reçu local : `build/wrench120-artifact.json`.
|
||||
|
||||
## Publication et installation
|
||||
|
||||
La [release beta.120](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.120)
|
||||
est publiée depuis `248dff47b7a0ebd11026230581fe69641dbde76d`. Le tag exact et les
|
||||
artefacts sont immuables ; leurs téléchargements publics sont vérifiés.
|
||||
Le canal packwiz avance à `e8060764a444a58b0a17318a3821dfeb1a0c33c6`.
|
||||
|
||||
Deux synchronisations isolées puis deux dans **Sanctuary Beta** réussissent.
|
||||
Un seul JAR Sanctuary beta.120 est actif ; le second passage est identique.
|
||||
Les **923 fichiers personnels et réglages suivis** restent inchangés, sans
|
||||
ouvrir de monde personnel. Copie préalable dans
|
||||
`sanctuary-backups/before-beta.120/` de l'instance existante. Reçus locaux :
|
||||
`build/wrench120-isolated.json` et `build/wrench120-prism.json`.
|
||||
@@ -0,0 +1,125 @@
|
||||
# ANCHORS-186 — rosaces ornementées et huit refuges
|
||||
|
||||
Ticket du 30 septembre 2026, branche `codex/hidden-anchors-beta186`.
|
||||
Retour sur beta.185 : retirer les barrières supérieures, conserver la silhouette,
|
||||
ajouter de fins liserés au verre et intégrer huit ancres dans le terrain de leur
|
||||
secteur de couleur, en surface, en grotte et sur les récifs.
|
||||
|
||||
## Contrat
|
||||
|
||||
Nouveau laboratoire `anchors`, preset `sanctuary_test:hidden_anchors_v1`,
|
||||
graine de visite 42, beta.186. Génération déterministe, recherche bornée dans
|
||||
le champ de densité existant et écritures limitées au chunk en décoration.
|
||||
Aucune régénération des visites précédentes ni modification des anciens presets.
|
||||
Les huit couleurs reprennent la palette du Bugrock, dans le même ordre
|
||||
que les rosaces. Les ancres conservent le bloc et ses propriétés existantes.
|
||||
|
||||
Les dépôts distincts restent locaux à ce prototype : ils allument l'ancre et
|
||||
sa gemme sur le Bugrock ; ils ne génèrent pas encore d'expansion. Les coûts
|
||||
sont des matériaux accessibles sur l'île, sans or ni redstone.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Le balcon supérieur perd ses murets. Deux liserés alternent calcite et cuivre
|
||||
patiné sur chaque dôme, en remplaçant une mince bande de verre. Huit petits
|
||||
losanges ponctuent les grandes verrières. Le volume, les couleurs dominantes,
|
||||
la tige d'un bloc, le Bugrock à Y=640, le portail de toiture et l'atlas restent
|
||||
ceux de beta.185. Les passages sur les huit axes restent dégagés.
|
||||
|
||||
La recherche échantillonne une grille finie et les grands récifs existants.
|
||||
Elle exige une base rocheuse et un débouché naturel praticable. Deux secteurs
|
||||
aériens sont retenus lorsqu'ils disposent de récifs compatibles ; les autres
|
||||
privilégient alternativement une grotte ou la surface, avec repli sur un autre
|
||||
emplacement naturel admissible du même secteur. Le choix varie avec la graine.
|
||||
Le manque de site sûr fait échouer ce laboratoire explicitement plutôt que de
|
||||
fabriquer une ancre au-dessus du vide. Seule la graine de visite est certifiée.
|
||||
|
||||
Les refuges sont de petites poches irrégulières : sol légèrement ondulé,
|
||||
reliefs dans la roche présente, accès court décalé, crêtes érodées, mousse,
|
||||
azalées et verre de couleur au piédestal. Certains reliefs cachent une source
|
||||
de lumière, d'autres restent sombres. Les réservations évitent la galerie,
|
||||
le donjon, le soufre et les bassins connus. Elles empêchent aussi la décoration
|
||||
d'un chunk voisin de reboucher les volumes, sans bloquer les actions des joueurs.
|
||||
Aucun calcul d'hydrologie régionale ni recherche par tick n'est ajouté.
|
||||
|
||||
| Secteur | Couleur | Dépôt en main |
|
||||
| --- | --- | --- |
|
||||
| Nord | Bleu clair | 32 pierres |
|
||||
| Nord-est | Vert clair | 16 bûches de chêne |
|
||||
| Est | Vert | 16 blés |
|
||||
| Sud-est | Orange | 16 lingots de cuivre |
|
||||
| Sud | Rouge | 16 charbons |
|
||||
| Sud-ouest | Magenta | 8 éclats d'améthyste |
|
||||
| Ouest | Jaune | 8 lingots de fer |
|
||||
| Nord-ouest | Cyan | 16 verres |
|
||||
|
||||
Clic droit sur l'ancre : le serveur valide le site, le matériau et la quantité.
|
||||
Un dépôt exact allume l'ancre et le bit de couleur associé au Bugrock. Les
|
||||
états restent dans les propriétés natives des blocs ; aucune nouvelle base de
|
||||
progression ou migration. Les textes FR/EN existants sont réutilisés. Le
|
||||
profil 173 et ses anciens coûts ne sont pas modifiés.
|
||||
|
||||
## Vérification
|
||||
|
||||
Premier contrôle natif réussi sur `solo186b/anchors/42` : huit ancres, deux
|
||||
récifs aériens, deux grottes et quatre surfaces/flancs. Plan déterministe de
|
||||
8 650 entrées dans 26 chunks, calculé en 2,3 s. Huit dépôts vérifiés dans un
|
||||
ordre non séquentiel ; tous les bits sont indépendants, les mauvais dépôts et
|
||||
les répétitions conservent les objets. Les états initiaux sont restaurés après
|
||||
ce test, avant la sauvegarde de visite.
|
||||
|
||||
Palais : 144 murets retirés, 384 blocs de liserés/losanges incrustés,
|
||||
4 944 blocs de verre conservés, seize approches libres. Le volume et le cadre
|
||||
du portail restent inchangés. Les huit teintes existent dans les deux rosaces.
|
||||
|
||||
La première réouverture a révélé un ancien contrôle de cerisiers basé sur un
|
||||
compteur de génération en mémoire. Le contrôle lit désormais les troncs déjà
|
||||
sauvegardés lorsqu'il n'y a pas de compteur ; aucun arbre n'est régénéré.
|
||||
Validation finale sur `solo186c/anchors/42` réussie à froid puis après
|
||||
réouverture : 567 échantillons de densité conservés et zéro région d'hydrologie.
|
||||
Démarrage serveur 6,9 s à froid / 0,66 s à chaud ; prêt avec l'ensemble des
|
||||
sondages et contrôles en 44,7 s / 6,4 s. Le plan des huit refuges prend 2,28 s
|
||||
à froid. Ces mesures incluent du travail de vérification et ne constituent pas
|
||||
une promesse de temps de chargement du client.
|
||||
|
||||
Lecture de la sauvegarde arrêtée : huit ancres de secteurs 0 à 7, éteintes,
|
||||
Bugrock allumé avec masque de relais nul ; 49 cartes sauvegardées, complètes,
|
||||
figées, et cadres horizontaux uniques. Aucun dépôt de contrôle ne reste activé
|
||||
sur le monde proposé au créateur.
|
||||
|
||||
Reçus ignorés : `build/anchors186-quick-result.json`,
|
||||
`build/anchors186-warm-result.json`, `build/anchors186-saved-blocks.json`,
|
||||
`build/anchors186-saved-atlas.json`.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch`
|
||||
réussi en **6 min 49 s**, **265/265 GameTests**. Journal
|
||||
`build/anchors186-check-build.log`. Le daemon de compilation a été arrêté avant
|
||||
le client pour libérer la mémoire. Solo Vulkan ouvert le 30 septembre à **08:08:19**, vue 32 et simulation 12
|
||||
confirmées dans `build/anchors186-solo.log`. Contrôle de visibilité de la couronne
|
||||
réussi à 08:08:20. La fenêtre du jeu confirme le balcon sans murets et les
|
||||
vitrages reliés au soubassement. La visite est laissée au créateur sans téléportations d’inspection supplémentaires. L'aspect des huit
|
||||
refuges reste à apprécier ensemble en jeu. Aucun canal public ni instance
|
||||
Prism n'a été modifié.
|
||||
|
||||
## Visite — graine 42
|
||||
|
||||
Solo neuf `visite186/anchors/42`, `Sanctuary-Hidden-Anchors-186-Solo`,
|
||||
vue 32 chunks, simulation 12, créatif, vol et commandes ; départ dans le
|
||||
palais supérieur. Sauvegarde beta.185 conservée. Les emplacements suivants
|
||||
sont des raccourcis de test, pas des marqueurs visibles dans le jeu.
|
||||
|
||||
| Secteur | Milieu | Lumière du refuge | Accès de visite |
|
||||
| --- | --- | --- | --- |
|
||||
|
||||
|
||||
|
||||
| Nord | Surface / flanc | Lumineux | `/tp -71.5 243 -226.5 0 0` |
|
||||
| Nord-est | Surface / flanc | Sombre | `/tp 96.5 186 -82.5 0 0` |
|
||||
| Est | Récif aérien | Lumineux | `/tp 213.5 444 21.5 180 0` |
|
||||
| Sud-est | Surface / flanc | Sombre | `/tp 156.5 161 193.5 0 0` |
|
||||
| Sud | Grotte | Lumineux | `/tp -83.5 115 215.5 180 0` |
|
||||
| Sud-ouest | Surface / flanc | Sombre | `/tp -107.5 252 181.5 0 0` |
|
||||
| Ouest | Grotte | Lumineux | `/tp -96.5 223 24.5 90 0` |
|
||||
| Nord-ouest | Récif aérien | Sombre | `/tp -102.5 404 -171.5 90 0` |
|
||||
|
||||
Palais : `/tp 6.5 1280 8.5 140 -15` ; Bugrock : `/tp 0.5 639 5.5 180 -20`.
|
||||
@@ -0,0 +1,105 @@
|
||||
# beta.168 — laboratoire de trois cartes de horde
|
||||
|
||||
**Actualisation beta.169 :** les [nouvelles cartes à invasion continue](horde-invasion-beta169.md)
|
||||
se révèlent en main, mélangent les espèces et accélèrent leurs apparitions. Les
|
||||
cartes beta.168 conservent les règles historiques décrites ci-dessous.
|
||||
|
||||
Suite du [prototype beta.167](horde-lab-beta167.md), branche
|
||||
`codex/cartes-horde-beta168`. Minecraft 26.3, dépendances inchangées.
|
||||
|
||||
## Décision de séance
|
||||
|
||||
Le décor circulaire est conservé comme piste pour de futurs donjons. Le nouveau
|
||||
labo le reproduit **sans socle** : c'est la carte consommable qui invoque la horde
|
||||
à la position du joueur. Apparition immédiate, sans inscription, préparation,
|
||||
chef de groupe ni commande pour rejoindre. Les joueurs arrivent et combattent
|
||||
spontanément. Les récompenses sont des objets lâchés par les monstres : ramassage
|
||||
libre, sans attribution, partage automatique ni coffre final.
|
||||
|
||||
## Essai jouable
|
||||
|
||||
Trois cartes natives Minecraft, tenues à deux mains avec la main secondaire vide :
|
||||
|
||||
| Carte | Vagues de zombies | Butins possibles |
|
||||
| --- | --- | --- |
|
||||
| Errants | 3 / 5 / 7 | Fer, émeraude |
|
||||
| Meute | 4 / 6 / 8 | Or, émeraude |
|
||||
| Légion | 6 / 9 / 12, un zombie sur deux casqué | Diamant, émeraude |
|
||||
|
||||
Chaque exemplaire reçoit une graine et une illustration 128 × 128 persistante,
|
||||
verrouillée contre les mises à jour géographiques. Composition libre en palette de carte, sans cadre ni grille, à partir des
|
||||
visages texturés des zombies et des textures natives de butin. Positions continues,
|
||||
tailles et inclinaisons variées. Chaque visage correspond à **un monstre réel**
|
||||
sur les trois vagues : 15, 18 ou 27 visages ; les casques correspondent aux porteurs
|
||||
réels. Chaque icône de butin correspond aussi à un objet porté. La densité et les
|
||||
casques traduisent la difficulté. Ce rendu assemble des visages texturés, sans corps. Les trois familles ont des vagues fixes ; leur graine fait varier
|
||||
l'illustration, le choix des butins et leurs porteurs.
|
||||
|
||||
Au moins un porteur de butin par vague ; les autres ont une chance sur quatre
|
||||
d'en porter. Chaque porteur laisse un seul objet, choisi à parts égales dans la
|
||||
paire annoncée. Les casques ne sont pas du butin. Pas d'XP économique ajoutée.
|
||||
Les butins déjà lâchés restent au sol si la horde est interrompue.
|
||||
|
||||
Les joueurs dans les 15 blocs participent automatiquement ; partir ou mourir
|
||||
ne supprime pas la horde. Les nouveaux arrivants peuvent intervenir pendant
|
||||
n'importe quelle vague. Six secondes entre vagues, trois minutes maximum par
|
||||
vague ; disparition d'un monstre vivant ou sortie d'un monstre du périmètre
|
||||
interrompt et nettoie les survivants sans butin supplémentaire.
|
||||
|
||||
L'emplacement des trois vagues est contrôlé avant consommation : chunks chargés,
|
||||
sol, collisions, absence de fluide et frontière. Une horde voisine bloque une
|
||||
nouvelle invocation. Les cartes copiées gardent la même identité : le registre
|
||||
serveur des identités consommées empêche une seconde invocation. Il utilise la
|
||||
sauvegarde native du monde ; aucune garantie transactionnelle supplémentaire en
|
||||
cas de coupure brutale avant sauvegarde n'est revendiquée dans ce labo.
|
||||
|
||||
## Monde et lancement
|
||||
|
||||
Nouveau dossier `build/horde-168/`, monde `horde-flat-168`, graine **168**, génération
|
||||
de scène **ready-v1**, port **127.0.0.1:25578**. L'ancien laboratoire beta.167 et ses
|
||||
sauvegardes sont conservés. Aucun monde existant n'est converti. L'ancien identifiant
|
||||
`sanctuary:trial_pedestal` et la carte beta.167 restent enregistrés.
|
||||
Les cartes beta.168 sont des cartes natives avec données `sanctuary_horde_v1` ;
|
||||
le nouveau SavedData `sanctuary:horde_spent_v1` ne concerne que leurs consommations.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary-test:exportDuoLaunch
|
||||
python3 scripts/horde_lab.py prepare
|
||||
python3 scripts/horde_lab.py server
|
||||
# Autre terminal
|
||||
python3 scripts/horde_lab.py client
|
||||
```
|
||||
|
||||
Trois cartes, équipement et vision nocturne de test à la première connexion. Clic droit dans le vide avec une
|
||||
carte près du centre du cercle. `/horde cartes` redonne trois nouveaux exemplaires
|
||||
hors combat ; `/horde retour` ramène et soigne hors combat. Pour cet essai,
|
||||
l'invocation est volontairement limitée au centre du labo enregistré, et le rayon
|
||||
d'apparition est de neuf blocs autour de l'utilisateur. Aucun usage dans les
|
||||
mondes ordinaires, aucune recette ni distribution économique de ces cartes.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- `check build assemblePack` et parcours client Vulkan réussis : **254/254**
|
||||
GameTests dans `build/horde168-validation.log`. Cette passe précède les derniers
|
||||
ajustements de composition libre et le verrouillage des anciennes commandes du socle.
|
||||
- Rejeu final sur ces ajustements : groupe `horde168`, deux tests serveur requis
|
||||
réussis, parcours client Vulkan sur les trois cartes, puis assemblage du pack :
|
||||
**BUILD SUCCESSFUL**, journal `build/horde168-final.log`. Le rejeu cible exclut
|
||||
`:sanctuary:check`, déjà exécuté dans la passe complète.
|
||||
- Serveur : refus sans consommation sur terrain bloqué, consommation immédiate,
|
||||
trois vagues de chaque difficulté, images déterministes par graine, copie épuisée
|
||||
refusée, anciennes commandes du socle inopérantes sur les cartes, nombre exact
|
||||
d'objets lâchés conforme à l'illustration, nettoyage sans butin en cas d'interruption.
|
||||
- Client réel : tenue native à deux mains, clic droit, consommation, arrivée/départ
|
||||
spontanés sans annulation de la horde, retour sans inscription, trois victoires,
|
||||
butins physiques. Marqueur `HORDE168_CLIENT_PASS` ; six captures dans
|
||||
`build/horde168-evidence/`. Inspection visuelle des cartes sans cadre ajouté.
|
||||
- Préparation du script répétée sans modifier ses fichiers existants ; Python compilé,
|
||||
libellés FR/EN et liens documentaires vérifiés. Nouveau serveur dédié démarré avec
|
||||
marqueur `ready-v1` dans le monde beta.168 ; l'ancien monde beta.167 est préservé.
|
||||
|
||||
L'équilibrage humain reste à essayer : le client automatisé est invulnérable.
|
||||
La suite générale a réussi lors de cette exécution ; cela ne constitue pas une
|
||||
correction du test de familier intermittent signalé en beta.167 (source inchangée).
|
||||
Pas de publication ni de mise à jour Prism pour cet essai.
|
||||
@@ -0,0 +1,87 @@
|
||||
# beta.171 — familles dominantes et chaos dimensionnel
|
||||
|
||||
> La beta.172 retire la restriction au laboratoire et permet de consommer ces
|
||||
> cartes directement en Survie ou en Créatif. Voir
|
||||
> [le contrat runtime beta.172](horde-runtime-beta172.md).
|
||||
|
||||
Suite de la [carte native beta.170](horde-map-native-beta170.md), branche
|
||||
`codex/horde-families-beta171`. Minecraft 26.3, dépendances inchangées.
|
||||
|
||||
## Profil mémorisé par la carte
|
||||
|
||||
La première prise en main fixe, côté serveur, la dimension de découverte et une
|
||||
famille dominante. Cette identité rejoint la difficulté et la graine dans les
|
||||
données de l'objet (`loot_version=3`) : déplacer ou cloner ensuite la carte ne
|
||||
peut pas relancer son tirage.
|
||||
|
||||
Les familles sont zombies, squelettes, creepers, arthropodes, pillards,
|
||||
cauchemars de surface, infernaux, piglins, flétris et créatures de l'End. Dans
|
||||
92 % des tirages, la famille appartient à la dimension de découverte ; une
|
||||
incursion complète étrangère reste donc exceptionnelle.
|
||||
|
||||
Chaque carte conserve au minimum 10/12, 13/18 ou 17/27 positions de sa famille
|
||||
dominante. Les autres positions sont mélangées de façon déterministe : monstres
|
||||
différents mais natifs de la dimension, puis intrus interdimensionnels plus
|
||||
rares. Errants peut ne recevoir aucun intrus, Meute en reçoit un et Légion deux ;
|
||||
les 8 % d'incursions étrangères constituent l'exception spectaculaire.
|
||||
|
||||
Le catalogue contient 34 créatures adaptées à une apparition dans le cercle :
|
||||
variantes de zombies et squelettes, creeper, slime, araignées, silverfish,
|
||||
sorcière, pillards, évocateur, ravageur, breeze, phantom, creaking, blaze,
|
||||
squelette Wither, cubes, piglins, hoglin, zoglin, ghast, enderman, endermite et
|
||||
shulker. Les boss et monstres strictement aquatiques ne sont volontairement pas
|
||||
invoqués : ils demanderaient un contrat d'arène différent. Piglins et hoglins
|
||||
de carte ne se transforment pas hors du Nether.
|
||||
|
||||
## Carte et récompenses
|
||||
|
||||
L'illustration 128 × 128 est divisée horizontalement. En haut, une piste en
|
||||
serpentin montre chaque monstre dans l'ordre exact où il jaillira. En bas, toutes
|
||||
les piles garanties sont affichées sans hiérarchie ; elles peuvent légèrement
|
||||
se chevaucher quand la récompense est dense.
|
||||
|
||||
Chaque espèce apporte une ressource cohérente et généreuse : poudre pour les
|
||||
creepers, bâtons de blaze, larmes de ghast, perles de l'End, carapaces de shulker,
|
||||
or des piglins, émeraudes des pillards, etc. Rubis et saphirs Sanctuary restent
|
||||
garantis sur chaque carte. Les butins natifs peuvent encore s'ajouter.
|
||||
|
||||
Les cartes beta.168 restent à trois vagues de zombies. Les cartes beta.169/170
|
||||
déjà découvertes gardent leur roster version 2. Seules les nouvelles cartes
|
||||
beta.171 emploient le profil dimensionnel version 3.
|
||||
|
||||
## Communication et essai
|
||||
|
||||
Aucun parcours Horde, y compris le socle beta.167, n'envoie désormais de texte
|
||||
dans le chat ou la barre d'action. Découverte, refus, brèche, arrivées,
|
||||
progression, morts et résultat passent par les connexions et glyphes de
|
||||
particules natifs décrits en beta.170.
|
||||
|
||||
Importer `Sanctuary-Test-beta.171.mrpack` dans Prism et créer un **nouveau** monde
|
||||
nommé exactement `horde-flat-168`. Le profil construit le cercle et donne trois
|
||||
cartes. Pour un tirage neuf, prendre « Carte de horde inconnue » dans **Outils et
|
||||
utilitaires**, la tenir en main, revenir en survie puis l'utiliser dans le cercle.
|
||||
|
||||
La distribution depuis les campements de survie reste un ticket futur. Ce
|
||||
chantier ne modifie aucune génération, aucun chunk, aucune sauvegarde, aucune
|
||||
instance Prism et aucun canal packwiz. L'objet suit le modèle des cartes
|
||||
d'exploration distinctes de Minecraft 26.3, dont la carte des campements
|
||||
abandonnés décrite dans les
|
||||
[notes officielles Minecraft Java 26.3](https://www.minecraft.net/en-us/article/minecraft-java-edition-26-3).
|
||||
|
||||
## Vérifications
|
||||
|
||||
- GameTests `horde171` : majorité garantie, pondération par dimension, intrus
|
||||
possibles, large catalogue, profil versionné, image et récompenses exactes.
|
||||
- Régressions `horde167` à `horde170` : compatibilité des trois anciens contrats.
|
||||
- Parcours client Vulkan : découverte, trois cartes séparées, familles visibles,
|
||||
accélération, particules, morts, victoire et butins physiques.
|
||||
- Matrice complète `./gradlew check build` : 259/259 GameTests requis et
|
||||
compilation complète réussis.
|
||||
- Pack normal : `Sanctuary-beta.171.mrpack`, SHA-256
|
||||
`8f2642adfbcf499330889070b7c05efed09a181b82115e93da7023cdd5aee554`.
|
||||
- Pack laboratoire : `Sanctuary-Test-beta.171.mrpack`, SHA-256
|
||||
`2d64d6b046e265ccee4686aedc98d73d8ec8c012f5b5f6fd64e1a6180adfabbc`.
|
||||
- JAR Sanctuary embarqué dans les deux packs : SHA-256
|
||||
`0622cbd45cb20c763e3db9f351ebf26ea4869a3065655f01f66f97cc9c45d5c1` ;
|
||||
JAR laboratoire :
|
||||
`9c646a95a106680d34f05a4c4d77a9893153c04ab9ad8683f636a99eabc74016`.
|
||||
@@ -0,0 +1,114 @@
|
||||
# beta.169 — cartes de horde à invasion continue
|
||||
|
||||
> La [beta.170](horde-map-native-beta170.md) remplace ces cartes remplies par un
|
||||
> objet-carte Sanctuary natif et remplace les messages par un langage de
|
||||
> particules. La compatibilité avec les exemplaires beta.168/beta.169 demeure.
|
||||
|
||||
Suite du [laboratoire beta.168](horde-cartes-beta168.md), branche
|
||||
`codex/horde-interruption-beta169`. Minecraft 26.3, dépendances inchangées.
|
||||
|
||||
## Résultat jouable
|
||||
|
||||
Une nouvelle carte est **inconnue tant qu'un joueur ne la tient pas**. Son nom,
|
||||
sa difficulté, son contingent et son principe de butin se révèlent alors et
|
||||
restent attachés à cet exemplaire. Le dessin natif 128 × 128 existait déjà mais
|
||||
n'est visible en jeu qu'une fois la carte dépliée en main. Une copie non tenue
|
||||
reste inconnue ; toutes les copies gardent cependant la même identité de
|
||||
consommation.
|
||||
|
||||
Le clic droit consomme la carte et ouvre une invasion à la position du joueur.
|
||||
Il n'y a plus de vague, de pause ni de compte à rebours : le premier monstre
|
||||
jaillit immédiatement, puis les suivants arrivent un par un, chaque fois plus
|
||||
vite. Une victoire est accordée seulement quand tout le contingent est apparu
|
||||
et que tous ses membres ont réellement été vaincus.
|
||||
|
||||
| Carte révélée | Contingent | Espèces | Cadence d'arrivée |
|
||||
| --- | ---: | --- | --- |
|
||||
| Errants · accessible | 12 | zombie, zombie momifié | 2,9 s → 0,9 s |
|
||||
| Meute · périlleuse | 18 | précédents, noyé, squelette, araignée | 2,4 s → 0,5 s |
|
||||
| Légion · féroce | 27 | précédents, vagabond, embourbé, desséché, araignée venimeuse, sorcière, pillard | 2,1 s → 0,3 s |
|
||||
|
||||
La graine de chaque carte décale l'ordre du roster et détermine les quantités de
|
||||
butin et les gemmes bonus. Le dessin montre un œuf pour **chaque monstre réel**
|
||||
et les objets garantis qu'il apportera. Sa densité et sa variété rendent la
|
||||
difficulté lisible après révélation.
|
||||
|
||||
## Butin généreux et lié aux monstres
|
||||
|
||||
Chaque ennemi porte au moins une pile garantie, en plus de ses éventuels butins
|
||||
Minecraft natifs : chair putréfiée, sable, cuivre, flèches, ficelle, glace
|
||||
compacte, champignons, os, yeux d'araignée, redstone/poudre lumineuse ou
|
||||
émeraudes selon son espèce. Les quantités sont volontairement généreuses.
|
||||
|
||||
Le premier et le deuxième monstre garantissent respectivement un rubis et un
|
||||
saphir. Les suivants ont une chance sur cinq d'ajouter une gemme alternée. Les
|
||||
objets sont physiques, sans propriétaire : ils restent au sol, peuvent être
|
||||
ramassés par tous et les gains déjà obtenus survivent à une interruption.
|
||||
|
||||
Chaque apparition conserve la spirale de glyphes SGA natifs et chaque mort réelle
|
||||
disperse les runes avec une impulsion de fumée. Un nettoyage technique ne produit
|
||||
ni rune de mort ni récompense supplémentaire.
|
||||
|
||||
## Combat ouvert et sécurité
|
||||
|
||||
Les joueurs vivants dans les 32 blocs et 16 blocs de hauteur participent
|
||||
automatiquement. Partir, mourir ou revenir n'annule pas l'invasion. Les monstres
|
||||
peuvent dépasser l'ancienne limite du socle sans être supprimés ni compter comme
|
||||
morts. Une disparition réelle d'entité, un chunk central déchargé, un délai total
|
||||
de six minutes ou un futur point d'arrivée devenu impraticable interrompent la
|
||||
session avec un motif distinct.
|
||||
|
||||
Tous les emplacements prévus sont vérifiés avant consommation, sans chargement ni
|
||||
écriture de terrain. Au moment d'une arrivée, douze positions proches sont
|
||||
essayées afin qu'un joueur ou un autre monstre ne bloque pas artificiellement la
|
||||
brèche. Une horde voisine empêche toujours une seconde invocation.
|
||||
|
||||
## Compatibilité et laboratoire
|
||||
|
||||
Les cartes beta.168 sans `loot_version` restent en version 1 : trois vagues de
|
||||
zombies, dessin et récompenses historiques inchangés. Les nouvelles cartes sont
|
||||
en version 2 et utilisent l'invasion continue. Le registre sauvegardé
|
||||
`sanctuary:horde_spent_v1`, les identifiants et le monde
|
||||
`build/horde-168/server/horde-flat-168` sont conservés ; aucune conversion de
|
||||
monde ni régénération de chunk.
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary-test:exportDuoLaunch
|
||||
python3 scripts/horde_lab.py prepare
|
||||
python3 scripts/horde_lab.py server
|
||||
# Autre terminal
|
||||
python3 scripts/horde_lab.py client
|
||||
```
|
||||
|
||||
`/horde cartes` fournit trois cartes inconnues supplémentaires hors combat.
|
||||
`/horde retour` ramène et soigne hors combat. Le prototype reste limité au centre
|
||||
du labo : aucune recette ou distribution économique n'est encore ajoutée aux
|
||||
mondes ordinaires.
|
||||
|
||||
Pour l'essai le plus simple, importer `Sanctuary-Test-beta.169.mrpack` dans Prism,
|
||||
puis créer un **nouveau** monde nommé exactement `horde-flat-168`. Le profil de
|
||||
test présélectionne **Sanctuary — Test rapide** et reconnaît ce nom pour construire
|
||||
une seule fois le cercle, remettre les cartes et placer le joueur. Un autre nom
|
||||
crée un monde de test plat ordinaire ; le MRpack normal n'active pas ce laboratoire.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- `horde169` : 3/3 GameTests ciblés ; `horde167` et `horde168` restent verts
|
||||
dans la matrice de compatibilité.
|
||||
- Parcours client Vulkan : PASS sur les trois cartes, avec révélation en main,
|
||||
départ/retour, cadence accélérée, roster varié, victoire et butins physiques.
|
||||
- Matrice complète rejouée par l'assemblage : 256/256 GameTests requis, puis
|
||||
`check`, `build`, `assemblePack` et `assembleTestPack` réussis. Une première
|
||||
passe sous forte charge avait fait échouer le déplacement aérien historique
|
||||
`companion019` ; ses 21 tests isolés puis la seconde matrice complète passent.
|
||||
- Pack normal : [Sanctuary-beta.169.mrpack](../build/Sanctuary-beta.169.mrpack),
|
||||
SHA-256 `72fcf169004cc4dc7e1bb3caf72c1e66cc935c79ac16173de9db8ef86d66eaea`.
|
||||
- Pack laboratoire :
|
||||
[Sanctuary-Test-beta.169.mrpack](../build/Sanctuary-Test-beta.169.mrpack),
|
||||
SHA-256 `a162f7e9ce88a177ac99934d4c9a7061ac67be062a31a36965a191dd3eb0423a`.
|
||||
|
||||
Les deux manifestes exportés déclarent `beta.169`, Minecraft 26.3 et Fabric
|
||||
Loader 0.19.5. Le pack laboratoire contient en plus
|
||||
`sanctuary-test-beta.169.jar` ; aucun canal packwiz ni aucune instance Prism n'a
|
||||
été modifié.
|
||||
@@ -0,0 +1,120 @@
|
||||
# beta.167 — prototype de carte de horde et socle d'épreuve
|
||||
|
||||
Branche `codex/communaute-economie-beta167`, socle beta.166. Premier essai issu du
|
||||
[cadrage communautaire](ecosysteme-communaute-economie.md). Minecraft **26.3**,
|
||||
dépendances inchangées ; vérifications graphiques Vulkan uniquement.
|
||||
|
||||
## Contrat de ce prototype
|
||||
|
||||
Une arène ronde de laboratoire, diamètre extérieur 41 blocs, accueille un
|
||||
**socle d'épreuve** au centre (`sanctuary:trial_pedestal`). Une **carte d'épreuve ·
|
||||
Horde de zombies** (`sanctuary:horde_trial_card`) permet d'ouvrir les inscriptions.
|
||||
Ces identifiants sont nouveaux et stables. Le clic droit ouvre les contrôles.
|
||||
|
||||
De un à quatre joueurs s'inscrivent volontairement, passent prêts, puis l'hôte
|
||||
lance. Cinq secondes précèdent la première vague ; six secondes séparent les
|
||||
suivantes. Trois vagues : 4, 6 et 8 zombies en solo ; deux zombies supplémentaires
|
||||
par coéquipier et par vague. Chaque vague dispose de trois minutes. L'effectif
|
||||
est fixé au départ, sans renfort tardif. Tous les zombies doivent être vaincus.
|
||||
|
||||
Le socle passe du vert au bleu pendant l'attente, rouge pendant le combat, or
|
||||
après victoire, sombre après interruption. Un affichage indique la vague et les
|
||||
ennemis restants. La carte du prototype reste réutilisable : **aucun butin ni XP
|
||||
de récompense** n'est distribué. Les statistiques natives de combat continuent
|
||||
d'exister. Ni capes, ni familiers exclusifs, ni incubation d'XP ne sont livrés.
|
||||
|
||||
Quitter le rayon de 15 blocs, mourir, se déconnecter ou passer en créatif/spectateur
|
||||
retire de l'épreuve. Les autres participants peuvent continuer. Le départ de
|
||||
l'hôte avant lancement annule les inscriptions. Un groupe vide, un délai écoulé,
|
||||
une difficulté Paisible ou la disparition d'un ennemi vivant interrompt l'épreuve.
|
||||
Un ennemi disparu n'est jamais compté comme une victoire. Les zombies de test ne
|
||||
brûlent pas au soleil, ne ramassent pas d'objets et ne frappent que les participants.
|
||||
Le laboratoire désactive le PvP et conserve l'inventaire à la mort.
|
||||
|
||||
## Données, interruption et limites
|
||||
|
||||
Les sessions sont volontairement éphémères. Un arrêt interrompt la partie ; les
|
||||
zombies de l'épreuve sont retirés. Après un crash, leurs tags permettent de retirer
|
||||
les survivants au chargement. Aucune dette, récompense différée ou carte consommée
|
||||
n'existe à récupérer. Le socle est réarmé à la réouverture du labo.
|
||||
|
||||
Le socle et la carte n'ont pas de recette ni de génération naturelle. Un socle
|
||||
posé hors de la scène explicitement préparée ne lance rien. Le client ne peut
|
||||
ni installer une arène, ni choisir ses monstres, ni charger une région par paquet.
|
||||
Le serveur contrôle identité de session, révision, distance, inscription et état.
|
||||
|
||||
Le seul nouveau marqueur de scène est `horde-lab-167.txt`, dans le nouveau monde
|
||||
de développement : préparation réservée avant construction, état prêt après.
|
||||
Une préparation incomplète ou un socle manquant est conservé et refusé au
|
||||
redémarrage. Le volume entier doit être vide avant la première pose. Aucune
|
||||
ancienne sauvegarde, aucun chunk Sanctuary ni format de données existant n'est
|
||||
converti. Ne pas installer les nouveaux blocs dans un monde destiné à être
|
||||
rouvert avec beta.166 ; conserver le nouveau labo pour ce prototype.
|
||||
|
||||
Il reste à éprouver le rythme et la coopération avec des joueurs humains. Les
|
||||
cartes de découverte, clés/reliques, cartes collectionnables, quêtes quotidiennes,
|
||||
échanges, ballast et huit extensions restent de la conception.
|
||||
|
||||
## Essayer le laboratoire
|
||||
|
||||
```sh
|
||||
export JAVA_HOME=$(/usr/libexec/java_home -v 25)
|
||||
./gradlew :sanctuary-test:exportDuoLaunch
|
||||
python3 scripts/horde_lab.py prepare
|
||||
python3 scripts/horde_lab.py server
|
||||
# Dans un autre terminal :
|
||||
python3 scripts/horde_lab.py client
|
||||
```
|
||||
|
||||
Dossier neuf `build/horde-167/`, monde `horde-flat-167`, graine **167**, port
|
||||
loopback **25576**. Le script reprend seulement les arguments de lancement exportés,
|
||||
pas les sauvegardes ni paramètres du labo duo. Chaque connexion rejoint le cercle
|
||||
en aventure ; un équipement initial et des capacités de combat 10 cœurs/10 icônes
|
||||
de faim sont fournis à ce personnage de test. Hors épreuve, `/horde retour` ramène
|
||||
et soigne. L'ancien `build/duo/` et les installations personnelles sont préservés.
|
||||
|
||||
À l'accueil, créer son personnage si demandé. Au socle : **Présenter ma carte**,
|
||||
**Prêt**, puis **Lancer l'épreuve**. Les amis rejoignent et passent prêts depuis
|
||||
le même socle. Ce profil local hors ligne ne valide pas l'identité Discord et ne
|
||||
doit pas être exposé sur Internet.
|
||||
|
||||
## Vérifications et livraison
|
||||
|
||||
- `./gradlew check build assemblePack :sanctuary-test:exportDuoLaunch` exécuté :
|
||||
**252/253 GameTests réussis**, dont le scénario de horde. Le contrôle général
|
||||
échoue sur `Companion019GameTests.creatureProfilesActuallyMove` (déplacement
|
||||
aérien attendu). Journal : `build/horde167-full.log`.
|
||||
- Rejeu `check build` avec les groupes `companions,horde167` : **21/22 tests**,
|
||||
même échec de déplacement, horde réussie. Le code et le scénario de familier
|
||||
sont inchangés par ce chantier ; aucune conclusion de non-régression complète
|
||||
n'est revendiquée. L'[audit antérieur](audit-dragon-beta165.md) décrit notamment
|
||||
l'aléa du scénario. Journal : `build/horde167-focused-client.log`.
|
||||
- Validation finale ciblée : `runGameTest runClientGameTest assemblePack
|
||||
:sanctuary-test:exportDuoLaunch`, groupe `horde167`, client Horde167/Vulkan,
|
||||
avec `-x :sanctuary:check` pour ne pas rejouer les contrôles précédents.
|
||||
**BUILD SUCCESSFUL**, deux tests serveur requis réussis (dont le scénario
|
||||
horde), puis parcours client complet. Cette exclusion ne transforme pas le
|
||||
contrôle général précédent en réussite. Journal : `build/horde167-delivery.log`.
|
||||
- Serveur : deux personnages simulés, carte requise, consentement de chacun,
|
||||
lancement réservé à l'hôte, double lancement refusé, trois vagues adaptées
|
||||
à l'effectif, victoire, carte conservée, nettoyage à la sortie et interruption
|
||||
sur disparition d'un ennemi vivant. Une scène existante est refusée sans
|
||||
réécriture par le constructeur du labo.
|
||||
- Client natif Vulkan : clic droit réel sur le bloc, paquets d'inscription,
|
||||
préparation et lancement, trois vagues avec dégâts serveur natifs, victoire
|
||||
après 18 zombies en solo. Captures FR/EN, GUI 2/3 ; inspection visuelle de
|
||||
l'arène, du socle, des contrôles, du combat et du résultat. Marqueur
|
||||
`HORDE167_CLIENT_PASS`. Huit captures conservées dans `build/horde167-evidence/`.
|
||||
- Script Python compilé ; préparation répétée avec **cinq fichiers identiques**.
|
||||
Libellés FR/EN et liens locaux vérifiés. Démarrage dédié réel sur loopback,
|
||||
création de la nouvelle scène puis arrêt propre, journal
|
||||
`build/horde167-lab-server.log`. Redémarrage dédié réussi avec le marqueur
|
||||
`ready-v1` et le socle existant, sans reconstruire la scène ; journal
|
||||
`build/horde167-lab-restart.log`.
|
||||
- Packwiz assemblé et vérifié ; JAR interne beta.167 avec classes et ressources
|
||||
attendues. SHA-256 du JAR :
|
||||
`4d6cb640177d7904043c3eefe693a75fbdc4f4df48407adaae04cc7d632057e6`.
|
||||
|
||||
La coopération entre plusieurs clients humains et l'équilibrage restent à
|
||||
éprouver ; les personnages simulés ne les remplacent pas. Aucun artefact public,
|
||||
tag, canal packwiz ou instance Prism mis à jour. Prototype intégré localement sur `main`, conformément à la demande du créateur.
|
||||
@@ -0,0 +1,102 @@
|
||||
# beta.170 — carte de horde native et langage de particules
|
||||
|
||||
> La [beta.171](horde-families-beta171.md) ordonne les monstres et les butins sur
|
||||
> la carte, ajoute les familles dominantes et étend le silence visuel au socle.
|
||||
|
||||
Suite de l'[invasion continue beta.169](horde-invasion-beta169.md), branche
|
||||
`codex/horde-map-native-beta170`. Minecraft 26.3, dépendances inchangées.
|
||||
|
||||
## Objet et découverte
|
||||
|
||||
`sanctuary:horde_trial_card` est désormais une sous-classe de la carte native
|
||||
Minecraft, au lieu d'un objet ordinaire ou d'une carte remplie renommée. Son
|
||||
identifiant reste stable. Un exemplaire vierge est disponible dans l'onglet
|
||||
créatif **Outils et utilitaires** sous le nom « Carte de horde inconnue ».
|
||||
|
||||
Le premier passage en main lui attribue côté serveur :
|
||||
|
||||
- un identifiant de carte natif distinct ;
|
||||
- une difficulté parmi Errants, Meute et Légion ;
|
||||
- une graine propre, donc un ordre de monstres et des butins propres ;
|
||||
- une illustration verrouillée 128 × 128 correspondant au contenu réel.
|
||||
|
||||
Deux nouveaux exemplaires vierges découvrent deux identités différentes. Ranger
|
||||
puis reprendre le même exemplaire ne le relance jamais : son identité, son dessin
|
||||
et sa difficulté restent stables. Cette distinction évite de choisir sa
|
||||
difficulté en changeant simplement d'emplacement d'inventaire. Si plusieurs
|
||||
cartes créatives vierges sont empilées, seule celle tenue se découvre ; les
|
||||
autres retournent vierges dans l'inventaire et attendent leur propre prise en main.
|
||||
|
||||
La carte appartient à `#minecraft:clonable_maps`. La recette native 26.3 avec
|
||||
des cartes vierges peut donc dupliquer un exemplaire déjà découvert ; les copies
|
||||
conservent volontairement la même identité et la même consommation, comme les
|
||||
cartes d'exploration natives. Les cartes remplies beta.168 et beta.169 restent
|
||||
reconnues et jouables.
|
||||
|
||||
Cette approche s'inspire des cartes d'exploration devenues des objets distincts
|
||||
en 26.3, et notamment de la nouvelle carte des campements abandonnés. Sanctuary
|
||||
fait un choix différent sur un point : sa carte inconnue est volontairement
|
||||
accessible dans l'inventaire créatif pour le laboratoire. Voir les
|
||||
[notes officielles Minecraft Java 26.3](https://www.minecraft.net/en-us/article/minecraft-java-edition-26-3).
|
||||
|
||||
## Langage visuel sans chat
|
||||
|
||||
Le parcours des cartes de horde n'envoie plus de message Sanctuary dans le chat
|
||||
ni dans la barre d'action. Toute l'information immédiate est spatiale :
|
||||
|
||||
| Moment | Signal visuel |
|
||||
| --- | --- |
|
||||
| Découverte | 1, 2 ou 3 connexions convergent vers la carte selon la difficulté, avec glyphes SGA |
|
||||
| Activation valide | un anneau de connexions converge vers la brèche centrale |
|
||||
| Arrivée | la brèche se relie au monstre qui jaillit, entouré de glyphes |
|
||||
| Invasion en cours | une pulsation relie chaque monstre vivant à la brèche toutes les secondes |
|
||||
| Mort réelle | les glyphes se dispersent avec une brève impulsion |
|
||||
| Victoire | douze connexions convergent avec une explosion de totems |
|
||||
| Interruption | les connexions se dispersent avec une fumée sombre |
|
||||
| Usage impossible | un filet de fumée descend de la carte vers le joueur |
|
||||
|
||||
Les connexions utilisent la particule native `minecraft:vault_connection` ; les
|
||||
glyphes restent ceux de `minecraft:enchant`, donc l'alphabet SGA fourni par le
|
||||
jeu. Aucune texture, interface ou canal réseau de HUD propre à la carte n'est
|
||||
nécessaire.
|
||||
|
||||
Les messages du vieux socle beta.167 sont conservés uniquement pour ce prototype
|
||||
historique. Ils ne font pas partie du parcours de la carte native.
|
||||
|
||||
## Essai dans le laboratoire
|
||||
|
||||
Importer `Sanctuary-Test-beta.170.mrpack` dans Prism, puis créer un **nouveau**
|
||||
monde nommé exactement `horde-flat-168`. Le profil de test construit le cercle
|
||||
et fournit les trois cartes déterministes de démonstration. Pour vérifier la
|
||||
découverte aléatoire, prendre « Carte de horde inconnue » dans **Outils et
|
||||
utilitaires**, la tenir en main, revenir en survie puis l'utiliser dans le cercle.
|
||||
|
||||
Le MRpack normal contient le même objet, mais la distribution en survie depuis
|
||||
les campements n'est pas encore activée. Ce chantier adopte leur modèle d'objet
|
||||
et de découverte sans modifier la génération, les chunks ou les sauvegardes.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- GameTests `horde170` : type natif, entrée créative vierge, découverte unique,
|
||||
stabilité à la reprise, diversité entre deux exemplaires, illustration et
|
||||
compatibilité avec la recette native de duplication.
|
||||
- Parcours client Vulkan : présence dans Outils et utilitaires, découverte en
|
||||
main, trois difficultés, accélération continue, signaux de particules, victoire
|
||||
et butins ; aucun message de jeu Sanctuary émis par les cartes.
|
||||
- Matrice complète : 257/257 GameTests requis, puis `check build` réussi.
|
||||
- `assemblePack assembleTestPack` réussi après cette matrice ; intégrité ZIP,
|
||||
version `beta.170`, Minecraft 26.3, Fabric Loader 0.19.5 et JAR embarqués
|
||||
vérifiés.
|
||||
- Pack normal : [Sanctuary-beta.170.mrpack](../build/Sanctuary-beta.170.mrpack),
|
||||
SHA-256 `e96ad55115074e898e94c3eccff983bd76301b0aa577c83b8a5e3feca0a719f8`.
|
||||
- Pack laboratoire :
|
||||
[Sanctuary-Test-beta.170.mrpack](../build/Sanctuary-Test-beta.170.mrpack),
|
||||
SHA-256 `d84aa95c230b6484c9282534245401de0dcf069e9d4e5c9d5e7d6238bb2f84e0`.
|
||||
|
||||
Le JAR Sanctuary embarqué correspond au build vérifié, SHA-256
|
||||
`c8cd436bdc65c8f97ea6383f6f4ae63836b4b6e7dbf35918b2be86152e38d344`.
|
||||
Le profil laboratoire contient en plus `sanctuary-test-beta.170.jar`, SHA-256
|
||||
`ddb1023285a39f47d4fccd8377aa4ec297f41b9750eab3f6fe2868abcb62da50`.
|
||||
|
||||
Aucun canal packwiz, serveur personnel, monde existant ou instance Prism n'est
|
||||
modifié par cette livraison locale.
|
||||
@@ -0,0 +1,46 @@
|
||||
# beta.172 — cartes de horde utilisables en jeu
|
||||
|
||||
Suite du profil dimensionnel [beta.171](horde-families-beta171.md). Le contenu
|
||||
des cartes, leurs familles et leur format sauvegardé ne changent pas.
|
||||
|
||||
## Contrat runtime
|
||||
|
||||
Le clic droit sur une carte révélée tente d'ouvrir la brèche à la position
|
||||
actuelle du joueur. Aucun cercle, socle, monde de test ou enregistrement de
|
||||
laboratoire n'est requis. Le pouvoir fonctionne en Survie et en Créatif ; le
|
||||
mode Spectateur et la difficulté Paisible restent refusés.
|
||||
|
||||
Après validation de toutes les apparitions, l'identité de carte est marquée
|
||||
comme dépensée et un exemplaire est retiré de la main côté serveur. L'inventaire
|
||||
est immédiatement resynchronisé, y compris en Créatif. Une copie de la même
|
||||
carte ne peut donc pas rejouer l'invasion. Si la préparation échoue, la carte
|
||||
reste intacte.
|
||||
|
||||
L'invasion n'écrit aucun bloc. Chaque arrivée essaie plusieurs angles autour du
|
||||
joueur et cherche un sol libre entre six blocs sous et six blocs au-dessus de la
|
||||
hauteur d'activation. Aucun chunk supplémentaire n'est chargé. Une zone trop
|
||||
encombrée, liquide, sans sol ou hors frontière refuse proprement l'ouverture par
|
||||
le glyphe de particules existant.
|
||||
|
||||
Les joueurs créatifs présents dans le rayon restent associés à l'invasion de
|
||||
carte. Leur invulnérabilité Vanilla n'est pas modifiée : la brèche demeure
|
||||
dangereuse pour les joueurs en Survie, les créatures et l'environnement alentour.
|
||||
Le vieux socle beta.167 conserve son inscription réservée aux joueurs en Survie.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- GameTests `horde172` : activation et consommation hors laboratoire en Créatif
|
||||
puis en Survie ; centre de session égal à la position du joueur.
|
||||
- Terrain étagé : préparation, consommation et première apparition à la hauteur
|
||||
du sol local, sans plancher de laboratoire.
|
||||
- Régressions `horde167` à `horde172` : 10/10 GameTests requis.
|
||||
- Matrice complète `./gradlew check build` : 261/261 GameTests requis et
|
||||
compilation complète réussis.
|
||||
- Pack normal `Sanctuary-beta.172.mrpack` : SHA-256
|
||||
`9e0cc6f07195b094963c03bce52c971ad7072990ac7976dff34f7647be176d7e`.
|
||||
- Pack laboratoire `Sanctuary-Test-beta.172.mrpack` : SHA-256
|
||||
`60565cd9bf28708f398a32da38f1fce05789a1d6bfc513aab94cfe90932d82df`.
|
||||
- JAR Sanctuary embarqué dans les deux packs : SHA-256
|
||||
`fb72d4d3efcd50d3ba67b0899faf9ffca5c2451150c5f169e2a0d030c9b6d7ae` ;
|
||||
JAR laboratoire :
|
||||
`67a7399372f05e384a03461c45730edc0459cbe342cf57bcb280c5c849086620`.
|
||||
@@ -0,0 +1,68 @@
|
||||
# RENDER-149 — Distances PBR et SSR indépendantes
|
||||
|
||||
Branche `codex/separate-reflection-distances-beta149`, socle beta.148 `6f87144`.
|
||||
|
||||
- Deux réglages : Distance PBR et Distance SSR, chacun à 64 blocs par défaut.
|
||||
Choix 16, 32, 64, 128, 256 blocs, enregistrés séparément.
|
||||
- Le PBR conserve son propre fondu et sa propre limite de portée. Le SSR
|
||||
utilise sa distance pour les surfaces réfléchissantes et sa recherche de
|
||||
paysage. Le maillage et la sélection des surfaces couvrent le maximum des
|
||||
deux portées actives, afin que réduire l’une ne coupe pas l’autre.
|
||||
- Ancien défaut commun 32 migré une fois vers PBR 64 ; nouveau réglage SSR 64.
|
||||
Les anciennes valeurs PBR différentes de 32 restent conservées. Après la
|
||||
migration, un choix explicite 32 est conservé comme les autres valeurs.
|
||||
- Option nommée exactement « SSR » en français et en anglais, sans la mention
|
||||
« expérimental ». Les autres options expérimentales du jeu sont inchangées.
|
||||
- Intensités PBR 50 % et SSR 20 %, rendu solaire diffus de beta.148 conservés.
|
||||
SSR conserve sa dépendance au PBR et les limites du paysage visible/chargé
|
||||
et du budget de maillage.
|
||||
|
||||
- Les feuilles (et fibres de laine, même profil entièrement mat) ne reçoivent
|
||||
plus de large éclat spéculaire blanc. Leur relief normal reste présent.
|
||||
La pierre et le bois retrouvent exactement leur poids spéculaire précédent,
|
||||
comme les surfaces polies, les métaux, l’eau et le verre. La suppression
|
||||
concerne les profils non métalliques de rugosité 0,98, avec transition 0,90–0,98.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Contrôles de persistance indépendante, valeurs par défaut et libellés FR/EN.
|
||||
Scènes graphiques avec PBR variable/SSR 256 puis PBR 256/SSR variable.
|
||||
- Suite PBR/préférences Vulkan réussie : deux défauts 64 et persistance
|
||||
indépendante sur 16/32/64/128/256 ; libellés FR/EN et nom SSR vérifiés.
|
||||
Journal : `build/beta149-pbr-vulkan.log`.
|
||||
- Suites SSR Vulkan et OpenGL réussies avec les portées dissociées, F5,
|
||||
intersections, eau/verre/métal, soleil/lune, OFF/zéro et rechargement.
|
||||
Journaux : `build/beta149-ssr-vulkan.log`, `build/beta149-ssr-opengl.log`.
|
||||
Ces passes précèdent l’ajustement final du profil entièrement mat.
|
||||
- Suite PBR Vulkan finale avec feuillage réussie : 170 172 pixels de feuilles
|
||||
contrôlés, saturation relative 1,00007, relief visible sur 63 236 pixels.
|
||||
Journal : `build/beta149-foliage-vulkan.log` ; captures correspondantes
|
||||
dans `build/evidence/beta149-foliage-vulkan/`.
|
||||
- Bois et briques après recentrage sur le feuillage : aucun pixel modifié
|
||||
par rapport à la capture précédant l’ajustement, sur les zones de contrôle
|
||||
de 26 304 et 40 896 pixels respectivement.
|
||||
- `./gradlew check build` exécuté dans l’instantané isolé : 252 tests serveur,
|
||||
229 réussis et 23 échecs, mêmes identifiants qu’en beta.148. Aucun nouvel échec.
|
||||
Journal : `build/beta149-check-build-isolated.log` ; comparaison :
|
||||
`build/beta149-server-failures.json`. L’ajustement final du feuillage concerne
|
||||
seulement le shader et son test client. Le contrôle global reste en échec.
|
||||
|
||||
- Suite PBR OpenGL finale réussie également : 170 199 pixels de feuilles,
|
||||
saturation relative 1,00001, relief visible sur 63 263 pixels.
|
||||
Journal : `build/beta149-foliage-opengl.log` ; captures correspondantes
|
||||
dans `build/evidence/beta149-foliage-opengl/`.
|
||||
- Assemblage final réussi : `./gradlew build assemblePack -x :sanctuary:check`,
|
||||
sans répéter les contrôles purs/serveur exécutés dans l’instantané.
|
||||
Journal : `build/beta149-build-pack.log`. Cette exclusion ne transforme
|
||||
pas le contrôle complet en réussite.
|
||||
|
||||
## Artefact
|
||||
|
||||
[Sanctuary-beta.149.mrpack](../build/Sanctuary-beta.149.mrpack), copié aussi dans
|
||||
`sanctuary-beta/build/` avec les autres versions. Archive vérifiée, un seul JAR
|
||||
Sanctuary beta.149 identique au JAR construit, shaders identiques aux sources,
|
||||
libellés SSR et deux portées FR/EN vérifiés. Minecraft 26.3 / Loader 0.19.5.
|
||||
Taille : 10 520 465 octets. SHA-256 :
|
||||
`ef5519d9a0e2006b865b62371a6f8712db02ab138aa9698339d6fdb02fb4befa`.
|
||||
Reçu : `build/beta149-artifacts.json`. Aucune installation Prism ni publication.
|
||||
|
||||
@@ -0,0 +1,120 @@
|
||||
# beta.166 — inscription web et reprise de l’accueil
|
||||
|
||||
Intégration de la PR #1 de Chris (`8de569b`), avec son historique conservé par
|
||||
le merge `ad960ef`, sur beta.165 et ses 252 GameTests actualisés.
|
||||
|
||||
## Parcours
|
||||
|
||||
Le joueur ouvre son dossier `/candidature` sur le site, se connecte à Discord,
|
||||
dépose sa candidature et récupère le code après acceptation/parrainage. Le
|
||||
bouton **Récupérer mon code** de Hello World ouvre ce dossier, sur le site
|
||||
configuré par le serveur, avec la confirmation de lien native de Minecraft.
|
||||
Le code reste obligatoire avant la création du personnage. Gazette et tableau
|
||||
restent en consultation seule sur le site.
|
||||
|
||||
Sans configuration d’accès, le mod autonome garde l’accueil sans code.
|
||||
Avec une configuration partielle/invalide, l’accueil reste fermé. Un habitant
|
||||
déjà arrivé n’a pas à présenter de code ni à connaître le nouveau payload d’accès.
|
||||
Les autres contrôles de compatibilité Sanctuary restent appliqués.
|
||||
|
||||
## Contrat API de reprise
|
||||
|
||||
Les POST authentifiés `/api/v1/access-codes/verify` et `/redeem` reçoivent :
|
||||
`code`, `minecraft_username` et `admission_id` (UUID). Le serveur calcule cette
|
||||
admission à partir d’un identifiant de monde persistant et de l’UUID du joueur ;
|
||||
le client ne la choisit jamais. Un autre joueur ou un autre monde possède une
|
||||
admission différente, même à graine identique.
|
||||
|
||||
La consommation en base conserve `used_at` et `admission_id` dans la même
|
||||
transaction verrouillée. Une répétition de la même admission et du même pseudo
|
||||
retourne `valid: true, reason: resumed`, le pseudo, le Discord et l’admission.
|
||||
`verify` accepte aussi cette reprise ; le bouton de confirmation redevient
|
||||
accessible. Une autre admission retourne `already_used` sans identité. Un pseudo
|
||||
incorrect ou un code révoqué reste refusé. Les codes anciennement consommés sans
|
||||
reçu restent refusés ; leur récupération nécessite une réémission par le staff.
|
||||
|
||||
Le mod exige une réponse positive portant son admission exacte. Il n’accepte
|
||||
plus `already_used` sur la seule présence d’un pseudo et d’un Discord. Une
|
||||
réponse positive arrivée après déconnexion est quand même enregistrée, mais ne
|
||||
crée pas le personnage hors connexion. Si la réponse est entièrement perdue,
|
||||
le même code est vérifiable et consommable à nouveau au prochain accueil.
|
||||
Le reçu local sauvegardé permet de terminer une création déjà autorisée.
|
||||
Les erreurs réseau et de jeton proposent une nouvelle vérification.
|
||||
|
||||
## Migration et activation
|
||||
|
||||
1. Sauvegarder la base web et les fichiers de progression du serveur.
|
||||
2. Appliquer la migration additive web `add_admission_receipt_to_access_codes_table`
|
||||
(colonne UUID nullable, aucune donnée supprimée), puis déployer le service API.
|
||||
3. Installer beta.166 sur serveur et clients des nouveaux arrivants.
|
||||
4. Configurer `SANCTUARY_APP_URL` et `SANCTUARY_API_TOKEN`, ou
|
||||
`config/sanctuary/access.json` (`appUrl`, `token`). Le jeton reste serveur.
|
||||
Utiliser HTTPS hors du labo local et un serveur Minecraft en online-mode pour
|
||||
authentifier les UUID ; le labo offline ne prouve pas l’identité d’un compte.
|
||||
|
||||
Dans le monde, `data/sanctuary-admission-id` est créé atomiquement avant tout
|
||||
appel API et doit être sauvegardé avec `data/sanctuary-access.json`. Aucun code
|
||||
brut ni jeton n’est enregistré dans ces fichiers. Leur corruption ferme l’accès
|
||||
et conserve les preuves. Les formats habitants/starter et les chunks restent
|
||||
inchangés. Ne pas supprimer l’identifiant d’admission pour « réparer » un accès.
|
||||
|
||||
Retour arrière : conserver la colonne web et les reçus, désactiver explicitement
|
||||
l’accès si l’on revient à un ancien mod (cela réouvre l’accueil sans code).
|
||||
Ne pas exécuter le rollback de migration après consommation : il supprimerait
|
||||
les reçus nécessaires à la reprise. Pas de déploiement public implicite.
|
||||
|
||||
## Laboratoire
|
||||
|
||||
Le monde beta.160 existant est conservé. La reprise de l’introduction utilise
|
||||
un nouveau monde de développement ; les réglages graphiques et anciens JAR sont
|
||||
conservés. `scripts/duo_lab.py server --intro` joue la vraie introduction sur le
|
||||
monde plat ; sans cette option, le profil de test continue de la sauter.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- `check build assemblePack` réussit (10 min 12 s), avec **252/252 GameTests**.
|
||||
Trace : `build/access166-full.log`.
|
||||
- Smoke du contrat et du ledger : reprise, mauvais compte, mauvais reçu, absence
|
||||
de reçu, isolation entre mondes de même graine, persistance et corruption.
|
||||
- `access166Interop` réussit contre la vraie API PHP/MariaDB locale : réponse de
|
||||
consommation ignorée, nouveau ledger, nouvelle vérification et confirmation,
|
||||
refus d’un autre joueur et d’une autre admission (`build/access166-interop.log`).
|
||||
- Test client Vulkan : vrai handshake Hello World, endpoint HTTP contrôlé qui
|
||||
consomme puis répond 503, nouvelle vérification, confirmation et un seul reçu
|
||||
bound. Ce test n’utilise pas Discord et ne prétend pas vérifier OAuth.
|
||||
- Site : 12 tests inscription/candidature (68 assertions), puis 31 tests ciblés
|
||||
inscription/redirection Discord/communauté (258 assertions), tous réussis.
|
||||
Pint passe. Suite web entière : 74 réussis, 1 ignoré et 1 échec préexistant
|
||||
`PlayerModerationTest::test_an_administrator_can_open_a_player_profile`
|
||||
(ancien libellé « Nommer admin »). Reproduit dans un instantané de HEAD avant
|
||||
modification ; pas une régression de l’inscription.
|
||||
- Base locale sauvegardée avant la migration, puis migration additive appliquée.
|
||||
Le vrai OAuth Discord reste à valider avec les identifiants de l’application ;
|
||||
aucun contournement d’authentification ou compte de démonstration pour le joueur
|
||||
n’est installé. Un compte API jetable distinct sert uniquement à l’interop.
|
||||
- Aucun déploiement sur sanctuary-minecraft.net, aucun push/fusion distante,
|
||||
aucune modification de l’ancienne sauvegarde du labo ni des JAR archivés.
|
||||
|
||||
Après la passe complète, le retour immédiat de la vérification en cache a été
|
||||
ajusté pour qu’une nouvelle tentative ne reste pas sans réponse pendant la
|
||||
limite d’une seconde. Le scénario client exerce précisément cette reprise.
|
||||
`check build assemblePack` a ensuite réussi avec les 6 GameTests de progression
|
||||
ciblés (`build/access166-final.log`). La disposition compacte a été resserrée
|
||||
pour garder tous les contrôles dans un GUI de 240 pixels de haut ; ses captures
|
||||
FR/EN et assertions de limites sont vérifiées par le scénario client.
|
||||
|
||||
Le correctif web est enregistré dans `f36cc36`. Les identifiants OAuth fournis
|
||||
par l’utilisateur sont chargés depuis le `.env` privé et la redirection réelle
|
||||
vers Discord fonctionne avec le callback local. Le retour authentifié reste
|
||||
à confirmer après la connexion/autorisation de l’utilisateur.
|
||||
|
||||
La livraison finale et les captures compactes passent dans
|
||||
`build/access166-delivery.log` : scénario client Vulkan FR/EN et assemblage du
|
||||
pack. Cette dernière commande exclut `:sanctuary:check` pour éviter une troisième
|
||||
exécution générale après les deux contrôles réussis ci-dessus ; elle ne remplace
|
||||
pas ces résultats. La seule modification de jeu depuis le contrôle ciblé est
|
||||
la disposition compacte, couverte par ce dernier test client.
|
||||
|
||||
Le labo reste arrêté, configuré pour `duo-registration-166`. L'ancien
|
||||
`duo-flat-160` n'est pas modifié. Lancement prévu après connexion au dossier web :
|
||||
`python3 scripts/duo_lab.py server --memory 768 --intro`, puis le client habituel.
|
||||
@@ -0,0 +1,128 @@
|
||||
# DISCOVERY-183 — lieux et ressources de Sanctuary Island
|
||||
|
||||
Ticket du 30 septembre 2026, branche `codex/island-discovery-beta183`.
|
||||
Le créateur a visité le solo beta.182 et valide la palette naturelle, la rosace,
|
||||
les étangs et la génération sous l'île. Il demande un portail **horizontal**,
|
||||
les secteurs miniers et le soufre manquants, l'ISS séparée et un exemple d'eau
|
||||
haute qui suit le dénivelé. Son complément relie les vitres de la rosace aux
|
||||
huit couleurs du Bugrock et à une géographie lisible, froide au nord, chaude au sud.
|
||||
|
||||
## Contrat
|
||||
|
||||
Nouveau preset facultatif `sanctuary_test:discovery_v1`, profil `discovery`.
|
||||
Graine de visite : **42**. Anciens presets, sauvegardes et chunks conservés.
|
||||
La source de biomes possède une option `discovery` absente/false pour les
|
||||
anciens profils : seule la nouvelle génération active la poche de soufre.
|
||||
Aucune migration, expansion, activation de portail ou progression ajoutée.
|
||||
Minecraft 26.3, blocs de soufre natifs et minerais Sanctuary existants.
|
||||
|
||||
## Contenu
|
||||
|
||||
- Galerie centrale agrandie, toujours taillée dans la roche, avec ses deux
|
||||
annexes et passages en boucle. Cadre d'obsidienne de **5 × 5**, trou central
|
||||
de **3 × 3**, fond un bloc plus bas, sec. Le gardien viendra ultérieurement.
|
||||
- Rosace : positions, nervures, passages et Bugrock à Y=320 conservés.
|
||||
Seules les vitres changent. Ordre du dessin source, depuis le nord :
|
||||
bleu clair, vert clair, vert, orange, rouge, magenta, jaune, cyan.
|
||||
Le petit sommet blanc conserve le rappel du logo central blanc.
|
||||
Cette rose colorée donne une convention géographique ; elle ne transforme
|
||||
pas encore les biomes de l'île en huit régions ni n'allume les relais.
|
||||
- Trois secteurs de gemmes : saphir au nord (0,-176), émeraude à l'est
|
||||
(176,0), rubis au sud (0,176), chacun de rayon 64 blocs autour des centres
|
||||
de chunks. Petits amas sur les faces de grotte, entre Y=40 et 287,
|
||||
toujours au moins 13 blocs sous la surface, au plus douze blocs par chunk
|
||||
retenu. Les blocs exposés et stocks sont comptés dans
|
||||
le monde effectivement généré. Diamants, cuivre, charbon, fer et lapis
|
||||
gardent leur distribution précédente ; aucun or ni redstone ajouté.
|
||||
- Une caverne de soufre au sud-ouest, altitude choisie dans la roche,
|
||||
soufre/cinabre/calcite, ouverture vers le jour et trois formations de soufre
|
||||
enracinées à la surface pour la repérer. Pas de lave ni de nouveau mob.
|
||||
- Un lac supérieur supplémentaire et son bassin aval, reliés par un chenal
|
||||
en marches sur quatre blocs de dénivelé. La partie aval s'ouvre au jour.
|
||||
Les deux systèmes d'étangs beta.180 restent présents. Recherche locale
|
||||
bornée et plan mémorisé ; aucune hydrologie régionale calculée.
|
||||
- ISS entre Y=575 et 591 : trois modules métalliques reliés et praticables,
|
||||
quatre ailes solaires, poutre centrale, antenne, porche d'arrivée et
|
||||
observation vitrée vers l'île. Architecture originale, sans schematic
|
||||
externe. La salle nord contient une table de cartes dans des cadres lumineux
|
||||
horizontaux. Le rayon du générateur détermine la mosaïque et la salle :
|
||||
5 × 5 pour le petit format (512), 7 × 7 pour le moyen (724), 9 × 9 pour le
|
||||
grand (1024). Ce profil de terrain reste au format moyen ; les autres
|
||||
dimensions de station sont vérifiées géométriquement, sans ajouter de
|
||||
nouveaux profils de terrain à cette livraison. Aucun familier spécial,
|
||||
quête ou portail vers les hauteurs fonctionnel ajouté.
|
||||
|
||||
Toutes les nouvelles écritures appartiennent au chunk en cours de décoration.
|
||||
Plans locaux calculés une fois, aucune reconstruction dans une sauvegarde
|
||||
ouverte. Les cartes sont des objets Minecraft natifs, persistés avec leurs
|
||||
cadres. Une file finie les prépare par tranches de quatre lignes avec un budget
|
||||
cible de 3 ms par tick. Projection topographique de la graine au pas de quatre
|
||||
blocs, palette réelle pour les chunks déjà chargés, biomes pour les autres :
|
||||
c'est une vue d'ensemble du terrain initial, pas une photographie détaillée
|
||||
de toutes les constructions. Aucun chargement de chunks éloignés demandé pour
|
||||
la carte. Les cartes terminées sont figées comme une trace de l'ancienne
|
||||
expédition, et ne sont ni recréées ni regagnées si un joueur retire un cadre.
|
||||
Une interruption reprend une carte inachevée avec son identifiant existant.
|
||||
|
||||
## Vérifications et visite
|
||||
|
||||
Monde neuf final `solo183e/discovery/42`, serveur arrêté et sauvegardé proprement :
|
||||
567 échantillons de densité conservés sous Y=216, zéro région d'hydrologie,
|
||||
trois cerisiers, les deux bassins antérieurs et les cinq spawners/quatre caches
|
||||
conservés. Galerie : 1 939 surfaces reliées sur 1 979 colonnes, cadre 5 × 5 et
|
||||
fosse sèche 3 × 3 vérifiés. Rosace : géométrie inchangée, huit couleurs présentes
|
||||
et huit approches libres.
|
||||
|
||||
Stocks réellement comptés dans les trois districts : 235 saphirs (176 exposés),
|
||||
624 émeraudes (441 exposées), 576 rubis (402 exposés). Nouveau système d'eau :
|
||||
4 311 blocs d'eau reliés et débouché extérieur vérifié. La ventilation du soufre
|
||||
est ouverte jusqu'au terrain local du débouché, plutôt qu'à la hauteur plus
|
||||
basse du centre de la poche.
|
||||
|
||||
ISS : 4 742 entrées de plan, trois modules reliés, quatre ailes solaires,
|
||||
49 cartes distinctes et supportées dans 49 cadres horizontaux. Les géométries
|
||||
5 × 5, 7 × 7 et 9 × 9 couvrent les rayons 288, 395 et 544 avec leurs marges de
|
||||
terrain. La mosaïque courante couvre 896 × 896 blocs. Calcul de son aperçu :
|
||||
2 039 ms au total ; aucun chargement de chunk distant dans ce calcul. Lecture
|
||||
NBT après arrêt : 49 cartes pleines et figées, 49 identifiants uniques, tous
|
||||
les cadres orientés vers le haut, centres jointifs et aucun marqueur de travail
|
||||
inachevé. Assemblage des pixels sauvegardés inspecté visuellement ; il ne s'agit
|
||||
pas d'une capture du jeu. Rapport local `build/discovery183-saved-atlas.json`.
|
||||
|
||||
Démarrage serveur mesuré à 4,4 s ; préparation avec sondages, génération des
|
||||
zones visitées et contrôles terminée à 41,1 s. Ce dernier chiffre inclut les
|
||||
tests synchrones, ce n'est pas un temps de démarrage normal du solo.
|
||||
Rapport `build/discovery183-quick-result.json`.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack` réussi en 7 min 20 s,
|
||||
**265/265 GameTests** (`build/discovery183-check-build.log`). Après les deux
|
||||
retouches finales limitées au laboratoire (ventilation et lecture des couleurs
|
||||
réelles de la carte), compilation, contrôles du mod de labo, assemblages et
|
||||
export du lanceur ont été refaits ; les checks des trois modules inchangés,
|
||||
déjà réussis, n'ont pas été répétés dans cet assemblage final. Journal
|
||||
`build/discovery183-final-assembly.log`. Le monde `solo183e` vérifie ce code final.
|
||||
|
||||
Solo neuf `visite183/discovery/42`, `Sanctuary-Discovery-183-Solo`, vue 32,
|
||||
simulation 12, créatif, vol et commandes. Départ préparé devant la table de
|
||||
l'ISS. Entrée en jeu confirmée dans le journal le 30 septembre à 03:11:11 :
|
||||
KokaLab en (4.5,580,-12.5), vue 32. Passage en spectateur à 03:11:48.
|
||||
Client Vulkan actif.
|
||||
Aucune sauvegarde antérieure ni instance Prism modifiée.
|
||||
|
||||
| Lieu | Téléportation de visite |
|
||||
| --- | --- |
|
||||
| Salle des cartes ISS | `/tp 4.5 580 -12.5 140 35` |
|
||||
| Porche ISS | `/tp 0.5 577 28.5 180 0` |
|
||||
| Rosace | `/tp 0.5 319 5.5 180 0` |
|
||||
| Portail inférieur | `/tp 0.5 177 7.5 180 30` |
|
||||
| Poche de soufre | `/tp -152 180 152` |
|
||||
| Indice de soufre en surface | `/tp -158 281 149` |
|
||||
| Bassin supérieur | `/tp -96 254 -192` |
|
||||
| Saphirs | `/tp -62 236 -204` |
|
||||
| Émeraudes | `/tp 114 172 -30` |
|
||||
| Rubis | `/tp -60 192 146` |
|
||||
|
||||
Graine 42 testée en génération native ; les autres graines restent à éprouver.
|
||||
Palette, volumes, positionnement des cartes et proportions de l'ISS à valider
|
||||
en visite. Les cartes sont une vue d'ensemble figée de l'île principale,
|
||||
pas encore un atlas vivant des expansions.
|
||||
@@ -0,0 +1,197 @@
|
||||
# WG-ECO-176 — strates, biomes et mares du laboratoire
|
||||
|
||||
Branche `codex/island-ecology-beta176`, base de visite beta.175 conservée au
|
||||
commit `ba4cf19`. Le créateur autorise l'essai décrit dans
|
||||
[les retours de visite](worldgen-retours-beta175.md).
|
||||
|
||||
## Contrat avant implémentation
|
||||
|
||||
Nouveau preset `sanctuary_test:ecology_v1`, réglage `ecology_v1_10`, graine
|
||||
initiale 42 puis témoins 0 et 173, diamètre 724. Relief brut identique à
|
||||
`sky_v1` ; matériaux, biomes, décorations et petites excavations des mares
|
||||
peuvent différer. Limite du ciel réservé : aucun bloc généré de 512 à 639.
|
||||
Les presets historiques et la génération normale restent inchangés.
|
||||
|
||||
- Géologie en couches ondulées de pierre, andésite, tuf, deepslate et touches
|
||||
de calcite. Conserver le diamant profond et enfoui.
|
||||
- Grandes régions automnales et de cerisiers, lisières et prairie/forêt.
|
||||
- Trois récifs avec identité humide/tropicale ; deux fragments supérieurs
|
||||
avec végétation courte. Le sélecteur sait dépasser l'ancienne limite 384.
|
||||
- Mares locales retenues, nombre d'essais borné, écriture dans le chunk
|
||||
propriétaire, sans demande de plan hydrologique régional.
|
||||
- Biomes propres au labo avec décorations sélectionnées : pas de structures
|
||||
natives, notamment mineshafts et villages. Aucun village Sanctuary créé
|
||||
dans cet essai ; aucun nouveau contenu d'expansion.
|
||||
|
||||
Aucune migration : nouveaux mondes de test seulement. La sauvegarde de
|
||||
visite beta.175 est conservée et ne doit pas être ouverte avec une autre
|
||||
empreinte de génération. Le nouveau monde peut être copié après arrêt
|
||||
propre vers un solo avec commandes et rendu 32 ; conserver l'original et
|
||||
les identifiants de génération. Aucun déploiement Prism ni publication.
|
||||
|
||||
## Vérification prévue
|
||||
|
||||
Compilation, `check build assemblePack assembleTestPack`, mesures natives
|
||||
sur trois graines, réouverture de 42, coupes géologiques et cartes de biomes
|
||||
à la surface réelle. Contrôler la stabilité des mares après ticks, l'absence
|
||||
de structures admissibles, le ciel vide et l'absence de plans hydrologiques.
|
||||
Le recensement exhaustif des minerais doit fonctionner avec mémoire bornée ;
|
||||
aucun petit échantillon ne sera présenté comme un total d'île.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Le module optionnel `sanctuary-test` fournit trois composants natifs :
|
||||
`EcologyBiomes176` sélectionne les biomes, `EcologyStrata176` remplace les
|
||||
matériaux pendant leur génération, et `EcologyWater176` pose les mares avant
|
||||
les décorations. Le preset normal n'utilise aucun de ces composants.
|
||||
|
||||
Les biomes propres au laboratoire réutilisent des décorations de Minecraft
|
||||
26.3 : forêt automnale, cerisiers, jungle clairsemée, mangrove, marais et
|
||||
cavernes. Les deux fragments les plus hauts reçoivent de la végétation courte.
|
||||
Les minerais natifs, sources, lacs et structures sont exclus de cette palette ;
|
||||
les dépôts du laboratoire beta.175 restent responsables des ressources.
|
||||
|
||||
Une mare occupe un seul chunk, avec un rayon de 3 ou 4 blocs et deux niveaux
|
||||
d'eau. Le placement vérifie le fond et les parois avant toute écriture ; cinq
|
||||
essais au maximum, dans un tiers des chunks. Aucun calcul de bassin versant,
|
||||
chargement de voisin ni recherche hydrologique régionale. Les décorations
|
||||
natives peuvent ensuite ajouter des plantes ou de petites flaques de grotte.
|
||||
|
||||
Le test d'eau compare les positions de **toutes** les sources dans le voisinage
|
||||
immédiat avant et après 240 ticks natifs, y compris les blocs gorgés d'eau.
|
||||
Il refuse tout écoulement et toute perte/apparition de source, et vérifie
|
||||
qu'il reste de l'eau dans chaque mare. Les flaques indépendantes produites
|
||||
par les groupes de stalagmites ne doivent pas être confondues avec une fuite.
|
||||
|
||||
Le recensement exhaustif conserve une enveloppe finie de chunks jusqu'à la
|
||||
fin de la mesure. Il ne force plus des cycles d'expiration/sauvegarde durant
|
||||
`SERVER_STARTED`, qui dupliquaient les copies des chunks voisins en mémoire.
|
||||
Ce parcours est réservé au diagnostic `--whole-island`, jamais au lancement
|
||||
ordinaire du laboratoire.
|
||||
|
||||
## Reproduction
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary-test:exportDuoLaunch
|
||||
python3 scripts/worldgen_lab.py prepare --profile ecology --seed 42 --run nouvel-essai
|
||||
python3 scripts/worldgen_lab.py server --profile ecology --seed 42 --run nouvel-essai
|
||||
```
|
||||
|
||||
Ajouter `--verify` pour les relevés et le contrôle des fluides. Pour un
|
||||
recensement complet, ajouter `--whole-island` à la préparation **et** au serveur.
|
||||
Le lanceur refuse de réutiliser un monde dont l'empreinte des sources a changé.
|
||||
Les fichiers `ecology-v1-cold/survey.json`, les coupes binaires et
|
||||
`worldgen-lab-metrics.json` sont écrits dans le dossier serveur du laboratoire.
|
||||
`scripts/ecology_atlas.py` produit l'atlas avec les dépendances de
|
||||
`scripts/sky-atlas-requirements.txt`.
|
||||
|
||||
## Mesures natives du 29 septembre
|
||||
|
||||
Série `science176d`, Java 25, Minecraft 26.3, heap serveur limité à 1 536 MiB.
|
||||
L'[archive des relevés](/Users/koka/Documents/sanctuary/retours-sessions/2026-09-29_1506-storyquest/releves-beta176/)
|
||||
conserve les JSON, coupes, journaux, figures et empreintes SHA-256.
|
||||
|
||||
| Contrôle | Graine 42 | Graine 0 | Graine 173 |
|
||||
| --- | ---: | ---: | ---: |
|
||||
| Densités identiques à beta.175 | 50 000 / 50 000 | 50 000 / 50 000 | 50 000 / 50 000 |
|
||||
| Ensembles de structures natives admissibles | 0 | 0 | 0 |
|
||||
| Plans hydrologiques régionaux | 0 | 0 | 0 |
|
||||
| Mares témoins stables après 240 ticks | 8 / 8 | 8 / 8 | 8 / 8 |
|
||||
| Blocs d'air contrôlés en Y=512–639 | 1 474 560 | 1 474 560 | 1 474 560 |
|
||||
|
||||
Les cinq récifs de chaque graine portent de la végétation. Les mares témoins
|
||||
comprennent de la surface, des grottes et des récifs hauts. Le contrôle du ciel
|
||||
porte sur neuf chunks autour de chacun des cinq récifs ; ce n'est pas un scan
|
||||
exhaustif de toutes les décorations possibles sur toutes les graines.
|
||||
|
||||
Réouverture de 42 : cartes de biomes identiques, deux coupes de blocs identiques
|
||||
octet par octet, mêmes sources d'eau avant/après les 240 nouveaux ticks.
|
||||
|
||||
### Ressources de toute l'île, graine 42
|
||||
|
||||
Recensement des **2 000 chunks de l'enveloppe de l'île**, Y=0–639, après
|
||||
décoration ; aucune extrapolation des 81 chunks centraux. Durée du comptage :
|
||||
154,391 s, réservée au diagnostic. Les points de contrôle mémoire montrent
|
||||
341–607 MiB de heap utilisé ; cela ne mesure pas le pic total du processus.
|
||||
|
||||
| Ressource | Blocs de minerai, variantes pierre + deepslate |
|
||||
| --- | ---: |
|
||||
| Cuivre | 193 771 |
|
||||
| Charbon | 138 998 |
|
||||
| Fer | 5 343 |
|
||||
| Lapis | 7 124 |
|
||||
| Diamant | **336** |
|
||||
| Or | 0 |
|
||||
| Redstone | 0 |
|
||||
|
||||
Les 336 diamants sont en deepslate, sous Y=136, sans voisin d'air. L'améthyste
|
||||
comprend 5 578 blocs ordinaires, 1 422 blocs bourgeonnants et 219
|
||||
bourgeons/cristaux. Ces totaux décrivent ce monde enregistré ; les deux autres
|
||||
graines ont seulement un relevé minéral régional, pas un total d'île.
|
||||
|
||||
Sur la carte de surface échantillonnée de 42, l'automne occupe 19,4 % des points
|
||||
et les cerisiers 25,5 %. Leurs plus grandes composantes regroupent respectivement
|
||||
642/646 et 846/850 points : il s'agit bien de grandes régions, avec quelques
|
||||
points isolés aux bords. Grille de 8 blocs, connexité à quatre voisins ; ces
|
||||
proportions ne sont pas des surfaces exactes au bloc près.
|
||||
|
||||
### Durées et interprétation
|
||||
|
||||
| Passage | Initialisation serveur hors bootstrap JVM | Processus → fin des diagnostics |
|
||||
| --- | ---: | ---: |
|
||||
| 42 neuve, comptage intégral | 6,403 s | 237,523 s |
|
||||
| 42 réouverte, relevé régional | 0,922 s | 36,606 s |
|
||||
| 0 neuve, relevé régional | 4,782 s | 86,856 s |
|
||||
| 173 neuve, relevé régional | 2,792 s | 86,125 s |
|
||||
|
||||
La seconde colonne chronomètre les événements de démarrage du serveur, pas
|
||||
l'ouverture complète du client. La dernière inclut les cartes, chargements
|
||||
de chunks, coupes, minerais et 240 ticks de vérification. Ces parcours sont
|
||||
activés seulement par `--verify`/`--whole-island` et ne tournent pas pendant
|
||||
la visite solo. Aucun gain de FPS ni coût isolé de l'eau n'est déduit ici.
|
||||
|
||||
## Livraison locale et limites
|
||||
|
||||
Client solo ouvert le 29 septembre à 20:22 : backend Vulkan confirmé
|
||||
(MoltenVK 1.4.2, Apple M1), entrée de KokaLab à `(-8.5, 249, -13.5)`,
|
||||
serveur intégré et rendu passé à 32 chunks dans le journal. Les commandes
|
||||
sont autorisées dans la copie.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack` : contrôles statiques et
|
||||
smokes terminés, puis **264/265 GameTests réussis**. Le seul échec est
|
||||
`familiar029game_tests_carried_pair_and_invulnerability_still_apply`, assertion
|
||||
« Carrier fixture » au tick 0. Ce code de portage n'est pas modifié par ce lot
|
||||
et cette suite ne charge pas le module écologique `sanctuary-test`.
|
||||
|
||||
Relance ciblée sans modification de code :
|
||||
`./gradlew :sanctuary:runGameTest -PsanctuaryFocusedTests=familiarhit -PsanctuaryExpansionReload=true`
|
||||
→ **7/7 réussis**, `BUILD SUCCESSFUL`. Cela indique un échec intermittent ou
|
||||
une interaction de suite à examiner ; cela ne transforme pas la première
|
||||
suite complète en passage réussi. Aucun correctif du portage n'est livré ici.
|
||||
|
||||
Assemblage local **réussi** après ces contrôles, sans les relancer :
|
||||
`./gradlew build assemblePack assembleTestPack -x :check -x :sanctuary:check -x :sanctuary-test:check -x :demeure:check -x :jei:check`.
|
||||
`BUILD SUCCESSFUL` en 12 s ; packs générés dans `build/packwiz` et
|
||||
`build/packwiz-test`. Les journaux complets sont conservés dans l'archive des relevés. Aucun canal
|
||||
packwiz, serveur personnel ni instance Prism n'est mis à jour.
|
||||
|
||||
La copie `Sanctuary-Ecology-176-Solo` provient du serveur `science176d/42`
|
||||
après arrêt et réouverture vérifiée. Commandes autorisées, mode créatif,
|
||||
réglages de visite repris de beta.175 avec rendu 32 chunks. L'ancien solo
|
||||
est conservé. Pour observer librement : `/gamemode spectator`.
|
||||
|
||||
Repères de visite, graine 42, points d'observation au-dessus du terrain :
|
||||
|
||||
| Zone | Téléportation en spectateur |
|
||||
| --- | --- |
|
||||
| Grande région automnale | `/tp @s -4 300 180` |
|
||||
| Grande région de cerisiers | `/tp @s 20 280 -180` |
|
||||
| Récif jungle | `/tp @s -116 390 160` |
|
||||
| Mare du récif mangrove | `/tp @s -105 425 -152` |
|
||||
| Récif marais | `/tp @s 219 470 22` |
|
||||
| Transition profonde près d'une mare en grotte | `/tp @s 41 166 -55` |
|
||||
|
||||
Premier essai : les mares restent petites et arrondies ; leur forme, les
|
||||
proportions de pierres et les lisières doivent encore être jugées en visite.
|
||||
Les grands lacs, rivières et cascades, les villages Sanctuary, les donjons,
|
||||
les expansions et la station ISS ne sont pas implémentés par ce lot.
|
||||
@@ -0,0 +1,40 @@
|
||||
# WG-ECO-179 — grottes vivantes et complexes souterrains
|
||||
|
||||
Retour de visite beta.178 : automne validé ; trop de cerisiers bas, bordures
|
||||
rocheuses sur les pentes, grottes devenues trop sèches et trop dépouillées.
|
||||
Nouveau preset `sanctuary_test:living_ecology_v1`, profil `living`, graine 42,
|
||||
branche `codex/living-caves-beta179`, base `db6194c`. Nouveau monde uniquement.
|
||||
|
||||
- Vallées automnales conservées. Sol végétal sur les pentes supérieures ; la
|
||||
roche nue reste sur les flancs profonds sous Y=200.
|
||||
- Cerisiers à partir de Y=286, une tentative tous les quatre chunks du sommet
|
||||
au lieu de dix arbres par chunk. Pas de forêt de cerisiers sur le plateau.
|
||||
- Poches lush avec bassins retenus à plusieurs niveaux, sous-bois de chênes
|
||||
noirs, marais à lucioles, mycélium violet mêlé d’herbe et champignons géants.
|
||||
Mooshrooms et grenouilles placées à la génération dans leurs habitats.
|
||||
- Trois réseaux miniers avec hall, ramifications, rails, passerelles et sorties
|
||||
extérieures ; une cabane de sorcière dans une cavité marécageuse. Première
|
||||
version procédurale, sans butin ni progression. Le retour actuel remplace
|
||||
l’interdiction des mineshafts exprimée avant la visite beta.178.
|
||||
|
||||
La couleur vient des biomes, du feuillage, de l’eau et du brouillard ; aucune
|
||||
nouvelle simulation de lumière colorée. Bruit du terrain, récifs, minerais et
|
||||
espace ISS conservés ; pas d’hydrologie régionale. Structures rendues par chunk
|
||||
selon un plan déterministe borné, aucune expansion activée ni migration.
|
||||
|
||||
Compilation et contrôle natif `solo179c` réussis : 567 densités profondes
|
||||
inchangées, zéro région d’hydrologie, automne conservé (14 colonnes de contrôle),
|
||||
cerisiers uniquement au sommet et pentes supérieures végétalisées. Les témoins
|
||||
natifs contiennent eau, mousse, mycélium, buissons à lucioles, chênes noirs et
|
||||
champignons géants. Sauvegarde des habitants vérifiée : 6 mooshrooms,
|
||||
17 grenouilles, une sorcière et un chat dans les chunks chargés, sans prétendre
|
||||
recenser toute l’île. La suite `check build assemblePack assembleTestPack` a réussi
|
||||
en 36 min 7 s, après la visite.
|
||||
|
||||
Visite préparée : `visite179/living/42`, `Sanctuary-Living-179-Solo`, créatif,
|
||||
commandes activées, difficulté normale pour conserver la sorcière, vue 32 et
|
||||
simulation 12. Points de visite (graine 42) : halls miniers (112,147,72),
|
||||
(-160,185,24), (-72,129,160) ; cabane (-192,114,96) ; mycélium vers
|
||||
(-216,201,48), marais vers (-216,113,96), lush vers (-216,161,120).
|
||||
Client Vulkan ouvert le 29 septembre à 23:16, KokaLab connecté ; distance
|
||||
serveur 32 et simulation 12 confirmées dans le journal.
|
||||
@@ -0,0 +1,78 @@
|
||||
# DETAILS-188 — fonds d'étangs, soufre vivant et palettes des ancres
|
||||
|
||||
Ticket du 30 septembre 2026, branche `codex/living-details-beta188`.
|
||||
Le créateur valide l'orientation des ancres et les formes des bassins beta.187.
|
||||
Il demande des refuges adaptés au milieu et à la couleur, des fonds sédimentaires
|
||||
végétalisés sans arbres dans l'eau, et les pics/geysers du biome de soufre.
|
||||
|
||||
Nouveau profil `details`, preset `sanctuary_test:living_details_v1`, graine 42.
|
||||
Aucune modification des anciennes sauvegardes ou générations. Même densité,
|
||||
mêmes bassins et mêmes emplacements/orientations d'ancres que beta.187.
|
||||
Livraison locale de laboratoire ; objectif de visite avant 9 h.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Géométrie et orientation des refuges conservées. Terre, herbe et terre stérile
|
||||
pour la surface ; tuff, deepslate et calcite sous roche ; calcite et diorite
|
||||
sur les récifs. Les incrustations reprennent la teinte du secteur. Le verre
|
||||
reste au-dessus de l'améthyste, du côté de l'expansion.
|
||||
|
||||
Les bassins sont remplis avant les arbres. Leur lit existant reçoit des plages
|
||||
cohérentes d'argile, boue, sable et gravier, sans agrandissement ni coque ajoutée.
|
||||
Les colonnes de plantation immergées sont réservées pendant la décoration.
|
||||
Herbes marines et quelques touffes de kelp occupent les fonds ; les matériaux
|
||||
meubles exigent un support rocheux. Contours et niveaux restent ceux de 187.
|
||||
|
||||
Le soufre reçoit des stalagmites et stalactites natives, avec des longueurs
|
||||
variables, et des sources périodiques : magma, soufre puissant, eau source.
|
||||
Les volumes humides réservés, le donjon et les refuges sont évités. Les entités
|
||||
de bloc sont explicitement créées et sauvegardées pour activer les minuteries
|
||||
natives des geysers. Le contrôle vérifie l'entité et le ticker après réouverture.
|
||||
|
||||
Table de butin propre à ce nouveau preset : une ou deux pièces en fer par
|
||||
wagonnet, parmi quatre armures, épée, pioche, hache et pelle. Enchantement par
|
||||
la fonction native, puissance de table 12 à 20, sans enchantement trésor.
|
||||
Les gemmes et les ressources déjà présentes restent dans le butin. Les anciens
|
||||
wagonnets et tables ne changent pas. La progression du futur monde minéral
|
||||
reste une intention, hors de cette livraison.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Premier monde : les huit refuges gardent exactement leurs positions et axes.
|
||||
Quatre sédiments, 611 colonnes végétalisées et zéro tronc dans les bassins.
|
||||
Plan de 496 spires et 39 geysers ; 138 blocs de pic et huit sources contrôlés.
|
||||
32 tirages de butin : toujours une ou deux pièces enchantées en fer, les huit
|
||||
types d'équipement observés. Génération finale `solo188c/details/42` puis réouverture réussies, avec contrôle
|
||||
des entités de geyser et de leurs tickers natifs. Les blocs et entités sont
|
||||
relus dans la sauvegarde arrêtée : huit ancres éteintes, Bugrock allumé sans
|
||||
relais, 49 cartes complètes et 49 cadres horizontaux. Les quatre wagonnets sauvegardés portent tous la nouvelle table
|
||||
`sanctuary_test:chests/mine_cache_188` ; reçu `build/details188-saved-loot.json`.
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch`
|
||||
réussi en 7 min 54 s : 265 GameTests réussis. Les contrôles natifs finaux passent
|
||||
après la correction des entités de geyser, à froid et après réouverture.
|
||||
Le JAR du labo a ensuite été reconstruit et le pack optionnel resynchronisé
|
||||
avec `scripts/test_pack.py` : ses 146 classes correspondent aux classes compilées,
|
||||
sa table de butin correspond à la source et le JAR distribué est identique.
|
||||
Lors des 32 tirages après réouverture, 51 pièces enchantées couvrent les huit
|
||||
types d'équipement. Reçu de la suite générale : `build/details188-check-build.log`.
|
||||
|
||||
Solo `visite188c/details/42`, monde `Sanctuary-Living-Details-188-Solo`, ouvert
|
||||
sous Vulkan : connexion à 09:00:41, vue 32 et simulation 12 confirmées dans le
|
||||
journal, puis passage du joueur en spectateur à 09:00:58. L'objectif avant 9 h
|
||||
a donc été dépassé. Le contrôle visuel des décors et des éruptions reste à faire
|
||||
pendant la visite ; la présence des blocs, entités et tickers est vérifiée.
|
||||
|
||||
## Raccourcis de visite
|
||||
|
||||
- Bassin ouest : `/tp -104.5 269 119.5 180 35`
|
||||
- Soufre et geysers : `/tp -217.5 159 -16.5`
|
||||
- Autre source : `/tp -201.5 150 8.5`
|
||||
- Wagonnet du donjon : `/tp 45.5 144 60.5`
|
||||
- Ancre nord : `/tp 36.5 250 -168.5 180 0`
|
||||
- Ancre sud, grotte : `/tp -71.5 176 205.5 0 0`
|
||||
- Ancre est, récif : `/tp 214.5 444 16.5 -90 0`
|
||||
|
||||
Nouveau solo uniquement, vue 32, simulation 12, créatif avec vol et commandes.
|
||||
Aucune publication du canal public ni modification de Prism.
|
||||
|
||||
Mesures du labo final : démarrage 12.839 s à froid / 0.912 s après réouverture ; prêt avec tous les contrôles en 71.525 s / 14.114 s. Mesurées pendant la suite générale, hors chargement graphique. Zéro région d’hydrologie. Reçus ignorés `build/details188-final-cold-result.json` et `build/details188-final-warm-result.json`.
|
||||
@@ -0,0 +1,50 @@
|
||||
# UI-194 — retirer Amis du menu principal
|
||||
|
||||
Branche `codex/main-menu-beta194`, depuis beta.193, Minecraft 26.3.
|
||||
|
||||
Le créateur suspend les retouches du terrain et les tests de screenshots,
|
||||
puis reprend le cadrage des interfaces. Le retrait d’Amis est la première
|
||||
modification demandée, déjà prévue dans [Storyquest](storyquest-beta173.md).
|
||||
|
||||
## Résultat
|
||||
|
||||
Le menu principal propose Solo, Multijoueur, puis Options et Quitter sur une
|
||||
même ligne. Cette dernière suit Multijoueur avec l’espacement natif de 24 unités
|
||||
GUI. Le bouton Amis n’est plus créé à la place de Realms ; l’entrée Realms et
|
||||
la petite icône sociale restent retirées. Les commandes restantes gardent
|
||||
leur ordre clavier et la version Sanctuary reste affichée.
|
||||
|
||||
Le parcours de démonstration, dépourvu de Multijoueur, conserve sa disposition
|
||||
antérieure. Les autres accès sociaux et paramètres du compte ne sont pas
|
||||
modifiés. Aucun nouveau libellé : les commandes natives restent traduites FR/EN,
|
||||
les anciennes clés `sanctuary.menu.friends` sont conservées pour compatibilité.
|
||||
|
||||
Le menu pause, Habitant, Combat, Factions et Storyquest restent des suites
|
||||
à concevoir. Aucune source de génération, donnée de biome ou sauvegarde n’est
|
||||
modifiée par ce lot. Aucune nouvelle série de captures n’est lancée.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le parcours natif existant `Title045ClientChecks` est actualisé pour vérifier
|
||||
l’absence d’Amis et de Realms, la disposition sans ligne vide, l’ordre clavier
|
||||
et l’ouverture d’Options en FR/EN aux quatre réglages GUI. Ses captures et son
|
||||
ancien parcours vers la liste d’amis sont retirés.
|
||||
|
||||
Validation réussie : `./gradlew check build assemblePack assembleTestPack
|
||||
:sanctuary:runClientGameTest -PsanctuaryFocusedTests=menus
|
||||
-PsanctuaryClientTests=true -PsanctuaryTitleClientTests=true
|
||||
-PsanctuaryClientGraphicsBackend=vulkan`.
|
||||
Journal : `build/menu194-check-build.log`. Les contrôles purs et les quatre
|
||||
GameTests serveur ciblés passent. Le parcours client Vulkan passe en FR/EN,
|
||||
sans capture, avec ordre clavier, absence des boutons retirés et ouverture
|
||||
d’Options vérifiés. Dans la fenêtre 854 × 480 du test, les réglages GUI 3 et 4
|
||||
sont plafonnés par Minecraft à l’échelle effective 2.
|
||||
|
||||
Les packs normal et de test sont assemblés. La comparaison des JAR beta.193 et
|
||||
beta.194 confirme que seule `TitleMenuMixin.class` change dans le code livré ;
|
||||
les données de génération sont identiques. Le module Demeure embarqué ne change
|
||||
que de version dans ses métadonnées. Reçu : `build/menu194-artifact.json`.
|
||||
Le labo beta.193 déjà ouvert n’est ni arrêté ni mis à jour par cette livraison.
|
||||
|
||||
Livraison locale uniquement ; publication et mise à jour du jeu personnel
|
||||
ne sont pas demandées.
|
||||
@@ -0,0 +1,96 @@
|
||||
# RENDER-150 — Terre mate et reflets solaires colorés
|
||||
|
||||
Branche `codex/matte-dirt-beta150`, socle beta.149 `1c23d0c`.
|
||||
|
||||
La terre sèche utilise un profil entièrement mat (rugosité 0,98, métal 0),
|
||||
comme le feuillage corrigé en beta.149. Cela enlève l’éclat blanc/gris diffus
|
||||
sans supprimer les normales ni le contraste de relief. Le SSR de ces matières
|
||||
est également atténué par leur rugosité, sans changer son réglage global.
|
||||
|
||||
Blocs concernés : dirt, coarse_dirt, rooted_dirt, grass_block, dirt_path,
|
||||
farmland, podzol et mycelium. Les faces terreuses suivent ainsi le même profil.
|
||||
Les autres profils de matière sont inchangés.
|
||||
|
||||
Le disque du soleil et son reflet utilisent la même couleur native
|
||||
`SkyRenderState.sunriseAndSunsetColor`, issue de l’attribut environnemental
|
||||
Minecraft `SUNRISE_SUNSET_COLOR`. Son alpha pilote la transition depuis le
|
||||
blanc : aucune palette horaire ou altitude artificielle. Le soleil reste
|
||||
neutre tant que le dégradé natif est absent et se colore avec le ciel.
|
||||
La teinte solaire est convertie en lumière linéaire pour le PBR. Le mixin
|
||||
modifie seulement la couleur du disque solaire, préserve l’alpha de pluie,
|
||||
la texture native et la lune, et respecte la désactivation globale de Vanilla Light.
|
||||
La fusion diffuse de l’eau et sa normale animée d’origine sont conservées.
|
||||
Les accents suivent les pentes des vaguelettes qui réfléchissent le soleil
|
||||
vers la caméra. Leur pulsation vient des normales animées de la texture,
|
||||
sans oscillateur indépendant ni inversion artificielle du relief.
|
||||
Une faible variation stable par texel évite des crêtes toutes identiques ;
|
||||
elle module seulement l’intensité, sans produire des points isolés aléatoires.
|
||||
Les détails s’atténuent lorsqu’ils deviennent plus petits qu’un pixel écran.
|
||||
Les accents restent limités au reflet solaire et conservent sa couleur.
|
||||
Les lampes et la lune gardent leurs
|
||||
couleurs propres.
|
||||
PBR 50 %, SSR 20 % et deux portées indépendantes de 64 blocs par défaut conservés.
|
||||
Minecraft 26.3, Java 25 et dépendances inchangés ; aucune sauvegarde modifiée.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Tests des profils de terre et scènes GPU comparant PBR OFF/ON sur terre et
|
||||
feuillage : conservation de la couleur native et présence du relief.
|
||||
- Suites PBR finales Vulkan/OpenGL réussies, dont profils des huit types de
|
||||
sol, proximité, intensités, préférences et feuillage.
|
||||
Journaux : `build/beta150-pbr-vulkan-final.log` et
|
||||
`build/beta150-pbr-opengl-final.log`.
|
||||
- Terre : 180 469 pixels contrôlés, saturation relative 0,99877 sur les deux
|
||||
moteurs ; relief visible sur 145 415 pixels. Captures conservées dans
|
||||
`build/evidence/beta150-pbr-vulkan-final/` et
|
||||
`build/evidence/beta150-pbr-opengl-final/`.
|
||||
|
||||
Les tests comparent la contribution PBR au rendu natif et capturent aussi
|
||||
le disque du soleil, avant puis pendant la transition native du ciel.
|
||||
Le contrôle serveur `./gradlew check build`, exécuté dans une copie isolée
|
||||
`build/server-validation` avant les derniers ajouts exclusivement client,
|
||||
compte 229 réussites et 23 échecs sur 252 tests. Les 23 identifiants d’échec
|
||||
sont identiques à beta.149 ; aucun nouvel identifiant. Le contrôle global
|
||||
n’est donc pas vert. Journaux : `build/beta150-check-build-isolated.log` et
|
||||
`build/beta150-server-failures.json`.
|
||||
|
||||
Les scènes solaires comparent le rendu PBR au natif, avant et pendant le
|
||||
coucher de soleil. À 2 000 ticks, la teinte native est blanche ; à 11 500 ticks
|
||||
sa transition commence légèrement (alpha 0,051) ; à 12 400 ticks l’alpha
|
||||
natif atteint 0,831 et le disque devient chaud (centre RGB 255/255/135).
|
||||
Les deux moteurs ont validé cette synchronisation native.
|
||||
|
||||
Un lancement sans sélection PBR a également rencontré l’assertion client
|
||||
Blocodex « The full snapshot must become visible together », avant les scènes
|
||||
GPU (`build/beta150-water-motion-vulkan.log`). Il ne constitue pas une
|
||||
validation de la suite client générale.
|
||||
|
||||
La suite finale Vulkan des éclats liés aux vaguelettes passe
|
||||
(`build/beta150-wave-glints-vulkan.log`) : animation native, masquage F5,
|
||||
distances indépendantes, reflets solaires et lunaires, matériaux transparents,
|
||||
rechargement des ressources et redimensionnement. Dans la scène solaire,
|
||||
150 563 pixels sont éclaircis, sans pixel blanc saturé.
|
||||
|
||||
La suite OpenGL finale passe également
|
||||
(`build/beta150-wave-glints-opengl.log`) : 148 180 pixels éclaircis, aucun
|
||||
pixel blanc saturé. Les captures finales sont conservées dans
|
||||
`build/evidence/beta150-wave-glints-vulkan/` et
|
||||
`build/evidence/beta150-wave-glints-opengl/`.
|
||||
Le ressenti des vaguelettes en mouvement reste à confirmer par le créateur
|
||||
sur sa configuration ; les tests ne constituent pas une validation esthétique.
|
||||
|
||||
## Pack local
|
||||
|
||||
Construction et assemblage réussis avec
|
||||
`./gradlew build assemblePack -x :sanctuary:check`, après le contrôle complet
|
||||
ci-dessus. L’exclusion ne transforme pas ses échecs connus en réussite.
|
||||
Export packwiz puis vérification ZIP, version Fabric, Minecraft 26.3,
|
||||
Loader 0.19.5, JAR unique identique au construit, shader final et mixin solaire.
|
||||
|
||||
- Pack : `/Users/koka/Documents/sanctuary/sanctuary-beta/build/Sanctuary-beta.150.mrpack`
|
||||
- Taille : 10522942 octets.
|
||||
- SHA-256 pack : `65a4a44948dcdcf0325b5e24c076a03f8832184f25f5c1ff16f69bd3ee641b93`.
|
||||
- SHA-256 JAR : `4962e6f8cafd6ef3e81e088bf9b0092a264441632cfa095d4fe7394b855f093d`.
|
||||
- Reçu : `build/beta150-artifacts.json`, également copié à côté du pack.
|
||||
|
||||
Aucun canal publié, aucune instance Prism ni sauvegarde personnelle modifiée.
|
||||
@@ -0,0 +1,115 @@
|
||||
# ASCENT-184 — rosace à 640 et palais des hauteurs
|
||||
|
||||
Ticket du 30 septembre 2026, branche `codex/natural-ascent-beta184`.
|
||||
Le retour sur beta.183 rejette l'ISS métallique visible depuis le sol et les
|
||||
nouveaux bassins supérieurs ovales en marches. La direction retenue est une
|
||||
machine naturelle : rosace, longue tige parcourable, couronne de palais comme
|
||||
un parapluie, carte au sol et portail horizontal au-dessus. Dernière correction
|
||||
explicite du créateur : **la rosace est à Y=640**, pas à 320.
|
||||
|
||||
## Contrat de génération
|
||||
|
||||
Nouveau profil de laboratoire `ascent`, preset `sanctuary_test:ascent_v1`,
|
||||
réglages `sanctuary_test:ascent_v1_10`, graine de visite **42**. Nouvelle dimension
|
||||
`sanctuary_test:ascent_1600`, constructible de Y=0 à 1599. Minecraft 26.3 accepte
|
||||
ce type de dimension dans la génération native vérifiée. Le bruit du terrain
|
||||
reste calculé entre 0 et 639 ; la décoration écrit les structures plus haut
|
||||
dans les sections du nouveau monde. Aucun bruit supplémentaire dans le ciel
|
||||
vide, aucune hydrologie régionale, aucun changement des sauvegardes précédentes.
|
||||
|
||||
Les presets 180–183 restent distincts. Le nouveau profil reprend l'île, ses
|
||||
minerais, biomes, cavernes, soufre et donjon, mais ne place ni l'ISS métallique
|
||||
ni les bassins `Water183`. Les étangs souterrains beta.180 précédemment validés
|
||||
restent présents. Pas d'expansion, migration, nouveau mob ou portail fonctionnel.
|
||||
|
||||
## Construction et découverte
|
||||
|
||||
- Rosace et Bugrock translatés à **(0,640,0)**, sol à 638. Les huit couleurs et
|
||||
approches de la rosace sont conservées ; la sortie est rejoint l'escalier.
|
||||
- Tige de tuf, deepslate, calcite et mousse, nervures enroulées, haltes latérales.
|
||||
Escalier continu avec marches natives, de 638 à 1278 : 1 923 positions de
|
||||
parcours, environ 1,9 km de chemin pour 640 blocs gagnés. Largeur généralement
|
||||
de trois blocs, resserrée aux virages. Le parcours depuis l'île jusqu'à la
|
||||
rosace reste à concevoir ; le test permet le vol et le spectateur.
|
||||
- Palais : nervures déployées à partir de 1160, sol à **1278**, voûte à **1310**.
|
||||
Huit pétales vitrés, passages minéraux, cuivre oxydé, balcons. Pas de panneaux
|
||||
solaires ni de modules métalliques. Le Bugrock reste uniquement sur la rosace.
|
||||
- Atlas natif au sol, 49 cartes sur ce terrain moyen, dans des cadres horizontaux.
|
||||
Dimensions 5×5, 7×7 et 9×9 pour les rayons déjà pris en charge. Identifiants et
|
||||
marqueurs propres à ce nouvel atlas ; l'atlas 183 reste inchangé.
|
||||
- Portail supérieur : cadre horizontal 7×7 d'obsidienne, coins en obsidienne
|
||||
pleureuse, vide central 5×5, à 1287 au-dessus des cartes. Le portail inférieur
|
||||
conserve son cadre 5×5 et son creux 3×3 à Y=175. Ce sont des infrastructures.
|
||||
|
||||
À 32 chunks, la caméra native peut garder un plan lointain de 2 048 blocs :
|
||||
la hauteur seule ne suffit pas à dissimuler la couronne. Dans cette dimension
|
||||
uniquement, le frustum refuse les volumes entièrement au-dessus de 1152 lorsque
|
||||
la caméra est sous 560. La couronne devient donc éligible à l'affichage pendant
|
||||
l'approche de la rosace ; les règles normales de visibilité restent applicables.
|
||||
C'est une révélation côté rendu, pas une génération conditionnelle à un joueur.
|
||||
Un contrôle à l'entrée du client teste les deux API natives de frustum, depuis
|
||||
le sol et depuis 640. La couronne est aussi au-delà du volume maximal des ombres
|
||||
Sanctuary depuis le plateau (distance 256, extrusion solaire comprise). Cela
|
||||
ne supprime pas l'éclairage Minecraft inhérent aux blocs placés dans une colonne.
|
||||
|
||||
## Eau dans les creux existants
|
||||
|
||||
Recherche locale et bornée dans le champ réel de densité. Chaque candidat est
|
||||
rempli par parcours des cellules d'air adjacentes sous un niveau horizontal ;
|
||||
un chemin sortant du volume de recherche, vers le vide ou une zone réservée
|
||||
fait rejeter le candidat. On monte le niveau par essais bornés tant que la roche
|
||||
retient l'eau. Aucun mur de retenue, fond d'argile artificiel, marche ou excavation
|
||||
n'est dessiné. Seules les cellules encore en air reçoivent de l'eau à la décoration.
|
||||
Les cavités existantes, roches saillantes et végétaux conservés dictent le contour.
|
||||
|
||||
Première génération native `solo184a`, graine 42 : 45 essais, plan en 852 ms,
|
||||
10 402 blocs d'eau dans la grande poche (surface de 1 045 cellules à Y=234),
|
||||
739 blocs dans la seconde (290 cellules à Y=242). Aucun débouché latéral/inférieur
|
||||
non retenu détecté après la décoration. Ce sont des eaux retenues ; aucune
|
||||
simulation de bassin versant ou de rivière à longue distance n'est introduite.
|
||||
|
||||
## Vérification et visite
|
||||
|
||||
Premier contrôle natif réussi : 567 échantillons profonds identiques, zéro région
|
||||
d'hydrologie, trois cerisiers, cinq spawners, quatre caches à butin, galerie,
|
||||
soufre et trois secteurs de gemmes présents. Les 56 246 entrées du plan du palais
|
||||
correspondent aux blocs générés ; toutes les positions de montée ont un support
|
||||
et deux blocs libres. Les 49 cartes sont uniques, remplies, figées et supportées.
|
||||
Serveur démarré en 5,3 s ; prêt en 43,6 s avec génération des sondages et contrôles.
|
||||
Ce dernier temps inclut les tests et ne mesure pas un démarrage normal du solo.
|
||||
|
||||
Validation finale : `./gradlew check build assemblePack assembleTestPack
|
||||
:sanctuary-test:exportDuoLaunch` réussi en 6 min 54 s, **265/265 GameTests**.
|
||||
Journal `build/ascent184-check-build.log`. Nouveau monde final `solo184b/ascent/42`
|
||||
contrôlé et arrêté proprement : serveur en 5,25 s, prêt avec contrôles en 41,63 s ;
|
||||
plan d'eau en 806 ms, 10 401 et 739 blocs d'eau retenus sans fuite. Le nombre de blocs d'eau diffère d'une cellule entre les deux essais ;
|
||||
les niveaux et surfaces des plans restent identiques.
|
||||
Rapport `build/ascent184-quick-result-final.json`.
|
||||
|
||||
Lecture NBT du monde arrêté : 49 cartes complètes, figées, identifiants uniques,
|
||||
49 cadres orientés vers le haut à Y=1279. Air confirmé aux anciens centres
|
||||
(0,320,0) et (0,576,0), bloc originel à (0,640,0), plancher d'atlas en calcite
|
||||
et portail supérieur creux. Reçus `build/ascent184-saved-atlas-final.json` et
|
||||
`build/ascent184-saved-blocks-final.json`.
|
||||
|
||||
Solo neuf `visite184/ascent/42`, `Sanctuary-Ascent-184-Solo`, commandes, créatif,
|
||||
vol, vue 32 et simulation 12. Entrée client Vulkan confirmée le 30 septembre,
|
||||
contrôle natif du frustum réussi à **03:45:07** : couronne cachée à Y=250,
|
||||
rosace visible et couronne révélée à Y=640. Journal `build/ascent184-solo.log`.
|
||||
Le profil local KokaLab de ce monde utilise la couleur Ciel et le familier de
|
||||
labo par défaut. Le daemon de compilation a été arrêté pour libérer la mémoire.
|
||||
Aucune sauvegarde antérieure ni instance Prism modifiée. Les archives locales
|
||||
sont assemblées ; aucun canal public n'est avancé.
|
||||
|
||||
| Lieu | Téléportation de visite |
|
||||
| --- | --- |
|
||||
| Rosace et départ de la montée | `/tp 0.5 639 5.5 180 -20` |
|
||||
| Palais et carte au sol | `/tp 6.5 1280 8.5 140 35` |
|
||||
| Vue extérieure de la couronne | `/tp 45 1295 45 135 10` |
|
||||
| Grande cavité en eau | `/tp -144 236 -96` |
|
||||
| Seconde cavité en eau | `/tp -16 245 128` |
|
||||
| Portail inférieur | `/tp 0.5 177 7.5 180 30` |
|
||||
|
||||
Cette première silhouette reste à évaluer en visite, notamment le rythme de
|
||||
l'ascension et les proportions du palais. La graine 42 est la référence vérifiée ;
|
||||
la disponibilité de grandes cavités sur d'autres graines reste à éprouver.
|
||||
@@ -0,0 +1,100 @@
|
||||
# CAVES-187 — soufre naturel, ancres orientées et bassins visibles
|
||||
|
||||
Ticket du 30 septembre 2026, branche `codex/natural-caves-beta187`.
|
||||
Retour beta.186 : coque de soufre artificielle, pylônes mal orientés et verre
|
||||
latéral, bassins de surface invisibles. Le relief et les trois secteurs de
|
||||
gemmes sont appréciés et conservés.
|
||||
|
||||
Nouveau profil `natural`, preset `sanctuary_test:natural_caves_v1`, graine 42.
|
||||
Les anciens presets et sauvegardes restent inchangés. Le laboratoire ajoute
|
||||
un climat de soufre en trois dimensions dans la roche existante, une approche
|
||||
en mousse tournée vers le centre pour chaque ancre et des pylônes opposés,
|
||||
vers l'expansion, portant le verre au-dessus de l'améthyste. L'eau de surface
|
||||
est recherchée dans des dépressions réellement ouvertes au ciel ; toute fuite
|
||||
vers le vide fait rejeter le bassin. Aucun calcul régional d'hydrologie.
|
||||
|
||||
Le climat de soufre utilise un bruit volumique et respecte la priorité des
|
||||
marais humides. La palette forme des dépôts cohérents de soufre, cinabre et
|
||||
calcite dans les blocs rocheux existants. Musique et couleurs du biome natif
|
||||
26.3 sont conservées. Les carvers, minerais et structures vanilla ne sont pas
|
||||
importés : l'île conserve ses cavités et sa distribution de ressources.
|
||||
L'ancienne coque et ses cheminées ne sont plus placées dans ce preset.
|
||||
|
||||
Les pylônes portent améthyste puis verre, sur la même verticale. Leur porte
|
||||
pointe vers la direction exacte du secteur, y compris les diagonales. Le
|
||||
chemin en mousse est du côté opposé. La sélection vérifie le support naturel
|
||||
de la porte et du chemin ; les huit emplacements changent pour respecter
|
||||
cette orientation. La galerie, les rosaces et le palais restent conservés.
|
||||
|
||||
L'eau de surface monte dans un creux par parcours prioritaire : chaque voxel
|
||||
est échantillonné une fois à la hauteur minimale qui le rend accessible.
|
||||
Une fuite, une structure réservée ou la limite de recherche arrête la montée.
|
||||
Les surfaces retenues doivent être majoritairement ouvertes au ciel. Aucun
|
||||
fond ajouté ni découpage elliptique ; les arbres voisins ne peuvent reboucher
|
||||
les cellules d'eau réservées. Les étangs souterrains appréciés sont conservés.
|
||||
L'atlas projette aussi les nouvelles eaux et perd le faux repère jaune de la
|
||||
cheminée supprimée. Les recherches sont bornées, en génération uniquement.
|
||||
|
||||
## Contrôles natifs
|
||||
|
||||
Graine 42, `solo187e/natural/42` : génération à froid réussie. Recherche des
|
||||
bassins en 2,674 s, contre 21,546 s au premier essai ; mêmes trois positions,
|
||||
niveaux et volumes retenus. Démarrage serveur 9,881 s, prêt après l'ensemble
|
||||
des contrôles en 50,190 s. Ces durées ne mesurent pas le démarrage graphique.
|
||||
Zéro région d'hydrologie et 567 échantillons de densité profonde conservés.
|
||||
|
||||
| Bassin | Niveau | Surface totale | Surface sous ciel ouvert | Blocs d'eau |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| Ouest, près de (-104, 88) | 248 | 1 994 | 1 475 | 11 935 |
|
||||
| Nord-est, près de (120, -136) | 244 | 839 | 536 | 2 329 |
|
||||
| Sud, près de (8, 136) | 254 | 1 321 | 904 | 9 446 |
|
||||
|
||||
Aucune fuite native détectée. Quatre points de visite confirment le biome
|
||||
sulfureux, de la roche minéralisée et des cavités déjà présentes dans la densité.
|
||||
Les huit refuges passent le contrôle d'orientation et de verre vertical.
|
||||
Les dépôts distincts activent les huit gemmes ; les tests restaurent ensuite
|
||||
les ancres éteintes et le Bugrock allumé sans relais. Les secteurs de gemmes,
|
||||
les cinq spawners et quatre wagonnets à butin restent vérifiés.
|
||||
|
||||
Réouverture réussie : démarrage serveur 0,618 s, prêt avec vérifications en
|
||||
8,226 s. Les huit ancres sont relues dans la sauvegarde éteintes et le masque
|
||||
du Bugrock vaut zéro ; 49 cartes complètes, figées, avec 49 cadres horizontaux
|
||||
uniques. Reçus ignorés : `build/natural187-final-cold-result.json`,
|
||||
`build/natural187-final-warm-result.json`, `build/natural187-saved-blocks.json`,
|
||||
`build/natural187-saved-atlas.json`.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch`
|
||||
réussi en **7 min 10 s**, **265/265 GameTests**. Journal :
|
||||
`build/natural187-check-build.log`. Daemon Gradle arrêté avant le client.
|
||||
Solo Vulkan rejoint à **08:40:37**, départ (-104,5 ; 269 ; 119,5), vue 32
|
||||
et simulation 12 confirmées dans `build/natural187-solo.log`. Contrôle client
|
||||
de visibilité verticale réussi à 08:40:39. Le créateur a pris la main et est
|
||||
passé en spectateur ; aucune téléportation d'inspection supplémentaire.
|
||||
L'appréciation visuelle des nouveaux bassins et du soufre reste celle de
|
||||
cette visite ; les mesures ci-dessus sont des vérifications natives.
|
||||
Seule la graine de visite est certifiée ; pas de migration des anciennes
|
||||
sauvegardes ni de modification du canal public ou de Prism.
|
||||
|
||||
|
||||
## Visite — graine 42
|
||||
|
||||
Nouveau solo `visite187/natural/42`, `Sanctuary-Natural-Caves-187-Solo`.
|
||||
Vue 32, simulation 12, créatif, vol et commandes. Départ au-dessus du bassin
|
||||
ouest ; les anciennes visites restent conservées.
|
||||
|
||||
| Lieu | Raccourci de visite |
|
||||
| --- | --- |
|
||||
| Bassin ouest | `/tp -104.5 269 119.5 180 35` |
|
||||
| Bassin nord-est | `/tp 120.5 258 -116.5 180 35` |
|
||||
| Bassin sud | `/tp 8.5 270 156.5 180 35` |
|
||||
| Soufre, cavité haute | `/tp -215.5 219 -35.5` |
|
||||
| Soufre, cavité profonde | `/tp -203.5 150 -11.5` |
|
||||
| Soufre, cavité nord-ouest | `/tp -191.5 152 -179.5` |
|
||||
| Ancre nord, approche intérieure | `/tp 36.5 250 -168.5 180 0` |
|
||||
| Ancre nord-est | `/tp 193.5 251 -84.5 -135 0` |
|
||||
| Ancre est, récif | `/tp 214.5 444 16.5 -90 0` |
|
||||
| Ancre sud-est | `/tp 157.5 226 145.5 -45 0` |
|
||||
| Ancre sud, grotte | `/tp -71.5 176 205.5 0 0` |
|
||||
| Ancre sud-ouest | `/tp -96.5 252 181.5 45 0` |
|
||||
| Ancre ouest | `/tp -96.5 230 0.5 90 0` |
|
||||
| Ancre nord-ouest, récif | `/tp -102.5 404 -160.5 135 0` |
|
||||
@@ -0,0 +1,77 @@
|
||||
# WG-NATURE-190 — relief organique, déversoirs et butin des ruines
|
||||
|
||||
Branche `codex/natural-refinement-beta190`, graine de visite **42**, Minecraft 26.3.
|
||||
Nouveau profil de laboratoire `refined`, preset `sanctuary_test:natural_refinement_v1`.
|
||||
Les sauvegardes précédentes restent des témoins ; aucune régénération ni migration.
|
||||
|
||||
## Contrat de cet essai
|
||||
|
||||
Après la visite beta.189 : supprimer les terrasses systématiques du relief principal,
|
||||
conserver quelques inflexions locales douces, des affleurements suivant la pente et
|
||||
sans masque en cases de quatre blocs. Les captures du 30 septembre à 20:44 et 20:45
|
||||
montrent le relief principal ; les îlots aériens ne sont pas la cause des paliers.
|
||||
Comparer les débouchés voisins des étangs au lieu de retenir le premier rayon ;
|
||||
privilégier une sortie courte, large de quatre ou cinq blocs et peu creusée.
|
||||
Conserver les cavités, le portail et les ruines appréciés. Remplacer la table de
|
||||
craft de chaque ruine par un coffre de matériel en fer enchanté.
|
||||
Aucun calcul d’hydrologie régionale ajouté ; travail local borné, décoration existante.
|
||||
|
||||
## Réserve de conception, non implémentée
|
||||
|
||||
- Expansion à grandes surfaces étagées et falaises ciselées : conserver la variante
|
||||
beta.189 comme référence, avec une profondeur et une verticalité adaptées au thème.
|
||||
- Portails horizontaux : remplissage progressif avec une ressource renouvelable.
|
||||
Perles d’Ender, source Endermen ou butin sont des pistes ; ressource, nombre,
|
||||
recette et destination ne sont pas décidés. Aucun mécanisme d’activation ajouté ici.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Compilation et génération/réouverture natives réussies, graine 42 :
|
||||
`build/refined190b-cold.json` et `build/refined190b-warm.json`.
|
||||
|
||||
- 704 des 745 sommets échantillonnés gardent exactement la hauteur naturelle
|
||||
antérieure aux terrasses ; 41 épaules retouchées, écart maximum 3 blocs.
|
||||
30 246 densités des profondeurs et des îlots aériens identiques. Les corniches
|
||||
fines sont conservées ; une première interpolation qui pouvait les supprimer
|
||||
a été corrigée avant la visite.
|
||||
- Une sortie d’étang de cinq blocs de large, depuis X=150, Y=244, Z=-157 à -153
|
||||
vers X=154–155. Chenal de 4–5 blocs, dont une partie dans l’étang ; huit blocs
|
||||
retirés. Bord de chute irrégulier, 64 blocs préremplis puis écoulement natif.
|
||||
La recherche compare les ouvertures proches, reste bornée à dix blocs et
|
||||
deux cascades, et renonce si aucune bouche assez large ne convient.
|
||||
- 1 052 blocs de plage sèche, 434 plantes aquatiques, zéro tronc dans les
|
||||
colonnes contrôlées des plages et étangs. Fonds : 1 337 sable, 249 gravier,
|
||||
2 832 argile. Le choix du chenal ne crée pas de fond ou barrage artificiel.
|
||||
- Quatre ruines conservées, coffres en (25,164,-63), (-7,148,-79),
|
||||
(65,164,-79), (57,121,-79). Couvercles dégagés, table de butin conservée
|
||||
après réouverture. Une ou deux pièces en fer par coffre, enchantements
|
||||
de table de niveau 12–20 : armure, épée, pioche, hache ou pelle.
|
||||
32 tirages vérifiés à froid, puis 32 à chaud ; aucune pièce non enchantée.
|
||||
- Huit ancres, cartes du palais, gemmes, soufre, donjon et galerie contrôlés.
|
||||
Ni nouvelle dimension ni activation des portails ajoutée.
|
||||
|
||||
Démarrage natif : 12,331 s à froid / 0,673 s à chaud ; avec toute la batterie
|
||||
et le remplissage intégral des cartes : 81,505 s / 26,656 s. Plans locaux
|
||||
berges/déversoirs : 174 / 170 ms. Zéro région d’hydrologie calculée.
|
||||
Mesures obtenues pendant la suite de tests générale, sans garantie de durée
|
||||
identique sur chaque machine. Le solo ne lance pas ces contrôles lourds.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack` réussi en **9 min 22 s**,
|
||||
avec **265 GameTests réussis**. Après les derniers correctifs validés par le labo
|
||||
natif, le JAR optionnel a été réassemblé et le pack de test resynchronisé.
|
||||
Ses classes et ressources correspondent aux fichiers compilés, et sa copie
|
||||
assemblée est identique : `build/refined190-pack-receipt.json`.
|
||||
Aucune publication de canal ni mise à jour Prism. La validation esthétique reste
|
||||
celle de la prochaine visite ; les contrôles structurels ne la remplacent pas.
|
||||
|
||||
|
||||
## Visite
|
||||
|
||||
Solo `Sanctuary-Natural-Refinement-190-Solo`, run `visite190`, profil `refined`,
|
||||
graine 42. Copie neuve du monde de diagnostic arrêté, sauvegardes antérieures
|
||||
préservées. Spectateur et commandes activés, vue 32, simulation 12, Vulkan.
|
||||
Connexion confirmée à **21:01:12**, position (178,260,-146), face à la cascade.
|
||||
Les 49 cartes et cadres horizontaux sont présents, complets et verrouillés ;
|
||||
les huit ancres et le Bugrock sont revenus à l’état initial après les contrôles.
|
||||
`build/refined190-saved-atlas.json`, `build/refined190-saved-blocks.json` et
|
||||
`build/refined190-solo.log` conservent ces vérifications.
|
||||
@@ -0,0 +1,121 @@
|
||||
# WATER-144 — Eau naturelle pixélisée
|
||||
|
||||
Branche `codex/water-beta144`, socle beta.143 publiée (`97ff2b5`) et suivi
|
||||
`580b241`. Minecraft 26.3, Java 25, dépendances conservées.
|
||||
|
||||
## Contrat
|
||||
|
||||
**Options → Shaders → Eau naturelle** est activée par défaut avec Sanctuary.
|
||||
L’intensité (0–100 %, défaut 100 %) agit sur la surface et l’immersion.
|
||||
L’interrupteur ou 0 % retrouve le rendu précédent. Les préférences existantes
|
||||
restent conservées ; un moteur externe suspend l’effet comme les autres effets
|
||||
natifs Sanctuary.
|
||||
|
||||
La couleur native du biome reste la base, y compris les variantes d’océans.
|
||||
Les océans (`minecraft:is_ocean`) imposent le profil clair.
|
||||
Hors océan, le premier support situé au maximum huit blocs sous la cellule
|
||||
observée choisit le profil :
|
||||
|
||||
| Profil | Fond | Mélange olive #788448 | Alpha natif | Distance de brume native |
|
||||
| --- | --- | ---: | ---: | ---: |
|
||||
| Claire | Pierre, matériaux construits, inconnus | 0 % | ×0,55 | ×1 |
|
||||
| Légèrement teintée | Sable, sable rouge, gravier, argile | 10 % | ×0,80 | ×0,70 |
|
||||
| Étang | Terre, terre stérile/enracinée, herbe, podzol, mycélium, boue, racines de palétuvier boueuses | 85 % | ×1 | ×0,40 |
|
||||
|
||||
L’eau et les plantes aquatiques sans collision sont traversées. Un support
|
||||
immergé reste un fond ; absence de support, air ou données manquantes donnent
|
||||
une eau claire. La référence visuelle fournie pendant l’implémentation demande un véritable
|
||||
vert olive légèrement jaunâtre : le profil étang passe donc de 45 % à 85 %
|
||||
de mélange, tout en laissant les eaux claires et océaniques natives.
|
||||
Les surfaces profondes sans fond dans la limite restent donc
|
||||
claires. Les profils se mélangent aux sommets sur un bloc, sans filtrer les
|
||||
textures. L’eau sous un toit suit son fond, pas l’éclairage du bâtiment.
|
||||
|
||||
La ressource client `assets/sanctuary/water_materials.json` accepte deux listes
|
||||
d’identifiants de blocs, `light` et `pond`, remplaçables par un resource pack.
|
||||
Les blocs absents des listes sont clairs. Une ressource invalide est signalée
|
||||
et reprend les familles embarquées. Le template personnel inclut cette ressource.
|
||||
|
||||
## Rendu et coût
|
||||
|
||||
Modification des seules couleurs/alpha des sommets de `FluidRenderer`, sans
|
||||
passe écran ni duplication de maillage. Textures, UV, animation, éclairage
|
||||
et tri des transparences restent natifs. Les calculs de profils sont différés
|
||||
jusqu’à l’émission d’un sommet visible, puis mutualisés dans la région compilée.
|
||||
Un test de palette élimine les sections sans eau avant toute copie de biomes.
|
||||
Les états de blocs viennent des copies natives ; les appartenances océaniques
|
||||
sont capturées avant l’envoi au worker. Aucun chargement de chunk n’est demandé.
|
||||
|
||||
Un changement de bloc invalide la zone dépendante, huit blocs au-dessus et
|
||||
un bloc horizontalement. Les reconstructions natives recopient leurs données ;
|
||||
l’effet ne déclenche aucune reconstruction pour une lumière mobile.
|
||||
Un changement d’option reconstruit seulement les sections chargées contenant de
|
||||
l’eau ; les caches des autres effets restent disponibles. Le cache temporaire
|
||||
disparaît avec sa compilation, sans historique de monde.
|
||||
|
||||
Sous l’eau, le profil est échantillonné au maximum une fois par tick, avec
|
||||
transition de 0,5 seconde. La couleur et les distances environnementales sont
|
||||
adaptées dans le rendu natif du brouillard. La teinte finale est appliquée après
|
||||
la normalisation de la vision aquatique, pour éviter de transformer l’olive en
|
||||
jaune fluorescent ; la luminosité issue des modificateurs natifs de vision
|
||||
et le bonus du compagnon calmar sont conservés. Lave et brume atmosphérique ne changent
|
||||
pas. Il n’y a pas de simulation d’absorption volumétrique ni de reflet ajouté.
|
||||
|
||||
## Validation native
|
||||
|
||||
Les essais utilisent un monde plat jetable, graine 122, avec bassins sur quartz,
|
||||
sable et boue, support du sable, plantes aquatiques, toit, frontière de sections
|
||||
et changement de biome océan. Une copie personnelle de ressource remplace
|
||||
réellement les familles de matériaux puis est désactivée.
|
||||
|
||||
Les suites graphiques OpenGL et Vulkan ont passé les contrôles de surface,
|
||||
d’immersion, de fond modifié, d’océan, de ressources, de préférences et de
|
||||
cascades pendant le développement. La dernière optimisation reconstruit
|
||||
seulement les sections contenant de l’eau lors du changement d’option.
|
||||
Sa série de validation finale reste à terminer avant publication.
|
||||
|
||||
### Protocole de performance
|
||||
|
||||
Apple M1, macOS, Java 25, 854×480, distance de rendu 6 chunks,
|
||||
ombres 32 blocs / 16 pixels, PBR 50 %, autres effets activés.
|
||||
VSync désactivée, limite 260 (illimitée), limitation AFK désactivée.
|
||||
Pour chaque scène : OFF/ON/ON/OFF/ON/OFF/OFF/ON, dix secondes par passage,
|
||||
avec stabilisation des sections puis quatre secondes de chauffe entre passages.
|
||||
Le déplacement avance de 120 blocs et laisse les sections se compiler
|
||||
naturellement, sans vidange artificielle des caches des autres effets.
|
||||
Les moyennes des quatre médianes et P95 par état sont comparées avec les seuils
|
||||
+5 % et +2 ms. Les temps de compilation de sections sont consignés également.
|
||||
|
||||
Les essais courts initiaux ont montré une forte variabilité. Une limitation AFK
|
||||
à 30 FPS puis des clients Minecraft concurrents dans le chantier PBR/SSR ont
|
||||
été identifiés. Ces essais restent dans les preuves de développement ; ils
|
||||
ne valident pas la livraison. La série finale attend la fin du chantier
|
||||
concurrent, conformément à la demande du créateur. Les résultats ne sont pas
|
||||
présentés comme acquis, et aucun gain de performance universel n’est promis.
|
||||
|
||||
Pour reproduire, avec Java 25 et un environnement graphique disponible :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryPixelShadows122ClientTests=true -PsanctuaryWater144ClientTests=true \
|
||||
-PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan > build/water144-vulkan.log 2>&1
|
||||
python3 scripts/check_water_performance.py build/water144-vulkan.log
|
||||
```
|
||||
|
||||
Répéter avec `opengl`, sans autre client graphique simultané. Le vérificateur
|
||||
refuse les séries incomplètes et les dépassements ; il écrit le reçu détaillé
|
||||
près du journal. Le marqueur `WATER144_PASS` atteste les contrôles fonctionnels.
|
||||
|
||||
### Assemblage et publication
|
||||
|
||||
Le GameTest serveur dédié reste exclu conformément au refus antérieur de son
|
||||
EULA. La commande de livraison est `./gradlew check build assemblePack
|
||||
assembleTestPack -x :sanctuary:runGameTest` ; la suite complète non exclue
|
||||
n’est pas déclarée réussie. Les contrôles natifs de l’eau utilisent le serveur
|
||||
intégré d’un monde jetable. Aucun essai Windows n’est revendiqué.
|
||||
|
||||
La release, le canal et l’instance ne sont pas encore mis à jour.
|
||||
Les preuves détaillées restent dans les dossiers ignorés :
|
||||
`build/water144-*.log`, `build/water144-*-performance.json`,
|
||||
`build/water144-*-isolation.json` et `build/water144-evidence/`.
|
||||
@@ -0,0 +1,93 @@
|
||||
# FIX-151 — Nether, PBR opaque et SSR
|
||||
|
||||
Branche `codex/nether-wood-beta151`, socle beta.150 `448e2fe`.
|
||||
|
||||
## Déconnexion Nether
|
||||
|
||||
Le rapport Windows beta.150 transmis le 18 septembre 2026 indique
|
||||
`IndexOutOfBoundsException: Index 46 out of bounds for length 46` lors de
|
||||
`ClientPacketListener.handleContainerContent`, paquet `container_set_content`.
|
||||
Le passage au Nether dans le test client local reproduit exactement cette trace
|
||||
(journal `build/beta151-client-first.log`). Ce défaut n’est pas un crash GPU.
|
||||
|
||||
Minecraft recrée le joueur client et son menu lors de `handleRespawn`, utilisé
|
||||
aussi pour les changements de dimension. La progression n’était réattachée
|
||||
qu’en fin de tick ; un paquet d’inventaire dans le même lot arrivait avant la
|
||||
création des 18 cases supplémentaires et des 3 accessoires. Le correctif lie la
|
||||
progression déjà reçue au nouveau joueur dès la fin du traitement du paquet de
|
||||
respawn, avant le paquet suivant. Aucun paquet ni objet n’est ignoré et aucun
|
||||
format de sauvegarde ne change. Sans progression Sanctuary active, le chemin
|
||||
vanilla reste inchangé.
|
||||
|
||||
## Rendu
|
||||
|
||||
La beta.146 avait porté le gain solaire des surfaces opaques de 3 à 20
|
||||
(4 × 5), soit environ 6,7 fois plus. Le renforcement prévu pour les reflets de
|
||||
l’eau avait ainsi créé un voile sur les matières sombres, dont l’obsidienne.
|
||||
Les surfaces opaques retrouvent le gain 3 et le budget spéculaire total 0,5,
|
||||
partagé entre soleil et lampes. La teinte native du coucher de soleil, les
|
||||
normales et le relief sont conservés. Eau et verre conservent leur traitement.
|
||||
Le bois utilise le profil mat 0,98 : planches, bûches et variantes de construction,
|
||||
bambou, tiges et hyphes du Nether. Ce classement ne transforme pas le nylium en bois.
|
||||
|
||||
SSR est activé par défaut à 20 %, avec portée 64 blocs. Un choix OFF déjà
|
||||
sauvegardé reste OFF. PBR reste à 50 % par défaut.
|
||||
|
||||
## Cible graphique
|
||||
|
||||
Décision du créateur pendant ce ticket : **Vulkan uniquement** pour les nouvelles
|
||||
validations. Le passage OpenGL de ce ticket s’était terminé avant cette demande ;
|
||||
il reste une trace historique, pas une cible à conserver ni à relancer.
|
||||
Cette décision est reportée dans `AGENTS.md` et `docs/testing.md`.
|
||||
|
||||
## Vérification
|
||||
|
||||
Les assertions GPU Vulkan et les quatre transferts successifs
|
||||
Overworld → Nether → Overworld → Nether → Overworld passent sur un nouveau monde
|
||||
plat de développement, graine 122. Après chaque transfert : menu de 67 cases,
|
||||
pile de 7 diamants en inventaire natif, 3 émeraudes dans la première case
|
||||
supplémentaire et 5 lingots d’or dans la dernière, toujours présents côté client.
|
||||
|
||||
Les scènes PBR conservent 99,878 % de la saturation relative du chêne et 99,968 %
|
||||
de celle de l’épicéa écorcé sur 185 776 pixels chacune. Le relief affecte
|
||||
respectivement 101 382 et 51 671 pixels. De face, l’obsidienne ne gagne en moyenne
|
||||
que 5,114 niveaux RGB sur 255 (102 480 pixels), avec relief visible sur 95 225
|
||||
pixels. Captures inspectées : bois et obsidienne PBR OFF/ON.
|
||||
|
||||
Les contrôles couvrent aussi les réglages SSR absents (ON/20 %), la persistance
|
||||
d’un choix OFF, les profils bois, les petits déplacements de caméra, les
|
||||
intensités, le rechargement des ressources et le redimensionnement.
|
||||
Le premier passage Vulkan corrigé valide toutes les assertions, mais se bloque
|
||||
ensuite à la fermeture dans les barrières de synchronisation du programme de
|
||||
test Fabric ; son processus est arrêté après capture des piles de threads.
|
||||
Premier journal : `build/beta151-client-vulkan-final.log` ; diagnostic :
|
||||
`build/beta151-client-shutdown-threads.txt`. Le second passage Vulkan réussit entièrement, fermeture comprise, en **3 min 9 s**
|
||||
(`build/beta151-client-vulkan-clean.log`). La suite OpenGL terminée avant l’abandon de
|
||||
cette cible a réussi en 2 min 42 s ; aucun nouveau test OpenGL n’est prévu.
|
||||
|
||||
Le contrôle complet `./gradlew check build` dans `build/server-validation`
|
||||
(3 068 fichiers de production identiques aux sources courantes) termine en
|
||||
11 min 13 s : **229 réussites, 23 échecs sur 252**. Les 23 identifiants sont
|
||||
strictement identiques à beta.150 : aucun nouveau, aucun résolu.
|
||||
Le contrôle global reste rouge. Journaux et liste :
|
||||
`build/beta151-check-build.log`, `build/beta151-server-failures.json`.
|
||||
Ces échecs restent ouverts et ne constituent pas la validation du correctif
|
||||
réseau ; celui-ci repose sur la reproduction puis le test client des transferts.
|
||||
|
||||
## Pack local
|
||||
|
||||
`./gradlew build assemblePack -x :sanctuary:check` réussit en 11 s,
|
||||
indépendamment du contrôle complet en échec ci-dessus. Export packwiz réussi ;
|
||||
ZIP, version Fabric, Minecraft 26.3, Loader 0.19.5, JAR Sanctuary unique,
|
||||
mixin de respawn et shader exacts, classes conformes aux sorties compilées et
|
||||
absence des tests dans le JAR vérifiés.
|
||||
|
||||
- Pack : `/Users/koka/Documents/sanctuary/sanctuary-beta/build/Sanctuary-beta.151.mrpack`.
|
||||
- SHA-256 pack : `1d87804d75edda0a95c318ea3feaf47ecadeeb29d86ca55483a42741d7a5fcab`.
|
||||
- SHA-256 JAR : `6676c67f8be4e650a9b6a8213c8b0fdf3cf7e62b030c3d1a6d4805d438a8e543`.
|
||||
- Reçu : `build/beta151-artifacts.json`.
|
||||
|
||||
Les essais sont effectués sur Apple M1 ; la validation sur le PC Windows du
|
||||
créateur reste à faire.
|
||||
|
||||
Aucune sauvegarde personnelle ouverte, aucun canal publié ni instance installée.
|
||||
@@ -0,0 +1,103 @@
|
||||
# WG-206 — dessous aminci et cavités froides
|
||||
|
||||
Branche `codex/north-cavities-beta206`, depuis beta.205 (`bf5df38`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Le créateur valide une épaisseur variable sous le paysage du Nord, des cavités
|
||||
froides et humides, et des failles ouvertes d’améthyste bordées de calcite et de
|
||||
basalte. La surface et les grandes taïgas de beta.205 sont la référence.
|
||||
La redistribution diorite / granit / andésite reste une proposition distincte.
|
||||
|
||||
Nouveau profil 206 uniquement, expansion Nord de 1024 blocs. Île de départ,
|
||||
autres directions et profils historiques conservés. Aucun monde existant
|
||||
converti, aucun chunk régénéré. Contrat des essais : nouveaux mondes de
|
||||
développement, graines 42 et 0 ; activation et reprise du Nord explicitement
|
||||
réservées à ces nouvelles sauvegardes de test. Aucun canal public ni instance
|
||||
Prism à modifier.
|
||||
|
||||
## Implémentation
|
||||
|
||||
- Masque soustractif sous le bruit natif 205 : épaisseur cible continue de
|
||||
40–99 blocs, contrôlée par deux bruits, dessous irrégulier. Les vingt blocs
|
||||
supérieurs du champ natif restent protégés. Le masque ne rajoute aucune
|
||||
montagne ni terrasse ; la roche déjà absente reste absente.
|
||||
- Failles sinueuses dans la matière, avec améthyste, calcite et basalte lisse
|
||||
organisés autour du même champ de fissure. Cristaux orientés vers l’air et
|
||||
quelques blocs d’améthyste bourgeonnante.
|
||||
- Dépôts de glace compacte et de glace bleue dans les cavités, argile localisée
|
||||
et lichens. Biomes nordiques 206 distincts, sans les placements de champignons
|
||||
ni les géodes fermées des profils précédents ; minerais conservés.
|
||||
- Eau peu profonde dans le sol existant des cavités : un bloc de roche ou de
|
||||
glace peut être remplacé par l’eau dans une poche de 6–96 blocs, sans ellipse
|
||||
ni terrasse ajoutée. Contours en bruit mondial, fond et berges contrôlés sur
|
||||
les blocs réels ; tout débouché est refusé. Recherche locale bornée, sans
|
||||
grande hydrologie ni travail périodique en partie.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north205,north206 -PsanctuaryAtlasOnly=true` :
|
||||
succès (journal `build/north206-check-build-water.log`). Six GameTests ciblés
|
||||
et contrôles purs passés. La suite native historique complète n’est pas revendiquée.
|
||||
- Deux derniers garde-fous locaux des poches d’eau ont ensuite été recompilés :
|
||||
lectures limitées aux chunks voisins et refus d’approfondir une poche déjà
|
||||
remplie. Reconstruction finale avec `:sanctuary:runGameTest build assemblePack
|
||||
assembleTestPack :sanctuary-test:exportDuoLaunch -x :sanctuary:check`, mêmes
|
||||
propriétés de sélection : six tests repassés, succès en 22 s. Les contrôles
|
||||
purs déjà passés n’ont pas été répétés pour ces deux garde-fous ; les essais
|
||||
natifs ci-dessous utilisent ce JAR final.
|
||||
- Profils Small, graines **42 et 0**, nouveaux mondes `north206-final` et
|
||||
`north206-final0` : offrande réelle, rejet d’offrande incorrecte et de doublon,
|
||||
interruption à 0/58, reprise des 58 chunks FULL et message SGA vérifiés.
|
||||
Cinq igloos et une cave de guérison complets dans chaque monde.
|
||||
- Comparaison au champ 205 de la même graine, sur une grille de relevé :
|
||||
|
||||
| Graine | Échantillons de roche 205 → 206 | Épaisseur maximale relevée 205 → 206 | Hauteurs de surface différentes | Plus grand tronc vérifié |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 42 | 17 968 → 9 279 (−48,4 %) | 179 → 91 blocs | 0 | 59 blocs |
|
||||
| 0 | 17 084 → 8 887 (−48,0 %) | 177 → 90 blocs | 0 | 61 blocs |
|
||||
|
||||
- Dans les régions de faille examinées : 384 cristaux sur la graine 42 et 334
|
||||
sur la graine 0 ; respectivement 2 429 et 2 425 blocs d’améthyste avec au moins
|
||||
une face ouverte sur l’air. Calcite et basalte présents. Ce ne sont pas des
|
||||
totaux à l’échelle de l’île.
|
||||
- Eau vérifiée dans les blocs réels, avec fond et berges fermés : 11 positions
|
||||
sur la graine 42 et 61 sur la graine 0. Cavités contenant air et glace, glaciers
|
||||
de surface et taïgas géantes contrôlés. Ce contrôle des fondations ne remplace
|
||||
pas un essai prolongé après modification des berges par le joueur.
|
||||
- 3 456 cellules de biome stockées comparées au champ mondial par graine :
|
||||
**aucune incohérence** aux jointures examinées. Densité de l’île initiale
|
||||
identique octet par octet à la 205 pour Small, Medium et Large ; classes et
|
||||
ressources historiques 205 conservées.
|
||||
|
||||
L’essai préliminaire a révélé un raccordement manquant du décor au générateur
|
||||
hôte, corrigé avant ces essais finaux. La première recherche de petits bassins
|
||||
strictement préexistants ne produisait pas d’eau vérifiable ; elle a été remplacée
|
||||
par les poches peu profondes décrites ci-dessus. Une tentative démarrée avant la
|
||||
fin de l’assemblage utilisait encore l’ancien JAR et n’est pas une preuve de la
|
||||
version finale.
|
||||
|
||||
Les chiffres sont des échantillons, pas un inventaire exhaustif. Les essais
|
||||
natifs supplémentaires génèrent plusieurs régions de visite et ne constituent
|
||||
pas un benchmark comparatif de vitesse. Aucun essai Windows ni verdict esthétique
|
||||
sur l’ensemble du paysage n’est revendiqué.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
MRpack normal `build/Sanctuary-beta.206.mrpack`, copié dans `~/Downloads/` : ZIP
|
||||
intact, JAR identique au build, trois tailles courantes et historiques présentes,
|
||||
aucun mod Test ni sauvegarde embarqués. Minecraft 26.3 / Fabric Loader 0.19.5.
|
||||
SHA-256 : `a0d2df3d207be0844af6cd4a3a578fd68c860dd0d3a28048f3b58725bb599fc7`.
|
||||
Reçu : `build/north206-mrpack-receipt.json`.
|
||||
|
||||
Nouveau solo préparé depuis le monde 42 vérifié, dans `north206-visit`, avec
|
||||
commandes, vue 32 chunks, simulation 5 et Vulkan. Arrivée près d’une paroi
|
||||
d’améthyste ouverte en **(-463.5, 205, -1151.5)**. Autres repères de cette graine :
|
||||
petite eau vers **(-311, 187, -732)** ; cavité glacée sous **(-416, 249, -728)** ;
|
||||
grandes taïgas vers **(-176, 249, -720)**. Les altitudes de repère des taïgas et de
|
||||
la cavité glacée sont celles de la surface, pas des téléportations souterraines.
|
||||
Le client confirme le backend Vulkan et `NORTH206_VISIT_OPEN` à l’emplacement
|
||||
prévu ; le rendu global reste à apprécier pendant la visite. Aucune publication
|
||||
du canal, aucun déploiement Prism ni modification du monde 205.
|
||||
|
||||
@@ -0,0 +1,88 @@
|
||||
# EXP-202 — étagement du Nord et village enneigé
|
||||
|
||||
Branche `codex/north-ecology-beta202`, depuis beta.201. Retour R021 et trois
|
||||
captures du labo 201 examinées (12:11:22, 12:11:46 et 12:12:57, 4 octobre 2026).
|
||||
|
||||
Conserver les volumes, les cavités et les deux bassins 201, appréciés par le
|
||||
joueur. Refaire uniquement leur écologie et leurs sols : taïga, vallées ouvertes,
|
||||
podzol, épicéas géants natifs, neige progressive avec l'altitude, glaciers sur
|
||||
les hauteurs. Fin des aplats indépendants et du camouflage glace/glace bleue.
|
||||
Glace de cave limitée aux cavités protégées par une épaisseur de roche dans
|
||||
chaque direction ; aucune couche glacée appliquée aux falaises ou au dessous.
|
||||
Les cinq igloos doivent trouver une plaine réellement enneigée avant placement.
|
||||
Les pics de glace restent vanilla, comme demandé en R020.
|
||||
|
||||
Nouveaux profils 202 et journal distinct, diamètre nordique 1024. Aucune migration
|
||||
ni régénération d'un monde existant ; 200 et 201 gardent leurs générateurs.
|
||||
L'île de départ et les autres directions restent inchangées. Le chantier est
|
||||
isolé de la visite 201 encore ouverte. Validation native neuve Small/42, contrôles
|
||||
numériques sur 0, 42 et 4736390610738281858 ; pas de campagne de captures.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Le champ de densité et les deux bassins délèguent exactement à la génération
|
||||
201. Seuls les sols, la végétation, la couverture neigeuse et le placement du
|
||||
village changent. La limite de neige suit l'altitude, avec un versant nord plus
|
||||
froid. Son épaisseur progresse de quelques couches à un bloc après la végétation.
|
||||
Les glaciers sont réservés aux hauts versants ; aucune glace bleue ne peint
|
||||
la surface. Les vallées restent en herbe, les grands boisements en podzol.
|
||||
|
||||
La taïga ordinaire et les épicéas géants réemploient les features 26.3 de taïga
|
||||
et `old_growth_spruce_taiga`. Aucun arbre géant custom ajouté. Les pics utilisent
|
||||
toujours `minecraft:ice_spike` et `minecraft:ice_patch`, sans remplacement des
|
||||
features natives. Les matériaux de cave glacée nécessitent du recouvrement et
|
||||
une assise rocheuse autour de la colonne ; les marges et dessous restent rocheux.
|
||||
Les cinq igloos cherchent une zone sèche, entièrement enneigée et peu pentue,
|
||||
avec classement par dénivelé. Aucun disque blanc ajouté sous le village.
|
||||
Caches numériques bornés ; pas de simulation hydrologique supplémentaire.
|
||||
|
||||
## Vérifications du 4 octobre 2026
|
||||
|
||||
- `north202Smoke` : neuf couples graine/taille (0, 42, 4736390610738281858 ;
|
||||
512/724/1024), égalité des colonnes et densités avec 201, présence de taïga,
|
||||
vallées, neige progressive et glacier minoritaire, protection du dessous.
|
||||
Recherche du village vérifiée aussi sur les graines 1 à 100. Toutes passent.
|
||||
- Ressources historiques de génération inchangées, sauf le preset public qui
|
||||
sélectionne désormais 202 et l'ajout du biome 202 au tag des ours polaires.
|
||||
Les trois noise settings de l'île de départ sont identiques aux fichiers 201.
|
||||
- Essai natif final : `build/worldgen-lab/north202-native-b`, Small, graine 42,
|
||||
diamètre de l'expansion 1024. Offrande réelle, interruption à 0/58 chunks,
|
||||
reprise, cinq igloos, une cave de guérison, relais de continuation orienté Nord.
|
||||
- Échantillon de taïga : 1517 blocs de troncs, 7677 blocs de feuilles,
|
||||
troncs atteignant 27 blocs, 13 empreintes de troncs larges, 3339 blocs de podzol.
|
||||
Pics natifs : 2910 blocs de glace au-dessus du terrain, maximum sondé 43 blocs.
|
||||
Ces nombres décrivent des échantillons, pas toute l'expansion.
|
||||
- Village : 333 des 339 colonnes sondées hors maisons portent de la neige.
|
||||
Lac : 8995 blocs de glace et 41795 blocs d'eau, sans fuite dans l'air.
|
||||
Caverne sondée : 49 blocs glacés et 2585 blocs d'air. Bordure sondée sur
|
||||
16 directions : 340 blocs rocheux, aucune glace compacte/bleue.
|
||||
|
||||
La validation esthétique reste celle de la visite. Pas de nouvelle campagne de
|
||||
captures. Visite native Small/42 uniquement : Windows et Medium/Large natifs
|
||||
ne sont pas vérifiés ici. Les sept autres directions restent provisoires.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=operator,realtime -PsanctuaryAtlasOnly=true` : succès,
|
||||
143 tâches, dont 126 exécutées ; sept GameTests ciblés et les smokes du projet.
|
||||
La suite native historique complète n'a pas été relancée (limite documentée
|
||||
pour beta.200). Logs : `build/north202-check-build.log` et
|
||||
`build/north202-native-final.log`.
|
||||
|
||||
MRpack : `build/Sanctuary-Test-beta.202.mrpack`, copie identique dans Downloads
|
||||
avec `Sanctuary-Test-beta.202-Guide.txt`. ZIP, versions 26.3 / Loader 0.19.5,
|
||||
hashes Fabric API, deux JAR et leurs 2258 classes compilées vérifiés.
|
||||
Reçu local : `build/north202-artifact.json`.
|
||||
|
||||
Taille : 12407853 octets ; SHA-256 :
|
||||
`b5ecdfcb2c4b1988f9402653a16c823b50f0661e8b1db0f0e7d6c21e9841f6f8`.
|
||||
|
||||
Aucun monde inclus dans le MRpack. Aucun canal public ni instance Prism modifié.
|
||||
Visite neuve `Sanctuary-North-202-42`, issue de l'essai natif final, créatif,
|
||||
commandes activées, Vulkan, vue 32, simulation 4. Départ en vol près du village.
|
||||
Village `(-212,191,-1292)`, taïga géante `(144,215,-976)`, lac `(-247,258,-765)`,
|
||||
pics vers `(-208,281,-880)`, relais `(-128,202,-1240)`.
|
||||
|
||||
Ouverture confirmée à 12:41:46 par `NORTH202_VISIT_OPEN`, joueur
|
||||
`(-160,228,-1247)` ; log `build/north202-visit-client.log`.
|
||||
@@ -0,0 +1,120 @@
|
||||
# EXP-200 — premier Nord glacial
|
||||
|
||||
Branche `codex/north-expansion-beta200`, depuis beta.199. Retours R015–R017.
|
||||
|
||||
## Résultat visé
|
||||
|
||||
Un continent nordique de diamètre nominal 2048 : crêtes, pics, vallées de taïga
|
||||
neigeuse, neige poudreuse localisée, cavernes de glace et lacs gelés fermés.
|
||||
Chèvres et ours polaires natifs de Minecraft 26.3 (choix confirmé).
|
||||
Un village de plusieurs igloos ; un seul contient le laboratoire souterrain
|
||||
vanilla avec villageois zombie. Pas d'autre famille de structures dans cette
|
||||
première tranche. Le Sud, l'Est, l'Ouest et les diagonales seront travaillés à part.
|
||||
|
||||
## Placement et ouverture
|
||||
|
||||
L'identité du relais reste celle de son secteur. Recherche proche dans un
|
||||
éventail de ±15° devant l'ancre, sans basculer dans une autre direction.
|
||||
La première version 200 porte le Nord à 2048 ; les sept autres reliefs gardent
|
||||
leur taille/profil provisoire de 199. Le relais de continuation du Nord conserve
|
||||
la direction, le climat et la taille du Nord.
|
||||
|
||||
Toute l'emprise est vérifiée vierge, réservée durablement et publiée avant les
|
||||
travaux. À cette échelle, `ready` signifie accès et relais préparés ; le reste
|
||||
est généré nativement pendant l'exploration. L'annonce SGA décrit cette ouverture,
|
||||
pas une pré-génération intégrale. Préparation bornée, sans simulation hydrologique
|
||||
globale ni réutilisation silencieuse de chunks déjà explorés.
|
||||
|
||||
## Contrat des sauvegardes
|
||||
|
||||
Nouveaux profils `shared_island200_small/medium/large`, journal distinct
|
||||
`sanctuary-lab-expansions200`. Aucun monde existant modifié ou migré ; les profils
|
||||
et ressources 196–199 restent inchangés. IDs historiques conservés. Les essais
|
||||
activent uniquement des expansions dans des mondes de développement neufs,
|
||||
graine 42 puis relevés déterministes sur 0 et 4736390610738281858.
|
||||
|
||||
## Vérifications prévues
|
||||
|
||||
Direction et diamètre, déterminisme, cavités, confinement des eaux, village
|
||||
et laboratoire habitable, vraie activation, sauvegarde et reprise. Compilation,
|
||||
`check build` et assemblages. Ne pas confondre vérification technique et validation
|
||||
esthétique : le rendu reste une première version à visiter.
|
||||
|
||||
## Implantation et contrôles intermédiaires
|
||||
|
||||
Le champ nordique compose des crêtes déformées, des sommets secondaires et des
|
||||
vallées, puis soustrait des passages et chambres 3D. Cache numérique borné par
|
||||
worker ; aucune lecture de chunks voisins pour dessiner le terrain. Six biomes
|
||||
nordiques reprennent l'écologie native de 26.3 ; les sources d'eau/lave dispersées
|
||||
et salles de monstres vanilla sont retirées de ces seuls profils. Les bassins
|
||||
ont un fond rocheux continu et une couverture de glace, sans hydrologie globale.
|
||||
|
||||
Village : cinq igloos natifs orientés et ajustés individuellement au sol. Un
|
||||
seul laboratoire, avec échelle, coffre vanilla, potion de faiblesse, villageois
|
||||
et villageois zombie persistants. Les arbres évitent les maisons et les lacs.
|
||||
La faune initiale utilise les attributs du biome à la surface réelle, car la
|
||||
sélection vanilla à Y=1600 échantillonnait le vide ; règles de spawn natives
|
||||
conservées. Ours polaires également admis sur la glace des lacs.
|
||||
|
||||
- `north200Smoke` : 9 couples graine/taille, huit éventails, relief/cavités,
|
||||
bassins analytiquement fermés, journal 2048 et refus de 2048 en génération 199.
|
||||
- Essai intermédiaire Small/42, 2 Gio : vraie offrande nord, interruption à
|
||||
0/58 chunks, puis reprise. Village de cinq igloos et un laboratoire contrôlés ;
|
||||
lac avec 3475 blocs de glace et 10525 blocs d'eau, sans voisin d'air sous l'eau ;
|
||||
136 blocs de glace et 1926 blocs d'air dans les colonnes de caverne sondées.
|
||||
Ce sont des sondages locaux, pas les totaux du continent.
|
||||
- Le premier passage a révélé un barreau manquant sous la trappe : raccord
|
||||
corrigé et vérifié lors du second passage. Les essais antérieurs restent
|
||||
conservés sous `build/worldgen-lab/north200-native-a` et `north200-native-b`.
|
||||
- Les 148 ressources historiques de génération du module Test restent identiques
|
||||
à beta.199 (hors preset public, qui sélectionne maintenant 200).
|
||||
|
||||
## Essai final et livraison locale — 4 octobre 2026
|
||||
|
||||
Le parcours serveur final `north200-native-final/small/42` répète l'activation
|
||||
réelle et l'interruption/reprise sur les sources livrées. Les 58 chunks d'accès
|
||||
et de relais passent à FULL ; cinq igloos, un laboratoire, le lac et la cavité
|
||||
glacée sont vérifiés. Les entités sauvegardées comprennent six ours polaires,
|
||||
trois renards, huit lapins, un villageois et un villageois zombie. Aucune chèvre
|
||||
observée dans ce petit échantillon : leurs règles natives sont présentes dans
|
||||
les sommets et pentes, sans validation d'une rencontre dans ce parcours.
|
||||
|
||||
Le client Vulkan a ouvert une copie de visite neuve, `Sanctuary-North-200-42`,
|
||||
avec confirmation `NORTH200_VISIT_OPEN` à `(-200,224,-968)`. Créatif, commandes,
|
||||
vue 32 chunks et simulation 4 ; shaders désactivés. Le village se trouve autour
|
||||
de `(-200,212,-988)`, la trappe spéciale vers `(-193,210,-961)`, le lac sondé en
|
||||
`(-64,187,-1204)` et le relais suivant en `(-176,215,-2121)`.
|
||||
|
||||
Archive locale : `build/Sanctuary-Test-beta.200.mrpack`, également copiée dans
|
||||
`/Users/koka/Downloads/`, avec `Sanctuary-Test-beta.200-Guide.txt`.
|
||||
12 366 771 octets ; SHA-256 :
|
||||
`2a29b35613f95540ec9d910e043a1f6f26b2dfe7d6d95c50997ba4bbde203cdc`.
|
||||
Intégrité ZIP, version, dépendances Minecraft 26.3 / Fabric Loader 0.19.5,
|
||||
empreintes Fabric API, deux JAR identiques au build et 2246 classes compilées
|
||||
vérifiés. Les trois tailles sont présentes ; aucune sauvegarde embarquée.
|
||||
Reçu : `build/north200-artifact.json`. Aucun canal public ni Prism synchronisé.
|
||||
|
||||
La commande complète `check build assemblePack assembleTestPack` a été lancée,
|
||||
puis interrompue volontairement pendant
|
||||
`retainedHydrologySurvivesNativeDecoration` (ancienne génération 24, préparation
|
||||
de 112 chunks FULL). Les captures de threads montrent l'attente de génération ;
|
||||
elles ne démontrent pas un interblocage. Cette suite générale n'est pas validée.
|
||||
Logs : `build/north200-check-build.log`, `north200-fullcheck-threads*.txt`.
|
||||
Les essais serveur nordiques sont distincts de cette suite historique.
|
||||
|
||||
Les sept GameTests `operator,realtime` passent avec le fixture plat
|
||||
`-PsanctuaryAtlasOnly=true`, indépendamment de l'essai natif nordique.
|
||||
Cette sélection ne remplace pas les 265 tests de la suite générale.
|
||||
La commande `./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=operator,realtime -PsanctuaryAtlasOnly=true` termine avec
|
||||
succès : 141 tâches, dont 110 exécutées et 31 à jour. Elle inclut les tests
|
||||
numériques, notamment `north200Smoke`. Log complet :
|
||||
`build/north200-check-build-focused.log`. Archive revérifiée après l'assemblage
|
||||
final, identique aux JAR et classes finaux ; daemon de build arrêté ensuite.
|
||||
|
||||
Limites : validation native détaillée sur Small/42, neuf couples graine/taille
|
||||
pour les contrôles numériques, pas de lancement Windows ni de visite native
|
||||
Medium/Large sur cette version. Les 2048 blocs désignent le diamètre nominal,
|
||||
pas une pré-génération intégrale. Le démarrage à 32 chunks a produit des retards
|
||||
de ticks avec les contrôles et un autre client simultanés sur le Mac 8 Gio :
|
||||
aucune conclusion de fluidité ni correction des saccades n'est revendiquée.
|
||||
@@ -0,0 +1,87 @@
|
||||
# EXP-203 — fractures, lisières et taïga géante
|
||||
|
||||
Branche `codex/north-fracture-beta203`, depuis beta.202. Retour R022.
|
||||
Le rendu 202 est globalement validé. Passe ciblée demandée : ajouter de fortes
|
||||
variations locales de volume et des trous par bruit 3D, retirer la neige ajoutée
|
||||
après la végétation, brouiller les limites du podzol, donner aux grands épicéas
|
||||
une hauteur pouvant atteindre 64 et varier les matières des sommets glacés.
|
||||
Aucun nouveau village : la proposition supplémentaire est retirée par le joueur.
|
||||
Les cinq igloos existants restent présents.
|
||||
|
||||
Nouveaux profils 203 seulement, Nord 1024. Aucun monde existant régénéré ni
|
||||
migré ; profils 200–202 inchangés. Bassins et basses plaines d'accueil protégés
|
||||
de la déformation. Pics de glace vanilla conservés. Arbres avec moteur natif,
|
||||
configuration propre au biome géant ; aucune modification globale des épicéas.
|
||||
Pas de simulation d'érosion ou d'hydrologie supplémentaire, caches bornés.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Le champ 203 combine des déplacements verticaux locaux (deux échelles de bruit)
|
||||
et un bruit volumique négatif de plus grande portée. Les nouvelles poches
|
||||
peuvent traverser le toit ou le dessous, contrairement aux caves fermées 202.
|
||||
Le bruit est atténué sur les basses plaines, les bords et tout autour des lacs.
|
||||
Les seuils de sommet restent lisibles ; le détail 3D module les roches et glaces.
|
||||
|
||||
La passe de neige après décoration n'est pas appelée pour 203. Les prairies
|
||||
froides gardent leur herbe ; la neige demeure comme matériau de sommet,
|
||||
substrat nécessaire aux pics vanilla et matériau des igloos existants.
|
||||
Le champ de podzol comporte deux fréquences de détail aux lisières. Le
|
||||
`alter_ground` circulaire des nouveaux grands arbres est supprimé.
|
||||
|
||||
Les arbres réemploient `giant_trunk_placer` et `mega_pine_foliage_placer` de
|
||||
Minecraft 26.3. Configuration locale : hauteur 32 + aléa 0–16 + aléa 0–16,
|
||||
soit 32 à 64 blocs, couronne de 18–24 ; mélange de géants et de petits épicéas.
|
||||
Les features `ice_spike` / `ice_patch` restent natives et inchangées.
|
||||
|
||||
## Contrôles
|
||||
|
||||
`north203Smoke` passe sur neuf couples graine/taille (0, 42,
|
||||
4736390610738281858 ; Small/Medium/Large). Les déplacements locaux sondés vont
|
||||
jusqu'à environ −62 / +56 blocs selon le cas. Ouvertures de surface présentes,
|
||||
densité bornée, lacs et leurs coques inchangés, lisières de podzol irrégulières.
|
||||
Recherche des cinq igloos vérifiée également sur les graines 1 à 32.
|
||||
Les ressources worldgen historiques sont inchangées, hors sélection du nouveau
|
||||
preset public et ajout du biome 203 au tag des ours polaires. Les noise settings
|
||||
de l'île de départ restent identiques à 202. Aucun test visuel Windows ni
|
||||
nouvelle campagne de captures : le rendu est à juger dans le labo.
|
||||
|
||||
|
||||
Essai natif final : `build/worldgen-lab/north203-native-b`, Small/graine 42.
|
||||
Vraie offrande, interruption à 0/58 chunks, reprise et relais prêts. Cinq igloos
|
||||
et un laboratoire conservés. Recherche de cave orientée vers un intérieur
|
||||
suffisamment épais, plutôt que le sommet le plus haut désormais fracturé.
|
||||
|
||||
Dans les échantillons : 4218 blocs de troncs, 10450 de feuilles, 21 empreintes
|
||||
de troncs larges ; tronc le plus haut mesuré 59 blocs (plafond configuré 64).
|
||||
Sommet : 309 blocs de glace bleue, 63 de glace ordinaire, 2154 de glace compacte,
|
||||
1219 de neige pleine et 1694 de roche. Pics vanilla : maximum sondé 13 blocs
|
||||
au-dessus du terrain. Prairie : zéro couche de neige parmi 339 colonnes.
|
||||
Lac : 8995 blocs de glace et 41795 d'eau, sans fuite ; caverne sondée : 226 blocs
|
||||
glacés et 1878 d'air. Bordure : 339 blocs rocheux, aucune glace compacte/bleue.
|
||||
Il s'agit de contrôles locaux, pas d'un comptage de toute l'expansion.
|
||||
|
||||
|
||||
## Livraison
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=operator,realtime -PsanctuaryAtlasOnly=true` : succès,
|
||||
144 tâches dont 120 exécutées, sept GameTests ciblés et les smokes du projet.
|
||||
La suite native historique complète n'a pas été relancée (limite beta.200).
|
||||
Logs : `build/north203-check-build.log` et `build/north203-native-final.log`.
|
||||
|
||||
MRpack vérifié : `build/Sanctuary-Test-beta.203.mrpack`, copie identique dans
|
||||
Downloads avec le guide. Archives, versions, dépendances, empreintes Fabric API,
|
||||
JAR et 2265 classes compilées vérifiés ; reçu `build/north203-artifact.json`.
|
||||
|
||||
12433661 octets ; SHA-256 :
|
||||
`ba160b4134c0b9dbe402e1834bdbec4f5561bfd6bd9dc147590dd76ee30dbf4f`.
|
||||
|
||||
Visite neuve `Sanctuary-North-203-42`, issue de l'essai natif final. Créatif,
|
||||
commandes activées, Vulkan, vue 32, simulation 4 ; départ au-dessus de la taïga.
|
||||
Village `(-212,191,-1292)`, forêt `(144,215,-976)`, pics `(-208,278,-944)`,
|
||||
premier lac `(-247,258,-765)`. Aucun canal public ni instance Prism modifié.
|
||||
Pas de sauvegarde embarquée dans le pack ni de revendication sur les saccades.
|
||||
Essai natif Small/42 seulement ; Medium/Large sont contrôlés numériquement.
|
||||
|
||||
Ouverture confirmée à 13:12:20 par `NORTH203_VISIT_OPEN`, départ
|
||||
`(196,292,-931)`, backend Vulkan confirmé dans `build/north203-visit-client.log`.
|
||||
@@ -0,0 +1,90 @@
|
||||
# EXP-201 — Nord compact, glacier et bosquets
|
||||
|
||||
Branche `codex/north-glacier-beta201`, depuis beta.200 ; retours joueur R019–R020.
|
||||
|
||||
## Résultat demandé
|
||||
|
||||
Le diamètre du Nord passe de 2048 à 1024 blocs. Remplacer la nappe blanche perçue
|
||||
par un paysage de glace lisible : pics de glace, glacier, deux lacs gelés visibles,
|
||||
bosquets localisés et contraste roche/glace/neige. Conserver les cinq igloos et
|
||||
le laboratoire avec villageois zombie. Les lacs doivent contenir de l'eau sous
|
||||
leur glace ; la végétation doit être réellement générée, pas seulement déclarée.
|
||||
Les pics utilisent explicitement `minecraft:ice_spike` et `minecraft:ice_patch`
|
||||
de Minecraft 26.3, avec leurs placements natifs. Aucune forme de pic recodée.
|
||||
|
||||
Le Nord ne doit pas devenir le catalogue de tous les biomes froids. Son identité
|
||||
est le glacier habité ; les grandes forêts boréales, côtes froides et autres
|
||||
paysages restent des pistes pour NO/NE. Leur répartition n'est pas décidée ici.
|
||||
|
||||
## Contrat de génération
|
||||
|
||||
Nouveaux profils 201 et journal `sanctuary-lab-expansions201`, destinés uniquement
|
||||
aux nouveaux mondes. Les profils et le champ nordique 200 restent disponibles
|
||||
pour les sauvegardes historiques ; aucune conversion des expansions 2048 déjà
|
||||
créées, ni régénération de chunks. Île de départ Small/Medium/Large inchangée.
|
||||
Placement dans l'éventail existant de ±15°. Préparation bornée de l'arrivée et du
|
||||
relais, puis exploration. Les sept autres directions restent provisoires.
|
||||
|
||||
## Vérifications attendues
|
||||
|
||||
Contrôle de taille et de direction, stabilité de la génération 200, proportions
|
||||
et visibilité des surfaces glaciaires, lacs fermés, relief vertical, bosquets et
|
||||
village. Vérification native de vrais troncs/feuilles, glace de surface non
|
||||
recouverte et pics élevés. Graines numériques 0, 42 et 4736390610738281858 ; visite
|
||||
native neuve Small/42. Pas de campagne de screenshots ni d'hydrologie globale.
|
||||
|
||||
Les contrôles techniques ne remplacent pas le retour esthétique du joueur.
|
||||
|
||||
## Intégration
|
||||
|
||||
La 200 posait une couche de neige pendant le traitement du sol, avant les
|
||||
features végétales ; les arbres natifs de taïga passent par les saplings
|
||||
`spruce_checked` / `pine_checked`, qui exigent un support viable. La 201 laisse
|
||||
le sol des bosquets en herbe jusqu'à leur plantation. Les lacs et le glacier ne
|
||||
reçoivent plus la feature `freeze_top_layer`, afin que leur glace reste visible.
|
||||
Les zones de pics conservent au contraire le bloc de neige requis par la feature
|
||||
native `minecraft:spike`. Ses références et sa fréquence restent vanilla.
|
||||
|
||||
Le substrat compact associe une crête, des épaules glaciaires, deux champs de
|
||||
pics natifs, deux bosquets et deux bassins fermés. Caches numériques bornés ;
|
||||
aucune simulation hydrologique globale. Le village est rapproché du premier lac.
|
||||
Le relief, les matériaux et le choix de biomes de la 200 gardent leur branche
|
||||
de génération historique.
|
||||
|
||||
## Résultats — 4 octobre 2026
|
||||
|
||||
- `north201Smoke` : neuf couples graine/taille, Nord 1024, relief, parts de glace,
|
||||
bosquets, lacs et champs de pics, confinement des bassins, déterminisme et
|
||||
routage historique 200. `north200Smoke` reste passant. Les 155 ressources
|
||||
historiques worldgen du module Test restent identiques, hors preset public.
|
||||
- Serveur neuf Small/42, `build/worldgen-lab/north201-native-a` : vraie offrande,
|
||||
interruption à 0/58 chunks, reprise et accès préparés. Cinq igloos, une cave
|
||||
avec trappe/échelle/coffre/potion ; relais de continuation orienté Nord.
|
||||
- Échantillon du bosquet : 395 blocs de troncs et 3294 blocs de feuilles
|
||||
d'épicéa, répartis sur 56 colonnes de troncs (pas un comptage d'arbres entiers).
|
||||
Champ de pics natifs : 1838 blocs de glace compacte au-dessus du terrain,
|
||||
maximum sondé de 11 blocs. Lac : 8995 blocs de couverture gelée et 41795 blocs
|
||||
d'eau ; 7602 surfaces de glace visibles contrôlées, zéro couche de neige dessus.
|
||||
Caverne : 561 blocs de glace et 2585 blocs d'air sondés. Totaux locaux uniquement.
|
||||
- `./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=operator,realtime -PsanctuaryAtlasOnly=true` : succès,
|
||||
sept GameTests ciblés et tous les smokes associés, 142 tâches dont 118 exécutées.
|
||||
La suite native historique complète n'a pas été relancée (limite beta.200).
|
||||
Logs : `build/north201-check-build.log` et `build/north201-native-a.log`.
|
||||
|
||||
Livraison locale : `build/Sanctuary-Test-beta.201.mrpack`, copie dans Downloads
|
||||
avec le guide. 12 386 623 octets ; SHA-256 :
|
||||
`37925f012e4096c253f25e573305237e71114448d866a57f3fbad6e3da6b3d89`.
|
||||
ZIP, dépendances 26.3 / Loader 0.19.5, empreintes Fabric API, JAR et 2252 classes
|
||||
compilées vérifiés. Les trois tailles sont incluses, aucune sauvegarde embarquée.
|
||||
Reçu : `build/north201-artifact.json`. Aucun canal public ni Prism modifié.
|
||||
|
||||
Visite préparée : `Sanctuary-North-201-42`, nouveau monde issu de l'essai natif.
|
||||
Départ près du lac en `(-142,323,-705)`, créatif, commandes, Vulkan, vue 32 et
|
||||
simulation 4. Ouverture confirmée par `NORTH201_VISIT_OPEN` dans
|
||||
`build/north201-visit-client.log`. Village `(-128,205,-637)`, lac `(-247,258,-765)`, bosquet
|
||||
`(-324,258,-780)`, champ de pics vers `(-273,-1059)`, relais `(-128,202,-1240)`.
|
||||
|
||||
Limites : visite native Small/42 seulement, pas d'essai Windows ou Medium/Large
|
||||
natif sur cette version. Pas de revendication sur les saccades. Les paysages
|
||||
NO/NE ne sont pas implémentés ; les anciens mondes ne changent pas de taille.
|
||||
@@ -0,0 +1,129 @@
|
||||
# WG-207 — neige, couronnes et manoir du Nord
|
||||
|
||||
Branche `codex/north-landscape-beta207`, depuis beta.206 (`6f78054`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Accord du créateur sur les trois suites du retour R004 : taïga partiellement
|
||||
enneigée, reliefs Voronoi localisés sur les hauts plateaux et manoir procédural
|
||||
inspiré du manoir vanilla. Le bois du manoir doit être de l’épicéa (spruce).
|
||||
Conserver le diamètre de 1024 blocs, le dessous aminci et les grandes failles
|
||||
d’améthyste validés en visite. Ne pas transformer toute la forêt en neige.
|
||||
|
||||
Profil neuf 207 exclusivement. Les profils 206 et antérieurs gardent leur
|
||||
génération. Aucun monde existant modifié ni chunk régénéré. Contrat des essais :
|
||||
nouveaux mondes de développement, graines 42 et 0, avec activation et reprise
|
||||
du Nord pour contrôler la génération et préparer une visite. Aucun déploiement
|
||||
Prism, publication du canal ou modification de sauvegarde personnelle.
|
||||
|
||||
## Implémentation
|
||||
|
||||
- Jusqu’à cinq couronnes sur des épaules hautes et soutenues, avec distances
|
||||
de Voronoi, déformation du contour par bruit et cols entre les sommets.
|
||||
Ajout local de quelques dizaines de blocs, plafond à Y=308 ; aucune terrasse
|
||||
globale. Le champ de densité sous le toit initial reste celui de la 206.
|
||||
- Nappes de neige de plusieurs échelles sur la taïga, avec deux variantes de
|
||||
biomes froids et les variantes tempérées conservées. Placement sur le sol
|
||||
réel sous la canopée, remplacement des petites plantes, état enneigé de
|
||||
l’herbe/podzol. Les troncs, l’eau et les plantes non admissibles sont protégés.
|
||||
La passe lit les cellules de biome déjà stockées au lieu de refaire le calcul
|
||||
complet des cavités pour chaque colonne de neige.
|
||||
- Assemblage natif des pièces du manoir, avec disposition dépendante de la
|
||||
graine, pièces meublées, coffres et occupants vanilla. Conversion locale des
|
||||
bois principaux en épicéa, panneaux en calcite, soubassements en tuf taillé et
|
||||
tapis froids. Les propriétés des escaliers, dalles et portes sont conservées.
|
||||
- Recherche bornée d’un site adapté à l’emprise réelle, hors igloos, arrivée,
|
||||
relais et couronnes ; contrôle des appuis colonne par colonne. Aucun
|
||||
terrassement massif ni fondation sans limite vers le vide. Si une graine ne
|
||||
possède pas de site admissible, le manoir est omis avec un diagnostic plutôt
|
||||
que de faire échouer l’expansion.
|
||||
- Approche de trois blocs de large en escaliers de tuf, raccordée au terrain
|
||||
devant l’entrée ; appuis et dégagement contrôlés dans les essais natifs.
|
||||
|
||||
## Vérifications de compilation
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north206,north207 -PsanctuaryAtlasOnly=true` :
|
||||
succès, contrôles purs et six GameTests ciblés passés. Journal :
|
||||
`build/north207-check-build.log` (5 min 42 s).
|
||||
|
||||
Après les dernières corrections locales (accès, portillon en épicéa et lecture
|
||||
des biomes pour la neige), reconstruction et six GameTests repassés avec
|
||||
`:sanctuary:runGameTest build assemblePack assembleTestPack
|
||||
:sanctuary-test:exportDuoLaunch -x :sanctuary:check`, mêmes propriétés de sélection.
|
||||
Journal final : `build/north207-final2-build.log`, succès en 55 s. Les contrôles
|
||||
purs historiques déjà passés n’ont pas été répétés à cette étape. La suite
|
||||
historique complète des GameTests n’est pas revendiquée.
|
||||
|
||||
Les tests ciblés vérifient le maintien des anciens presets dans les trois tailles,
|
||||
la conservation du dessous 206, l’étendue limitée du nouveau relief et les
|
||||
propriétés d’orientation des escaliers/portes après conversion en épicéa.
|
||||
Les trois fichiers de densité de l’île initiale sont identiques à ceux de la 206.
|
||||
|
||||
## Essais natifs sur le build final
|
||||
|
||||
Profils Small, nouveaux mondes `north207-final` (42) et `north207-final0` (0).
|
||||
Offrande réelle, refus des offrandes incorrectes et des doublons, interruption
|
||||
à 0/58 puis reprise des chunks préparés et annonce SGA : succès. Cinq igloos
|
||||
et une cave de guérison complets sur chaque graine.
|
||||
|
||||
| Relevé | Graine 42 | Graine 0 |
|
||||
| --- | --- | --- |
|
||||
| Couronnes / ajout maximal relevé | 5 / 52 blocs | 5 / 45 blocs |
|
||||
| Colonnes relevées avec élévation > 2 blocs / autres | 191 / 1 767 | 192 / 1 790 |
|
||||
| Échantillons profonds identiques à la 206 | 52 989 | 51 958 |
|
||||
| Améthyste / faces ouvertes dans la région inspectée | 7 731 / 1 928 | 12 494 / 3 567 |
|
||||
| Sols enneigés dans la zone de taïga enneigée inspectée | 2 225 | 1 514 |
|
||||
| Sols dégagés / enneigés dans la taïga tempérée inspectée | 2 209 / 0 | 2 372 / 0 |
|
||||
| Pièces natives du manoir | 544 | 547 |
|
||||
| Fondation maximale du manoir | 5 blocs | 6 blocs |
|
||||
| Coffres conservant une table de butin native | 5 | 5 |
|
||||
| Cellules de biome stockées contrôlées / incohérences | 1 944 / 0 | 1 944 / 0 |
|
||||
|
||||
Les deux manoirs ont des planchers et escaliers en épicéa, des panneaux en
|
||||
calcite et du tuf taillé. Aucun bloc de planches de chêne/chêne noir ni feuille
|
||||
d’épicéa envahissante dans les volumes examinés. L’approche possède trois
|
||||
marches centrales contrôlées avec support et deux blocs d’air de dégagement.
|
||||
Les autres coffres des pièces vanilla peuvent être des rangements sans table
|
||||
de butin : ne pas confondre nombre total de coffres et récompenses.
|
||||
|
||||
Ces nombres sont des relevés locaux ou sur grille, pas un inventaire de l’île.
|
||||
L’essai préliminaire `north207-a` avait déjà passé les contrôles de paysage et
|
||||
de manoir ; les deux essais ci-dessus utilisent le JAR final, après optimisation
|
||||
de la passe de neige et vérification supplémentaire de l’accès et du butin.
|
||||
Les essais finaux tournaient en parallèle : leurs durées ne constituent pas
|
||||
une comparaison de performance avec la 206.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
MRpack normal `build/Sanctuary-beta.207.mrpack`, copié dans `~/Downloads/`.
|
||||
ZIP intact, JAR identique au build final, profils courants et historiques des
|
||||
trois tailles présents, aucun mod Test ni monde embarqué. Minecraft 26.3,
|
||||
Fabric Loader 0.19.5. Reçu : `build/north207-mrpack-receipt.json`.
|
||||
|
||||
SHA-256 : `1f6caca543dddea4e961bba6737a9d4a0e2fbb2935fb17a3c2c94d8f1a7a635d`.
|
||||
|
||||
Nouvelle visite `north207-visit`, graine 42, copiée depuis le monde vérifié et
|
||||
arrêté. Vue 32 chunks, simulation 5, commandes et vol créatif. Position initiale
|
||||
préparée : **(49.5, 302, -1285.5)**, face au manoir. Repères de visite :
|
||||
|
||||
- Manoir : **(-27, 252, -1244)**.
|
||||
- Taïga enneigée : **(-192, 251, -704)**.
|
||||
- Taïga dégagée : **(32, 253, -720)**.
|
||||
- Sommet ajouté : **(-448, 303, -1008)**.
|
||||
|
||||
Les repères indiquent les régions contrôlées ; certains sont au-dessus du sol
|
||||
pour la visite en vol. Aucun canal public, serveur personnel ou instance Prism
|
||||
modifié. Les mondes précédents sont conservés.
|
||||
|
||||
Le client confirme Vulkan / MoltenVK et `NORTH207_VISIT_OPEN` à **(49, 302,
|
||||
-1286)** le 5 octobre à 02:28. La visite est ouverte ; le rendu reste à juger
|
||||
par le créateur, sans prétendre à une inspection graphique exhaustive.
|
||||
|
||||
## Limites
|
||||
|
||||
Le manoir utilise les pièces et le butin natifs avec une palette propre au Nord.
|
||||
Il ne possède pas de nouvelle entrée `/locate` ; son placement appartient au
|
||||
générateur local. L’admission peut omettre le manoir sur une graine sans appui
|
||||
admissible. Aucun jugement esthétique global, essai Windows ou benchmark
|
||||
comparatif n’est déduit des vérifications techniques.
|
||||
@@ -0,0 +1,77 @@
|
||||
# WG-205 — Nord en bruit 3D natif
|
||||
|
||||
Branche `codex/north-noise-beta205`, depuis beta.204 (`2463db7`).
|
||||
|
||||
Retour : montagnes reliées et trop étirées, démarcations de biomes suivant les
|
||||
chunks. Retirer la surélévation Peaks et les masses ajoutées au-dessus du bruit
|
||||
de base ; habiller ensuite les surfaces réellement générées.
|
||||
|
||||
Contrat : nouveau profil 205 uniquement, Nord de 1024 blocs. Taïga géante,
|
||||
glaces et cinq igloos conservés. Île de départ et profils 200–204 inchangés.
|
||||
Aucune migration, aucun ancien chunk modifié. Essais sur nouveaux mondes de
|
||||
développement, graines 42 et 0. Publication et installation Prism non demandées.
|
||||
|
||||
## Changements
|
||||
|
||||
Le Nord 204 cumulait la déformation verticale Peaks, un agrandissement horizontal
|
||||
×2 / vertical √2 et les corps supérieurs de la densité Population. Le profil 205
|
||||
utilise le champ natif sans ces déformations : enveloppe de 1024 directement,
|
||||
bruit à son échelle d'origine et cavités conservées. Le champ n'est pas rehaussé
|
||||
après coup pour former une chaîne de montagnes. Les anciennes classes 204 restent
|
||||
inchangées et les autres directions conservent leur relief.
|
||||
|
||||
Le champ d'écologie 204 arrondissait X/Z par groupes de huit blocs. La hauteur,
|
||||
la pente et les seuils de glace pouvaient alors changer d'un carré au suivant.
|
||||
Le nouveau lecteur interpole les hauteurs entre les mesures ; il mesure à nouveau
|
||||
une colonne quand un voisin est vide, sans fabriquer un sol par interpolation.
|
||||
Les sols sont appliqués sur la vraie hauteur du chunk déjà généré. La ligne de
|
||||
froid est ajustée au nouveau relief moins élevé, avec taïga géante, neige, pics
|
||||
natifs et cavernes glacées ; les igloos cherchent des épaules soutenues.
|
||||
|
||||
## Vérifications — 5 octobre 2026
|
||||
|
||||
- Cinq GameTests ciblés passés (`base204,north205`, plus contrôle commun) :
|
||||
presets courants/historiques sans Test, pente continue sur les frontières X/Z
|
||||
négatives et positives, indépendance des workers, absence d'étirement et de
|
||||
surélévation 205, conservation de l'ancien comportement 204 et des autres axes.
|
||||
- Small, graine 42, monde neuf `north205-final` : offrande réelle, refus des doublons,
|
||||
interruption/reprise, préparation de 58 chunks, cinq igloos et une cave de
|
||||
guérison vérifiés. Centre `(-128, -944)`, arrivée `(-160, 253, -1024)`.
|
||||
- Même graine : échantillons de surface Y=87–251, épaisseur maximale 179 blocs,
|
||||
taïga géante avec un tronc de 59 blocs, cavité avec air et glace, glacier présent.
|
||||
Zéro incohérence entre les 3 456 cellules de biome sauvegardées aux jointures
|
||||
des zones contrôlées et le champ mondial. Reçus dans
|
||||
`build/worldgen-lab/north205-final/small/42/`.
|
||||
- Le premier diagnostic de grotte pointait le massif le plus épais, contenant
|
||||
surtout de la roche. Le contrôle cherche maintenant une poche vide sous une
|
||||
couverture suffisante avant de vérifier air et glace dans les chunks réels.
|
||||
Le terrain n'a pas été modifié pour satisfaire ce diagnostic.
|
||||
- Small, graine 0, monde neuf `north205-final0` : mêmes contrôles de l'expansion,
|
||||
cinq igloos, cavernes et glaciers passés. Échantillons Y=84–255, tronc maximal
|
||||
61 blocs. Zéro incohérence sur 3 456 cellules de biome supplémentaires. Le
|
||||
contrôle de glacier inclut la glace normale, adaptée à ces altitudes, et
|
||||
exige plus de 50 blocs glacés dans la zone examinée ; il ne suppose plus la
|
||||
présence obligatoire de glace compacte ou bleue. La graine 0 en contient 117.
|
||||
- `./gradlew check build assemblePack assembleTestPack
|
||||
-PsanctuaryFocusedTests=base204,north205 -PsanctuaryAtlasOnly=true` : succès,
|
||||
journal `build/north205-check-build.log`. La suite native complète n'est pas
|
||||
revendiquée. Après la dernière correction du diagnostic Test, sa compilation,
|
||||
ses tests et son build ont également passé ; une répétition inutile des tâches
|
||||
du mod principal a été interrompue. Les deux essais natifs finaux utilisent
|
||||
ce diagnostic corrigé. Le JAR du mod normal n'a pas changé après sa validation.
|
||||
- MRpack normal exporté et vérifié : contenu ZIP intact, JAR identique au build,
|
||||
preset public 205, profils historiques présents, aucun Test ou monde embarqué.
|
||||
SHA-256 : `63023e8ff355afb94223bd697a71ae1d6ad72c80dca2f5c502664627f3d8d572`.
|
||||
|
||||
Les mesures de hauteur sont des échantillons, pas un relevé exhaustif de tous les blocs. La
|
||||
continuité numérique et les biomes stockés sont testés ; l'appréciation visuelle
|
||||
des transitions reste à confirmer en visite. Aucune validation Windows revendiquée.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
`build/Sanctuary-beta.205.mrpack`, copié dans `~/Downloads/`. Une copie neuve du
|
||||
monde vérifié est ouverte dans `north205-play`, graine 42, en créatif avec
|
||||
commandes autorisées, Vulkan, vue 32 chunks et simulation 5. La visite commence
|
||||
au-dessus de la taïga en `(-143.5, 331, -677.5)` ; `NORTH205_VISIT_OPEN` et
|
||||
le backend Vulkan sont confirmés dans le journal. Aucun monde 204 n'est converti.
|
||||
Le canal public et l'instance Prism ne sont pas modifiés.
|
||||
@@ -0,0 +1,113 @@
|
||||
# WG-208 — crêtes et replats glacés du Nord
|
||||
|
||||
Branche `codex/north-ridges-beta208`, depuis beta.207 (`bb10c24`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Dernier affinage demandé avant clôture du Nord : remplacer les couronnes trop
|
||||
rondes par des arêtes anguleuses, des sommets pointus et des entailles d'érosion.
|
||||
Ajouter quelques replats à différentes altitudes avec des poches de glace.
|
||||
Les formations de glace au-dessus restent une piste : privilégier quelques
|
||||
aiguilles naturelles localisées, sans ajouter de bâtiment.
|
||||
Conserver la taille de 1024 blocs, la taïga partiellement enneigée, le dessous
|
||||
aminci, les failles d'améthyste, les igloos et le manoir en épicéa validés.
|
||||
|
||||
Profil neuf 208 uniquement. Les générations 207 et antérieures restent
|
||||
disponibles et inchangées. Essais autorisés sur de nouveaux mondes de
|
||||
développement, graines 42 et 0, avec activation/reprise du Nord. Préparer une
|
||||
nouvelle visite solo Vulkan à 32 chunks ; aucune sauvegarde existante modifiée.
|
||||
Aucun déploiement Prism ni publication du canal public.
|
||||
|
||||
## Réalisation
|
||||
|
||||
- Les mêmes cinq sites de relief qu'en 207 reçoivent des faces asymétriques.
|
||||
La distance aux sites Voronoi sépare les massifs ; cinq plans inégaux dessinent
|
||||
leurs arêtes. La pente reste marquée près du sommet au lieu de s'y arrondir.
|
||||
Des entailles par bruit cohérent interrompent localement les flancs. Il ne
|
||||
s'agit pas d'une simulation d'érosion ou d'une hydrologie globale.
|
||||
- Jusqu'à deux replats par massif, de rayons 15 et 19 blocs, à des hauteurs
|
||||
différentes. Ils sont admis uniquement au-dessus du toit rocheux existant,
|
||||
avec raccordement progressif sur leur bord. Aucune quantification générale
|
||||
des altitudes ni succession de terrasses sur toute l'île.
|
||||
- Petites cuvettes de glace sur glace compacte, encaissées d'un bloc, et
|
||||
aiguilles de glace sur certaines rives. Ces poches sont gelées jusqu'au fond :
|
||||
elles n'ajoutent pas d'écoulements ni de nouvelles cascades.
|
||||
- Densité profonde de la 206 conservée ; écologie et neige de la 207 réutilisées,
|
||||
y compris leurs identifiants de biomes. Manoir et igloos adaptés au nouveau
|
||||
champ de relief, avec leurs palettes et contenus conservés. Les anciens
|
||||
générateurs et ressources 207 restent disponibles.
|
||||
- Les calculs de sommet sont mémorisés par colonne dans un cache borné par
|
||||
worker. Aucun parcours global supplémentaire à chaque tick.
|
||||
|
||||
## Vérification
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north207,north208 -PsanctuaryAtlasOnly=true` :
|
||||
succès en 4 min 47 s, contrôles purs et sept GameTests ciblés passés.
|
||||
Journal : `build/north208-check-build.log`. Les tests vérifient notamment les
|
||||
anciens presets des trois tailles, le maintien de la densité profonde, le dénivelé
|
||||
près des sommets, les appuis des cuvettes et le déterminisme entre workers.
|
||||
La suite historique complète des GameTests n'est pas revendiquée.
|
||||
|
||||
Les dernières additions au diagnostic et au lanceur du module Test sont
|
||||
recompilées et assemblées séparément, sans répéter les contrôles purs déjà passés :
|
||||
`build/north208-lab-final.log`, succès. Les trois fichiers de densité de l'île
|
||||
principale sont strictement identiques à la 207.
|
||||
|
||||
Le premier essai 42 passe tous les contrôles. Sur la graine 0, un replat
|
||||
pouvait remplir un creux trop profond (élévation locale relevée de 94 blocs).
|
||||
L'admission exige désormais un toit proche sur toute l'emprise ; une garde
|
||||
par colonne empêche de combler les trous profonds. Un test de régression
|
||||
reproduit une cavité sous un replat. Reconstruction finale avec `:sanctuary:runGameTest build assemblePack assembleTestPack
|
||||
:sanctuary-test:exportDuoLaunch -x :sanctuary:check`, sélection `base204,north208` :
|
||||
succès en 1 min 1 s ; six tests ciblés, dont la régression du trou profond,
|
||||
passés. Les contrôles purs précédemment passés ne sont pas répétés à cette étape.
|
||||
Journal : `build/north208-final-build.log`. Les essais finaux `north208-final` (42) et `north208-final0` (0) passent sur le
|
||||
JAR final. Offrandes réelles, refus des doublons, interruption à 0/58, reprise
|
||||
jusqu'à 58 chunks FULL et annonce SGA contrôlés. Serveurs arrêtés proprement.
|
||||
|
||||
| Relevé | Graine 42 | Graine 0 |
|
||||
| --- | --- | --- |
|
||||
| Sommets / élévation maximale relevée | 5 / 50 blocs | 5 / 44 blocs |
|
||||
| Colonnes relevées élevées / autres | 183 / 1 775 | 197 / 1 785 |
|
||||
| Dénivelé moyen à 8 blocs de chaque sommet | 6,6–9,1 blocs | 5,6–6,9 blocs |
|
||||
| Replats glacés admis | 6 | 5 |
|
||||
| Glace dans les cuvettes inspectées | 1 972 blocs | 2 000 blocs |
|
||||
| Glace compacte des formations de rive inspectées | 360 blocs | 236 blocs |
|
||||
| Échantillons profonds identiques à la 206 | 52 989 | 51 958 |
|
||||
| Améthyste / faces ouvertes inspectées | 7 731 / 1 928 | 12 494 / 3 567 |
|
||||
| Cellules de biome vérifiées / incohérences | 1 944 / 0 | 1 944 / 0 |
|
||||
|
||||
La neige et les forêts dégagées restent présentes. Cinq igloos et une cave de
|
||||
soins par île. Manoirs de 544 et 547 pièces, aux mêmes emplacements qu'en 207,
|
||||
avec trois marches d'accès vérifiées et cinq coffres à table de butin native
|
||||
chacun. Les comptages sont des relevés locaux ou sur grille, pas un inventaire
|
||||
exhaustif. Les essais simultanés ne constituent pas un benchmark comparatif.
|
||||
|
||||
## Distribution locale
|
||||
|
||||
MRpack normal exporté et contrôlé : archive ZIP intacte, JAR strictement identique
|
||||
au build, profils 207 et 208 Small/Medium/Large présents, aucun module Test ni
|
||||
monde embarqué. Minecraft 26.3 / Fabric Loader 0.19.5.
|
||||
Reçu : `build/north208-mrpack-receipt.json`. Copie dans `~/Downloads/`.
|
||||
SHA-256 : `bf1006efca537996fe4e33750ff08cbf821d2735bc03e5ce517da7fd62922845`.
|
||||
|
||||
## Limites
|
||||
|
||||
La retouche ne résout pas à elle seule le temps de chargement signalé. Aucun
|
||||
benchmark comparatif, jugement esthétique global ni essai Windows n'est déduit
|
||||
des vérifications. La clôture visuelle du Nord revient à la visite du créateur.
|
||||
|
||||
|
||||
## Visite solo
|
||||
|
||||
Nouveau monde `Sanctuary-North-208-42` dans
|
||||
`build/worldgen-lab/north208-final-visit/small/42/client/saves/`, copié depuis
|
||||
l'essai final arrêté. Vue 32 chunks, simulation 5, créatif en vol et commandes.
|
||||
Position initiale : **(-389.5, 325, -1060.5)**, face au sommet **(-448, 301, -1008)**.
|
||||
Replat voisin : **(-457, 278, -1034)** ; second niveau : **(-406, 262, -986)**.
|
||||
Manoir conservé : **(-27, 252, -1244)**. Anciennes visites préservées.
|
||||
|
||||
Le client confirme Vulkan / MoltenVK et `NORTH208_VISIT_OPEN` le 5 octobre
|
||||
à 03:23:59, en **(-390, 325, -1061)**. Visite ouverte ; aucune inspection graphique
|
||||
exhaustive ni validation esthétique du créateur n'est déduite de ce lancement.
|
||||
@@ -0,0 +1,66 @@
|
||||
# beta.162 — scène du tableau et conversation
|
||||
|
||||
Ticket issu du retour de séance du 24 septembre : conserver Retour/Actualiser en
|
||||
haut, montrer l’auteur avec son skin orienté vers la souris et sa demande dans
|
||||
une bulle colorée, puis les réponses à droite (dessous sur GUI étroit).
|
||||
|
||||
Modification client uniquement, sans migration, écriture dans les mondes ni
|
||||
changement des contrats fichier/MariaDB. Réponses, modération et suivi gardent
|
||||
leurs validations serveur. Le portrait est un rendu GUI, pas une entité.
|
||||
|
||||
## Présentation
|
||||
|
||||
- Retour et Actualiser restent hors de la zone défilante.
|
||||
- Le portrait utilise le skin de la connexion de l’auteur s’il est présent,
|
||||
sinon le cache de profils Minecraft asynchrone. Le skin natif de repli apparaît
|
||||
pendant le chargement ou si le profil ne peut pas être résolu (notamment les
|
||||
comptes fictifs/hors ligne). Aucun téléchargement synchrone dans le rendu.
|
||||
- Une bulle persistante encadrée montre catégorie/état, titre puis texte complet.
|
||||
Information : jaune clair sur fond sombre jaune ; les autres catégories gardent
|
||||
leurs couleurs. Les cartes de liste et du menu pause suivent aussi ce jaune.
|
||||
- Le portrait tourne doucement dans des angles bornés selon la position de la
|
||||
souris, sans capturer ses mouvements et sans clic requis.
|
||||
- Demande et discussion défilent séparément si l’espace le permet ; le champ de
|
||||
réponse et son bouton restent en bas de la discussion. Sur GUI étroit/bas,
|
||||
un défilement unique garde les réponses sous la scène.
|
||||
- Matériaux, lieu, récompense, suivi, visages des réponses et modération sont
|
||||
conservés. Les détails d’une demande vide ne sont plus affichés artificiellement.
|
||||
- Aucune animation de parole ni synchronisation vocale : « parle » désigne ici
|
||||
la mise en scène visuelle avec la bulle.
|
||||
|
||||
## Vérification
|
||||
|
||||
- Compilation Java 25 / Minecraft 26.3 réussie.
|
||||
- Parcours natif Vulkan : `NOTICE162_SCENE_PASS`, puis
|
||||
`SEARCH159_CLIENT_PASS mode=file`, build réussi en 1 min 59 s.
|
||||
- FR/EN, GUI 2/3/4 : scène, passage en colonne unique, boutons de retour au-dessus,
|
||||
réponse au-dessus du footer en deux colonnes, angles du portrait bornés et
|
||||
changement d’orientation avec la souris.
|
||||
- Brouillon conservé pendant les redimensionnements ; publication d’une réponse
|
||||
et lecture de son contenu après rechargement serveur vérifiées.
|
||||
- Régressions communautaires : photos, recherche, suivi/désabonnement, marqueur
|
||||
de carte et infobulle, restrictions de l’Intendance toujours validés.
|
||||
- Captures relues : `build/qa-beta162/0042_notice162-scene-fr_fr-2.png` et
|
||||
`0043_notice162-scene-fr_fr-3.png`. Conversation : `0048_notice162-conversation.png`.
|
||||
- `./gradlew check build assemblePack` lancé : 252 GameTests terminés, 229 réussis
|
||||
et 23 échecs, exactement les mêmes qu’en beta.161 (aucun ajouté/retiré).
|
||||
Liste comparée : `build/session162-server-failures.json`.
|
||||
- Contrôles restants et assemblage avec exclusion ponctuelle de `runGameTest` :
|
||||
réussis en 3 min 16 s (`check build assemblePack -x :sanctuary:runGameTest`).
|
||||
Aucune assertion désactivée dans les sources. Log : `build/beta162-assembly.log`.
|
||||
|
||||
Aucune modification de persistance : cette passe native utilise le mode fichier ;
|
||||
le laboratoire MariaDB partagé a été relancé avec la même interface, KokaLab
|
||||
connecté sur le monde existant `duo-flat-160`, Alice/Bob recréés, shader désactivé. Les figurants
|
||||
et profils hors ligne peuvent afficher un skin Minecraft de repli.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
JAR : `mods/sanctuary/build/libs/sanctuary-beta.162.jar`.
|
||||
Pack assemblé : `build/packwiz`.
|
||||
SHA-256 : `35c5d82eba110ee2150f73baf6341efc90f87971965a3b4dd2bcd04add0a59ff`.
|
||||
|
||||
Branche `codex/notice-scene-beta162`, tag local `beta.162`. Anciens JAR conservés.
|
||||
Aucune publication distante ni synchronisation de Prism dans cette livraison.
|
||||
Les 23 échecs préexistants restent ouverts ; les essais graphiques ne démontrent
|
||||
pas la résolution réseau d’un skin officiel absent dans ce laboratoire hors ligne.
|
||||
@@ -0,0 +1,68 @@
|
||||
# ORIGIN-182 — galerie inférieure et rosace
|
||||
|
||||
Suite du retour en jeu sur beta.181, le 30 septembre 2026. Branche
|
||||
`codex/origin-gallery-beta182`, dans le checkout de développement réutilisé
|
||||
`rocky-ecology-beta178`. La palette naturelle de l’origine est validée par le
|
||||
créateur. Les élévations gênent les huit directions ; elles doivent être
|
||||
placées entre les axes. Essayer une cloche vitrée en rosace et développer
|
||||
la scène souterraine. L’origine reste en l’air.
|
||||
|
||||
La mention « le truc dans les airs » est interprétée ici comme la rosace,
|
||||
en attendant une éventuelle précision ; l’ISS reste un chantier séparé.
|
||||
|
||||
## Contrat du nouveau monde
|
||||
|
||||
Nouveau preset facultatif `sanctuary_test:gallery_v1`, profil `gallery`,
|
||||
graine 42. Les profils précédents et la génération normale restent disponibles
|
||||
avec leur génération propre. Aucun ancien monde, chunk ou format de sauvegarde
|
||||
n’est modifié. Aucune expansion ni dimension n’est activée par ce prototype.
|
||||
|
||||
La galerie sélectionne une cavité centrale sous X=0/Z=0 par un échantillonnage
|
||||
borné du champ de densité existant. Deux chambres voisines forment une boucle
|
||||
avec elle ; les passages suivent des failles inclinées, les sols ondulent et
|
||||
les plafonds sont voûtés. Roche dominante, calcite par veines, mousse ponctuelle,
|
||||
quelques reliefs de tuf. Pas de murs rectangulaires plaqués sur toute la caverne.
|
||||
Un socle d’obsidienne central et deux montants sombres interrompus donnent un
|
||||
premier emplacement au portail inférieur. C’est une scène architecturale :
|
||||
ni portail actif, ni recette d’allumage ou téléportation ne sont implémentés.
|
||||
|
||||
L’origine conserve la palette, le sol à huit directions et le bloc en
|
||||
(0,320,0), lumineux et monochrome. Une cloche de verre clair et blanc avec
|
||||
huit nervures de cuivre patiné remplace les trois élévations. Les supports
|
||||
sont entre les axes ; huit ouvertures basses conservent vues et passages.
|
||||
L’ISS, les huit salles d’ancres et les trois secteurs de gemmes ne sont pas
|
||||
ajoutés dans ce lot.
|
||||
|
||||
Les deux lieux sont posés par chunk à la génération, sans ticker, sans
|
||||
recherche globale d’eau et sans journal de progression. Le plan souterrain
|
||||
est calculé une fois pour la source de biomes puis réutilisé. Une sauvegarde
|
||||
recharge les blocs, elle ne reconstruit pas les lieux.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Compilation et export du lanceur réussis. Monde neuf `solo182a/gallery/42` :
|
||||
contrôles de la beta.180 conservés (567 échantillons de densité, trois cerisiers,
|
||||
bassins de 1 232 et 1 221 blocs, cinq spawners et quatre caches avec les gemmes).
|
||||
Zéro région d’hydrologie calculée.
|
||||
|
||||
La galerie contient 1 558 colonnes sculptées ; 1 514 surfaces praticables
|
||||
appartiennent au même réseau, connecté par marches d’un bloc maximum.
|
||||
Les trois centres de salle sont en (0,175,0), (-34,169,-26), (-38,146,24).
|
||||
Le socle porte l’obsidienne en (0,177,0). La rosace compte 1 841 blocs avec
|
||||
le fragment rocheux : huit axes libres à hauteur du joueur et noyau lumineux
|
||||
sans relais activé. Rapport local `build/gallery182-quick-result.json`.
|
||||
Arrêt du serveur de préparation et sauvegarde terminés proprement.
|
||||
|
||||
Solo neuf préparé sous `visite182/gallery/42`, `Sanctuary-Gallery-182-Solo`,
|
||||
vue 32, créatif et commandes, première vue sur la galerie.
|
||||
Visites : galerie `/tp 0.5 177 7.5 180 0` ; rosace
|
||||
`/tp 0.5 319 5.5 180 0`. Rendu et proportions à juger en jeu sur la graine 42 ;
|
||||
aucune autre graine ni capture du rendu n’est revendiquée.
|
||||
Suite générale `check build assemblePack assembleTestPack` réussie en 8 min 1 s,
|
||||
265/265 GameTests ; journal `build/gallery182-check-build.log`.
|
||||
|
||||
Entrée dans le solo confirmée depuis par le créateur. Le journal
|
||||
`build/gallery182-solo.log` enregistre KokaLab connecté le 30 septembre à
|
||||
02:25:12, vue 32 chunks. Son retour valide la palette, la rosace et les étangs ;
|
||||
la correction du portail et les lieux manquants sont suivis dans
|
||||
[DISCOVERY-183](island-discovery-beta183.md).
|
||||
@@ -0,0 +1,96 @@
|
||||
# ORIGIN-181 — repère central dans le ciel
|
||||
|
||||
Retour du 30 septembre 2026 sur beta.180. Branche `codex/origin-landmark-beta181`.
|
||||
Le créateur apprécie le relief global et le donjon minier. Le prochain résultat
|
||||
à visiter est une petite construction ouverte qui signale le centre du monde,
|
||||
avec le bloc originel exactement en **X=0, Y=320, Z=0**. Cette décision remplace
|
||||
les positions antérieures envisagées pour ce bloc ; elle ne rétablit pas le palais.
|
||||
|
||||
## Premier résultat
|
||||
|
||||
Nouveau preset facultatif `sanctuary_test:origin_v1`, profil `origin`, graine 42.
|
||||
Terrain, écologie, bassins, cerisiers et donjon de beta.180 réutilisés. Un fragment
|
||||
rocheux porte une rose des vents à huit directions, en tuf, calcite et deepslate,
|
||||
avec cuivre patiné, quelques mousses et un croissant brisé. Le sol principal est
|
||||
à Y=318, le piédestal à Y=319 et le Bug Rock à Y=320. La silhouette culmine à 328.
|
||||
Circulation ouverte, pas de toiture ni de conteneur. Environ 19 blocs de large.
|
||||
|
||||
Le bloc réutilise `sanctuary:origin_block` et sa texture existante : allumé en
|
||||
noir et blanc, lumière 15, masque des huit relais à zéro. Aucune ancre n’est
|
||||
activée. Ce premier lieu est un repère visuel ; pas encore d’interaction, de
|
||||
quête ni de trajet d’accès en survie. Le créatif et les commandes du labo
|
||||
permettent de juger le volume avant de définir le parcours.
|
||||
|
||||
La pose se fait une seule fois par chunk, pendant la décoration native, sur
|
||||
quatre chunks autour de l’origine. Aucune recherche régionale, aucun calcul
|
||||
par tick, aucune entité ni hydrologie supplémentaire. La patine et la base
|
||||
rocheuse varient avec la graine ; la silhouette reste celle de ce premier essai.
|
||||
|
||||
## Sauvegardes et validation
|
||||
|
||||
Nouveau monde uniquement. Le preset beta.180 et la génération normale ne
|
||||
reçoivent pas ce lieu. Aucun ancien chunk ni format de sauvegarde n’est migré.
|
||||
La reprise recharge les blocs sauvegardés sans reconstruction. Pas de publication
|
||||
du canal, de mise à jour Prism ni d’installation serveur personnel.
|
||||
|
||||
Le contrôle natif vérifie l’origine exacte, la présence du plan dans les quatre
|
||||
chunks, la circulation, l’ouverture vers le ciel et l’état monochrome lumineux.
|
||||
Les vérifications de beta.180 restent appliquées au nouveau profil.
|
||||
|
||||
Essai natif `solo181a`, graine 42, réussi : 1 224 blocs du repère présents,
|
||||
quatre chunks, origine et passages conformes, 567 comparaisons de densité
|
||||
conservées et zéro région d’hydrologie. Trois cerisiers, surfaces de bassins
|
||||
de 1 232 et 1 221 blocs, cinq spawners et quatre caches avec les quatre gemmes
|
||||
validés. La lecture des chunks enregistrés confirme le bloc à (0,320,0),
|
||||
`lit=true`, `relays=0`. Rapport : `build/origin181-quick-result.json`.
|
||||
|
||||
Compilation et export du lanceur réussis. Le solo neuf
|
||||
`visite181/origin/42`, nommé `Sanctuary-Origin-181-Solo`, est ouvert le
|
||||
30 septembre à 01:59 : Vulkan Apple M1, KokaLab connecté en (18.5,333,23.5),
|
||||
vue 32 chunks. Approche à pied pour la visite : `/tp 0.5 319 5.5 180 0`.
|
||||
L’appréciation esthétique reste à faire en jeu ; aucune capture du rendu
|
||||
n’est revendiquée. Seule la graine 42 est validée dans cette itération.
|
||||
Suite générale `check build assemblePack assembleTestPack` réussie en
|
||||
12 min 53 s, journal `build/origin181-check-build.log` dans le checkout
|
||||
`storyquest-beta173`. Contrôles et assemblages terminés avant la suite beta.182.
|
||||
|
||||
Retour en jeu du créateur : palette et caractère naturel validés. Les trois
|
||||
élévations empiètent sur les directions ; prochaine variante avec supports
|
||||
entre les huit axes et piste d’une cloche vitrée en rosace. Garder l’origine
|
||||
en l’air pendant l’essai. Développer d’abord la galerie souterraine, puis
|
||||
le lieu aérien ; précision sur ce dernier demandée pendant la séance.
|
||||
|
||||
## Suite de la séance : décisions et pistes, pas encore implémentées
|
||||
|
||||
- **Gemmes :** trois secteurs souterrains distincts, émeraude, rubis et saphir,
|
||||
avec veines exposées sur les surfaces rocheuses. Un stock limité comparable
|
||||
aux diamants à l’échelle de l’île, pas par échantillon de chunks. Le chiffre
|
||||
exact par gemme reste à régler. Proposition : compter séparément le stock
|
||||
généré de chaque gemme ; densité locale lisible, rareté globale préservée.
|
||||
- **Soufre :** intégrer une poche de sulfur caves sur l’île principale. Le
|
||||
profil beta.180 ne contient pas ce biome, même si le socle historique connaît
|
||||
le soufre. Choisir une poche dédiée plutôt que repeindre les cavités humides.
|
||||
- **Huit ancres :** salles naturelles sculptées dans leur matière locale,
|
||||
creux, reliefs irréguliers, bas-reliefs, végétation et piédestal portant le
|
||||
bloc existant. Chaque lieu a sa géographie ; pas de ponts imposés vers le centre.
|
||||
- **Galerie inférieure :** caverne centrale sous X=0/Z=0, salles reliées par
|
||||
des failles, dénivelés et emplacement de portail en obsidienne. Altitude,
|
||||
emprise et lien exact avec les dimensions à préciser. Le palais abandonné
|
||||
n’est pas réintroduit. Proposition technique : sonder un nombre borné de
|
||||
points du champ de densité existant, sélectionner une cavité et ne retoucher
|
||||
que ses passages ; calcul à la génération, aucun raycast permanent.
|
||||
- **Activation :** envie de remplacer le briquet par un objet fabriqué au
|
||||
métabli, reliant préparation et découverte. Recette, composants et effet
|
||||
encore ouverts ; ne pas modifier le portail vanilla avant ce contrat.
|
||||
- **Expansions :** privilégier l’expérience de surface, avec des masses tantôt
|
||||
horizontales, tantôt verticales. La profondeur dépendra de chaque île ; ne
|
||||
pas généraliser automatiquement toutes les cavités de Sanctuary à chaque île.
|
||||
- **ISS :** chantier architectural séparé dans la bande Y=512–640. Des
|
||||
schematics pourront servir à analyser échelle, modules, circulation et
|
||||
palette ; construire ensuite un plan original. Aucun fichier ISS reçu ici.
|
||||
Fonction et quête restent à définir.
|
||||
|
||||
Ordre proposé pour les essais suivants : origine visible → une salle d’ancre
|
||||
dans une cavité existante → trois secteurs de gemmes et une poche de soufre →
|
||||
déclinaison des autres ancres et galerie inférieure. Chaque essai garde son
|
||||
monde témoin et se juge en solo ; pas de grande étude scientifique imposée.
|
||||
+299
@@ -1,5 +1,13 @@
|
||||
# Distribution packwiz et Prism
|
||||
|
||||
## Rattrapage des releases du 24 septembre 2026
|
||||
|
||||
Les binaires conservés des beta.145–151 et beta.154–166 sont publiés dans Gitea.
|
||||
La beta.144 existante reste intacte ; les 152–153 demeurent des chantiers non livrés.
|
||||
[Inventaire, empreintes et limites](publications-beta144-166.md).
|
||||
Cette publication ne modifie ni le canal packwiz ni les installations Prism.
|
||||
|
||||
|
||||
Sanctuary Beta utilise une seule instance Prism, synchronisée avant chaque
|
||||
lancement par packwiz. Le canal reste à l'adresse :
|
||||
|
||||
@@ -14,6 +22,297 @@ JAR Sanctuary sont des pièces jointes de releases Gitea. Aucun JAR de mod ou
|
||||
dépendance téléchargée n'entre dans l'historique Git. Le canal Beta est distinct
|
||||
de l'ancien pack 26.2.
|
||||
|
||||
## beta.144 — Eau naturelle pixélisée (préparation)
|
||||
|
||||
Trois profils de couleur/transparence selon le fond, océans clairs et brume
|
||||
aquatique adaptée. Le [ticket de livraison](natural-water-beta144.md) décrit
|
||||
la teinte olive retenue, les contrôles et le protocole de performance.
|
||||
La publication et la synchronisation attendent la validation finale isolée.
|
||||
Les textures restent à beta.121 ; Minecraft 26.3 et les dépendances sont conservés.
|
||||
|
||||
## beta.143 — Neige saisonnière en temps réel
|
||||
|
||||
Accumulation espacée par un facteur 12 et fonte par le facteur temps réel 72,
|
||||
avec le sampler natif de précipitation conservé. Protections inchangées pour
|
||||
la neige construite, les biomes froids, l'hiver, les profils neigeux et la
|
||||
météo Vanilla. [Contrat et vérifications](realtime-snow-melt-beta143.md).
|
||||
[Release beta.143](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.143)
|
||||
publiée ; canal `bafff5e9fcdd95c5dd184953a34ada805e455797`. Deux synchronisations
|
||||
isolées puis deux dans l'instance Sanctuary Beta réussies. Les 923 fichiers
|
||||
personnels suivis gardent leurs hashes. Aucun monde personnel ouvert ;
|
||||
sauvegarde préalable `sanctuary-backups/before-beta.143/`. Archives vérifiées
|
||||
dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.142 — Vulkan par défaut et stabilité PBR
|
||||
|
||||
Vulkan natif prioritaire, rafraîchissements PBR stables et intensité initiale
|
||||
80 %, calculs de reflets bornés. [Contrat et vérifications](pbr-refresh-beta142.md).
|
||||
[Release beta.142](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.142)
|
||||
publiée ; canal `d661260e2bbabb0326c86d6cc543daf986979596`. Deux synchronisations isolées
|
||||
puis deux dans l'instance Sanctuary Beta réussies. Les 923 fichiers personnels
|
||||
suivis gardent leurs hashes. Aucun monde personnel ouvert ; sauvegarde préalable
|
||||
`sanctuary-backups/before-beta.142/`. Archives vérifiées dans `sanctuary-beta/build/`.
|
||||
Un choix OpenGL explicite reste conservé : sélectionner Vulkan dans les réglages
|
||||
vidéo et redémarrer pour changer ce choix. La capture Windows de bruit en
|
||||
mouvement reste à reconfirmer sur son pilote ; les contrôles OpenGL/Vulkan Mac
|
||||
et la correction du domaine numérique du reflet sont documentés dans le ticket.
|
||||
|
||||
## beta.141 — Direction des lumières pour les normales PBR
|
||||
|
||||
Directions locales mises en cache, sources portées, confiance réduite lorsque
|
||||
les sources s'opposent et fondus. Activer PBR et Lumières colorées ; portée PBR
|
||||
de 32 blocs. [Contrat et vérifications](directional-lights-beta141.md).
|
||||
[Release beta.141](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.141)
|
||||
publiée ; canal `7e6c84400f80db24bf5204cd21d628194ae9f0f7`. Deux synchronisations isolées
|
||||
puis deux dans l'instance Sanctuary Beta réussies. Les 923 fichiers personnels
|
||||
suivis gardent leurs hashes. Aucun monde personnel ouvert ; sauvegarde préalable
|
||||
`sanctuary-backups/before-beta.141/`. Archives vérifiées dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.140 — Lumières portées et fondus
|
||||
|
||||
Couleurs des objets en main et sur la tête, distances 8/16/32/64 et fondus
|
||||
préservant la teinte. Torches natives par défaut, option chaude, cuivre vert
|
||||
et redstone rouge. [Contrat et vérifications](colored-dynamic-beta140.md).
|
||||
[Release beta.140](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.140)
|
||||
publiée ; canal `2c360a0759d4a164f82c89ac2bef04ff69d50875`. Deux synchronisations isolées
|
||||
puis deux dans l'instance Sanctuary Beta réussies. Les 923 fichiers personnels
|
||||
suivis gardent leurs hashes. Aucun monde personnel ouvert ; sauvegarde préalable
|
||||
`sanctuary-backups/before-beta.140/`. Archives vérifiées dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.138 — Densité des rayons selon la météo
|
||||
|
||||
Brouillard plus dense et diffus, précipitations et atténuation de l'orage.
|
||||
Réglage manuel conservé, aucune nouvelle option ni modification de sauvegarde.
|
||||
[Contrat et vérifications](shader-beta138.md).
|
||||
[Release beta.138](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.138)
|
||||
publiée ; canal `c049423de1971079b9d61874d83adeb6f1ad49f7`. Deux synchronisations isolées,
|
||||
puis deux dans la même instance Sanctuary Beta réussies. Les 923 fichiers
|
||||
personnels suivis gardent leurs hashes. Aucun monde personnel ouvert ;
|
||||
sauvegarde préalable `sanctuary-backups/before-beta.138/`.
|
||||
Packs normal/Test/template vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.137 — Rayons solaires volumétriques
|
||||
|
||||
Rayons à travers les ouvertures et le feuillage, activés à 35 %, indépendants
|
||||
du bloom et de l'affichage des ombres de surface. Carte solaire partagée.
|
||||
[Contrat et vérifications](shader-beta137.md).
|
||||
[Release beta.137](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.137)
|
||||
publiée ; canal `68cb39a5edbf5d34def02f670e2488ee852605b8`. Deux synchronisations isolées,
|
||||
puis deux dans la même instance Sanctuary Beta réussies. Les 923 fichiers
|
||||
personnels suivis gardent leurs hashes. Aucun monde personnel ouvert ;
|
||||
sauvegarde préalable `sanctuary-backups/before-beta.137/`.
|
||||
Packs normal/Test/template vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.136 — Lens flare rectangulaire
|
||||
|
||||
Rectangles à dégradé doux pour le soleil et la lune, activés à 30 % et
|
||||
réglables indépendamment du bloom. Occultation par les blocs et phases lunaires.
|
||||
[Contrat et vérifications](shader-beta136.md).
|
||||
[Release beta.136](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.136)
|
||||
publiée ; canal `dd5b545a7cfbb957f2c70e9dc17034b44caef98f`. Deux synchronisations isolées,
|
||||
puis deux dans la même instance Sanctuary Beta réussies. Les 923 fichiers
|
||||
personnels suivis gardent leurs hashes. Aucun monde personnel ouvert ;
|
||||
sauvegarde préalable `sanctuary-backups/before-beta.136/`.
|
||||
Packs normal/Test/template vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.135 — SSGI en proximité et nouveaux défauts
|
||||
|
||||
Normales stables près des surfaces, atténuation progressive du rebond au contact.
|
||||
Bloom à 20 %, PBR et SSGI activés par défaut, choix personnels existants conservés.
|
||||
[Contrat et vérifications](shader-beta135.md).
|
||||
[Release beta.135](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.135)
|
||||
publiée ; canal `5b0df577fcd036937c25be3a1f4580f9db3103a1`. Deux synchronisations isolées,
|
||||
puis deux dans la même instance Sanctuary Beta réussies. Les 923 fichiers
|
||||
personnels suivis gardent leurs hashes. Aucun monde personnel ouvert ;
|
||||
sauvegarde préalable `sanctuary-backups/before-beta.135/`.
|
||||
Packs normal/Test/template vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.134 — PBR optionnel et SSGI filtré
|
||||
|
||||
Normales procédurales en cache, rugosité/métallicité par famille et reflets
|
||||
directionnels. Filtrage SSGI et suppression de sa forte réinjection neutre.
|
||||
[Contrat et vérifications](shader-beta134.md).
|
||||
[Release beta.134](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.134)
|
||||
publiée ; canal `35ec0f6e145002f6367944df5b75e2703958eaef`. Deux synchronisations isolées,
|
||||
puis deux dans la même instance Sanctuary Beta réussies. Les 923 fichiers
|
||||
personnels suivis gardent leurs hashes. Aucun monde personnel ouvert ;
|
||||
sauvegarde préalable `sanctuary-backups/before-beta.134/`.
|
||||
Packs normal/Test/template vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.133 — SSGI renforcé
|
||||
|
||||
Diffusion des couleurs rendue visible au réglage 35, même budget de rayons
|
||||
et cibles GPU. [Contrat et vérifications](shader-beta133.md).
|
||||
[Release beta.133](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.133)
|
||||
publiée ; canal `9ceb5a5353c9d1b8bb7834a20e818fd65096ff98`. Deux synchronisations isolées,
|
||||
puis deux dans la même instance Sanctuary Beta réussies. Les 923 fichiers
|
||||
personnels suivis gardent leurs hashes. Aucun monde personnel ouvert ;
|
||||
sauvegarde préalable `sanctuary-backups/before-beta.133/`.
|
||||
Packs normal/Test/template vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.132 — SSGI expérimental
|
||||
|
||||
Diffusion locale des couleurs visibles, rayon 2,5 blocs, intensité réglable,
|
||||
initialement OFF. [Contrat et vérifications](shader-beta132.md).
|
||||
[Release beta.132](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.132)
|
||||
publiée ; canal `9edaaedc0205c525ecce9de66b5ca7827c56c28f`. Deux synchronisations isolées,
|
||||
puis deux dans la même instance Sanctuary Beta réussies. Les 923 fichiers
|
||||
personnels suivis gardent leurs hashes. Aucun monde personnel ouvert ;
|
||||
sauvegarde préalable `sanctuary-backups/before-beta.132/`.
|
||||
Packs normal/Test/template vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.131 — émissifs indépendants et précision étendue
|
||||
|
||||
Bloom, émissifs et highlight ON initialement. Couper le halo ou régler son
|
||||
intensité à zéro garde les inclusions lumineuses. Précisions 64/128 ajoutées,
|
||||
défaut 16 conservé. [Contrat et vérifications](shader-beta131.md).
|
||||
[Release beta.131](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.131)
|
||||
publiée ; canal `efb18c274d95d988a9566b8c52751469f002cdda`. Deux synchronisations isolées,
|
||||
puis deux dans la même instance Sanctuary Beta réussies. Les 923 fichiers
|
||||
personnels suivis sont conservés, préférences et sauvegardes comprises.
|
||||
Aucun monde personnel ouvert ; sauvegarde `sanctuary-backups/before-beta.131/`.
|
||||
Archives normal/Test/template vérifiées dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.130 — bloom et précision commune
|
||||
|
||||
Bloom réglable, masques sélectifs des vingt textures de minerais, précision
|
||||
commune aux ombres et au highlight. Réglages initiaux 32/128/16 et Pixel Shadows
|
||||
activé ; anciennes préférences conservées. [Contrat et vérifications](shader-beta130.md).
|
||||
[Release beta.130](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.130)
|
||||
publiée ; canal `68e06353bf880af04c1c72d4e3a159f11f94b619`. Deux synchronisations isolées
|
||||
puis deux dans la même instance **Sanctuary Beta** réussies. Les 923 fichiers
|
||||
personnels suivis, réglages de shaders compris, gardent leurs hashes. Aucun
|
||||
monde personnel ouvert ; sauvegarde préalable `sanctuary-backups/before-beta.130/`.
|
||||
Packs normal/Test et template vérifiés et copiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.129 — reflets CTM et portées 16–256 blocs
|
||||
|
||||
Reflets connectés entre tous les matériaux coplanaires, portée indépendante,
|
||||
ombres à 128/256 blocs, intensité rétablie à midi et correction du réalignement
|
||||
cyclique de la grille lumineuse. [Contrat et vérifications](shader-beta129.md).
|
||||
[Release beta.129](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.129)
|
||||
publiée ; canal `2eaa0130a4cd475c598beefdab40f48fc8681ab7`. Deux synchronisations isolées
|
||||
puis deux dans la même instance **Sanctuary Beta** réussies. Les 923 fichiers
|
||||
personnels suivis, réglages de shaders compris, sont conservés. Aucun monde
|
||||
personnel ouvert ; copie préalable dans `sanctuary-backups/before-beta.129/`.
|
||||
Packs normal/Test et template copiés et vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.128 — stabilité des ombres, lune et feuillage
|
||||
|
||||
Ombres des blocs nettes et stabilisées, atténuation à midi, lune légère et
|
||||
feuillage nuancé selon son épaisseur. [Contrat et vérifications](shader-beta128.md).
|
||||
[Release beta.128](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.128)
|
||||
publiée ; canal `eba01726ee132a6e548d129fa7ee04f24c880917`. Deux synchronisations isolées
|
||||
puis deux dans la même instance **Sanctuary Beta** réussies. Les 923 fichiers
|
||||
personnels suivis, réglages de shaders compris, sont conservés. Aucun monde
|
||||
personnel ouvert ; copie préalable dans `sanctuary-backups/before-beta.128/`.
|
||||
Packs normal/Test et template copiés et vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.127 — shader et ombres pixélisées
|
||||
|
||||
Ombres solaires optionnelles intégrées à Sanctuary · Vanilla Light, avec finesse
|
||||
et portée réglables. Socle beta.126 conservé. [Contrat et vérifications](shader-beta127.md).
|
||||
[Release beta.127](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.127)
|
||||
publiée ; canal `7fd24a43e01ee497a23311e3c78e1dd3dddd877a`. Deux synchronisations
|
||||
isolées puis deux dans la même instance **Sanctuary Beta** réussies.
|
||||
Les 923 fichiers personnels suivis, réglages de shaders compris, sont conservés.
|
||||
Aucun monde personnel ouvert ; copie préalable dans `sanctuary-backups/before-beta.127/`.
|
||||
Packs normal/Test et template copiés et vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.126 — gemmes, argile et découvertes
|
||||
|
||||
Rubis et saphir, nouvelles textures d'items, argile conservant les couleurs
|
||||
originales et commandes de découverte communes aux recettes et catalogues.
|
||||
[Contrat et vérifications](gems-beta126.md).
|
||||
[Release beta.126](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.126)
|
||||
publiée ; canal `31749b95d21ce5bced6b9e5759499da6f8a67e6e`. Deux synchronisations
|
||||
isolées puis deux dans la même instance **Sanctuary Beta** réussies.
|
||||
Les 923 fichiers personnels et réglages suivis sont inchangés ; sauvegardes
|
||||
restées fermées. Copie préalable dans `sanctuary-backups/before-beta.126/`.
|
||||
Packs normal/Test et template copiés et vérifiés dans `sanctuary-beta/build/`.
|
||||
|
||||
## beta.125 — placement, éclats et animaux sculptés
|
||||
|
||||
Coins et trois hauteurs, particules de voxels et espèces découvertes au Clay
|
||||
Workshop. [Contrat et vérifications](sculpture-placement-beta125.md).
|
||||
[Release beta.125](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.125)
|
||||
publiée ; canal `47eb833911a96eef0b13805dafe65b2ab7b95c87`. Deux
|
||||
synchronisations isolées puis deux dans la même instance **Sanctuary Beta**
|
||||
réussies. Les 923 fichiers personnels et réglages suivis sont inchangés ;
|
||||
sauvegardes restées fermées. Copie préalable dans
|
||||
`sanctuary-backups/before-beta.125/`. Packs normal/Test et template copiés
|
||||
et vérifiés dans le dossier habituel `sanctuary-beta/build/`.
|
||||
|
||||
## beta.124 — une boîte par sculpture
|
||||
|
||||
Une boîte ajustée commune à la sélection et aux collisions ; détails physiques
|
||||
simplifiés, orientation/ancrage et éclairage conservés.
|
||||
[Contrat et vérifications](sculpture-bounds-beta124.md).
|
||||
[Release beta.124](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.124)
|
||||
publiée ; canal `67ebcc7d07f8b75e8988f6099e3d6e5704f123fb`. Deux
|
||||
synchronisations isolées puis deux dans la même instance **Sanctuary Beta**
|
||||
réussies. Les 923 fichiers personnels et réglages suivis sont inchangés ;
|
||||
sauvegardes restées fermées. Copie préalable des fichiers remplacés dans
|
||||
`sanctuary-backups/before-beta.124/`. Packs normal/Test et template également
|
||||
copiés et vérifiés dans le dossier habituel `sanctuary-beta/build/`.
|
||||
|
||||
## beta.123 — clé dorée et clé de Steve
|
||||
|
||||
La clé dorée se limite aux orientations cohérentes ; la clé de Steve reprend
|
||||
les états et textures libres, utilisables aussi en survie dès sa récupération.
|
||||
[Contrat et vérifications](wrench-safety-beta123.md).
|
||||
[Release beta.123](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.123)
|
||||
publiée ; canal `f988d01b901f2d3eda0b4ab47a48540dc627d1b5`. Deux
|
||||
synchronisations isolées puis deux dans la même instance **Sanctuary Beta**
|
||||
réussies. Les 923 fichiers personnels et réglages suivis sont inchangés ;
|
||||
sauvegardes restées fermées. Copie préalable des fichiers remplacés dans
|
||||
`sanctuary-backups/before-beta.123/`.
|
||||
|
||||
## beta.122 — formes et lumière des sculptures
|
||||
|
||||
Sélection et collisions sur les voxels réels ; suppression de l'occlusion cubique.
|
||||
[Contrat et vérifications](sculpture-shape-light-beta122.md).
|
||||
[Release beta.122](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.122)
|
||||
publiée ; canal `3d340bea0093b709c6018624795a1b3ca557b72d`. Deux
|
||||
synchronisations isolées puis deux dans la même instance **Sanctuary Beta**
|
||||
réussies. Les 923 fichiers personnels et réglages suivis sont inchangés ;
|
||||
sauvegardes restées fermées. Copie préalable des fichiers remplacés dans
|
||||
`sanctuary-backups/before-beta.122/`.
|
||||
|
||||
## beta.121 — texture de clé et pack personnel
|
||||
|
||||
PNG du créateur et copie complète modifiable depuis l'écran des packs.
|
||||
[Contrat et vérifications](resourcepack-template-beta121.md).
|
||||
[Release beta.121](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.121)
|
||||
publiée ; canal `e3e6572da9288fbbcfa36bf6b7dd3aa0d1c54f5e`. Deux
|
||||
synchronisations isolées puis deux dans la même instance **Sanctuary Beta**
|
||||
réussies. Les 923 fichiers personnels et réglages suivis sont inchangés ;
|
||||
sauvegardes restées fermées. Copie préalable des fichiers remplacés dans
|
||||
`sanctuary-backups/before-beta.121/`. Le template personnel est créé par le
|
||||
joueur, jamais géré ou réécrit par packwiz.
|
||||
|
||||
## beta.120 — clé dorée et états de blocs
|
||||
|
||||
Gestes du debug stick, rotation des textures et assemblages prioritaires.
|
||||
[Contrat et vérifications](golden-wrench-beta120.md).
|
||||
[Release beta.120](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.120)
|
||||
publiée ; canal `e8060764a444a58b0a17318a3821dfeb1a0c33c6`. Deux
|
||||
synchronisations isolées puis deux dans la même instance **Sanctuary Beta**
|
||||
réussies. Les 923 fichiers personnels et réglages suivis sont inchangés ;
|
||||
sauvegardes restées fermées. Copie préalable des fichiers remplacés dans
|
||||
`sanctuary-backups/before-beta.120/`.
|
||||
|
||||
## beta.119 — pose centrée des sculptures
|
||||
|
||||
Centre accessible au point visé, bords conservés et grille entière de 1/16.
|
||||
[Contrat et vérifications](sculpture-center-beta119.md).
|
||||
[Release beta.119](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.119)
|
||||
publiée ; canal `5e823af7807f524f6394acad402fe62328c7e4ab`. Deux
|
||||
synchronisations isolées puis deux dans la même instance **Sanctuary Beta**
|
||||
réussies. Les 923 fichiers personnels et réglages suivis sont inchangés ;
|
||||
sauvegardes restées fermées. Copie préalable des fichiers remplacés dans
|
||||
`sanctuary-backups/before-beta.119/`.
|
||||
|
||||
## beta.118 — murets en briques colorées
|
||||
|
||||
Seize murets natifs, recettes, tailleur, eau et série créative par couleurs.
|
||||
|
||||
@@ -0,0 +1,258 @@
|
||||
# Palais originel, verticalité et International Sanctuary Station
|
||||
|
||||
> **Statut au 29 septembre 2026 : concept historique.** Le créateur abandonne
|
||||
> le palais souterrain, ses accès et les raccordements au palais. Le
|
||||
> [fil rouge courant](storyquest-fil-rouge.md) remplace ces choix d'implantation.
|
||||
> Le texte ci-dessous conserve la discussion du 28 septembre et ne constitue
|
||||
> plus une consigne de construction du palais. Les pistes ISS, chenil et
|
||||
> ordinateurs restent ouvertes indépendamment de ce bâtiment. Aucun code ni
|
||||
> monde de laboratoire n'est supprimé par ce changement documentaire.
|
||||
|
||||
**Discussion du 28 septembre 2026 — conception, sans code.** Précisions du
|
||||
créateur après le [cadrage Storyquest](storyquest-beta173.md), sur la même
|
||||
branche `codex/storyquest-beta173`, issue de beta.172. Les formes et intentions
|
||||
retenues sont distinguées des mécaniques encore hésitantes. Aucun monde,
|
||||
paramètre de génération, familier ou format de sauvegarde n'est modifié ici.
|
||||
|
||||
**Premier lot décidé ensuite :** un palais par seed, huit ancres extérieures
|
||||
et huit demandes de matériaux distincts. Le bloc originel garde l'illustration
|
||||
fournie ; chacune des huit gemmes se colore indépendamment. Le
|
||||
[contrat de prototype](palais-prototype-beta173.md) décrit ce qui est réellement
|
||||
implémenté dans le laboratoire et les limites de l'intégration au monde.
|
||||
|
||||
## Le secret devient un lieu commun à habiter
|
||||
|
||||
Le secret sous le spawn prend la forme d'un **palais sobre, haut sous plafond,
|
||||
à huit coins**. Après discussion du niveau zéro et du vortex, le créateur
|
||||
précise : **adapter la hauteur au terrain**. Le palais garde son centre en
|
||||
**`x=0, z=0`**, avec une **altitude déterminée par le relief**. La salle n'est
|
||||
donc plus contrainte à Y=0.
|
||||
|
||||
**Le bloc originel suit le palais**, confirmation explicite du créateur. Sa
|
||||
position devient `(x=0, y=altitude adaptée, z=0)` : l'origine horizontale reste
|
||||
fixe, l'altitude accompagne le lieu. L'idée initiale d'un bloc exactement en
|
||||
`(0, 0, 0)` est remplacée ; aucun bloc séparé à Y=0 ni liaison vers ce niveau
|
||||
n'est requis. Sa position précise dans le volume de la salle reste à dessiner.
|
||||
|
||||
Ce palais représente une **cartographie intérieure de Sanctuary Island**,
|
||||
puis l'expédition et l'aventure de ses habitants. Le complexe est léger, assez
|
||||
vide pour que les joueurs le personnalisent : une page blanche avec une
|
||||
architecture reconnaissable. Sa richesse vient progressivement de leur partie.
|
||||
La palette, les dimensions, les proportions et le mobilier initial restent à
|
||||
dessiner. « Palais » n'implique ni dorures ni décor luxueux.
|
||||
|
||||
Le lieu est souterrain par son implantation et ses accès. Si le terrain à
|
||||
l'origine est trop mince ou absent, **le palais ressort sous l'île et reste
|
||||
visible au-dessus du vide**. Le créateur souhaite un endroit lumineux,
|
||||
repérable depuis l'extérieur, notamment la nuit. Le vortex de nuages doit
|
||||
participer à la vue en dessous.
|
||||
|
||||
La fonction recherchée est une **base d'opérations pour les expéditions** :
|
||||
comprendre les destinations, voir les matériaux nécessaires, préparer le départ
|
||||
et conserver la mémoire de ce qui a été accompli. Le rôle exact des machines
|
||||
et la mécanique d'ouverture des territoires ne sont pas encore décidés.
|
||||
|
||||
### Proposition spatiale à discuter
|
||||
|
||||
Faire correspondre les huit secteurs de la salle aux huit directions autour
|
||||
de l'île, avec une orientation lisible depuis le bloc originel. Chaque secteur
|
||||
pourrait recevoir un indice découvert, l'état d'une liaison, les besoins de sa
|
||||
prochaine expédition et les souvenirs rapportés. Les joueurs complètent
|
||||
eux-mêmes l'aménagement avec cartes, cadres, bannières, trophées et constructions.
|
||||
Le palais devient une carte que l'on parcourt à pied.
|
||||
|
||||
Les huit coins de l'île désignent ici des secteurs à définir sur son contour ;
|
||||
ils n'imposent pas une île géométriquement octogonale. Le rapprochement entre
|
||||
coins du palais, lieux périphériques et liaisons est une proposition cohérente
|
||||
avec la demande, pas encore un plan d'implantation validé.
|
||||
|
||||
Il faut encore décider ce que les joueurs peuvent déplacer ou casser, et
|
||||
comment ils réparent une installation devenue inutilisable. La personnalisation
|
||||
ne vaut pas décision de protéger tout le palais. L'ancien contrat de conception
|
||||
permet aussi de reconstruire une installation d'expansion ailleurs : préciser
|
||||
ce qui relève du bloc originel unique et ce qui reste reproductible.
|
||||
|
||||
## Les accès font jouer la profondeur
|
||||
|
||||
Le créateur envisage plusieurs accès complémentaires, sans choisir encore
|
||||
leur nombre ni leur disposition :
|
||||
|
||||
| Accès évoqué | Expérience recherchée | Point à dessiner ou vérifier |
|
||||
| --- | --- | --- |
|
||||
| Ascenseur aquatique | Monter et descendre rapidement, avec eau et bulles | Les algues et la « terre des abîmes » sont les termes de la discussion ; le bloc de propulsion et le montage exact restent à préciser |
|
||||
| Puits de chute avec réception dans l'eau | Se laisser tomber vers le palais central | Continuité du bassin, visibilité de la réception, sortie et absence de fuite dans le vide |
|
||||
| Escaliers | Accès progressif qui fait découvrir les volumes souterrains | Arrivée dans la salle, paliers, raccourcis et lien avec les galeries |
|
||||
| Ouvertures verticales | Apercevoir en contrebas un sol d'eau et oser descendre | Lecture du trajet, réception réelle, retour et espace pour les compagnons |
|
||||
|
||||
Proposition : une première descente lente qui révèle le palais, puis un trajet
|
||||
rapide pour les usages quotidiens. Le choix entre escalier, chute et ascenseur
|
||||
peut exprimer cette différence sans obliger à construire les trois dès le début.
|
||||
|
||||
### Implantation retenue : une hauteur adaptée au terrain
|
||||
|
||||
Le preset actuel emploie `sanctuary:sanctuary_640`, avec **`min_y: 0`** et
|
||||
**`height: 640`**. Le vortex a **`HEIGHT=0`**, avec une épaisseur de quatre blocs
|
||||
dans son rendu. Ce sont des valeurs lues dans les sources beta.172, pas des
|
||||
mesures de terrain d'une graine particulière :
|
||||
|
||||
- [Preset Sanctuary](../mods/sanctuary/src/main/resources/data/sanctuary/worldgen/world_preset/sanctuary.json).
|
||||
- [Type de dimension](../mods/sanctuary/src/main/resources/data/sanctuary/dimension_type/sanctuary_640.json).
|
||||
- [Hauteur du vortex](../mods/sanctuary/src/main/java/fr/koka/sanctuary/sky/VortexClouds.java).
|
||||
- [Épaisseur et rendu](../mods/sanctuary/src/main/java/fr/koka/sanctuary/client/VortexCloudRenderer.java).
|
||||
|
||||
Ces contraintes ont conduit le créateur à choisir une hauteur adaptée au terrain.
|
||||
La proposition précédente d'imposer la salle juste au-dessus du bloc à Y=0
|
||||
est remplacée par cette décision. **Le vortex peut conserver sa hauteur actuelle** ;
|
||||
aucun déplacement des nuages ni changement de limite du monde n'est nécessaire
|
||||
par principe. Leur séparation visuelle devra être vérifiée sur la coupe choisie.
|
||||
|
||||
Proposition de placement : examiner le relief sous le centre de l'île et sur
|
||||
l'emprise du palais, puis choisir un niveau permettant la grande hauteur sous
|
||||
plafond et les accès. La salle peut traverser l'enveloppe inférieure du terrain
|
||||
et laisser une façade lumineuse visible dans le vide. Il ne faut ni l'enterrer
|
||||
entièrement à tout prix, ni aplatir toute l'île pour l'accueillir.
|
||||
|
||||
Avant le code, fixer la marge au-dessus du vortex, la couverture rocheuse
|
||||
souhaitée, le volume de la salle et la solution lorsque le relief ne fournit
|
||||
pas assez d'épaisseur. Prévoir planchers, bassins et fondations dans les limites
|
||||
constructibles. La même graine et la même version de génération doivent choisir
|
||||
la même implantation. Ces règles détaillées restent à dessiner puis à tester
|
||||
sur de nouveaux mondes ; aucune partie existante n'est repositionnée.
|
||||
|
||||
## Les huit objets et la Sanctuary Key restent ouverts
|
||||
|
||||
Le créateur envisage des **collectibles répartis dans les huit secteurs de
|
||||
l'île**, permettant d'activer de nouvelles expéditions, la génération de
|
||||
nouvelles îles et un nouveau point d'intérêt à découvrir. Il hésite sur le
|
||||
fait de placer ces objets derrière des défis et sur la forme d'une clé appelée
|
||||
provisoirement **Sanctuary Key**. Aucun identifiant d'objet n'est fixé.
|
||||
|
||||
| Possibilité | Ce qu'elle favorise | Limite à discuter |
|
||||
| --- | --- | --- |
|
||||
| Collectible trouvé par exploration | Curiosité, lecture du paysage et surprises | Le défi peut se résumer à trouver le bon endroit |
|
||||
| Clé obtenue après une épreuve | Accomplissement clair et aventures différentes | Huit épreuves identiques donneraient une progression répétitive |
|
||||
| Découverte puis préparation de l'expédition | Exploreurs, constructeurs et producteurs ont chacun un rôle | Il faut rendre les besoins compréhensibles et éviter les attentes sans activité |
|
||||
|
||||
**Proposition recommandée pour la discussion :** découvrir dans un secteur un
|
||||
objet ou un signe lié à une liaison, puis préparer l'expédition au palais. Le
|
||||
défi peut varier selon le lieu : combat, exploration, mécanisme, construction
|
||||
ou coopération. Cette proposition ne décide ni d'une clé pour chaque direction,
|
||||
ni d'un objet consommé, ni de l'obligation de réunir les huit avant de partir.
|
||||
|
||||
Avant le premier essai, choisir ce que l'objet autorise, qui peut l'apporter,
|
||||
où les matériaux sont réellement déposés et qui lance le départ. Prévoir le
|
||||
cas d'un objet perdu et celui d'un nouveau joueur arrivé après l'ouverture.
|
||||
La preuve durable d'ouverture appartient au serveur ; le trophée exposé au
|
||||
palais peut raconter cette ouverture sans être la seule preuve qui la conserve.
|
||||
|
||||
Les huit collectibles ne remplacent pas automatiquement les **sept boules de
|
||||
cristal** de la vision historique. Leur relation éventuelle est à discuter.
|
||||
|
||||
## La montée vers l'ISS
|
||||
|
||||
Le créateur souhaite développer la verticalité au-dessus de l'île par des
|
||||
structures en hauteur, jusqu'à l'**ISS — International Sanctuary Station**.
|
||||
Cette station métallique, inspirée visuellement de l'ISS, constitue une trace
|
||||
laissée par un ancien joueur. Son identité n'est pas encore choisie.
|
||||
|
||||
Elle comprendrait une **carte de l'île avec des cadres d'objets posés à
|
||||
l'horizontale**. La taille, l'altitude, l'accès et la mise à jour de cette carte
|
||||
restent à définir. Il faut lui donner une fonction particulière, reliée à un
|
||||
système ou une quête. Trouver la station pour obtenir un familier particulier
|
||||
est une piste du créateur, pas une récompense déjà arrêtée.
|
||||
|
||||
```mermaid
|
||||
flowchart TB
|
||||
ISS[ISS : trace d'un ancien joueur et fonction à définir]
|
||||
HAUT[Structures en hauteur : itinéraire à concevoir]
|
||||
ILE[Surface : spawn, habitants et huit secteurs]
|
||||
ACCES[Descente : escaliers, eau ou puits]
|
||||
PALAIS[Palais octogonal : préparer et raconter les expéditions]
|
||||
ORIGINE[Bloc originel : suit le palais, x=0 et z=0]
|
||||
ISS --- HAUT --- ILE --- ACCES --- PALAIS --- ORIGINE
|
||||
```
|
||||
|
||||
Schéma d'intention sans échelle : aucun ordre de déblocage ni palier d'altitude
|
||||
obligatoire n'est décidé. Le palais s'adapte au terrain ; le vortex est à Y=0.
|
||||
Le nœud du bloc indique son lien avec le palais, pas un étage nécessairement séparé.
|
||||
|
||||
Proposition : faire du palais le lieu où l'on **prépare et engage** l'expédition,
|
||||
et de l'ISS un lieu où l'on **observe et repère** des phénomènes célestes. Une
|
||||
fonction de reconnaissance donnerait une raison d'y retourner après avoir
|
||||
trouvé le familier. Elle doit être distinguée du rôle de l'observatoire déjà
|
||||
envisagé sur l'île ; ne pas créer trois lieux qui donnent la même information.
|
||||
|
||||
L'ISS pourrait suggérer une destination ou un événement aérien sans révéler
|
||||
tous les secrets. La carte pourrait être le relevé ancien du précédent joueur
|
||||
ou un outil actualisé : ce choix change ce qu'elle raconte. Prévoir l'accès des
|
||||
nouveaux arrivants et le retour au sol avant de choisir une récompense rare.
|
||||
|
||||
## Chenil et incubateurs de familiers
|
||||
|
||||
Piste du créateur : un **vrai bloc** reçoit le familier pour lui faire gagner
|
||||
de l'XP. **Deux yeux apparaissent sur le bloc lorsqu'il est occupé.** Le dispositif
|
||||
peut devenir un chenil ou un incubateur ; son nom et sa place dans le palais
|
||||
restent ouverts. Des **multiblocs de tailles différentes** pourraient accueillir
|
||||
des familiers miniatures ou colossaux. Les dimensions ne sont pas fixées.
|
||||
|
||||
Il faut distinguer cette idée de l'incubation du 25 septembre : celle-ci faisait
|
||||
fructifier une réserve avec les déplacements, poses et casses du joueur. Le
|
||||
nouvel incubateur est un lieu physique où l'on dépose le compagnon. Ils peuvent
|
||||
se remplacer ou se compléter ; aucune double croissance automatique n'est décidée.
|
||||
|
||||
Le point de conception principal est de garder un intérêt à emmener son
|
||||
familier. **Proposition à éprouver :** un entraînement limité au chenil, soutenu
|
||||
éventuellement par de la nourriture appréciée, tandis que l'aventure développe
|
||||
le lien et l'expérience autrement. Plafond, nourriture, vitesse et arrêt hors
|
||||
ligne restent des propositions, sans règle chiffrée ni rendement acquis.
|
||||
|
||||
Avant le code, préciser : XP propre du familier ou réserve récupérable par le
|
||||
joueur ; propriétaire et personnes autorisées à le retirer ; croissance selon
|
||||
temps simulé ou réel ; comportement hors ligne et hors chunks chargés ; sort
|
||||
du pensionnaire à la casse ou dissociation. Le même familier ne doit pas exister
|
||||
simultanément dans le chenil et sur la tête. Les deux yeux signalent l'occupation,
|
||||
mais l'identité du pensionnaire doit aussi pouvoir être reconnue.
|
||||
|
||||
Si la forme multibloc est retenue, la rapprocher du système d'assemblage
|
||||
volontaire existant. Ne pas imposer automatiquement une cage colossale à tout
|
||||
familier de grande apparence avant d'avoir choisi la règle de taille.
|
||||
|
||||
## Ordinateurs : commencer par la tâche à accomplir
|
||||
|
||||
Le créateur envisage **assembleur, terminal et écran**, en référence à un mod
|
||||
d'ordinateurs non identifié avec certitude. Aucun choix de dépendance n'est
|
||||
effectué. Le [cahier d'installation d'expansion](structures-conception.md#ordinateurs-et-installation-dexpansion)
|
||||
évoque déjà assembleur, contrôleur, terminal, dépôt et ancre, mais ces rôles
|
||||
restent conceptuels. Le terminal de stockage est encore une autre fonction.
|
||||
|
||||
Le premier besoin est concret : **choisir une expédition, voir les matériaux
|
||||
nécessaires, constater ce qui est déposé et comprendre ce qui manque**. On peut
|
||||
dessiner ce parcours dans une alcôve du palais avant de décider de l'ordinateur.
|
||||
|
||||
Proposition de progression : une installation locale compréhensible à la main,
|
||||
puis un écran de suivi partagé, puis éventuellement automatisation et programmation.
|
||||
Un dépôt physique possède les matériaux ; un écran les montre ; le système
|
||||
serveur valide l'expédition. Le rôle de l'assembleur doit être choisi avant
|
||||
d'ajouter un bloc dont on ne sait pas ce qu'il fabrique.
|
||||
|
||||
Cette approche conserve de la place pour les computers sans les rendre
|
||||
obligatoires par défaut pour découvrir le palais. Si un mod externe est choisi,
|
||||
son identité et sa compatibilité Minecraft 26.3 seront vérifiées dans le ticket
|
||||
d'intégration ; aucun nom n'est déduit de la description seule.
|
||||
|
||||
## Prochain résultat de conception proposé
|
||||
|
||||
Dessiner **un plan et une coupe du palais**, avec huit secteurs, bloc originel,
|
||||
altitude adaptée au terrain, hauteur de salle, partie extérieure, accès et nuages.
|
||||
Placer seulement les
|
||||
emplacements fonctionnels nécessaires pour essayer **une** expédition :
|
||||
destination, éventuel objet de déblocage et besoins matériels. Garder les
|
||||
autres espaces disponibles pour les joueurs et les évolutions suivantes.
|
||||
|
||||
L'ISS et le chenil peuvent alors avoir une fiche propre, liée à cette coupe
|
||||
verticale. Ils ne deviennent pas des prérequis techniques à la première salle.
|
||||
Les trois décisions suivantes sont : **moment de découverte du palais**,
|
||||
**premier geste d'expédition** et **ce que l'ISS permet de faire après sa visite**.
|
||||
|
||||
Validation documentaire : références locales et diff contrôlés. Aucun build
|
||||
ou essai de jeu relancé ; aucune fonctionnalité décrite ici n'est implémentée.
|
||||
@@ -0,0 +1,150 @@
|
||||
# beta.173 — palais procédural et bloc originel
|
||||
|
||||
> **Statut au 29 septembre 2026 : prototype technique conservé, architecture
|
||||
> abandonnée pour la suite.** Le palais souterrain, ses accès et les
|
||||
> raccordements au palais sortent de la conception. Le
|
||||
> [fil rouge courant](storyquest-fil-rouge.md) prépare des lieux indépendants.
|
||||
> Cette fiche décrit fidèlement le laboratoire livré et ses essais ; elle
|
||||
> n'annonce plus l'intégration du palais à Sanctuary Island.
|
||||
|
||||
Ticket d'implémentation ouvert le 28 septembre 2026, branche
|
||||
`codex/storyquest-beta173`, base beta.172. Première scène jouable issue du
|
||||
[palais originel](palais-originel-iss-beta173.md). Livraison locale vérifiée.
|
||||
|
||||
## Contrat avant implémentation
|
||||
|
||||
Le palais est construit par un générateur versionné, avec une graine explicite.
|
||||
Le volume octogonal, la hauteur, les baies, la toiture et le dessin du sol
|
||||
peuvent varier. Une même graine/version reproduit le même plan. Il conserve
|
||||
une salle haute et sobre, huit secteurs ouverts, un escalier et un puits d'eau.
|
||||
La première scène est centrée en X=0, Z=0 et surélevée dans un monde plat neuf.
|
||||
Chaque monde de laboratoire contient **un seul palais, déterminé par sa seed**.
|
||||
Pour comparer une autre architecture, créer un autre monde neuf avec une autre seed.
|
||||
|
||||
L'intégration au terrain de Sanctuary Island était envisagée lors de ce lot ;
|
||||
elle est abandonnée le 29 septembre. Ce lot n'appelle pas le générateur dans
|
||||
les mondes de production. Il ne crée ni
|
||||
expansion, ni quête, ni ISS, ni ordinateur, ni récompense.
|
||||
|
||||
Le nouveau bloc `sanctuary:origin_block` reprend les propriétés de la bedrock
|
||||
et l'image fournie par le créateur, conservée sans retouche dans
|
||||
`mods/sanctuary/src/main/art/origin-logo.png`. Son rendu est dérivé de manière
|
||||
déterministe à la construction des ressources :
|
||||
|
||||
- éteint : image sombre et désaturée, aucune lumière émise ;
|
||||
- allumé sans relais : image en niveaux de gris, centre blanc, lumière 15 ;
|
||||
- allumé avec des relais : chaque relais rend sa couleur à la gemme associée ;
|
||||
les autres restent grises et le centre reste blanc.
|
||||
|
||||
Huit bits indépendants représentent les huit relais, pas un simple compteur.
|
||||
L'ordre des activations est libre. L'extinction masque les couleurs sans effacer
|
||||
l'état des relais. Ces états sont des propriétés de bloc natives, sauvegardées
|
||||
dans les nouveaux chunks ; aucun ancien format n'est converti.
|
||||
|
||||
Huit blocs `sanctuary:expansion_anchor` sont disposés à l'extérieur, dans les
|
||||
huit directions, sur des plateformes reliées à pied au palais. Chacun accepte
|
||||
un matériau distinct, décision du créateur du 28 septembre. Clic droit avec la
|
||||
quantité en main : dépôt entier, consommé côté serveur, ancre allumée et bit
|
||||
associé du bloc originel activé. Un dépôt insuffisant ou incorrect reste intact ;
|
||||
une ancre déjà allumée ne consomme plus. Les demandes sont communes à la partie,
|
||||
sans crédit individuel ni dépôt partiel dans ce premier lot.
|
||||
|
||||
| Direction / gemme | Demande provisoire |
|
||||
| --- | --- |
|
||||
| Nord / bleu | 32 pierres |
|
||||
| Nord-est / vert clair | 16 bûches de chêne |
|
||||
| Est / vert | 16 blés |
|
||||
| Sud-est / orange | 4 lingots d'or |
|
||||
| Sud / rouge | 16 poudres de redstone |
|
||||
| Sud-ouest / rose-violet | 8 éclats d'améthyste |
|
||||
| Ouest / jaune | 8 lingots de fer |
|
||||
| Nord-ouest / menthe | 16 verres |
|
||||
|
||||
Le bloc central s'allume/s'éteint par clic droit dans ce laboratoire. Il faut
|
||||
l'allumer avant les dépôts ; l'éteindre conserve les ancres et leurs bits.
|
||||
Les coûts servent au prototype et ne constituent pas l'équilibrage final.
|
||||
Ces ancres ne déclenchent encore aucune génération d'expansion.
|
||||
|
||||
## Monde et écritures autorisées
|
||||
|
||||
Le module facultatif Sanctuary Test, le dossier dédié `palace-flat-173` et le
|
||||
commutateur `sanctuary.palaceLab=true` conditionnent le laboratoire. La préparation
|
||||
refuse toute autre partie. Une emprise doit être entièrement libre avant la
|
||||
première écriture. Un palais prêt est rechargé tel quel ; il n'existe pas de
|
||||
commande de régénération. Les écritures sont réparties sur plusieurs ticks serveur.
|
||||
|
||||
Un journal indépendant `palace-lab-173.json`, schéma 1 / génération 1, enregistre
|
||||
graine, altitude et phase du palais. Les états des blocs restent dans les chunks.
|
||||
Une génération interrompue est conservée comme incomplète ; utiliser un nouveau
|
||||
dossier de laboratoire. Pas de nettoyage ou de reprise destructive.
|
||||
Une version inconnue ou un journal invalide bloque la préparation et préserve
|
||||
le fichier. Le retrait de cette version après création de ces nouveaux blocs
|
||||
n'est pas une conversion prise en charge ; conserver le monde de développement.
|
||||
|
||||
## Visiter et comparer
|
||||
|
||||
Depuis cette branche, avec Java 25 :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary-test:exportDuoLaunch
|
||||
python3 scripts/palace_lab.py prepare --seed 173
|
||||
python3 scripts/palace_lab.py server --seed 173
|
||||
# Dans un second terminal :
|
||||
python3 scripts/palace_lab.py client --seed 173
|
||||
```
|
||||
|
||||
Le client utilise Vulkan. Le serveur écoute uniquement sur `127.0.0.1:25579`.
|
||||
Créatif pour visiter et aménager ; `/palais materiaux` donne les huit demandes,
|
||||
`/palais retour` ramène dans la salle. Les messages sont traduits FR/EN.
|
||||
Une autre seed utilise un autre dossier sous `build/palace-173/` ; arrêter le
|
||||
serveur précédent avant de lancer l'autre. Le lanceur préserve les fichiers
|
||||
existants et refuse une modification du nom de monde, de la seed ou du réseau.
|
||||
|
||||
Le palais est à Y=96 dans ce laboratoire, au-dessus du terrain plat. Le plan
|
||||
accepte une altitude arbitraire. Le placement sous Sanctuary Island à une
|
||||
altitude calculée n'a pas été intégré et n'est plus prévu ; la géographie des
|
||||
huit ancres est à reprendre indépendamment de ce palais.
|
||||
|
||||
## Vérifications
|
||||
|
||||
- Les quatre nouveaux GameTests passent (cinq tests requis avec le témoin du
|
||||
banc). Onze graines incluent `0`, `173`, des voisins et les extrêmes 64 bits :
|
||||
plan entier reproductible, variation d'architecture, huit accès praticables
|
||||
et toutes les écritures contenues dans l'emprise. Une emprise occupée est
|
||||
refusée sans écriture. Dépôts faux, insuffisants ou répétés conservés ; les
|
||||
huit dépôts valides activent les bits attendus dans un ordre non séquentiel.
|
||||
- Les 512 combinaisons d'allumage et de relais survivent au codec natif de
|
||||
sauvegarde. Lumière 0/15 et conservation des bits à l'extinction vérifiées.
|
||||
- Client Minecraft **26.3 / Vulkan / Apple M1**, scénario
|
||||
`Palace173ClientChecks` réussi : extérieur, intérieur, éteint, monochrome,
|
||||
trois gemmes et huit gemmes. Six captures examinées dans
|
||||
`build/palace-validation/screenshots/`. Synchronisation serveur/client du
|
||||
masque de gemmes vérifiée. Le premier lancement avait omis le profil Test ;
|
||||
le scénario passe avec `-PsanctuaryQuickTests=true`.
|
||||
- Image source strictement identique au PNG fourni (SHA-256
|
||||
`33adb8f689d55b7bf8d0824b02942ea3823f128b27fab458713ab9582061a1a0`).
|
||||
Compilation Python, JSON FR/EN et préparation répétée du laboratoire : les
|
||||
cinq fichiers de configuration restent identiques.
|
||||
|
||||
Commandes ciblées :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runGameTest :sanctuary-test:compileJava -PsanctuaryFocusedTests=palace173 -PsanctuaryAtlasOnly=true
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryPalace173ClientTests=true -PsanctuaryQuickTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
```
|
||||
|
||||
- `./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch`
|
||||
**réussi**, 265/265 GameTests, contrôles du pack et autres contrôles du dépôt
|
||||
réussis (12 min 35 s). Profils packwiz normal et Test assemblés localement.
|
||||
- JAR vérifié : beta.173, générateur présent, 512 états du bloc et 257 textures.
|
||||
SHA-256 : `fa1f92f1a84b5f863e5f323ab0afe63e01acbd08c06181e5f636ab5b372886f9`.
|
||||
- Serveur dédié réellement démarré sur loopback, journal `ready`, puis reprise
|
||||
du même monde. Allumage avec masque `73` et un bloc d'aménagement témoin
|
||||
conservés après arrêt/reprise (`PALACE173_GEMS_RELOAD_PASS` et
|
||||
`PALACE173_CUSTOMIZATION_RELOAD_PASS`). Le témoin est ensuite retiré et le
|
||||
bloc éteint pour la première visite ; serveur arrêté proprement. Le lanceur
|
||||
accepte aussi le `sanctuary_test\:flat` réécrit automatiquement par Minecraft
|
||||
dans les propriétés Java.
|
||||
|
||||
Les journaux restent ignorés dans `build/palace-validation/`. Les artefacts
|
||||
restent locaux ; aucun canal public ni profil Prism n'a été mis à jour.
|
||||
@@ -0,0 +1,25 @@
|
||||
# beta.164 — calendrier compact et intendance alignée
|
||||
|
||||
Calendrier à la largeur de la navigation : jour agrandi et heure sur la première
|
||||
ligne, mois et année ensemble dessous. Le titre serveur est aligné à gauche
|
||||
et couvre la carte ainsi que les panneaux Gazette/Tableau.
|
||||
|
||||
Interface cliente uniquement. Aucun changement de stockage ou de monde.
|
||||
|
||||
Vérification client Vulkan réussie : FR/EN aux échelles GUI 2, 3 et 4.
|
||||
Le test contrôle la largeur du calendrier, l’heure dans son libellé accessible,
|
||||
les limites de l’intendance et les interactions communautaires existantes.
|
||||
Captures conservées dans `build/qa-beta164/` et journal dans
|
||||
`build/beta164-client-retry.log`. Inspection visuelle FR GUI 4 et EN GUI 2 effectuée.
|
||||
Le premier test a détecté que StringWidget redimensionnait le calendrier lors
|
||||
du changement de texte ; la largeur de navigation est maintenant réappliquée.
|
||||
|
||||
`check build assemblePack --continue` exécuté : les mêmes 23 GameTests qu’en
|
||||
beta.163 échouent, aucun nouvel échec (comparaison enregistrée dans
|
||||
`build/session164-server-failures.json`). La suite complète reste en échec.
|
||||
L’assemblage séparé `build assemblePack :sanctuary-test:exportDuoLaunch
|
||||
-x :sanctuary:check` réussit après ce contrôle.
|
||||
|
||||
Anciennes archives conservées ; aucune publication distante.
|
||||
JAR : `mods/sanctuary/build/libs/sanctuary-beta.164.jar`.
|
||||
SHA-256 : `5bdfb097004a7932a075fbce9013556266f76ddd491ca21a24e12609c8600e53`.
|
||||
@@ -0,0 +1,97 @@
|
||||
# PAUSE-235 — Aventure et Communauté côte à côte
|
||||
|
||||
Branche d'essai `codex/pause-columns-beta235`, base beta.234, commit `f9c2ce8`,
|
||||
Minecraft 26.3. Le rendu reste à apprécier par le créateur.
|
||||
|
||||
## Disposition et réversibilité
|
||||
|
||||
Avant Atlas, Aventure et Communauté occupent deux colonnes au même niveau :
|
||||
Discovery, Progression et Story à gauche ; Habitant, Faction et Battle à droite.
|
||||
Partie / Game suit juste dessous avec Options, World Options et la sortie
|
||||
native. L'ensemble est centré verticalement dans le corps de Pause, avec de
|
||||
l'espace sous Game ; Reprendre la partie reste dans le pied de page.
|
||||
|
||||
Sans Atlas, ce bloc est centré entre Gazette à gauche et Notice Board à droite.
|
||||
Avec Atlas, une seule colonne étroite est serrée à gauche : Communauté, puis
|
||||
Aventure, puis Partie / Game, selon l'ordre confirmé par le créateur. La carte
|
||||
garde la région centrale et les deux fils communautaires restent à droite.
|
||||
Le bloc complet reste centré verticalement. La largeur minimale des boutons
|
||||
de navigation tient compte des libellés localisés et de leur marge native.
|
||||
Aux petites hauteurs, boutons et espacements se compactent. Tab suit l'ordre
|
||||
visuel : par rangée de gauche à droite avant Atlas, puis de haut en bas avec
|
||||
Atlas. Les libellés FR/EN existants sont réutilisés.
|
||||
|
||||
Le changement de disposition et les assertions correspondantes sont isolés
|
||||
dans le commit `a7bdfe6`, séparé de la livraison et de ses métadonnées. La branche
|
||||
`codex/story-beta234` conserve la disposition précédente. Un retour s'effectue
|
||||
avec `git revert a7bdfe6` ; une éventuelle nouvelle
|
||||
livraison doit prendre le numéro beta suivant, sans diminuer le compteur.
|
||||
L'application inverse du patch a été vérifiée avec `git apply --reverse --check`,
|
||||
sans modifier les fichiers de travail.
|
||||
|
||||
Ce ticket ne change ni génération, sauvegarde, données communautaires, protocole,
|
||||
conditions de progression ou contenus Story. Aucune installation personnelle
|
||||
ou publication n'est demandée.
|
||||
|
||||
## Vérifications
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryPause233ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true -PsanctuaryStory234ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan
|
||||
./gradlew check build assemblePack -PsanctuaryFocusedTests=menus -PsanctuaryAtlasOnly=true
|
||||
```
|
||||
|
||||
Le parcours Pause final réussit en 1 min 22 s (`PAUSE233_PASS`), dans un monde
|
||||
plat neuf de développement, Survie sans commandes. FR/EN, GUI 2/3/4, fenêtre
|
||||
1280 × 960, avant et après Atlas : six actions Sanctuary, alignement et absence
|
||||
de chevauchement, largeur des libellés avec la marge native, ordre de Tab et
|
||||
Game sous les groupes, avec de l'espace avant le pied. Le test attend désormais
|
||||
un créneau de requête communautaire pour son amorçage et envoie le code de
|
||||
raccourci natif de Tab, requis par Minecraft 26.3.
|
||||
|
||||
Le parcours communautaire existant passe également : publication et photo,
|
||||
retours des sélecteurs, brouillons, édition d'une ancienne catégorie, inventaire
|
||||
réel conservé et aucun changement du fichier communautaire pendant les lectures.
|
||||
La configuration temporaire est restaurée à la fin du banc.
|
||||
Log : `build/pause235-client-vulkan-final.log`. 38 captures finales copiées dans
|
||||
`build/pause235-screenshots/`. Captures inspectées : sans Atlas FR/4, avec Atlas
|
||||
FR/2 et EN/4. Vulkan confirmé : MoltenVK 1.4.2 sur Apple M1.
|
||||
|
||||
Le parcours Story final réussit en 29 s (`STORY234_PASS`), avec les mêmes
|
||||
langues, GUI et états Atlas. Accès depuis les deux dispositions de Pause,
|
||||
100 entrées désactivées, recherche/filtres, saisie continue et focus, molette,
|
||||
redimensionnement à 1344 × 1008 et retours Échap / Terminé vérifiés. Le record
|
||||
de progression serveur ne change pas. Log :
|
||||
`build/pause235-story-client-vulkan-final.log` ; 21 captures copiées dans
|
||||
`build/pause235-story-screenshots/`.
|
||||
|
||||
Aux GUI étroits, les longs libellés natifs des options/sortie et les titres des
|
||||
fils gardent leur défilement ou découpage existant ; les boutons de navigation
|
||||
Sanctuary montrent leur libellé entier. Les infobulles des actions Game sont
|
||||
conservées. Aucun essai OpenGL, Windows ou monde personnel n'est revendiqué.
|
||||
|
||||
Le contrôle `check build assemblePack` réussit en 3 min 1 s : quatre GameTests
|
||||
requis et contrôles purs du dépôt, dont les quatre contrôles communautaires
|
||||
fichier/photos/demandes/recherche. Log : `build/pause235-check-build-pack.log`.
|
||||
Le banc menus conserve sa sélection Atlas existante ; le conflit de générateur
|
||||
sur le chemin natif par défaut, documenté en beta.232, reste hors de ce ticket.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
`mod_version`, `pack_version` et `packwiz/pack.toml` sont alignés sur beta.235.
|
||||
Le commit de livraison conserve ces métadonnées et cette documentation séparées
|
||||
du commit de disposition.
|
||||
|
||||
Export [Sanctuary-beta.235.mrpack](../build/Sanctuary-beta.235.mrpack),
|
||||
12 776 222 octets : intégrité ZIP, Minecraft 26.3 et Fabric Loader 0.19.5,
|
||||
un seul JAR Sanctuary embarqué, identique au JAR construit, sans monde ni module
|
||||
de test. Les 3 303 fichiers d'assets, données et resourcepacks sont identiques
|
||||
à beta.234, traductions incluses. Story reste dans le JAR de production et les
|
||||
classes des bancs client en sont absentes. Reçu :
|
||||
`build/pause235-mrpack-receipt.json`.
|
||||
|
||||
- JAR : `aad94732c749161d775ee634bdd85de70de511ef875c6c00fa167d230d0d600b`.
|
||||
- MRpack : `5f1bd18aa8a4145b7e708da0abfff22068365847dddbc95ae2b490b88bbb305e`.
|
||||
|
||||
Aucune publication distante, modification du canal packwiz, synchronisation
|
||||
Prism ou ouverture d'un monde personnel effectuée.
|
||||
@@ -0,0 +1,86 @@
|
||||
# PAUSE-233 — navigation centrée et rédaction communautaire
|
||||
|
||||
Branche `codex/pause-community-beta233`, base beta.232, Minecraft 26.3.
|
||||
|
||||
## Résultat et compatibilité
|
||||
|
||||
Avec ou sans Atlas, les boutons gardent les mêmes groupes et le même ordre :
|
||||
|
||||
- Communauté : Habitant, Faction et Battle en haut de la colonne.
|
||||
- Aventure : Discovery et Progression centrés verticalement dans l'écran.
|
||||
- Partie : Options, World Options et Save and Quit en bas.
|
||||
|
||||
Sans carte, cette colonne est centrée horizontalement entre Gazette à gauche
|
||||
et Notice Board à droite. Avec carte, elle reste à gauche, carte au centre et
|
||||
les deux fils communautaires à droite. L'ordre clavier suit l'ordre visuel.
|
||||
Les boutons deviennent plus compacts sur les petites hauteurs GUI pour conserver
|
||||
les titres et l'espacement entre groupes. La petite barre sous les boutons
|
||||
Communauté est supprimée dans les deux dispositions. En-tête et reprise en pied
|
||||
conservés.
|
||||
|
||||
Le formulaire Notice Board ne propose plus Information/Project/Request/Event.
|
||||
Toutes les notices ont la même présentation, y compris les anciennes catégories.
|
||||
Les demandes et récompenses restent facultatives et descriptives : après le
|
||||
texte viennent Request and rewards, son résumé, puis Publish. Le formulaire
|
||||
Gazette place la photo et Choose a screenshot en premier, avant le titre,
|
||||
puis le texte et Publish.
|
||||
Photo obligatoire, brouillons, édition, retours des sélecteurs, suivis et
|
||||
validations serveur restent actifs.
|
||||
|
||||
Le contrat fichier/MariaDB et le protocole ne changent pas. Les nouvelles notices
|
||||
gardent la valeur compatible `info` ; éditer une ancienne annonce conserve sa
|
||||
catégorie enregistrée sans l'afficher. La lecture n'entraîne aucune réécriture
|
||||
des posts. Aucune migration, génération ou opération d'inventaire n'est ajoutée.
|
||||
Les anciennes traductions de catégories restent disponibles pour les données
|
||||
historiques. Titres ajoutés en français/anglais : Communauté/Community,
|
||||
Aventure/Adventure et Partie/Game ; les autres libellés existent déjà.
|
||||
|
||||
## Vérifications et livraison
|
||||
|
||||
`./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true
|
||||
-PsanctuaryPause233ClientTests=true -PsanctuaryClientGraphicsBackend=vulkan`
|
||||
Réussite en 47 s (`PAUSE233_PASS`), après suppression de la barre sous Communauté.
|
||||
Monde plat de développement, Survie sans Allow Commands, stockage fichier isolé.
|
||||
|
||||
- FR/EN, GUI 2/3/4, fenêtre 1280×960, avant et après Atlas : même ordre des
|
||||
actions et des groupes, titres sans chevauchement, paire Discovery/Progression
|
||||
centrée verticalement, navigation et options séparées.
|
||||
- Ordre titre → texte → demande et résumé → publication, ou photo et sélecteur
|
||||
→ titre → texte → publication ; aucune catégorie visible. Défilement du formulaire sur GUI
|
||||
étroit vérifié. 38 captures dans `build/pause233-screenshots/`.
|
||||
- Retours réels des sélecteurs : texte conservé, 128 bûches demandées et
|
||||
récompense personnalisée publiées ; les 17 bûches et 3 diamants d'inventaire
|
||||
réel restent présents. Photo toujours obligatoire, article et photo relus
|
||||
depuis un nouveau lecteur du stockage fichier après publication.
|
||||
- Ancienne catégorie `event` conservée lors de l'édition. Lecture des posts,
|
||||
redimensionnements et changements de langue n'altèrent aucun octet du fichier
|
||||
communautaire. Configuration du banc restaurée à la fin.
|
||||
- Captures inspectées : pause verrouillée FR/2 et EN/4, pause déverrouillée FR/2,
|
||||
notice configurée, Gazette avec photo assignée et bas du formulaire Notice Board
|
||||
EN/4. Notices anciennes et nouvelles ont le même cadre et ne montrent que leur état.
|
||||
|
||||
Log client final : `build/pause233-client-vulkan-titled.log`. Aucun essai OpenGL ou Windows
|
||||
et aucune migration MariaDB ne sont revendiqués ; le code serveur est conservé.
|
||||
|
||||
`./gradlew check build assemblePack -PsanctuaryFocusedTests=menus
|
||||
-PsanctuaryAtlasOnly=true`
|
||||
Réussite en 2 min 39 s : quatre GameTests requis, contrôles purs communautaires
|
||||
(`COMMUNITY154_FILE_PASS`, `COMMUNITY157_PHOTOS_PASS`, `COMMUNITY158_TASKS_PASS`,
|
||||
`COMMUNITY159_SEARCH_PASS`), build et assemblage du pack.
|
||||
Log : `build/pause233-check-build-pack-final.log`.
|
||||
Ce contrôle utilise le mode existant du banc pour les menus. Le chemin natif par
|
||||
défaut présente toujours le conflit de générateur documenté en beta.232 ; cette
|
||||
livraison ne revendique pas une nouvelle suite complète de génération.
|
||||
|
||||
Export local `build/Sanctuary-beta.233.mrpack` vérifié : intégrité ZIP, versions
|
||||
Minecraft 26.3/Fabric Loader 0.19.5, un seul JAR Sanctuary embarqué, exactement
|
||||
identique au JAR construit, sans module de test ni monde. Les 3 146 fichiers
|
||||
de données et assets hors traductions sont identiques à beta.232 ; seules les
|
||||
trois traductions de titres de groupes sont ajoutées en FR/EN, sans changer les
|
||||
libellés existants. Reçu : `build/pause233-mrpack-receipt.json`.
|
||||
|
||||
- JAR : `23a148c197126ede552865f9847ce381700884d5ff087469a13e36540e8f23f9`.
|
||||
- MRpack : `d95aeeca5f255db4444a22879f465477c0c6a2a111dd4e1c777b20944a283e2b`.
|
||||
|
||||
Livraison locale beta.233 ; aucune installation personnelle, publication
|
||||
distante, ouverture d'un monde personnel ou mise à jour du canal packwiz.
|
||||
@@ -0,0 +1,27 @@
|
||||
# beta.163 — cadre du menu pause
|
||||
|
||||
Retour de séance : Découverte/Progression séparés de Habitant/Factions/Combat,
|
||||
bouton Monde retiré, séparateurs natifs de Progression, reprise centrée dans le
|
||||
footer, calendrier à gauche, message serveur au centre et horloge à droite.
|
||||
|
||||
Interface cliente uniquement, sans migration ni modification de règles ou de
|
||||
mondes. « Options du monde » reste dans les réglages en bas à gauche ; seul le
|
||||
raccourci de navigation Monde disparaît. La carte centrale reste disponible.
|
||||
|
||||
Vérifications :
|
||||
- Test client natif Vulkan réussi : FR/EN aux échelles GUI 2, 3 et 4,
|
||||
calendrier, séparation des groupes, limites des widgets et reprise centrée.
|
||||
Captures dans `build/qa-beta163/` ; journal `build/beta163-client-retry.log`.
|
||||
- Le scénario communautaire vérifie aussi la scène du tableau et les échanges.
|
||||
Une première exécution a expiré pendant une publication ; le test respecte
|
||||
désormais le délai serveur entre deux écritures.
|
||||
- `check build assemblePack --continue` : 23 échecs GameTest, ensemble identique
|
||||
à beta.162, aucun nouvel échec. Les autres tâches ont terminé ; la suite
|
||||
complète reste donc en échec. Comparaison dans `build/session163-server-failures.json`.
|
||||
- Assemblage réussi avec `build assemblePack :sanctuary-test:exportDuoLaunch
|
||||
-x :sanctuary:check`, après la vérification complète.
|
||||
|
||||
JAR local : `mods/sanctuary/build/libs/sanctuary-beta.163.jar`.
|
||||
SHA-256 : `72df10885d1bcb3b623c46bddf361839c23f06dfd543119f91ac5e006a8f961e`.
|
||||
Aucune publication distante ; anciens JAR conservés.
|
||||
|
||||
@@ -0,0 +1,114 @@
|
||||
# PAUSE-155 — une entrée Sanctuary, trois espaces
|
||||
|
||||
Branche `codex/pause-redesign-beta155`, livraison locale `beta.155`.
|
||||
Suite de [COMMUNITY-154](community-beta154.md).
|
||||
|
||||
## Résultat attendu
|
||||
|
||||
Remplacer l'ancienne grille du menu pause par trois espaces sans fond ou
|
||||
séparateurs imposés à chaque espace :
|
||||
|
||||
- En-tête : date locale à gauche, dernier message d'intendance au centre,
|
||||
heure locale à droite. Le message ouvre directement sa publication.
|
||||
- Corps : navigation permanente Découverte, Monde, Progression, Habitant,
|
||||
Faction et Batailles à gauche, tous espacés de 4 pixels comme les boutons
|
||||
d’options. Carte personnelle au centre. Gazette au-dessus du tableau d'affichage à droite.
|
||||
- Bas de la colonne gauche : Options, Options du monde, puis Sauvegarder et
|
||||
quitter, empilés dans cet ordre et alignés avec les six boutons Sanctuary.
|
||||
Reprendre la partie se trouve seul tout en bas de la colonne centrale,
|
||||
sous la carte. Les actions natives Minecraft sont réutilisées, y compris
|
||||
Déconnexion en multijoueur. À grande échelle d'interface, les six boutons
|
||||
de navigation deviennent plus compacts pour préserver cette séparation.
|
||||
|
||||
La Gazette présente des boutons-titres avec la tête de l’auteur dans un carré
|
||||
de 20 pixels à gauche, sur la même ligne ; le nom reste disponible au survol. Les demandes prennent la forme de
|
||||
cartes encadrées avec aperçu, auteur, catégorie et état. Chaque zone possède
|
||||
son propre défilement à la molette et sa barre de défilement. Le bouton +
|
||||
ouvre la rédaction, l'en-tête ouvre la liste complète. « Afficher la suite »
|
||||
ajoute la page suivante sans quitter le menu ni remettre le défilement à zéro.
|
||||
La lecture des publications longues et des conversations utilise le
|
||||
conteneur défilant natif existant.
|
||||
|
||||
## Périmètre technique
|
||||
|
||||
La carte utilise exclusivement les relevés personnels de l'atlas existant,
|
||||
sans chargement ou génération de chunks. Elle respecte le déblocage de
|
||||
l'atlas et les restrictions de dimension. Un clic ouvre la carte détaillée.
|
||||
Le serveur solo transmet les relevés existants pendant la pause, par lots bornés,
|
||||
sans observer de nouveaux blocs ni avancer la simulation. La limite de fréquence
|
||||
accepte aussi le temps réel lorsque les ticks du monde sont arrêtés.
|
||||
La texture et le flux réseau sont libérés en quittant le menu ; les réponses
|
||||
tardives ne sont acceptées que par l'écran courant et son jeton.
|
||||
|
||||
Les publications utilisent les mêmes opérations paginées du contrat v1,
|
||||
en fichier comme en MariaDB. Aucune migration, table ou modification du site.
|
||||
L'actualisation des premières pages intervient lorsque leur défilement est en
|
||||
haut ; une liste étendue reste stable jusqu'à sa réouverture.
|
||||
Les textes d'interface sont disponibles en français et anglais.
|
||||
|
||||
La sélection d'un screenshot pour la Gazette reste l'étape suivante.
|
||||
Les visages des demandes du tableau restent différés ; ceux de la Gazette
|
||||
et des conversations sont présents. Les futures entrées
|
||||
économiques ne sont pas des boutons factices.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Environnement : macOS Apple M1, Java Temurin 25, Minecraft 26.3, Fabric Loader
|
||||
0.19.5, Fabric API 0.160.5+26.3, Vulkan/MoltenVK 1.4.2. Base de développement
|
||||
MariaDB 12.3.3, distincte des données personnelles et du site public.
|
||||
|
||||
- Essais natifs Vulkan réussis dans les deux modes : fichier et MariaDB.
|
||||
Français et anglais, GUI 2/3/4 à 1280 × 960 pixels (jusqu'à 320 × 240 unités
|
||||
d'interface), contrôles contenus dans l'écran.
|
||||
- Six vrais boutons Sanctuary ; espacement uniforme de 4 pixels en haut et
|
||||
en bas ; avatars d’articles alignés à gauche des titres.
|
||||
Défilements indépendants à la molette, ajout de la treizième publication par
|
||||
pagination sans retour en haut, lecture jusqu'au bas des longs articles et
|
||||
demandes, réponse publiée et relue.
|
||||
- Options et Options du monde natives, reprise du jeu, ouverture de la carte
|
||||
détaillée puis retour au menu. Carte personnelle reçue en plusieurs lots
|
||||
pendant la pause ; l'horloge de simulation du monde reste immobile.
|
||||
- Logs : `build/pause155-client-file.log`, `build/pause155-client-database.log`.
|
||||
Captures : `build/pause155-{file,database}-screenshots/`, aperçu
|
||||
`build/pause155-preview.png`. Les articles et le terrain de ces captures
|
||||
proviennent exclusivement d'un monde de test plat et de données fictives.
|
||||
|
||||
`./gradlew check build` a terminé ses 252 GameTests : 229 réussites et les
|
||||
23 échecs déjà recensés dans beta.154 (mêmes identifiants, aucun ajout ni
|
||||
retrait). La commande échoue donc ; ce n'est pas un contrôle global vert.
|
||||
Log : `build/pause155-check-build.log`, comparaison :
|
||||
`build/pause155-server-failures.json` / `build/community-server-failures.json`.
|
||||
`./gradlew check build assemblePack -x :sanctuary:runGameTest` réussit :
|
||||
compilation, contrôles hors GameTests et assemblage. Les derniers ajustements
|
||||
visuels de disposition sont ensuite vérifiés par les scénarios client natifs
|
||||
et un nouvel assemblage des artefacts, sans réexécuter les 252 GameTests.
|
||||
Log : `build/pause155-build-pack.log`.
|
||||
Aucun déploiement personnel ni publication du canal packwiz.
|
||||
|
||||
Commande des essais natifs :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true \
|
||||
-PsanctuaryQuickTests=true -PsanctuaryPause155ClientTests=true \
|
||||
-PsanctuaryClientGraphicsBackend=vulkan
|
||||
```
|
||||
|
||||
Le scénario MariaDB utilise les variables de développement documentées dans
|
||||
[COMMUNITY-154](community-beta154.md). Le schéma reste le contrat v1.
|
||||
La sélection de screenshots et la validation Windows restent ouvertes.
|
||||
|
||||
|
||||
## Artefacts locaux vérifiés
|
||||
|
||||
Assemblage final réussi avec `./gradlew build assemblePack -x :sanctuary:check`,
|
||||
après réussite des essais natifs de la disposition finale dans les deux modes.
|
||||
Export packwiz réussi. ZIP, version Fabric/Minecraft, JAR unique dans le MRpack,
|
||||
pilote MariaDB embarqué et absence des classes de test vérifiés. Les 29 fichiers
|
||||
shader sont identiques octet pour octet à beta.151. Les anciens JAR et le pack
|
||||
beta.154 sont conservés, leurs empreintes vérifiées.
|
||||
|
||||
Reçu : `build/pause155-artifacts.json`. Logs : `build/pause155-final-assemble.log`
|
||||
et `build/pause155-export.log`.
|
||||
|
||||
- `mods/sanctuary/build/libs/sanctuary-beta.155.jar` — SHA-256 `e8ba34ddd2726eb48fcea2b56a6f5a2e0262354553378c5bc25ca6f5061d32dc`.
|
||||
- `build/Sanctuary-beta.155.mrpack` — SHA-256 `11be47c07edbb8180b4d6911a1eff7656ba2ce4168d35b96096519a2491e899f`.
|
||||
@@ -0,0 +1,33 @@
|
||||
# PAUSE-156 — reprendre la partie sous la colonne droite
|
||||
|
||||
Branche `codex/pause-resume-right-beta156`, livraison locale `beta.156`.
|
||||
Suite de [PAUSE-155](pause-redesign-beta155.md).
|
||||
|
||||
Le bouton natif Reprendre la partie se trouve en bas à droite, sous la colonne
|
||||
Gazette / tableau, avec le même alignement et la même largeur. Il conserve son
|
||||
action native et les libellés français / anglais de Minecraft.
|
||||
|
||||
La modification concerne uniquement sa géométrie. Les options restent en bas
|
||||
à gauche ; les publications, le stockage, la carte et les shaders conservent
|
||||
leur fonctionnement de beta.155. Aucune migration ni installation personnelle.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le scénario client Vulkan existant passe en français et anglais, GUI 2/3/4 à
|
||||
1280 × 960 : alignement du bouton avec la colonne droite, largeur identique,
|
||||
absence de chevauchement avec le tableau, reprise effective du jeu. Les
|
||||
interactions communautaires du scénario passent également en mode fichier.
|
||||
Log : `build/pause156-client.log`, aperçu `build/pause156-preview.png`.
|
||||
|
||||
`./gradlew check build assemblePack -x :sanctuary:runGameTest` réussit.
|
||||
Export packwiz, intégrité ZIP, versions du mod / pack et contenu du JAR
|
||||
embarqué vérifiés. Les shaders sont inchangés et les artefacts beta.155
|
||||
conservés avec leurs empreintes. Logs : `build/pause156-build-pack.log`,
|
||||
`build/pause156-export.log`, reçu `build/pause156-artifacts.json`.
|
||||
La suite serveur complète de beta.155 compte 229 réussites / 252, avec les
|
||||
23 échecs historiques. Elle n’est pas relancée pour ce déplacement de bouton.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
- `mods/sanctuary/build/libs/sanctuary-beta.156.jar` — SHA-256 `c325a757cff6063fe3702e755a57a3abc13ad86e071762354a3c449504d51c6f`.
|
||||
- `build/Sanctuary-beta.156.mrpack` — SHA-256 `0537273dbfecb071d481f3f22982fbbb9a8e8a75581e38128ded87926ee699d0`.
|
||||
@@ -0,0 +1,82 @@
|
||||
# RENDER-147 — PBR proche, lune et portée 256 blocs
|
||||
|
||||
Branche `codex/pbr-close-range-beta147`, socle beta.146 `cf9a670`.
|
||||
Minecraft 26.3, Java 25 ; dépendances et formats de sauvegarde inchangés.
|
||||
|
||||
## Résultat
|
||||
|
||||
- Le prépassage des récepteurs PBR comparait encore les profondeurs natives
|
||||
avec un epsilon fixe de 0,0000001. En profondeur inversée, cette marge
|
||||
devenait trop stricte au voisinage de la caméra : de nombreux fragments
|
||||
alternaient entre le rendu natif et le PBR lors de mouvements minuscules.
|
||||
- La comparaison utilise maintenant une distance reconstruite avec la marge
|
||||
bornée de 5 mm déjà employée par les passes couleur. La sélection de la
|
||||
surface PBR la plus proche et son test de profondeur EQUAL restent stricts.
|
||||
Aucun décalage du maillage ni fondu supprimant le PBR près de la caméra.
|
||||
- La lune ne reçoit plus le renforcement spéculaire du soleil (×20 pour
|
||||
l’eau, ×4 pour les autres matières). Son coefficient lunaire et ses phases
|
||||
restent appliqués ; le grand reflet solaire est conservé.
|
||||
- Distance commune PBR/SSR : 16, 32 (défaut), 64, 128 ou 256 blocs.
|
||||
À 256, le rayon SSR peut aussi rechercher jusqu’à 256 blocs. Nombre de pas
|
||||
et budgets de maillage inchangés ; les limites du terrain visible/chargé,
|
||||
des reflets hors écran et du budget de maillage subsistent.
|
||||
- PBR 80 %, SSR 20 %, mélange des eaux et préférences de beta.146 conservés.
|
||||
Libellés FR/EN mis à jour.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Mondes de test jetables, macOS Apple M1. Aucune sauvegarde personnelle utilisée.
|
||||
|
||||
- Reproduction avant correction sous Vulkan : à 12 cm du sol de briques,
|
||||
59 442 / 262 272 pixels changent de plus de 12 niveaux RVB cumulés sous une
|
||||
rotation de 0,00002 degré. Le test échoue. Journal :
|
||||
`build/beta147-close-before-vulkan.log`.
|
||||
- Même scène après correction : 1 / 262 272 pixels à 12 cm ; également testé
|
||||
à 25 cm, 50 cm et 1 m. Suite PBR Vulkan réussie :
|
||||
`build/beta147-close-after-vulkan.log`.
|
||||
- Preuves avant/après dans `build/evidence/close-before-vulkan/` et
|
||||
`build/evidence/close-after-vulkan/`.
|
||||
|
||||
- Suite PBR et préférences OpenGL finale réussie : mêmes scènes proches,
|
||||
persistance des distances dont 256 blocs, FR/EN, OFF/zéro, intensités,
|
||||
rechargement, redimensionnement et effets combinés.
|
||||
Journal : `build/beta147-close-final-opengl.log` ; preuves :
|
||||
`build/evidence/beta147-close-final-opengl/`.
|
||||
|
||||
- Suite SSR Vulkan finale réussie : F5, intersections, portées dont 256,
|
||||
eau/verre/métal, OFF/zéro, rechargement et redimensionnement.
|
||||
Journal : `build/beta147-ssr-final-vulkan.log` ; preuves :
|
||||
`build/evidence/beta147-ssr-final-vulkan/`.
|
||||
- À PBR 80 % / SSR 20 %, le soleil conserve 22 697 pixels quasi blancs sur
|
||||
la scène aquatique 854 × 480. La lune seule en compte zéro, tout en modifiant
|
||||
visiblement 40 808 pixels par rapport au PBR OFF. Capture du bloom lunaire
|
||||
inspectée : reflet doux, sans plateau blanc.
|
||||
|
||||
- Suite SSR OpenGL finale réussie également : zéro pixel quasi blanc pour
|
||||
la lune, 22 111 pour le soleil et 40 749 pixels de reflet lunaire visibles.
|
||||
Intersections : 91 / 518 400 pixels changés sous rotation minuscule.
|
||||
Journal : `build/beta147-ssr-final-opengl.log` ; captures correspondantes
|
||||
dans `build/evidence/beta147-ssr-final-opengl/`.
|
||||
- `./gradlew check build` dans un instantané isolé : 252 tests serveur,
|
||||
229 réussis, 23 échecs, avec exactement les mêmes identifiants que beta.146.
|
||||
Journal : `build/beta147-check-build-isolated.log` ; comparaison :
|
||||
`build/beta147-server-failures.json`. La vérification globale reste en échec.
|
||||
Les derniers ajouts lune/256 concernent exclusivement le rendu client,
|
||||
ses réglages et ses tests ; ils sont validés par les suites finales ci-dessus.
|
||||
- Assemblage final réussi : `./gradlew build assemblePack -x :sanctuary:check`,
|
||||
après les contrôles purs et serveur exécutés dans l’instantané, sans les
|
||||
répéter. Journal : `build/beta147-build-pack.log`. Cette exclusion ne
|
||||
transforme pas le contrôle complet en réussite.
|
||||
|
||||
## Artefact
|
||||
|
||||
[Sanctuary-beta.147.mrpack](../build/Sanctuary-beta.147.mrpack), également copié
|
||||
à côté de beta.146 dans `sanctuary-beta/build/`. Aucun ancien pack remplacé,
|
||||
aucune installation Prism ou publication effectuée.
|
||||
|
||||
Archive ZIP vérifiée, un seul JAR Sanctuary beta.147, identique au JAR construit,
|
||||
shaders identiques aux sources finales, options FR/EN 256 présentes,
|
||||
Minecraft 26.3 / Fabric Loader 0.19.5 conservés. Taille : 10 519 851 octets.
|
||||
SHA-256 : `b8044243dbe160d5171ea584052cf5732393e4d91352c29c33b727af80c0a5bc`.
|
||||
Reçu : `build/beta147-artifacts.json`.
|
||||
|
||||
@@ -0,0 +1,173 @@
|
||||
# PBR-142 — Stabilité du relief et Vulkan par défaut
|
||||
|
||||
Socle beta.141 `7ce01c4`, branche `codex/pbr-refresh-beta142`.
|
||||
Minecraft 26.3 / Java 25. Livraison beta.142.
|
||||
|
||||
## Contrat
|
||||
|
||||
Corriger le clignotement lors de la reconstruction des sections PBR : conserver
|
||||
le rendu précédent jusqu'à ce que le remplaçant soit disponible et éviter les
|
||||
reconstructions dues seulement aux lumières dynamiques. Une invalidation pendant
|
||||
une reconstruction doit être conservée, sans annuler indéfiniment le travail.
|
||||
Le PBR passe à 80 % par défaut, valeur confirmée par l'utilisateur ; les choix
|
||||
explicitement enregistrés restent conservés.
|
||||
|
||||
La capture `2026-09-18_04.19.34.png` montre des points très clairs, plus fins
|
||||
que les pixels des textures, sur des parois et un plafond de grotte. L'utilisateur
|
||||
confirme OpenGL et leur disparition quand seul le PBR est coupé. Examiner
|
||||
les lectures de textures et les calculs aux angles rasants séparément du cache.
|
||||
|
||||
Tests natifs prévus : recalcul de section sous observation, invalidations
|
||||
répétées, remplacement atomique, suppression réelle de blocs, lumière portée,
|
||||
cache et préférences ; OpenGL et Vulkan. Pas de monde personnel ouvert.
|
||||
|
||||
## Précision du signalement et implémentation
|
||||
|
||||
L'utilisateur précise ensuite que le bruit apparaît **en mouvement**, et demande
|
||||
le passage à Vulkan. Il ne faut donc pas attribuer les points de sa capture au
|
||||
seul clignotement de reconstruction : ce sont deux vérifications distinctes.
|
||||
|
||||
- Les sections PBR publiées restent affichées jusqu'au remplacement de leur
|
||||
maillage. Une nouvelle invalidation durant la construction est mémorisée ;
|
||||
elle n'annule plus continuellement le travail. Le budget permanent reste
|
||||
24 Mio, avec temporairement l'ancien et le nouveau maillage d'une section.
|
||||
- Les invalidations de lumière dynamique ne régénèrent plus la géométrie PBR.
|
||||
Les changements de blocs et de lumière du ciel restent pris en compte.
|
||||
- Lectures explicites des texels de profondeur/scène et du niveau de matériau,
|
||||
gradients de texture calculés avant les rejets de fragments. Les produits
|
||||
scalaires des reflets sont bornés, la puissance entière de Fresnel est
|
||||
explicite, les résultats non finis ne remplacent pas la scène native.
|
||||
Aucun flou ajouté aux textures.
|
||||
- Le choix graphique natif « Par défaut » devient « Vulkan (par défaut) »
|
||||
(FR/EN) et essaie Vulkan en premier. Minecraft conserve son repli OpenGL si
|
||||
Vulkan ne peut pas être initialisé. Un choix **OpenGL explicite** reste
|
||||
disponible ; pour une installation ainsi réglée, sélectionner Vulkan dans
|
||||
les réglages vidéo puis redémarrer. Aucun moteur externe ni VulkanMod ajouté.
|
||||
- 80 % est la nouvelle intensité PBR initiale. Les valeurs déjà enregistrées
|
||||
explicitement restent conservées.
|
||||
|
||||
Le code Minecraft 26.3 a été inspecté : `PreferredGraphicsApi.VULKAN` essaie
|
||||
Vulkan puis OpenGL ; le choix natif `DEFAULT` essayait auparavant OpenGL d'abord.
|
||||
Tous les effets Sanctuary utilisent déjà l'API graphique native. Le seul hook
|
||||
OpenGL direct est le correctif spécifique de lecture des panoramas dans
|
||||
`GlCommandEncoder` ; il ne remplace pas la voie Vulkan native.
|
||||
|
||||
Référence pour les lectures après contrôle divergent :
|
||||
[documentation Khronos des samplers](https://wikis.khronos.org/opengl/Sampler_%28GLSL%29).
|
||||
La correction rend ces lectures explicites ; elle ne constitue pas à elle seule
|
||||
une reproduction du défaut sur le pilote Windows de l'utilisateur.
|
||||
|
||||
## Observations de diagnostic
|
||||
|
||||
Le détecteur de points blancs isolés (minimum RGB 170, au moins cinq voisins
|
||||
sur huit sous 120) compte 669 points sur l'image utilisateur et zéro sur la
|
||||
première grotte de contrôle. Il s'agit de scènes, résolutions et pilotes différents,
|
||||
pas d'un avant/après reproduisant exactement le bug utilisateur. Les rendus
|
||||
natifs OpenGL de contrôle étaient déjà exempts de ce grain avant les nouvelles
|
||||
protections du shader ; le signalement Windows reste donc à reconfirmer là-bas.
|
||||
|
||||
Le test de rafraîchissement conserve les mêmes maillages publiés durant douze
|
||||
invalidations consécutives, compare l'image et vérifie que des remplacements
|
||||
aboutissent. Le test de torche alterne quatre fois les torches normales/des âmes
|
||||
sans reconstruction des normales. Le contrôle de mouvement presse réellement
|
||||
Avancer, maintient la torche et le PBR actifs et vérifie un déplacement d'au moins
|
||||
un bloc avant de vérifier les 24 captures. Les angles -30°, 0° et 35° sont aussi
|
||||
contrôlés, ainsi que les effets combinés et les préférences.
|
||||
|
||||
### Domaine invalide du reflet de la torche en main
|
||||
|
||||
Pour la lumière du joueur en vue subjective, la source est la caméra : le
|
||||
vecteur lumière et le vecteur de vue sont parallèles. L'ancien
|
||||
`pow(1 - max(dot(v,h),0),5)` n'avait aucune borne supérieure pour ce produit
|
||||
scalaire. Un calcul reproductible Float32 (100 000 positions, graine 142)
|
||||
donne 19 991 bases légèrement négatives, jusqu'à -2,3841858e-7, contre zéro
|
||||
après clamp. C'est une reproduction numérique d'un **domaine de calcul invalide**,
|
||||
pas une reproduction des pixels produits par le pilote utilisateur.
|
||||
|
||||
GLSL 3.30 ne définit pas `pow` pour une base négative, même avec un exposant
|
||||
entier : [spécification Khronos, fonctions exponentielles](https://registry.khronos.org/OpenGL/specs/gl/GLSLangSpec.3.30.pdf).
|
||||
Le correctif borne les cosinus à [0,1] et remplace cette puissance par des
|
||||
multiplications. La torche alignée sur la caméra ne dépend donc plus du traitement
|
||||
de cette entrée invalide par le pilote. Reçu numérique ignoré :
|
||||
`build/pbr142-fresnel-domain.json`.
|
||||
|
||||
### Mise à jour des fixtures antérieures
|
||||
|
||||
La suite Vulkan complète s'est arrêtée au contrôle SSGI de coin : l'oracle
|
||||
ne trouvait plus de pierre neutre (`rows=0`), car les lumières colorées ajoutées
|
||||
depuis beta.139/140 teintaient la pierre avec la lave. Le test de proximité SSGI
|
||||
et le test PBR solaire isolent désormais leur effet en coupant cette autre passe.
|
||||
Aucun seuil n'a été diminué et aucun changement de rendu SSGI n'est livré.
|
||||
Le sous-ensemble en échec est relancé séparément ; les étapes précédentes
|
||||
(ombres, CTM, bloom, lens flare, déplacement SSGI) avaient réussi.
|
||||
|
||||
## Vérifications natives
|
||||
|
||||
Sur Mac Apple M1, Java 25 et Minecraft 26.3 :
|
||||
|
||||
- OpenGL : suite couleurs/directions/rafraîchissement en 3 min 36 s, puis
|
||||
déplacement continu avec torche active en 1 min 36 s. Zéro point blanc isolé
|
||||
sur les 24 images de mouvement et les trois angles de grotte.
|
||||
- Vulkan/MoltenVK 1.4.2 : sélection automatique sans argument de moteur,
|
||||
couleurs/directions/rafraîchissement en 3 min 47 s. Dernier test continu avec
|
||||
torche active en 1 min 37 s, zéro point blanc isolé sur les 24 images.
|
||||
- Ombrages lune/midi/feuilles, distances et précisions, stabilité temps réel,
|
||||
CTM, bloom (minerais, torche, lampe, lave, soleil), émissifs indépendants et
|
||||
lens flare validés sous Vulkan dans la suite d'effets. Le déplacement SSGI
|
||||
sur douze blocs passe également. La suite s'arrête ensuite sur l'oracle
|
||||
ancien de couleur de pierre décrit ci-dessus : ne pas présenter ce lancement
|
||||
de 7 min 15 s comme une réussite complète.
|
||||
- Reprise ciblée après isolation de cet oracle : SSGI près des surfaces puis
|
||||
PBR extérieur réussis sous Vulkan en 2 min 55 s. Proximité 35/100, haute
|
||||
résolution, léger mouvement, toit ajouté/retiré, reload, resize, zéro/OFF et
|
||||
effets combinés. Gain SSGI au coin test : 6,01 sur 99 lignes à 35 %.
|
||||
- Les nouvelles valeurs initiales et les choix enregistrés sont testés, dont
|
||||
une intensité PBR explicitement enregistrée à 50 qui reste à 50.
|
||||
|
||||
Les premiers essais du nouveau contrôle de mouvement ont permis de corriger
|
||||
son entrée clavier : `pressKey` ne maintient pas une touche enfoncée. Le test
|
||||
final utilise `holdKey` puis `releaseKey`, vérifie le déplacement réel et refuse
|
||||
la disparition de la lumière portée ou du PBR pendant les captures.
|
||||
|
||||
Les jeux de test utilisent uniquement des mondes neufs et ignorés. La capture
|
||||
et le pilote Windows utilisateur n'ont pas été reproduits à l'identique ; leur
|
||||
retest reste ouvert malgré les corrections numériques et les contrôles natifs.
|
||||
|
||||
## Construction et archives
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
réussit en **2 min 38 s**, 126 tâches. Le GameTest serveur dédié reste exclu
|
||||
selon le refus EULA antérieur ; les suites clientes ci-dessus ont réellement
|
||||
utilisé les deux moteurs natifs. `git diff --check` passe.
|
||||
|
||||
Les archives normale/Test embarquent le même JAR, leurs versions/index/hashes
|
||||
sont vérifiés, leurs sources correspondent aux fichiers courants. Le template
|
||||
contient exactement les ressources attendues. Les onze entrées de production
|
||||
modifiées par rapport à beta.141 sont limitées au PBR, au choix graphique et
|
||||
aux traductions ; les ressources de jeu antérieures sont conservées.
|
||||
|
||||
SHA-256 du JAR : `0bc2da9df2ef004e6dc78932cfde7b31b7717c63c83ceed789d151177c41bc1a`.
|
||||
|
||||
- `Sanctuary-beta.142.mrpack` : 10464746 octets ; SHA-256 `dba4fd8e1e3b20136faa1c1de3494df3cb250c87de199c04e07883c786ca48ee`.
|
||||
- `Sanctuary-Test-beta.142.mrpack` : 10483672 octets ; SHA-256 `d56b81a4aea6649a40a3c49dedee904989943a518ad0ae7c520b808dd0f9b9a7`.
|
||||
|
||||
Reçu détaillé ignoré : `build/shader142-artifact.json`.
|
||||
|
||||
## Livraison réalisée
|
||||
|
||||
[Release beta.142](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.142)
|
||||
publiée depuis `ea151dd5df8c7c5abd0107656f40c723efbf2ebe`. Canal stable :
|
||||
`d661260e2bbabb0326c86d6cc543daf986979596`. Archives normale/Test, ZIP d'amorçage Prism et template
|
||||
publiés avec vérification de leurs téléchargements ; tag et artefacts immuables.
|
||||
|
||||
Deux synchronisations isolées puis deux synchronisations de l'instance
|
||||
**Sanctuary Beta** réussies. Les 923 fichiers personnels suivis ont conservé
|
||||
leurs hashes, notamment mondes, réglages et packs personnels. Aucun monde
|
||||
personnel ouvert. Sauvegarde préalable : `sanctuary-backups/before-beta.142/`.
|
||||
L'instance locale conserve son réglage graphique natif « default », qui démarre
|
||||
désormais avec Vulkan prioritaire. Un Windows explicitement réglé sur OpenGL
|
||||
doit sélectionner Vulkan dans les réglages vidéo et redémarrer.
|
||||
|
||||
Archives locales également dans `sanctuary-beta/build/`. Le checkout de travail
|
||||
historique modifié `sanctuary-beta` n'a pas été réinitialisé ; seules ces archives
|
||||
ignorées y ont été déposées. Sources sur `codex/pbr-refresh-beta142`.
|
||||
@@ -0,0 +1,68 @@
|
||||
# RENDER-148 — PBR 50 % et reflet solaire diffus
|
||||
|
||||
Branche `codex/pbr-soft-sun-beta148`, socle beta.147 `96a36d9`.
|
||||
Minecraft 26.3, Java 25, dépendances et sauvegardes inchangés.
|
||||
|
||||
## Résultat
|
||||
|
||||
- PBR à 50 % par défaut, SSR toujours à 20 % et portée commune jusqu’à 256.
|
||||
- Les configurations anciennes contenant exactement PBR 80 % passent à 50 %.
|
||||
Un marqueur de migration conserve ensuite tout choix explicite, y compris
|
||||
un nouveau choix 80 %. Les autres anciennes intensités restent conservées.
|
||||
- Le reflet solaire de l’eau avait un renforcement ×20 et une compression
|
||||
exponentielle qui effaçait les détails dans une large zone blanche.
|
||||
Le renforcement passe à ×6 et le lobe est plus diffus (rugosité minimale
|
||||
de 0,42 au lieu de 0,34 pour le lobe céleste de l’eau).
|
||||
- Pour le soleil sur l’eau, fusion par texel entre éclaircissement vers le
|
||||
blanc et lumière douce fondée sur la couleur native. La pondération emploie
|
||||
une compression rationnelle, sans atteindre brutalement un plateau blanc.
|
||||
La texture et ses animations restent natives ; aucun bruit ajouté.
|
||||
- La lune conserve son intensité atténuée, sans renforcement solaire.
|
||||
Les lampes et matières solides conservent leur fusion spéculaire précédente.
|
||||
Le bloom reste réglable et suit la lumière réellement ajoutée.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Scènes plates jetables, Apple M1, Vulkan et OpenGL. Le test solaire contrôle
|
||||
une lumière largement visible et limite les pixels quasi blancs à moins de
|
||||
0,5 % de l’image, au lieu d’imposer une grande tache blanche.
|
||||
|
||||
Premier contrôle Vulkan à PBR 50 % / SSR 20 % : 149 908 pixels éclaircis,
|
||||
zéro pixel quasi blanc sur 854 × 480. Captures vues du dessus et à soleil bas
|
||||
inspectées : la texture reste visible dans la traînée lumineuse.
|
||||
Preuves : `build/evidence/beta148-preview/`.
|
||||
Rendu de la traînée solaire approuvé par le créateur après inspection de la capture.
|
||||
|
||||
- Suites SSR complètes Vulkan et OpenGL réussies : F5, intersections, portées,
|
||||
eau/verre/métal, OFF/zéro, lune, bloom, rechargement et redimensionnement.
|
||||
Journaux : `build/beta148-ssr-vulkan.log`, `build/beta148-ssr-opengl.log`.
|
||||
Sous OpenGL, 146 680 pixels éclaircis et zéro pixel quasi blanc dans la scène
|
||||
solaire. La lune reste visible sans saturation (35 865 pixels modifiés).
|
||||
Preuves : `build/evidence/beta148-ssr-vulkan/` et
|
||||
`build/evidence/beta148-ssr-opengl/`.
|
||||
|
||||
- Suites PBR/préférences Vulkan et OpenGL réussies : défaut 50 %, migration
|
||||
de l’ancien 80 %, conservation d’un nouveau choix explicite 80 %, valeurs
|
||||
personnalisées, FR/EN, proximité, OFF/zéro, intensités et rechargement.
|
||||
Journaux : `build/beta148-pbr-vulkan.log`, `build/beta148-pbr-opengl.log`.
|
||||
- `./gradlew check build` dans l’instantané isolé : 252 tests serveur,
|
||||
229 réussis, 23 échecs. Exactement les mêmes identifiants que beta.147,
|
||||
aucun nouvel échec. Journal : `build/beta148-check-build-isolated.log` ;
|
||||
comparaison : `build/beta148-server-failures.json`. Le contrôle global
|
||||
demeure donc en échec.
|
||||
- Assemblage final réussi : `./gradlew build assemblePack -x :sanctuary:check`,
|
||||
sans répéter les contrôles purs et serveur déjà exécutés dans l’instantané.
|
||||
Journal : `build/beta148-build-pack.log`. L’exclusion ne constitue pas
|
||||
une réussite du contrôle complet.
|
||||
|
||||
## Artefact
|
||||
|
||||
[Sanctuary-beta.148.mrpack](../build/Sanctuary-beta.148.mrpack), également copié
|
||||
à côté des autres versions dans `sanctuary-beta/build/`. Archive ZIP vérifiée,
|
||||
un seul JAR Sanctuary beta.148 identique au JAR construit, shaders finaux
|
||||
identiques aux sources, textes FR/EN 50 % et dépendances exactes vérifiés.
|
||||
Taille : 10 520 050 octets. SHA-256 :
|
||||
`597cc2a96eabc3cf0ebf8ac59b4f94cf7cabf0c773e1dce13c10736ca6fcba38`.
|
||||
Reçu : `build/beta148-artifacts.json`.
|
||||
Aucune publication ni installation Prism effectuée.
|
||||
|
||||
+221
@@ -0,0 +1,221 @@
|
||||
# PBR-SSR — eau, verre et reflets pixélisés
|
||||
|
||||
Livraison locale **beta.145**, branche `codex/pbr-ssr`. Socle PBR beta.142 /
|
||||
suivi beta.143 et copie figée des sources du chantier d’eau beta.144. Minecraft 26.3, API graphique native.
|
||||
|
||||
## Contrat
|
||||
|
||||
Les reflets colorent les texels de matière sur une grille 16 × 16 liée aux UV,
|
||||
avec les normales procédurales existantes. Eau et verre sont diélectriques.
|
||||
L’eau reprend les faces du tessellateur natif (niveaux, pentes, écoulements,
|
||||
waterlogging), sans modification de géométrie ni simulation de vagues.
|
||||
Le verre réfléchit aussi sur les zones sans pigment de sa texture. Les pixels
|
||||
pigmentés conservent leur relief même avec un alpha faible ; l’alpha nul
|
||||
utilise la normale géométrique.
|
||||
|
||||
Les images des normales d’eau sont préparées au chargement du matériau ; leur
|
||||
séquence suit l’horloge effective des animations de l’atlas, avec interpolation.
|
||||
Seules les petites tuiles de normales changent sur le GPU, pas le maillage.
|
||||
Les normales des textures haute résolution sont rééchantillonnées à 16 × 16.
|
||||
Au-delà de 1 024 images par sprite, un avertissement signale le repli vers
|
||||
une normale fixe pour borner la mémoire.
|
||||
|
||||
L’option FR/EN « Reflets du paysage — expérimental » est OFF initialement,
|
||||
intensité 50 %, bornée entre 0 et 100. Elle exige le PBR actif. L’eau naturelle
|
||||
reste indépendante pour ses couleurs, sa transparence et sa brume.
|
||||
|
||||
## Pipeline et limites
|
||||
|
||||
Couleur et profondeur du paysage sont copiées après les opaques et avant les
|
||||
transparences, dans les deux chemins natifs. Le chemin classique ferme la passe
|
||||
opaque avant la copie, puis reprend la transparence native dans une nouvelle
|
||||
passe. Aucune copie d’attachement Vulkan encore ouvert.
|
||||
|
||||
Une profondeur propre sélectionne le récepteur PBR le plus proche devant le
|
||||
paysage opaque. Une vitre devant l’eau reçoit seule le SSR ; les couches
|
||||
suivantes conservent leur rendu natif. La profondeur du fond n’est pas utilisée
|
||||
comme profondeur de surface de l’eau.
|
||||
|
||||
8 à 32 pas déterministes adaptés à la longueur écran, puis quatre raffinements maximum, récepteurs jusqu’à
|
||||
32 blocs et rayons jusqu’à 128 blocs. Pas de bruit aléatoire, historique,
|
||||
réflexion récursive, réfraction nouvelle, lecture GPU vers CPU ou ajout de
|
||||
lumière de gameplay. Les objets hors écran ou masqués ne sont pas retrouvés. Les détails fins entre
|
||||
deux pas peuvent être manqués ; une interpolation finale affine le point
|
||||
d’intersection sans augmenter le nombre de recherches.
|
||||
Un échec revient progressivement au rendu existant ; les transparences et les
|
||||
effets Sanctuary postérieurs à la capture ne figurent pas dans le reflet.
|
||||
|
||||
Les reflets sont composés après le SSGI, avant contours, bloom et rayons.
|
||||
La main et le HUD restent en dehors du traitement. Le PBR conserve son
|
||||
périmètre Overworld hors immersion et s’efface avec les moteurs externes.
|
||||
|
||||
Budget de maillages : 24 Mio de solides, 8 Mio supplémentaires de transparences.
|
||||
Deux profondeurs plein écran servent aux surfaces PBR ; la couleur de paysage
|
||||
SSR est allouée seulement à ON/intensité positive. La copie de composition PBR
|
||||
existante est réutilisée. Aucun buffer de normales plein écran.
|
||||
La grille visuelle ne signifie pas qu’un seul fragment GPU est exécuté par texel.
|
||||
|
||||
## Intégration
|
||||
|
||||
Le commit `38f4d6c` apporte le SSR et les récepteurs transparents. Le commit
|
||||
`0cfd51e` importe une copie contrôlée des sources beta.144 depuis le chantier
|
||||
`codex/water-beta144`, fondé sur `580b241`. Les empreintes des fichiers ont été
|
||||
comparées avant et après la copie ; le reçu local est dans
|
||||
`build/water144-snapshot/manifest.json`. Cette intégration ne prétend pas que
|
||||
beta.144 a été publiée ou que son benchmark isolé est terminé. Le code de
|
||||
production de cet instantané est identique à celui du commit
|
||||
`7eef945` ensuite créé sur la branche d’eau. Les essais ci-dessous portent
|
||||
sur les sources réunies dans cette branche.
|
||||
|
||||
Points d’entrée : `PbrMaterials` et `PbrAnimation` pour les normales animées,
|
||||
`PbrFluidMesh` pour le tessellateur natif, `PbrTerrain` pour les deux budgets,
|
||||
`ReflectionSceneMixin` pour la capture opaque, `PixelReflections` et
|
||||
`pixel_reflections.fsh` pour la sélection et le rayon. Les horloges de sprites
|
||||
sont référencées faiblement des deux côtés afin de ne pas retenir les anciens
|
||||
atlas après rechargement.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Machine : Apple M1, Minecraft 26.3, Java 25, macOS. Mondes plats de test neufs,
|
||||
graine 122 ; aucune sauvegarde personnelle utilisée. Les captures conservent
|
||||
le préfixe historique `sanctuary-beta142-shader` du banc de test.
|
||||
|
||||
- Client OpenGL 4.1 Metal 90.5, transparence classique : suite SSR réussie avec les sources d’eau
|
||||
intégrées (`build/ssr145-opengl-final.log`).
|
||||
- Client Vulkan/MoltenVK : suite SSR avec transparence améliorée réussie
|
||||
(`build/ssr145-vulkan-final.log`).
|
||||
- Régression du PBR historique et nouvelles assertions de profils, normales
|
||||
transparentes, persistance, bornes et traductions SSR : réussies
|
||||
(`build/ssr145-pbr-regression-retry.log`). Une première tentative interrompue
|
||||
s’était arrêtée sur un timeout de sémaphore Vulkan ; elle reste un échec
|
||||
consigné dans `build/ssr145-pbr-regression.log`.
|
||||
- Suite fonctionnelle eau beta.144 : réussie, y compris profils, fond modifié,
|
||||
brume, océan, rechargement, préférences, cascades et pack de matériaux
|
||||
(`build/ssr145-water-functional.log`). Son long benchmark autonome a été
|
||||
explicitement sauté ; le coût SSR est mesuré séparément ci-dessous.
|
||||
- Le relief rouge puis bleu produit deux contributions de couleur distinctes
|
||||
dans le bassin ; caché par un mur opaque, ce changement ne traverse pas le mur.
|
||||
- Eau animée sans nouvelle analyse de texture, verre transparent devant l’eau,
|
||||
métal, déplacement minime de caméra, rotation, OFF/zéro, immersion,
|
||||
rechargement de ressources et redimensionnement sont exercés par assertions.
|
||||
L’horloge d’eau reste active après rechargement ; les profils sable et étang
|
||||
restent corrects avec PBR et SSR simultanément actifs.
|
||||
- Des captures couvrent également les effets combinés, la lune, les angles
|
||||
rasants, la translation de caméra, la sortie du paysage hors écran, la pierre
|
||||
rugueuse OFF/ON, des vitres colorées superposées, un écoulement, une cascade
|
||||
et une dalle gorgée d’eau. Elles ne remplacent pas une inspection
|
||||
artistique de tous les angles et de tous les packs.
|
||||
|
||||
Captures locales OpenGL : [OFF](../build/ssr-evidence/beta145-opengl-final/0000_sanctuary-beta142-shader-ssr-water-off.png),
|
||||
[ON](../build/ssr-evidence/beta145-opengl-final/0001_sanctuary-beta142-shader-ssr-water-on.png).
|
||||
Le dossier `build/ssr-evidence/beta145-opengl-final/` contient les autres captures.
|
||||
Les mêmes cas Vulkan sont conservés dans
|
||||
`build/ssr-evidence/beta145-vulkan-final/`. Les comparaisons eau, métal et
|
||||
verre empilé ont été inspectées visuellement. Ces pièces sont ignorées par Git.
|
||||
|
||||
## Coût mesuré
|
||||
|
||||
1920 × 1080, PBR à 80 %, SSR à 100 % pour accentuer le résultat, VSync OFF,
|
||||
limite de FPS et réduction AFK désactivées. Chaque scène chauffe 30 ticks par
|
||||
état avant 80 ticks de mesure, soit 324 à 483 images pour OpenGL et 317 à 477 pour Vulkan. Ordre OFF puis
|
||||
ON ; il s’agit d’un diagnostic local court, pas d’une campagne statistique.
|
||||
Le temps de frame mesure `Minecraft.renderFrame`, présentation comprise.
|
||||
|
||||
| OpenGL | Médiane OFF / ON (ms) | p95 OFF / ON (ms) | Écart médian |
|
||||
| --- | --- | --- | --- |
|
||||
| Petit étang | 7,57 / 9,42 | 10,35 / 12,50 | +1,85 ms |
|
||||
| Eau dominante | 7,76 / 11,67 | 10,67 / 13,96 | +3,91 ms |
|
||||
| Construction vitrée | 7,85 / 10,12 | 10,67 / 12,65 | +2,27 ms |
|
||||
|
||||
| Vulkan | Médiane OFF / ON (ms) | p95 OFF / ON (ms) | Écart médian |
|
||||
| --- | --- | --- | --- |
|
||||
| Petit étang | 7,97 / 10,36 | 8,97 / 11,49 | +2,40 ms |
|
||||
| Eau dominante | 10,10 / 12,23 | 10,97 / 12,97 | +2,13 ms |
|
||||
| Construction vitrée | 8,52 / 11,25 | 9,49 / 12,20 | +2,72 ms |
|
||||
|
||||
La mesure GPU Vulkan autour de `PixelReflections.render` donne, à ON,
|
||||
**2,07 / 2,18 ms** (médiane / p95) pour l’étang, **2,56 / 2,63 ms** pour
|
||||
l’eau dominante et **2,09 / 2,21 ms** pour le verre. À OFF, la sonde mesure
|
||||
0,03 ms environ. Ce périmètre couvre la copie de composition et le dessin
|
||||
SSR ; il exclut la capture opaque antérieure et la profondeur partagée PBR.
|
||||
La sonde utilise les valeurs rendues par la requête native, pas une mesure
|
||||
GPU du jeu complet.
|
||||
|
||||
La requête GPU native ne fournit pas de mesure exploitable sur ce pilote
|
||||
OpenGL ; ce champ est indisponible, pas nul. Les premiers essais contaminés
|
||||
par la réduction AFK à 30 FPS sont exclus des résultats retenus.
|
||||
**L’objectif de surcoût médian inférieur à 2 ms n’est pas respecté dans l’ensemble des
|
||||
scènes.** L’option reste expérimentale et désactivée par défaut.
|
||||
|
||||
À 1080p : profondeurs partagées par le PBR = 15,82 Mio ; copie couleur SSR
|
||||
supplémentaire = 7,91 Mio, libérée à OFF/zéro. Total de ces cibles à ON :
|
||||
23,73 Mio. Les maillages observés occupent environ 0,51–0,55 Mio de solides et
|
||||
1,09–1,21 Mio de transparences, en dessous des plafonds 24 / 8 Mio vérifiés
|
||||
par assertion. Ces compteurs n’incluent ni la mémoire du moteur, ni la copie
|
||||
PBR existante, ni les atlas de matériaux de 6,25 Mio chacun ; ce ne sont pas
|
||||
des mesures de mémoire totale du processus.
|
||||
|
||||
## Construction et contrôles généraux
|
||||
|
||||
`./gradlew check build` a été exécuté jusqu’au bout : **229 GameTests serveur
|
||||
réussis sur 252, 23 échecs**, en 8 min 45 s pour la commande complète.
|
||||
Les échecs concernent les tombes/familiers, le catalogue, deux invariants de
|
||||
génération, les placements de blocs/progression/construction et les menus
|
||||
natifs. Les tests concernés et le code de gameplay serveur ne sont pas
|
||||
modifiés par ce lot. Aucun contre-test de toute la branche de départ n’est
|
||||
revendiqué. Le journal complet est `build/ssr145-check-build.log` ; le relevé
|
||||
exhaustif est `build/ssr145-server-failures.json`.
|
||||
|
||||
L’assemblage est repris avec `./gradlew check build assemblePack assembleTestPack
|
||||
-x :sanctuary:runGameTest`, en excluant uniquement cette tâche déjà exécutée.
|
||||
Cette commande réussit en 2 min 56 s (126 tâches) ; vérification du pack,
|
||||
compilation, contrôles hors GameTests serveur et assemblages passent. Les
|
||||
exports MRpack sont produits depuis leurs dossiers packwiz de staging.
|
||||
L’intégrité ZIP, les métadonnées, les traductions et mixins SSR ainsi que
|
||||
l’identité du JAR embarqué dans les deux packs sont contrôlées.
|
||||
Cette exclusion ne transforme pas le contrôle complet en succès.
|
||||
|
||||
## Reproduire les essais client
|
||||
|
||||
Base de chaque commande :
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest \
|
||||
-PsanctuaryClientTests=true -PsanctuaryQuickTests=true \
|
||||
-PsanctuaryPbr134ClientTests=true -PsanctuaryClientNoVsync=true
|
||||
```
|
||||
|
||||
- SSR Vulkan : ajouter `-PsanctuarySsrClientTests=true
|
||||
-PsanctuaryClientGraphicsBackend=vulkan -PsanctuaryClientImprovedTransparency=true`.
|
||||
- SSR OpenGL : ajouter `-PsanctuarySsrClientTests=true
|
||||
-PsanctuaryClientGraphicsBackend=opengl -PsanctuaryClientImprovedTransparency=false`.
|
||||
- Régression PBR : ajouter uniquement `-PsanctuaryClientGraphicsBackend=vulkan`.
|
||||
- Profils et rendu de l’eau : ajouter `-PsanctuaryWater144ClientTests=true
|
||||
-PsanctuaryWater144FunctionalOnly=true -PsanctuaryClientGraphicsBackend=vulkan`.
|
||||
|
||||
Le mode fonctionnel saute uniquement le long benchmark autonome beta.144.
|
||||
Les sondes de temps de frame/GPU et lectures d’images appartiennent au mod
|
||||
de test ; elles ne sont pas embarquées dans le JAR de production.
|
||||
|
||||
## Artefacts locaux
|
||||
|
||||
Les archives finales sont rafraîchies depuis le JAR testé, puis revérifiées
|
||||
(`build/ssr145-artifacts.json`). Aucun tag ni canal n’est publié.
|
||||
|
||||
| Artefact | Octets | SHA-256 |
|
||||
| --- | ---: | --- |
|
||||
| [sanctuary-beta.145.jar](../mods/sanctuary/build/libs/sanctuary-beta.145.jar) | 11369411 | `55341e2f5c8dcc352190fe96d15e86cd1ee6bb4ea2908441b70491d48f86f608` |
|
||||
| [Sanctuary-beta.145.mrpack](../build/Sanctuary-beta.145.mrpack) | 10508045 | `8bebe6227cbfe629c714a7c7547640ab5ccfbefaaf211484a93c042cfb42b5c5` |
|
||||
| [Sanctuary-Test-beta.145.mrpack](../build/Sanctuary-Test-beta.145.mrpack) | 10526966 | `54402ff8414ed1ae0d12b3b97af70c547c44dde2f3aa183712ae3769f99efbe7` |
|
||||
| [Sanctuary-Template-beta.145.zip](../build/Sanctuary-Template-beta.145.zip) | 4358316 | `226d92362a5ce922b8757b36f30c312081aca5cf73a299b82a221a12f384a95b` |
|
||||
|
||||
## Limites de validation
|
||||
|
||||
Le banc utilise un relief construit reproductible, pas une montagne générée
|
||||
représentative de tous les biomes. La validation artistique sur terrain généré,
|
||||
les textures personnalisées avec ordre/durées/interpolation atypiques et la
|
||||
stabilité sur un long trajet restent à compléter. Les surfaces peuvent perdre les petits détails entre
|
||||
les pas SSR et les zones hors écran ne sont jamais reconstruites. Windows,
|
||||
autres GPU et moteurs graphiques externes ne sont pas validés ici.
|
||||
|
||||
Aucune publication de canal ni synchronisation Prism dans cette livraison.
|
||||
@@ -0,0 +1,128 @@
|
||||
# Préparation locale des ombres portées pixélisées (ancien numéro beta.122)
|
||||
|
||||
Ticket du 17 septembre 2026, branche locale `codex/pixel-shadows-beta122`.
|
||||
Cette préparation n'a jamais été publiée sous le numéro beta.122, déjà utilisé
|
||||
par une autre livraison. Elle est intégrée au socle beta.126 et livrée en
|
||||
[beta.127](shader-beta127.md). Les chemins et mesures ci-dessous décrivent
|
||||
les essais historiques dans le dossier de préparation.
|
||||
Demande : ajouter aux réglages de Sanctuary · Vanilla Light des ombres portées
|
||||
pixélisées, avec une finesse et une distance réglables.
|
||||
|
||||
## Utilisation
|
||||
|
||||
Dans **Options → Shaders**, activer **Sanctuary · Vanilla Light**, puis
|
||||
**Ombres portées pixélisées**. L'option est désactivée par défaut pour conserver
|
||||
le coût et le rendu des installations existantes. Les choix sont :
|
||||
|
||||
- finesse de **8, 16 ou 32 pixels par bloc**, défaut 16 ;
|
||||
- distance de **16, 32 ou 64 blocs**, défaut 32.
|
||||
|
||||
Ces préférences sont conservées dans `config/sanctuary-shaders.json`, avec les
|
||||
anciens champs de couleur. Leurs valeurs numériques sont ramenées aux choix
|
||||
admis au chargement. Les libellés et explications sont disponibles en FR/EN.
|
||||
Les réglages s'appliquent sans recharger les ressources.
|
||||
|
||||
## Rendu et périmètre
|
||||
|
||||
Une carte de profondeur rend les formes d'occultation des blocs solides chargés
|
||||
autour de la caméra, indépendamment de leur présence à l'écran. Les dalles et
|
||||
escaliers conservent leurs formes. Le cache est invalidé par les changements de
|
||||
blocs, les paquets de chunks et les reconstructions du moteur natif.
|
||||
La direction solaire vient du ciel natif extrait par Minecraft, et respecte
|
||||
ainsi l'angle solaire de Sanctuary. L'effet s'atténue sous la pluie, à l'horizon,
|
||||
dans la brume et à la limite de sa portée. Il s'arrête la nuit, dans les dimensions
|
||||
sans soleil, dans les fluides et lorsqu'un moteur externe suspend Vanilla Light.
|
||||
|
||||
La profondeur du monde est lue directement par le GPU après le rendu du monde,
|
||||
avant la main et l'interface. L'inverse de la projection réelle inclut les effets
|
||||
de caméra. Les points recevant l'ombre sont arrondis sur une grille ancrée dans
|
||||
le monde ; le plan de la face est conservé pour limiter les auto-ombres.
|
||||
La carte solaire utilise également une origine alignée sur ses texels.
|
||||
Le HUD, la main, les étoiles et les captures panoramiques techniques gardent leur
|
||||
chemin de rendu. Aucun niveau de lumière de gameplay, règle serveur, sauvegarde
|
||||
ou générateur n'est changé. Aucune dépendance de rendu n'est ajoutée.
|
||||
|
||||
Cette première version couvre les **formes d'occultation des blocs** : les entités
|
||||
conservent leurs ombres natives ; les feuillages ajourés, modèles non occultants,
|
||||
block entities animés, eau et verre ne projettent pas de nouvelles silhouettes.
|
||||
Les transparences et particules déjà composées peuvent recevoir l'assombrissement
|
||||
du terrain derrière elles. Il n'y a pas d'ombres de lune ou de torches, ni de
|
||||
séparation de l'éclairage local émissif dans cette passe d'assombrissement.
|
||||
|
||||
## Coût et cycle de vie
|
||||
|
||||
Les maillages sont mis en cache par section de 16³, avec au plus quatre sections
|
||||
commencées par image et un budget souple de 3 ms pour leur construction. Les
|
||||
ombres apparaissent progressivement pendant la préparation après activation ou
|
||||
déplacement. Le volume des obstacles part de la portée choisie avec une marge de huit blocs,
|
||||
puis s’étend vers le soleil sur deux fois cette portée, arrondi aux sections.
|
||||
Les obstacles au-delà de ce volume ou dans des chunks non chargés ne sont pas
|
||||
représentés. Les mises à jour de lumière seule ne reconstruisent pas les formes.
|
||||
Le cache de sommets est plafonné à 96 Mio et omet les formes pathologiques qui
|
||||
dépassent ses limites. Les textures de profondeur font entre 512 et 4 096 pixels
|
||||
de côté selon finesse et portée. Le coût exact dépend de la scène et du GPU.
|
||||
|
||||
Les ressources sont libérées à la désactivation, au changement de monde, à la
|
||||
reconstruction des ressources et à l'arrêt du client. Cette livraison est locale :
|
||||
aucun avancement du canal packwiz ni installation personnelle ne fait partie du
|
||||
ticket.
|
||||
|
||||
## Vérification
|
||||
|
||||
Validation native sur **Minecraft 26.3, Java 25, macOS / Apple M1, OpenGL 4.1**,
|
||||
dans un nouveau monde plat de développement, graine **122** :
|
||||
|
||||
- Comparaison GPU activation/désactivation sur une plateforme blanche avec
|
||||
pilier, dalle et escalier : **920 échantillons assombris**, 63 412 inchangés,
|
||||
aucun éclairci sur les 64 332 échantillons de sol retenus.
|
||||
- Pilier entièrement hors du frustum : **42 048 échantillons** restent dans
|
||||
son ombre. Le retrait du pilier restitue la lumière sur **42 048 / 42 048**
|
||||
échantillons et préserve les 23 616 échantillons déjà éclairés. Sa repose
|
||||
restitue la même ombre, sans désactiver le cache entre ces manipulations.
|
||||
- Les trois finesses et les trois portées sont appliquées en direct ; les cartes
|
||||
GPU sont redimensionnées aux dimensions attendues. Désactiver l'option libère
|
||||
la texture et ne soumet plus de passe d'ombres.
|
||||
- À minuit, activer ou désactiver l'option donne la même image et aucune passe
|
||||
solaire n'est soumise. Au retour du jour, le rendu reprend.
|
||||
- Le rechargement des ressources restitue la même image. Les préférences
|
||||
persistent à la relecture du fichier et leurs valeurs extrêmes sont bornées.
|
||||
- Menus FR/EN inspectés en capture ; les libellés tiennent dans les contrôles
|
||||
natifs à la taille de test. Les vues de finesse 8/16/32 sont conservées.
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest \
|
||||
-PsanctuaryClientTests=true -PsanctuaryPixelShadows122ClientTests=true \
|
||||
-PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true
|
||||
```
|
||||
|
||||
Succès en **1 min 17 s**, marqueur `PIXEL_SHADOWS122_CLIENT_PASS` dans
|
||||
`build/pixel-shadows122-client.log`. Captures inspectées dans
|
||||
`build/pixel-shadows122-evidence/final/`. Les pixels sont relus uniquement dans
|
||||
le test ; le code de rendu de production n'effectue aucune lecture CPU de GPU.
|
||||
Les premiers démarrages ont permis de corriger les identifiants de pipelines,
|
||||
la directive GLSL `#include` attendue par 26.3 et deux libellés répétés du menu.
|
||||
|
||||
La commande de livraison est :
|
||||
|
||||
```sh
|
||||
./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest
|
||||
```
|
||||
|
||||
Le serveur GameTest dédié est exclu, conformément au refus de son EULA déjà
|
||||
consigné dans les livraisons précédentes. Le test graphique utilise le serveur
|
||||
intégré de son monde neuf. Aucun monde personnel n'est ouvert.
|
||||
La construction finale **réussit en 2 min 18 s** (126 tâches), journal
|
||||
`build/pixel-shadows122-build-final.log`. Le contrôle des archives confirme
|
||||
**868 sources Java** et **1 869 classes** identiques aux sorties construites,
|
||||
les ressources GLSL/FR/EN exactes dans le JAR et le template, et le même JAR
|
||||
dans les profils packwiz normal et Test. Aucune fixture cliente n'est embarquée.
|
||||
Reçu : `build/pixel-shadows122-artifact.json`.
|
||||
|
||||
Artefacts locaux : `mods/sanctuary/build/libs/sanctuary-beta.122.jar`,
|
||||
`build/packwiz/`, `build/packwiz-test/` et `build/Sanctuary-Template-beta.122.zip`.
|
||||
SHA-256 du JAR :
|
||||
`66987681cede1d2adc1dda449078e8fa85310eb2c3fecd7a905d772ce75739c9`.
|
||||
|
||||
Pas de mesure de FPS, d'essai Windows/Vulkan, de pack Iris ni de silhouettes
|
||||
animées revendiqués. Le shader reste un assombrissement graphique appliqué au
|
||||
rendu opaque et déjà composé, avec les limites de transparence décrites plus haut.
|
||||
@@ -0,0 +1,44 @@
|
||||
# Publications beta.144 à beta.166
|
||||
|
||||
Rattrapage des releases Gitea du 24 septembre 2026. La beta.144 était déjà publiée ; ses tags et fichiers restent inchangés. Les archives suivantes sont publiées avec leurs binaires conservés, sans reconstruire ni renuméroter les anciens mods.
|
||||
|
||||
| Version | Commit source | Fichiers (hors SHA-256) |
|
||||
| --- | --- | --- |
|
||||
| [beta.145](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.145) | `ed2d08827260` | sanctuary-beta.145.jar, Sanctuary-Test-beta.145.mrpack, Sanctuary-beta.145.mrpack, Sanctuary-Template-beta.145.zip |
|
||||
| [beta.146](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.146) | `cf9a670f4415` | sanctuary-beta.146.jar, Sanctuary-beta.146.mrpack, Sanctuary-Template-beta.146.zip |
|
||||
| [beta.147](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.147) | `96a36d99bea0` | sanctuary-beta.147.jar, Sanctuary-beta.147.mrpack, Sanctuary-Template-beta.147.zip |
|
||||
| [beta.148](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.148) | `6f871446bbbf` | sanctuary-beta.148.jar, Sanctuary-beta.148.mrpack, Sanctuary-Template-beta.148.zip |
|
||||
| [beta.149](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.149) | `1c23d0c17ec9` | sanctuary-beta.149.jar, Sanctuary-beta.149.mrpack, Sanctuary-Template-beta.149.zip |
|
||||
| [beta.150](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.150) | `448e2febff2a` | sanctuary-beta.150.jar, Sanctuary-beta.150.mrpack, Sanctuary-Template-beta.150.zip |
|
||||
| [beta.151](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.151) | `b97ec6c9e820` | sanctuary-beta.151.jar, Sanctuary-beta.151.mrpack, Sanctuary-Template-beta.151.zip |
|
||||
| [beta.154](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.154) | `0eb1a381d4d3` | sanctuary-beta.154.jar, Sanctuary-beta.154.mrpack, Sanctuary-Template-beta.154.zip |
|
||||
| [beta.155](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.155) | `3bfb3cb251a1` | sanctuary-beta.155.jar, Sanctuary-beta.155.mrpack, Sanctuary-Template-beta.155.zip |
|
||||
| [beta.156](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.156) | `32158e2e0513` | sanctuary-beta.156.jar, Sanctuary-beta.156.mrpack, Sanctuary-Template-beta.156.zip |
|
||||
| [beta.157](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.157) | `9791d178ab5e` | sanctuary-beta.157.jar, Sanctuary-beta.157.mrpack, Sanctuary-Template-beta.157.zip |
|
||||
| [beta.158](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.158) | `19aa8054a52f` | sanctuary-beta.158.jar, Sanctuary-beta.158.mrpack, Sanctuary-Template-beta.158.zip |
|
||||
| [beta.159](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.159) | `bdaad0c94032` | sanctuary-beta.159.jar, Sanctuary-beta.159.mrpack, Sanctuary-Template-beta.159.zip |
|
||||
| [beta.160](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.160) | `c1d22786745d` | sanctuary-beta.160.jar, Sanctuary-beta.160.mrpack, Sanctuary-Template-beta.160.zip |
|
||||
| [beta.161](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.161) | `8deba7cfb47d` | sanctuary-beta.161.jar, Sanctuary-Template-beta.161.zip |
|
||||
| [beta.162](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.162) | `0c55a375623b` | sanctuary-beta.162.jar, Sanctuary-Template-beta.162.zip |
|
||||
| [beta.163](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.163) | `905b3bcfa125` | sanctuary-beta.163.jar, Sanctuary-Template-beta.163.zip |
|
||||
| [beta.164](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.164) | `9a429c40a15b` | sanctuary-beta.164.jar, Sanctuary-Template-beta.164.zip |
|
||||
| [beta.165](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.165) | `dbb9e3428da2` | sanctuary-beta.165.jar, Sanctuary-Template-beta.165.zip |
|
||||
| [beta.166](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.166) | `460c4706d37a` | sanctuary-beta.166.jar, Sanctuary-Template-beta.166.zip |
|
||||
|
||||
## Historique et intégration
|
||||
|
||||
La PR [#1 de Chris](https://git.botsu.net/koka/sanctuary-beta/pulls/1), intitulée « beta.144 — Code d’accès », est intégrée par le merge `ad960ef`, puis corrigée et livrée dans `460c470` (beta.166). Son numéro de version historique ne remplace pas la release beta.144 dédiée à l’eau. `main` a été avancé en fast-forward sur beta.166. La PR est clôturée : Gitea refuse le mode « manually-merged » dans ce dépôt, elle reste donc affichée comme fermée plutôt que fusionnée. Sa branche et ses commits sont conservés.
|
||||
|
||||
Les beta.152 et beta.153 sont des chantiers shaders non finalisés : aucun commit de livraison ni JAR Sanctuary vérifiable retrouvé. Aucun tag ou binaire artificiel n’est créé pour remplir ces numéros. Les fichiers de travail locaux sont conservés.
|
||||
|
||||
## Contrôles et limites
|
||||
|
||||
- Intégrité ZIP, version Fabric et version source contrôlées pour chaque JAR ; sources Java archivées comparées aux commits de livraison.
|
||||
- Le ZIP de sources beta.145 est antérieur à une correction : il n’est pas publié. Le JAR correspond exactement au SHA-256 documenté dans le ticket, et la classe concernée correspond au binaire beta.146 dont les sources sont vérifiées.
|
||||
- Les MRpack embarquent le JAR de leur release, vérifié par SHA-256. Le MRpack beta.150 conservé contenait un binaire intermédiaire : une copie a été réassemblée avec le JAR final ; l’original local reste intact.
|
||||
- Chaque pièce jointe est retéléchargée anonymement et comparée à son SHA-256 local. Chaque release comporte son fichier SHA256SUMS.
|
||||
- Les anciens échecs de tests restent documentés dans les tickets liés aux releases historiques. Cette publication rétrospective ne prétend pas les avoir corrigés dans les anciens binaires.
|
||||
- La beta.166 a passé `check build assemblePack`, avec 252/252 GameTests ; voir [le contrat et les vérifications](inscription-web-beta166.md). Le parcours OAuth Discord et l’inscription sous le pseudo du dossier ont ensuite été testés localement.
|
||||
- Site compagnon : branche `codex/inscription-web-beta166`, commit `89973c1` publié. Les 12 tests ciblés accès/parrainage passent (162 assertions), y compris le refus d’un autre pseudo et la génération d’invitation refusée à un candidat en attente même administrateur.
|
||||
|
||||
Le canal packwiz et les installations personnelles ne sont pas modifiés par ce rattrapage. Aucun monde, ancien JAR ou secret n’est ajouté à Git. Les fichiers `.env`, sauvegardes SQL et configurations privées du labo restent locaux.
|
||||
@@ -0,0 +1,68 @@
|
||||
# SNOW-143 — Neige saisonnière en temps réel
|
||||
|
||||
Branche `codex/realtime-snow-melt-beta143`, socle beta.142. Minecraft 26.3 /
|
||||
Java 25. Livraison beta.143.
|
||||
|
||||
## Comportement
|
||||
|
||||
L'accumulation et la fonte saisonnière conservent le sampler natif de
|
||||
précipitation `ServerLevel.tickPrecipitation`. Sanctuary ne scanne donc toujours
|
||||
pas les chunks et ne force aucun chargement de terrain. Le changement porte
|
||||
seulement sur la probabilité des mutations de neige.
|
||||
|
||||
Pendant une chute de neige, Sanctuary ajoute désormais une couche une fois sur
|
||||
12 échantillons natifs en moyenne. La neige reste visible pendant une session,
|
||||
mais les colonnes ne montent plus instantanément. À `randomTickSpeed = 3`, une
|
||||
couche apparaît en moyenne après environ 40 minutes de neige continue.
|
||||
|
||||
Pour la fonte, chaque tirage saisonnier est multiplié par `72`, le rapport
|
||||
entre une journée réelle de 24 heures et une journée Minecraft de 20 minutes.
|
||||
|
||||
Une couche fond désormais en moyenne en 4 h 05 en été,
|
||||
8 h 10 au printemps et 16 h 25 en automne. Avec le plafond actuel de deux blocs,
|
||||
une colonne météo suivie met environ 2,7 jours réels à disparaître en été,
|
||||
5,4 jours au printemps et 11 jours en automne. L'hiver ne fond toujours pas.
|
||||
|
||||
Les règles de protection restent celles de beta.109 : seule la neige déposée
|
||||
par la météo Sanctuary depuis l'ajout du suivi `sanctuary:natural_snow_v1`
|
||||
peut fondre. La neige construite, l'ancienne neige non suivie, les couches
|
||||
manuelles, les biomes froids, les profils neigeux et la météo Vanilla restent
|
||||
préservés. Aucun format de sauvegarde ne change.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Vérifié le 18 septembre 2026 sur macOS, Java 25.
|
||||
|
||||
- `./gradlew :sanctuary:runClientGameTest -PsanctuaryClientTests=true
|
||||
-PsanctuaryMelt109ClientTests=true -PsanctuaryClientNoVsync=true
|
||||
-PsanctuaryQuickTests=true` : réussi en 57 s, avec le marqueur
|
||||
`MELT109_NATIVE_PASS`. Le test couvre l'accumulation beta.108 ralentie,
|
||||
la fonte couche par couche, la provenance persistante, les saisons, la
|
||||
gamerule, la météo Vanilla, les profils neigeux, les biomes froids et le
|
||||
rechargement de monde.
|
||||
- `./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest` :
|
||||
réussi en 2 min 31 s, 126 tâches. Le GameTest serveur dédié reste exclu
|
||||
conformément au refus antérieur de son EULA ; les contrôles natifs utilisent
|
||||
le serveur intégré.
|
||||
- `python3 scripts/pack.py check` : versions, icône et index packwiz vérifiés.
|
||||
- Exports MRpack produits avec `packwiz modrinth export`, intégrité ZIP vérifiée.
|
||||
Les deux MRpack embarquent exactement le JAR Sanctuary construit.
|
||||
|
||||
| Artefact | Taille | SHA-256 |
|
||||
| --- | ---: | --- |
|
||||
| `sanctuary-beta.143.jar` | 11 323 665 octets | `fd4b663ac2b2a106624c42b09997db229cc14d6c39d44ae83079bc6aa9d39a08` |
|
||||
| `Sanctuary-beta.143.mrpack` | 10 464 931 octets | `e55caaa41c5a3a2666ff5415846e18f44d504ac34b698f3d974091cfb52364c5` |
|
||||
| `Sanctuary-Test-beta.143.mrpack` | 10 483 858 octets | `b14bca04c4a48771209d0f7e234ff9ef6b800eb236fb969a6f0dfcee5620dafc` |
|
||||
| `Sanctuary-Template-beta.143.zip` | 4 354 153 octets | `071fd8da67d1d0224b89889a5fcbc4cd269673dddb7a52f89aa78802f154605a` |
|
||||
|
||||
## Publication
|
||||
|
||||
[Release beta.143](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.143)
|
||||
publiée depuis le commit `97ff2b54cb63afe8fdd88bfa8f2ebb25dbe3b86d`.
|
||||
Le canal packwiz stable pointe sur
|
||||
`bafff5e9fcdd95c5dd184953a34ada805e455797`.
|
||||
|
||||
Deux synchronisations isolées, puis deux synchronisations dans l'instance
|
||||
Sanctuary Beta ont réussi. Les 923 fichiers personnels suivis gardent leurs
|
||||
hashes ; aucun monde personnel n'a été ouvert. Sauvegarde préalable :
|
||||
`sanctuary-backups/before-beta.143/`.
|
||||
@@ -0,0 +1,112 @@
|
||||
# RENDER-146 — Reflets, portée commune et transitions de l’eau
|
||||
|
||||
Branche `codex/reflections-water-beta146`, socle beta.145 `ed2d088`.
|
||||
Minecraft 26.3, Java 25 et dépendances inchangés. Préparation locale uniquement.
|
||||
|
||||
## Contrat
|
||||
|
||||
- Les passes PBR et SSR vérifient la profondeur finale du rendu natif pour
|
||||
masquer les personnages, notamment en F5. La profondeur du paysage capturée
|
||||
avant les transparences reste celle utilisée pour rechercher le reflet.
|
||||
- Le PBR utilise le test matériel EQUAL contre la profondeur du récepteur
|
||||
sélectionné. L’ancienne tolérance de 3,5 cm pouvait accepter des faces
|
||||
concurrentes près des coins ; elle est supprimée. La comparaison avec la
|
||||
profondeur native conserve seulement une marge de 5 mm pour les différences
|
||||
d’ordre de calcul des matrices, sans relâcher la sélection stricte du récepteur.
|
||||
La position du vertex est déclarée invariante entre les passes.
|
||||
- PBR à 80 % et SSR à 20 % par défaut, pour toutes les matières, eau comprise.
|
||||
Deux intensités d’effets distinctes, sans réglage séparé solide/liquide.
|
||||
Les préférences explicites déjà enregistrées restent conservées.
|
||||
- Distance PBR/SSR commune : 16, 32 (défaut), 64, 128 blocs. Maillages,
|
||||
sélection des récepteurs et fondu final emploient ce réglage. Le rayon SSR
|
||||
conserve sa recherche maximale de 128 blocs dans le paysage visible.
|
||||
Budgets de maillages inchangés : solides 24 Mio, transparences 8 Mio.
|
||||
Une forte densité à grande portée peut donc limiter les surfaces disponibles.
|
||||
- Le reflet du soleil adopte un lobe plus large sur l’eau, avec une irradiance
|
||||
renforcée : grande empreinte blanche vue du dessus et traînée étendue aux
|
||||
angles rasants. Les lampes conservent leur lobe local.
|
||||
Les éclats spéculaires ne sont plus plafonnés au gris moyen. Leur compression
|
||||
conserve une valeur finie pouvant approcher le blanc. Une contribution douce
|
||||
des seules passes PBR/SSR alimente le bloom existant, sans faire briller tous
|
||||
les blocs blancs. Le réglage Bloom et son intensité gardent autorité.
|
||||
- Eau naturelle OFF par défaut dans une dimension ordinaire, ON pour une
|
||||
dimension dont le générateur est Sanctuary / ExpansionChunkGenerator.
|
||||
Le serveur transmet ce contexte à la connexion, au changement de dimension
|
||||
et à la réapparition, y compris en multijoueur. Le défaut automatique nécessite
|
||||
ce contexte envoyé par un serveur beta.146 ; sans lui, le client utilise le
|
||||
défaut ordinaire OFF, toujours réglable. Aucune donnée de monde modifiée.
|
||||
Les choix ON/OFF sont mémorisés séparément pour ces deux catégories.
|
||||
Un ancien OFF explicite est conservé dans les deux ; un ancien ON global
|
||||
adopte les nouveaux défauts par contexte.
|
||||
- Mélange des profils sur 1×1, 3×3, 5×5, 9×9 (défaut) ou 17×17 blocs, puis
|
||||
interpolation aux sommets. Océans toujours clairs. La texture demeure native.
|
||||
Surface et immersion utilisent la même étendue. Les changements du fond
|
||||
invalident toute la largeur dépendante ; changer le réglage reconstruit les
|
||||
sections chargées contenant de l’eau.
|
||||
|
||||
Le filtre de surface est calculé dans la copie de région native, avec sommes
|
||||
préfixées par hauteur pour borner le coût des sommets. Aucun accès au monde
|
||||
vivant depuis le worker, chargement de chunk ou modification de sauvegarde.
|
||||
Les textes des nouvelles options sont fournis en français et en anglais.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Machine : Apple M1, macOS, Java 25, Minecraft 26.3. Mondes plats jetables,
|
||||
graine 122 ; aucune sauvegarde personnelle utilisée.
|
||||
|
||||
- Suite SSR/PBR Vulkan avec transparence améliorée : réussie
|
||||
(`build/beta146-final-settings-vulkan.log`). F5 avec personnage réel en créatif,
|
||||
portée 16/32/64/128, couleur du paysage, eau/verre/métal, OFF/zéro,
|
||||
immersion, rechargement de ressources et redimensionnement.
|
||||
- Suite SSR/PBR OpenGL finale réussie également
|
||||
(`build/beta146-final-settings-opengl.log`), avec 22 450 pixels quasi blancs
|
||||
dans la scène solaire et 99 / 518 400 pixels modifiés dans le contrôle
|
||||
des intersections. Captures dans `build/evidence/final-settings-opengl/`.
|
||||
- F5 : les 1 900 pixels du torse contrôlés sont strictement identiques entre
|
||||
SSR OFF et ON, tandis que le reflet reste présent autour du personnage.
|
||||
- Soleil : 22 111 pixels quasi blancs sur 854 × 480 à PBR 80 % / SSR 20 %,
|
||||
sans bloom, sur la scène de contrôle Vulkan. Les captures vues du dessus et
|
||||
à soleil bas montrent une empreinte large et une traînée allongée.
|
||||
Bloom OFF libère sa cible.
|
||||
- Mur, sol et escaliers en contact : 86 pixels sur 518 400 changent de plus
|
||||
de 12 niveaux cumulés lors d’une rotation de 0,00002 degré ; seuil du test
|
||||
0,1 %. Le cadre exclut l’eau animée, qui ne constitue pas une référence
|
||||
de stabilité pour les blocs statiques.
|
||||
|
||||
- Eau : suites fonctionnelles Vulkan et OpenGL réussies
|
||||
(`build/beta146-water-vulkan.log`, `build/beta146-water-opengl.log`).
|
||||
Profils, mélange 5/9/17, changement de contexte transmis par le serveur,
|
||||
préférences séparées, immersion, fond modifié, océans, eau courante,
|
||||
waterlogging et rechargement. OpenGL contrôle aussi l’égalité des couleurs
|
||||
aux frontières des copies de région et avec l’échantillonnage de brume.
|
||||
- `./gradlew check build` exécuté dans un instantané isolé des sources :
|
||||
252 tests serveur, 229 réussis et 23 échecs. Les identifiants des échecs
|
||||
correspondent exactement au reçu archivé beta.145 ; aucun nouvel identifiant.
|
||||
Il ne s’agit pas d’une nouvelle exécution comparative de beta.145.
|
||||
Journal : `build/beta146-check-build-isolated.log` ; comparaison :
|
||||
`build/beta146-server-failures.json`. Les derniers changements après cet
|
||||
instantané concernent le rendu client, ses réglages et ses tests.
|
||||
|
||||
Les preuves Vulkan finales sont dans `build/evidence/final-settings-vulkan/`.
|
||||
La suite de régression PBR et de préférences finale réussit
|
||||
(`build/beta146-final-pbr-preferences.log`) : PBR 80 %, SSR 20 %, persistance,
|
||||
migration des anciennes préférences, FR/EN, OFF/zéro et rechargement.
|
||||
La commande finale `./gradlew check build assemblePack -x :sanctuary:runGameTest`
|
||||
réussit (125 tâches), sans répéter la suite serveur isolée déjà exécutée.
|
||||
Journal : `build/beta146-final-build-pack.log`. Cette exclusion ne transforme
|
||||
pas les 23 échecs serveur en validation globale réussie.
|
||||
|
||||
## Artefact local
|
||||
|
||||
Le pack [Sanctuary-beta.146.mrpack](../build/Sanctuary-beta.146.mrpack) est exporté
|
||||
et copié dans le dossier `sanctuary-beta/build/`, à côté des autres versions.
|
||||
Intégrité ZIP, version beta.146, Minecraft 26.3 et identité du JAR embarqué
|
||||
avec le JAR construit contrôlées ; shaders finaux présents et identiques aux sources.
|
||||
Taille : 10 519 634 octets. SHA-256 :
|
||||
`9f3f7a840652d401741cbe3c85bbb5626326542179754cb599479b01a6b4c955`.
|
||||
Reçu : `build/beta146-artifacts.json`.
|
||||
|
||||
Aucun benchmark isolé de performance de beta.146 n’est revendiqué : des
|
||||
contrôles serveur peuvent tourner simultanément. Les limites SSR hors écran,
|
||||
de maillage à grande portée et de compatibilité avec d’autres GPU subsistent.
|
||||
Aucune publication ou synchronisation Prism.
|
||||
@@ -0,0 +1,115 @@
|
||||
# WG-215 — Relais régionaux visibles
|
||||
|
||||
Branche `codex/regional-relays-beta215`, depuis beta.214 (`b82ab37`).
|
||||
|
||||
## Contrat
|
||||
|
||||
Retirer le village Far West des nouvelles générations. Au Sud et au Nord,
|
||||
remplacer le petit marqueur de relais par un monument compact, massif et
|
||||
surélevé, apparenté aux ancres de Sanctuary, avec des matériaux régionaux.
|
||||
La rosace allumée du relais reçoit entièrement la couleur de sa direction ;
|
||||
le bloc originel conserve sa progression indépendante par huit gemmes.
|
||||
Agrandir modérément la pyramide extérieure, sans changer le labyrinthe,
|
||||
les coffres ou les pièges validés.
|
||||
|
||||
Nouveaux profils 215 uniquement ; les profils historiques gardent leur recette.
|
||||
Aucun ancien monde ou chunk n’est retouché, aucune conversion de journal.
|
||||
Les textures communes d’ancre changent d’aspect, sans changement de sauvegarde.
|
||||
Essais autorisés sur des mondes jetables neufs : activation réelle des ancres
|
||||
Nord/Sud, interruption et reprise. Nouvelle visite Vulkan 32 chunks et MRpack
|
||||
local ; aucun canal public ou Prism modifié. Graines prévues : 42 et 0.
|
||||
|
||||
## État
|
||||
|
||||
Implémenté ; essais natifs et assemblage final réussis. Nouvelle visite ouverte.
|
||||
Le rendu reste à apprécier en jeu.
|
||||
|
||||
## Réalisation
|
||||
|
||||
`RegionalRelay215` ajuste un socle octogonal de 13 blocs de large à une surface
|
||||
rocheuse mesurée (feuilles et eau exclues). Recherche limitée à 64 blocs autour
|
||||
du relais, dénivelé maximal de quatre blocs sous le socle, supports courts.
|
||||
L’ancre est cinq blocs au-dessus de la base, accessible par un escalier de
|
||||
largeur trois ; deux pylônes massifs encadrent la direction extérieure.
|
||||
Améthyste sous le verre, tuff sculpté, éclairages limités. Au Sud, terracotta
|
||||
de la strate locale et verre rouge ; au Nord, diorite, calcite, glace compacte
|
||||
et verre bleu clair. Pas de toit masquant le bloc.
|
||||
|
||||
Plan immuable indexé par chunk, réservé avant végétation, compris dans les
|
||||
chunks préparés avant l’annonce SGA. Le manoir du Nord évite cette emprise.
|
||||
Le paiement du relais se réfère à la position surélevée. Aucun calcul permanent
|
||||
ou nouveau format de sauvegarde. Les autres directions conservent leur recette.
|
||||
Le village Far West est limité à son ancien profil 214.
|
||||
|
||||
Pyramide 215 : base 31 × 31 au lieu de 23 × 23, sommet quatre blocs plus haut,
|
||||
même terracotta locale et entrée prolongée. Le gabarit souterrain, les dix
|
||||
coffres et les huit pièges (24 TNT) sont conservés. La recherche contrôle toute
|
||||
la nouvelle base ; une courte fondation raccorde la coque à la roche.
|
||||
|
||||
Les huit textures de relais allumés colorent toutes les gemmes d’une seule
|
||||
teinte directionnelle, échantillonnée au cœur de chaque gemme de l’illustration.
|
||||
Logo central, transparence et état éteint conservés. Les 514 ressources du
|
||||
bloc originel (textures/modèles) sont comparées à l’artefact 214 ; sa progression
|
||||
par gemmes reste indépendante.
|
||||
|
||||
## Essais natifs
|
||||
|
||||
Mondes jetables `south215-verified` (graine 42) et `north215-verified0` (0),
|
||||
île principale Small 512, expansion de 1024. Paiement de l’ancre racine, rejet
|
||||
d’un mauvais paiement et d’un doublon, interruption après réservation puis
|
||||
reprise réussis. Aucun ancien monde utilisé.
|
||||
|
||||
| Relevé | Sud — 42 | Nord — 0 |
|
||||
| --- | --- | --- |
|
||||
| Ancre surélevée | 128, 258, 1224 | 352, 211, -1252 |
|
||||
| Chunks du monument | 4 | 4 |
|
||||
| Blocs comparés au plan | 2326 | 2390 |
|
||||
| Profondeur maximale des supports | 6 | 8 |
|
||||
| Marches d’approche | 5 | 14 |
|
||||
| Chunks préparés | 67 | 58 |
|
||||
|
||||
Tous les blocs du monument, y compris les dégagements et les marches,
|
||||
correspondent aux chunks produits. Le paiement incomplet sur la nouvelle
|
||||
position est refusé avec `required`, confirmant que le relais est reconnu
|
||||
(et non `invalid`). Reconstruction du cache identique après reprise.
|
||||
Le village 214 n’est ni actif ni planifié dans ces profils.
|
||||
|
||||
Au Sud, pyramide en (32, 249, 848), largeur 31, dix coffres, dix piles
|
||||
enchantées et 24 TNT vérifiées. Au Nord, le manoir reste planifié, séparé
|
||||
du monument (origine 364, 255, −635). Pas de nouvelle passe de relief.
|
||||
Ces essais sont fonctionnels : aucun benchmark, test Windows ou jugement
|
||||
esthétique n’est déduit de leurs temps de génération.
|
||||
|
||||
## Vérifications et livraison locale
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack :sanctuary-test:exportDuoLaunch
|
||||
-PsanctuaryFocusedTests=base204,north208,south213,relays215 -PsanctuaryAtlasOnly=true`
|
||||
réussi en 3 min 56 s : contrôles purs et **10 GameTests ciblés**, journal
|
||||
`build/relays215-final-build.log`. La suite historique complète des GameTests
|
||||
n’est pas revendiquée. Tests de placement Nord/Sud sur graines directes 0 et 42,
|
||||
accès à pied, supports bornés, palette et reconstruction déterministe ;
|
||||
contrôle des anciens profils et de l’intérieur de la pyramide.
|
||||
|
||||
La première sélection des teintes pouvait choisir le même reflet clair pour
|
||||
deux secteurs : corrigée par un échantillonnage des huit cœurs de gemmes.
|
||||
Contrôle final : huit images distinctes, 103 pixels colorés chacune,
|
||||
logo central et alpha préservés (`build/relays215-textures.log`). Les trois
|
||||
fichiers de bruit de l’île principale sont identiques à 214.
|
||||
|
||||
MRpack normal : `/Users/koka/Downloads/Sanctuary-beta.215.mrpack`.
|
||||
Intégrité ZIP, métadonnées, JAR exact, modèles et textures corrigées, trois tailles
|
||||
et profils historiques contrôlés ; aucun module Test ou monde inclus.
|
||||
SHA-256 : `8fb19d272fa56b47ac15e79c4ecdba8fcff784280bef0961c8c68c592aa3ba02`.
|
||||
Reçu : `build/relays215-mrpack-receipt.json`. Aucun tag, canal public ou Prism
|
||||
modifié. Une graine dont le terrain ne permet aucun site dans la recherche
|
||||
bornée peut encore refuser le monument ; les quatre placements du test et
|
||||
les deux expansions réelles ci-dessus passent.
|
||||
|
||||
## Visite
|
||||
|
||||
Solo neuf `Sanctuary-South-215-42`, ouvert le 5 octobre 2026 à **07:49:47 CEST**,
|
||||
confirmé par `SOUTH215_VISIT_OPEN`. Départ (150.5, 269, 1200.5), face au relais
|
||||
(128, 258, 1224). Pyramide en (32, 249, 848). Créatif en vol, commandes,
|
||||
32 chunks / simulation 5. Backend Vulkan (MoltenVK 1.4.2) confirmé dans
|
||||
`build/south215-launch.log` ; aucun essai OpenGL. Ancienne visite 214 arrêtée
|
||||
proprement et conservée. Le joueur reste juge du rendu des monuments.
|
||||
@@ -0,0 +1,196 @@
|
||||
# WG-ECO-177 — écologie liée au relief
|
||||
|
||||
Branche `codex/relief-ecology-beta177`, base beta.176 `96433d3` conservée.
|
||||
Demande : nouveau test solo à 32 chunks intégrant les retours R019–R021.
|
||||
|
||||
## Contrat
|
||||
|
||||
Nouveau preset de laboratoire `sanctuary_test:relief_ecology_v1`, graine 42.
|
||||
Aucune migration ni réouverture des anciens laboratoires avec de nouveaux
|
||||
chunks. Les sauvegardes beta.175 et beta.176 restent conservées.
|
||||
|
||||
- Plateau : forêts normales et plaines fleuries, sans bandes géographiques
|
||||
automne/cerisiers. Classification par hauteur de surface et couverture.
|
||||
- Creux à ciel ouvert : automne. Hauteurs : cerisiers. Une élévation locale
|
||||
autour d'un sommet existant crée un relief arboré, sous le plafond 320 ;
|
||||
la roche profonde et les cinq récifs conservent le champ précédent.
|
||||
- Sous une couverture de roche : cavités humides, mousse, chêne noir et
|
||||
champignons géants. Ne pas confondre sous-sol et vallée basse extérieure.
|
||||
- Marais sur un récif uniquement, aucune mangrove. Petits fragments hauts
|
||||
sobres, sans tapis fleuri. Températures chaudes et aucune décoration de gel.
|
||||
- Géologie : conserver des strates lisibles, les interrompre avec des
|
||||
gisements cohérents de pierre/andésite/granite/diorite ; deepslate profonde,
|
||||
ressources conservées, aucun ajout d'or ni de redstone.
|
||||
- Mares locales, pas d'hydrologie régionale, pas de structures natives.
|
||||
Villages et structures aériennes restent à concevoir, pas livrés ici.
|
||||
|
||||
Le signalement « map cassée » reste sans symptôme précis : le créateur ne se
|
||||
rappelle plus s'il parlait de la carte opérateur ou du monde. Vérifier le
|
||||
chemin de lecture de l'atlas et les données du nouveau monde ; ne pas
|
||||
inventer de diagnostic ni modifier une interface sans défaut identifié.
|
||||
|
||||
## Vérifications prévues
|
||||
|
||||
Relevés natifs du relief, biomes à la surface et sous roche, végétation des
|
||||
cavités, eau après ticks, absence de neige/glace/mangrove, ciel 512–639 libre,
|
||||
répartition minérale sur toute l'île 42 et carte lisible depuis les chunks.
|
||||
Compilation, `check build`, assemblages, puis ouverture du solo Vulkan à
|
||||
32 chunks avec commandes. La visite peut commencer dès les contrôles du
|
||||
laboratoire terminés pendant que la suite générale continue, conformément
|
||||
à la préférence exprimée pendant la visite précédente.
|
||||
|
||||
## Réalisation
|
||||
|
||||
Le profil CLI `terrain` sélectionne ce nouveau preset. Les anciens profils
|
||||
gardent leur générateur. Tout le code de génération nouveau est dans le
|
||||
module facultatif `sanctuary-test` ; le preset Sanctuary normal est conservé.
|
||||
|
||||
Le sélecteur de biomes partage une hauteur de surface par colonne de quatre
|
||||
blocs, mise en cache dans les limites de l'île. Une couverture de roche de
|
||||
plus de douze blocs prend priorité sur la tranche d'altitude : les grottes
|
||||
restent des cavités humides. À l'extérieur, les seuils initiaux sont Y≈237
|
||||
et Y≈264, avec une variation lente de trois blocs. Forêt et prairie fleurie
|
||||
se partagent la tranche intermédiaire par un bruit de grande échelle.
|
||||
Ces seuils sont des réglages de prototype, à juger pendant la visite.
|
||||
|
||||
Un sommet existant parmi douze candidats proches du centre reçoit une
|
||||
élévation locale douce, de rayon 96 blocs, uniquement entre Y=216 et 319.
|
||||
Le relief profond et le champ des récifs beta.175 sont conservés. Les trois
|
||||
récifs bas reçoivent jungle, forêt et marais ; les deux fragments supérieurs
|
||||
restent sobres. Le ciel 512–639 reste réservé à l'ISS.
|
||||
|
||||
Les biomes ont une température empêchant la neige aux altitudes du monde ;
|
||||
la décoration native `freeze_top_layer` est aussi retirée. Sous roche, les
|
||||
décorations natives de lush caves sont complétées par des tentatives bornées
|
||||
de chêne noir et de champignons géants dans les cavités existantes. Un arbre
|
||||
demande de l'air, un plafond de roche et un socle solide ; aucune salle n'est
|
||||
excavée. Le sol autour reçoit de la mousse, puis les features natives 26.3
|
||||
contrôlent et placent le végétal.
|
||||
|
||||
Sous la transition profonde, les lits rocheux précédents sont conservés.
|
||||
Plus haut, deux bruits tridimensionnels forment des gisements d'andésite,
|
||||
granite et diorite, avec des régions de pierre ordinaire et d'autres où les
|
||||
strates restent visibles. Les minerais et mares utilisent les composants
|
||||
précédents ; leurs quantités réelles sont remesurées après décoration.
|
||||
|
||||
## Reproduction
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary-test:exportDuoLaunch
|
||||
python3 scripts/worldgen_lab.py prepare --profile terrain --seed 42 --run nouvel-essai
|
||||
python3 scripts/worldgen_lab.py server --profile terrain --seed 42 --run nouvel-essai --verify
|
||||
```
|
||||
|
||||
Ajouter `--whole-island` à la préparation et au serveur pour le recensement
|
||||
intégral. Le lanceur refuse de réutiliser un monde dont l'empreinte des
|
||||
sources a changé. Les mesures sortent dans `relief-ecology-v1-cold` et
|
||||
`relief-ecology-v1-warm`. `scripts/ecology_atlas.py` rend cartes, coupes et
|
||||
recensement minéral à partir de ces données natives.
|
||||
|
||||
## Mesures natives — graine 42
|
||||
|
||||
Série `science177b`, Java 25 / Minecraft 26.3, heap serveur 1 536 MiB.
|
||||
[Atlas et coupes](/Users/koka/Documents/sanctuary/retours-sessions/2026-09-29_1506-storyquest/releves-beta177/graine-42/atlas.png)
|
||||
et [recensement minéral](/Users/koka/Documents/sanctuary/retours-sessions/2026-09-29_1506-storyquest/releves-beta177/graine-42/minerals.png).
|
||||
L'archive conserve données, coupes binaires, identité et journaux.
|
||||
|
||||
| Contrôle | Résultat |
|
||||
| --- | ---: |
|
||||
| Densités profondes et aériennes identiques à beta.175 | 42 500 / 42 500 |
|
||||
| Témoins de biome sous couverture rocheuse | 358 / 358 en cavités humides |
|
||||
| Climats vérifiés contre la neige, neuf biomes × quatre altitudes | 36 / 36 |
|
||||
| Neige, glace et blocs de mangrove dans l'enveloppe recensée | 0 |
|
||||
| Végétaux natifs sous roche retrouvés dans les blocs | 8 chênes noirs, 3 champignons bruns, 6 rouges |
|
||||
| Mares générées / mares témoins stables pendant 240 ticks | 60 / 8 |
|
||||
| Ensembles de structures natives admissibles | 0 |
|
||||
| Plans hydrologiques régionaux calculés | 0 |
|
||||
| Air contrôlé en Y=512–639, autour des cinq récifs | 1 474 560 blocs |
|
||||
| Tuile d'atlas du spawn | 256 pixels lisibles, aucun chargement de chunk ajouté |
|
||||
|
||||
La première tentative `science177a` avait été rejetée par le test des
|
||||
chênes noirs. Les critères d'espace et de socle ont été assouplis : quatre
|
||||
cases sous le tronc au lieu d'une fondation plane de six blocs de large,
|
||||
et précontrôle d'air moins large. Le test passe dans le nouveau monde,
|
||||
avec les vérifications natives des collisions conservées.
|
||||
|
||||
La carte de surface échantillonnée tous les huit blocs contient 32,86 % de
|
||||
forêt, 24,87 % de prairie fleurie, 33,25 % d'automne et 8,36 % de cerisiers.
|
||||
Le reste, 0,66 %, correspond à de petits reliefs périphériques classés en
|
||||
vide par le sélecteur de surface. Ce ne sont pas des surfaces exactes au
|
||||
bloc près. Le sommet local atteint Y≈302 ; son centre est `(38, 296, 88)`.
|
||||
La proportion des vallées, les lisières et la silhouette restent à juger en jeu.
|
||||
|
||||
### Ressources sur toute l'île
|
||||
|
||||
Recensement réel de **2 000 chunks**, Y=0–639, après décoration, sans
|
||||
extrapolation des chunks du spawn. Variantes pierre et deepslate additionnées :
|
||||
|
||||
| Ressource | Blocs |
|
||||
| --- | ---: |
|
||||
| Cuivre | 202 008 |
|
||||
| Charbon | 144 464 |
|
||||
| Fer | 5 592 |
|
||||
| Lapis | 7 139 |
|
||||
| Diamant | **304** |
|
||||
| Or | 0 |
|
||||
| Redstone | 0 |
|
||||
|
||||
Tous les diamants sont en deepslate, sous Y=136, sans voisin d'air.
|
||||
Améthyste : 6 513 blocs ordinaires, 1 630 bourgeonnants et 269
|
||||
bourgeons/cristaux. La décoration et les nouvelles surfaces changent certains
|
||||
totaux par rapport à beta.176 ; aucune augmentation des paramètres de
|
||||
placement des minerais n'est faite dans ce lot.
|
||||
|
||||
Réouverture : mêmes cartes de surface/récifs, mêmes palettes et coupes de
|
||||
blocs octet par octet, mêmes sources d'eau après 240 ticks supplémentaires.
|
||||
Les 17 végétaux témoins sous roche sont retrouvés. Ces résultats concernent
|
||||
la graine 42 ; aucune généralisation à toutes les graines n'est revendiquée.
|
||||
|
||||
### Durées et portée
|
||||
|
||||
| Passage | Initialisation serveur hors bootstrap JVM | Processus → fin du diagnostic |
|
||||
| --- | ---: | ---: |
|
||||
| Création et recensement intégral | 6,126 s | 317,799 s |
|
||||
| Réouverture et recensement intégral | 0,961 s | 41,350 s |
|
||||
|
||||
Le recensement à froid prend 207,176 s. Ce coût de diagnostic ne tourne pas
|
||||
pendant la visite ; ces durées ont aussi été mesurées pendant les contrôles
|
||||
généraux du pack et ne constituent pas un benchmark isolé ni une mesure de FPS.
|
||||
|
||||
## Solo et livraison
|
||||
|
||||
Le client est entré dans `Sanctuary-Relief-177-Solo` le 29 septembre à
|
||||
22:07 CEST : serveur intégré, KokaLab à `(-9.5, 249, -4.5)`, backend Vulkan
|
||||
(MoltenVK 1.4.2 / Apple M1), distance de vue passée à **32 chunks** dans le
|
||||
journal. Commandes autorisées et mode créatif dans la copie neuve ;
|
||||
`/gamemode spectator` permet la visite libre. Les réglages de la visite
|
||||
beta.176 sont repris, shader de laboratoire désactivé. Les diagnostics ne
|
||||
sont pas activés dans le client.
|
||||
|
||||
Le monde provient de la copie du serveur scientifique arrêté proprement
|
||||
après réouverture. Les anciennes sauvegardes sont conservées. Aucun canal,
|
||||
serveur personnel ni instance Prism n'est mis à jour.
|
||||
|
||||
Repères d'observation en spectateur :
|
||||
|
||||
| Lieu | Commande |
|
||||
| --- | --- |
|
||||
| Sommet à cerisiers | `/tp @s 38 318 88` |
|
||||
| Chêne noir de cavité | `/tp @s -89 168 119` |
|
||||
| Champignon rouge de cavité | `/tp @s 23 169 -57` |
|
||||
| Récif forêt, ancienne place de la mangrove | `/tp @s -102 430 -172` |
|
||||
| Récif marais | `/tp @s 219 470 22` |
|
||||
|
||||
Compilation et diagnostics du laboratoire réussis.
|
||||
`./gradlew check build assemblePack assembleTestPack` : **BUILD SUCCESSFUL**
|
||||
en 25 min 50 s, **265/265 GameTests réussis**, contrôles statiques et smokes
|
||||
réussis. Le test de portage intermittent de beta.176 passe dans cette suite,
|
||||
sans modification du code des familiers ; son ancien échec n'est pas effacé.
|
||||
Versions, icône et hashes d'index du pack vérifiés ; distributions locales
|
||||
dans `build/packwiz` et `build/packwiz-test`. Journal complet archivé dans
|
||||
`releves-beta177/check-build.log`. Aucune nouvelle dépendance ajoutée.
|
||||
|
||||
L'esthétique attend les retours de visite. Les grands plans d'eau, cascades,
|
||||
structures aériennes, villages Sanctuary et station ISS restent hors de ce lot.
|
||||
Le contrôle d'atlas vérifie la lecture des données ; il ne diagnostique pas
|
||||
le signalement imprécis « map cassée » ni l'ensemble de son interface.
|
||||
@@ -0,0 +1,125 @@
|
||||
# RP-02 — Clé dorée et pack personnel — beta.121
|
||||
|
||||
Contrat du 17 septembre 2026, branche `codex/resourcepack-template-beta121`.
|
||||
Le créateur fournit `golden_wrench.png` et valide un bouton qui crée une copie
|
||||
personnelle complète, modifiable et jamais écrasée par les mises à jour.
|
||||
|
||||
## Résultat
|
||||
|
||||
La clé dorée reprend exactement le PNG fourni, 16 × 16, sans conversion ni
|
||||
redessin. Le modèle reste un item plat `minecraft:item/handheld`. Empreinte :
|
||||
`a97570908db75caf8e6fc2f5ecabf12c54fd99bfea7be634df66c4310dca22af`.
|
||||
Le même fichier est fourni par le mod et par « Textures Sanctuary » ; désactiver
|
||||
le pack intégré conserve donc aussi la nouvelle clé.
|
||||
|
||||
Dans **Options → Packs de ressources**, **Personnaliser Sanctuary** crée
|
||||
`resourcepacks/Sanctuary-Custom/`. Le bouton devient **Ouvrir ma copie**.
|
||||
La copie contient toutes les ressources client de Sanctuary : textures, modèles,
|
||||
étiquettes d'items, blockstates, sons, shaders, langues et remplacements Minecraft
|
||||
présents dans le pack intégré. Celui-ci prend priorité sur les assets de base
|
||||
lors de l'export. Un guide FR/EN, la licence et les crédits accompagnent la copie.
|
||||
|
||||
Le joueur active sa copie avec les commandes natives et la place au-dessus des
|
||||
packs qu'il veut remplacer. Créer la copie ne change ni l'ordre ni la sélection.
|
||||
Une modification se recharge avec F3 + T ; désactiver le pack retrouve les
|
||||
ressources fournies par le mod. L'écran de sélection des datapacks n'est pas modifié.
|
||||
|
||||
La copie est un **instantané**. Elle ne se synchronise pas avec les mises à jour :
|
||||
les fichiers personnalisés restent toujours intacts. Le guide recommande de
|
||||
supprimer les fichiers non personnalisés pour laisser les prochaines ressources
|
||||
du mod s'appliquer. Pour repartir d'un instantané récent, renommer le dossier
|
||||
existant puis créer une nouvelle copie. Aucun fichier utilisateur n'est écrasé.
|
||||
|
||||
La copie s'effectue hors du fil de rendu, dans un dossier temporaire voisin,
|
||||
puis le résultat complet rejoint la liste native. Une erreur de copie est
|
||||
signalée par le bouton et le journal du jeu ; un chemin occupé par un fichier
|
||||
n'est pas remplacé. Aucune extraction au démarrage ni pendant les mises à jour.
|
||||
|
||||
## Distribution
|
||||
|
||||
`./gradlew assembleResourceTemplate` produit
|
||||
`build/Sanctuary-Template-beta.121.zip`, un pack personnel complet à décompresser
|
||||
dans `resourcepacks/Sanctuary-Custom/`. `assemblePack` le produit aussi.
|
||||
`build/Sanctuary-Resource-Pack-beta.121.zip` reste l'export du pack graphique
|
||||
intégré ; son manifeste versionné contient 151 fichiers et les images historiques
|
||||
sont conservées. L'identifiant intégré `sanctuary:textures` reste stable et son
|
||||
activation reste contrôlée par le joueur.
|
||||
|
||||
Le template ne contient pas tous les assets vanilla ni ceux des autres mods.
|
||||
Il ne contient pas les recettes, règles serveur ou sauvegardes. Il conserve
|
||||
les crédits et conditions des ressources d'origine. Aucune génération, aucun
|
||||
identifiant de bloc et aucun format de sauvegarde ne changent.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le parcours `ResourceTemplate121ClientChecks` passe en **35 s** sur le client
|
||||
Minecraft 26.3 macOS, sans ouvrir de monde :
|
||||
|
||||
- Bouton natif et disposition FR/EN aux échelles 2 et 3, captures relues.
|
||||
- Export complet de **1 202 fichiers**, empreintes identiques aux ressources
|
||||
sources après application des priorités du pack intégré.
|
||||
- PNG fourni vérifié par SHA-256 et affiché avec sa transparence.
|
||||
- Création sans changer la sélection ni l'ordre des packs.
|
||||
- Modification d'une texture et ajout d'un fichier personnel : aucun octet
|
||||
réécrit lors d'un second export ni au rechargement des ressources.
|
||||
- Priorité réelle de la texture personnalisée, puis retour à la clé fournie
|
||||
après désactivation. Activation et désactivation conservées à la redécouverte.
|
||||
- Chemin occupé par un fichier refusé sans le modifier ; aucun bouton ajouté
|
||||
à l'écran des datapacks.
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest \
|
||||
-PsanctuaryClientTests=true -PsanctuaryResourceTemplate121ClientTests=true \
|
||||
-PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true
|
||||
```
|
||||
|
||||
Marqueur `TEMPLATE121_PASS` dans `build/template121-client.log` ; captures et
|
||||
empreintes de la copie dans `build/template121-evidence/`. Le premier essai
|
||||
avait échoué dans l'aperçu du test qui créait un ItemStack avant connexion à
|
||||
un monde ; cet aperçu affiche maintenant directement la texture résolue.
|
||||
Le modèle plat existant n'est pas modifié. Pas d'essai Windows ni d'ouverture
|
||||
automatisée du gestionnaire de fichiers. Le GameTest serveur dédié reste exclu
|
||||
conformément au refus antérieur de son EULA.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
passe en **2 min 10 s**, 126 tâches. Les sources JAR correspondent aux sources
|
||||
Java du dépôt. La comparaison avec beta.120 limite les différences de production
|
||||
aux deux nouvelles classes, au hook d'interface, aux libellés et aux ressources
|
||||
prévues (12 entrées). Aucun changement de gameplay, de données serveur ou de
|
||||
monde. Les packs normal/Test contiennent le même JAR Sanctuary, sans fixture
|
||||
ni sauvegarde. Le ZIP du template et l'export natif ont exactement les mêmes
|
||||
1 202 fichiers et empreintes. Le pack intégré conserve ses 151 fichiers vérifiés.
|
||||
|
||||
Reçu : `build/template121-artifact.json`. Artefacts locaux validés :
|
||||
|
||||
- `Sanctuary-beta.121.mrpack` : 10261791 octets, SHA-256
|
||||
`040d68f342155120fa21e0ffcdf34aa38e3225c78862960536622de53ed9fd9f`.
|
||||
- `Sanctuary-Test-beta.121.mrpack` : 10280716 octets, SHA-256
|
||||
`7f5bbd4e13aea4c245d072725c094ca64826ee8debc8607623783c114d437685`.
|
||||
- `Sanctuary-Resource-Pack-beta.121.zip` : 3757952 octets, SHA-256
|
||||
`bbf3c18ea6abc64d951911215975cb6c48c7fc5e0246f6e5f5192a3d061c211d`.
|
||||
- `Sanctuary-Template-beta.121.zip` : 4315131 octets, SHA-256
|
||||
`6fad376c53474fa8bcb0a2e6ae4c13ea61ab91bdd78735be443032d485ed541a`.
|
||||
|
||||
JAR Sanctuary : SHA-256
|
||||
`4276f4fc9834805e3e6d12cd19adba7837e3007656b77f31d525c7b976f9925d`.
|
||||
|
||||
## Publication et installation
|
||||
|
||||
La [release beta.121](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.121)
|
||||
est publiée depuis `d9b3dd6bedf32448f8c6e5bfa4da10cb69968bc7`. Tag et artefacts immuables,
|
||||
téléchargements publics vérifiés. Canal packwiz :
|
||||
`e3e6572da9288fbbcfa36bf6b7dd3aa0d1c54f5e`.
|
||||
|
||||
Deux synchronisations isolées puis deux dans **Sanctuary Beta** réussissent.
|
||||
Un seul JAR Sanctuary beta.121 est actif ; le second passage est identique.
|
||||
Les **923 fichiers personnels et réglages suivis** restent inchangés,
|
||||
y compris les packs de ressources. Aucune copie personnelle n'est créée par
|
||||
la mise à jour : chaque joueur utilise le bouton quand il le souhaite.
|
||||
Aucun monde personnel ouvert. Copie préalable dans
|
||||
`sanctuary-backups/before-beta.121/` de l'instance existante ; reçus
|
||||
`build/template121-isolated.json` et `build/template121-prism.json`.
|
||||
|
||||
- [Template personnel complet](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.121/Sanctuary-Template-beta.121.zip).
|
||||
- [Pack normal](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.121/Sanctuary-beta.121.mrpack).
|
||||
- [Pack de test](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.121/Sanctuary-Test-beta.121.mrpack).
|
||||
@@ -0,0 +1,61 @@
|
||||
# WG-RESTORE-191 — revenir avant les plateaux
|
||||
|
||||
Branche `codex/restore-relief-beta191`, Minecraft 26.3, graine de visite 42.
|
||||
Nouveau profil `original`, preset `sanctuary_test:pre_terraces_v1`.
|
||||
|
||||
## Contrat
|
||||
|
||||
Le retour beta.190 rejette toujours le relief et les affleurements ajoutés depuis
|
||||
les plateaux. Restaurer exactement le champ de densité **beta.188**, avant les
|
||||
terrasses beta.189 et les épaules beta.190. Retirer leurs passes d’affleurements
|
||||
et leur exclusion d’arbres sur ces affleurements. La géologie d’origine retrouve
|
||||
sa responsabilité : pierre, strates, gisements, cavités et pointes existantes.
|
||||
|
||||
Conserver les corrections indépendantes appréciées : ancres au sol, berges,
|
||||
cascade large, galerie éclairée et coffres de fer enchanté dans les ruines.
|
||||
Cela restaure le relief et la géologie de base, pas tous les blocs d’un monde
|
||||
beta.188 puisque ces aménagements récents restent présents.
|
||||
|
||||
L’intention pour la suite est un récif avec creux, cavités et pointes, avec
|
||||
quelques formations singulières par endroits. Aucun nouveau lissage, plateau
|
||||
ni déformation généralisée dans cette remise à plat du travail.
|
||||
Les variantes 189/190 restent des références conservées, hors de ce nouveau profil.
|
||||
Nouveaux mondes seulement ; aucune sauvegarde existante modifiée ou régénérée.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Génération et réouverture natives réussies, graine 42 :
|
||||
`build/original191a-cold.json` et `build/original191a-warm.json`.
|
||||
|
||||
- **134 480 densités identiques** aux paramètres enregistrés de beta.188, de
|
||||
Y=0 à Y=632 sur l’île et ses îlots ; aucun remappage de hauteur activé.
|
||||
- Passes d’affleurements 189/190 court-circuitées dans ce profil. Leur masque
|
||||
est inactif sur les 1 681 colonnes contrôlées ; la règle de géologie d’origine
|
||||
et les plantations natives reprennent la surface hors des aménagements réservés.
|
||||
- Comparaison au commit beta.188 `658aaf8` : corps du calcul de densité, paramètres
|
||||
de bruit, îlots aériens et règle de géologie identiques. Preuve locale :
|
||||
`build/original191-baseline-receipt.json`.
|
||||
- Huit ancres, 49 cartes et cadres du palais, salle inférieure et éclairage,
|
||||
quatre ruines avec coffres enchantés, donjon, gemmes et soufre contrôlés.
|
||||
- Cascade de cinq blocs de large conservée, chenal de 4–5 blocs et huit blocs
|
||||
de roche retirés ; aucune nouvelle déformation de montagne pour la produire.
|
||||
Zéro tronc dans les colonnes contrôlées des bassins et berges.
|
||||
|
||||
Démarrage natif : 12,281 s à froid et 0,738 s à chaud ; avec tous les contrôles
|
||||
et le remplissage des cartes : 79,283 s / 22,798 s. Zéro région d’hydrologie.
|
||||
Ces contrôles de laboratoire ne sont pas lancés au démarrage du solo.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack` réussi en **7 min 40 s**,
|
||||
**265 GameTests réussis**. Le JAR est identique aux classes et ressources compilées
|
||||
et à sa copie distribuée dans le pack de test : `build/original191-pack-receipt.json`.
|
||||
Aucune publication ni modification de l’installation Prism. Le client Vulkan est lancé avec la nouvelle
|
||||
sauvegarde `Sanctuary-Original-Relief-191-Solo`, run `visite191`, profil `original`,
|
||||
vue 32 et simulation 12, spectateur, commandes autorisées, position préparée
|
||||
(94,316,153) face au relief. Connexion confirmée à **21:46:39**, vue 32 et simulation 12 ; Vulkan confirmé.
|
||||
Les cartes et l’état initial des ancres ont été relus dans cette copie neuve.
|
||||
Les sauvegardes 188/189/190 restent conservées.
|
||||
|
||||
|
||||
Le créateur a confirmé l’ouverture ; la connexion est vérifiée dans
|
||||
`build/original191-solo.log`. Cette confirmation porte sur l’entrée dans le solo,
|
||||
pas encore sur l’appréciation esthétique du terrain restauré.
|
||||
@@ -0,0 +1,91 @@
|
||||
# Revue PR #1 de Chris — intégration sur beta.165
|
||||
|
||||
PR : [beta.144 — Code d’accès à la création Hello World](https://git.botsu.net/koka/sanctuary-beta/pulls/1).
|
||||
Révision examinée : `8de569bbf188f7b76ede9235d3a2e5449907bcd5`.
|
||||
Socle local : beta.165 + audit documentaire ; les corrections de GameTests restent
|
||||
un chantier distinct. Dépôt web local examiné : `sanctuary-web-community`, commit
|
||||
`1feab73`. Vérification du distant web après fetch : `6640966b7306b36735c622cc4e75f31467e6f249`, aucun écart sur `AccessCodeService.php` et `routes/api.php`. Inventaire API : une PR mod ouverte, aucune PR web ouverte.
|
||||
|
||||
## Verdict
|
||||
|
||||
**Intégrable, mais ne pas fusionner telle quelle.** Le principal blocage est la
|
||||
reprise après consommation du code côté site. Aucun merge distant, publication,
|
||||
activation du contrôle d’accès ou commentaire à Chris n’a été effectué.
|
||||
|
||||
## Constats
|
||||
|
||||
### P1 — code consommé sans possibilité de reprendre l’accueil
|
||||
|
||||
Dans `ProgressionService.java` de la PR, lignes 375–382, le serveur appelle
|
||||
`redeem` puis ignore le résultat si la session s’est déconnectée avant le retour.
|
||||
Le site peut donc avoir consommé le code alors que le ledger local n’a jamais
|
||||
été écrit. Une coupure réseau après consommation, avant réception de la réponse,
|
||||
produit la même fenêtre.
|
||||
|
||||
Le site actuel (`AccessCodeService.php:71–72`) répond `already_used` sans
|
||||
`minecraft_username` ni `discord_id`. `AccessCodes.redeem` exige ces champs pour
|
||||
la reprise et refuse donc. De plus, même si le site est corrigé pour les renvoyer,
|
||||
`AccessCodes.verifyKey:50` transforme encore tout `already_used` en `code_used` ;
|
||||
`HelloWorldScreen.updateSelection` ne permet de confirmer que `code_recognized`
|
||||
ou un pending local. La réparation doit donc couvrir **le site, le serveur et
|
||||
le parcours client**, pas seulement ajouter deux champs à la réponse API.
|
||||
|
||||
Correction recommandée : un contrat de consommation rejouable pour le même compte
|
||||
et la même admission, avec identité confirmée par l’API serveur authentifiée ;
|
||||
réconciliation du résultat après déconnexion et reprise au prochain accueil.
|
||||
Un code révoqué, un autre compte et une requête non autorisée doivent rester
|
||||
refusés. Vérifier l’identité complète et la portée du reçu avant de l’accepter.
|
||||
Le ledger ne doit jamais conserver le code brut ni le jeton API.
|
||||
|
||||
La documentation actuelle de la PR dit qu’une déconnexion avant `redeemed`
|
||||
ne consomme pas le code : ce n’est pas garanti dès que le POST est parti.
|
||||
Le smoke teste un ledger après `remember`, pas la fenêtre avant cette écriture.
|
||||
|
||||
### P2 — compatibilité des clients existants à expliciter
|
||||
|
||||
Le nouveau contrôle de capacité `AccessPayloads.Gate` dans CONFIGURE est placé
|
||||
avant la recherche de l’habitant. Activer l’accès impose donc aussi la mise à
|
||||
jour des clients des habitants déjà enregistrés. La promesse « habitant existant
|
||||
entre sans écran » ne signifie pas compatibilité avec un ancien client.
|
||||
Décider et tester ce contrat avant activation : mise à jour coordonnée ou
|
||||
capacité exigée uniquement pour les accueils qui utilisent le code.
|
||||
|
||||
## Compatibilité avec nos changements
|
||||
|
||||
`git merge-tree --write-tree HEAD origin/pr-1` a été exécuté sans changer le
|
||||
checkout. Trace ignorée : `build/pr1-merge-tree.txt`.
|
||||
|
||||
- Conflits textuels uniquement dans `gradle.properties` et `packwiz/pack.toml`.
|
||||
**Ne pas reprendre beta.144** : réserver le prochain numéro libre au moment
|
||||
de la livraison, synchroniser les manifestes et garder les archives existantes.
|
||||
- Les changements de progression et Hello World s’appliquent sans conflit textuel
|
||||
au socle examiné. Cela ne constitue pas une preuve de compatibilité fonctionnelle.
|
||||
- Pas de changement proposé aux tables communautaires ou aux pages Gazette/Tableau.
|
||||
L’admission appelle une API HTTP du site ; elle n’utilise pas directement le
|
||||
stockage des publications. Tester quand même fichier et MariaDB en régression.
|
||||
- Sans URL/jeton, la fonctionnalité se désactive. Le laboratoire actuel ne doit pas
|
||||
être activé implicitement : ses comptes locaux doivent rester accessibles.
|
||||
- Le ledger ajoute `data/sanctuary-access.json` sans réécrire le registre des
|
||||
habitants. Prévoir sauvegarde et comportement de retour arrière avant activation.
|
||||
|
||||
## Plan d’intégration concret
|
||||
|
||||
1. Finaliser et enregistrer les corrections de tests séparément.
|
||||
2. Préparer une branche d’intégration depuis ce socle et importer le changement
|
||||
de Chris, en résolvant uniquement les numéros de version puis les adaptations
|
||||
réellement nécessaires. Conserver son attribution.
|
||||
3. Corriger et documenter ensemble le contrat de reprise site/mod ; écrire les
|
||||
tests du POST consommé avec réponse perdue et déconnexion concurrente.
|
||||
4. Valider l’accueil sans configuration, l’accueil configuré neuf, un habitant
|
||||
existant, client ancien, code invalide, mauvais pseudo, code révoqué, panne
|
||||
du site, jeton rejeté, deux confirmations et redémarrage entre les écritures.
|
||||
Vérifier qu’un seul habitant et un seul familier sont créés et qu’aucun coût
|
||||
n’est dupliqué.
|
||||
5. Jouer le parcours réel sur un serveur jetable avec API de test, puis rejouer
|
||||
les échanges Gazette/Tableau en fichier et MariaDB. Garder le site public
|
||||
communautaire en lecture seule.
|
||||
6. Livrer et taguer le nouveau compteur ; activer seulement sur le serveur
|
||||
explicitement visé, après configuration et sauvegarde.
|
||||
|
||||
Pas de compilation ni d’essai de handshake de cette PR revendiqués ici.
|
||||
La suite en cours concerne les tests actualisés de beta.165, pas le code de Chris.
|
||||
@@ -0,0 +1,30 @@
|
||||
# WG-ECO-178 — vallées bornées et grottes minérales
|
||||
|
||||
Retour de visite beta.177 : automne trop envahissant sur le plateau et les
|
||||
bords, cavités trop uniformément lush. Le créateur précise : roche dominante,
|
||||
petites eaux et mousse localisée ; priorité au solo, sans nouveaux atlas.
|
||||
|
||||
Branche `codex/rocky-ecology-beta178`, base `9613322`. Nouveau preset de labo
|
||||
`sanctuary_test:rocky_ecology_v1`, profil CLI `rocky`, graine 42. Aucune
|
||||
migration : le solo beta.177 ouvert reste sur son ancien générateur.
|
||||
|
||||
Automne limité aux sols Y=200–232, entourés de relief plus haut et sans
|
||||
chute périphérique. Sous Y=200 et sur les flancs raides : géologie exposée.
|
||||
Les grottes gardent surtout leur roche ; mousse en plaques, poches végétales
|
||||
rares, petits bassins retenus et décorations de stalactites. Les bosquets de
|
||||
chênes noirs/champignons restent ponctuels. Relief, récifs, minerais et
|
||||
absence d'hydrologie régionale conservent leurs composants précédents.
|
||||
|
||||
Contrôles ciblés de chargement et du comportement modifié avant le nouveau
|
||||
solo ; `check build assemblePack assembleTestPack` exigé pour la livraison.
|
||||
Pas de recensement complet ni de cartes scientifiques dans cette passe.
|
||||
Contrôle natif `solo178d`, graine 42 : réussi, 567 comparaisons de densité
|
||||
identiques au socle profond, aucun calcul d’hydrologie régionale. Dans les
|
||||
neuf chunks centraux contrôlés, 380 sols rocheux sur 405, 23 en mousse et
|
||||
cinq sources d’eau observées ; ce petit échantillon ne décrit pas toute l’île.
|
||||
|
||||
Solo neuf `visite178/rocky/42`, sauvegarde `Sanctuary-Rocky-178-Solo`,
|
||||
vue 32, simulation 12, commandes activées. Compilation et `check build assemblePack assembleTestPack` réussis
|
||||
(23 min 35 s, résultat du 29 septembre). Aucun ancien monde ni canal de distribution modifié.
|
||||
Ouverture confirmée le 29 septembre à 22:47 : Vulkan sur Apple M1,
|
||||
KokaLab connecté en solo et distance serveur passée à 32 chunks.
|
||||
@@ -0,0 +1,143 @@
|
||||
# EXP-199 — affiner les expansions et les raccorder au laboratoire
|
||||
|
||||
Branche `codex/runtime-expansions-beta199`, depuis beta.198. Retour R014.
|
||||
Implémentation et validation locales ; aucune publication du canal packwiz ni mise à jour de Prism.
|
||||
|
||||
## Contrat retenu
|
||||
|
||||
Réutiliser `ExpansionJournal`, `ExpansionRuntime`, les contrôles d'occupation,
|
||||
les contextes de bruit natifs et les biomes d'expansion existants. Les ancres
|
||||
actuelles du laboratoire doivent désormais demander une vraie expansion.
|
||||
Recherche automatique sur 360°, priorité à la proximité du parent parmi les
|
||||
sites admissibles, une région immuable par relais, et un nouveau relais sur
|
||||
chaque région prête. Relief fin : surface large et ondulée, quelques plateaux
|
||||
souples, volumes amincis en conservant les cavités du bruit 3D.
|
||||
|
||||
Les lectures d'admission et la préparation native sont échelonnées entre les
|
||||
ticks. Annonce SGA aux joueurs seulement après les chunks FULL et le relais.
|
||||
Les doubles activations ne créent ni second continent ni double prélèvement.
|
||||
La sauvegarde reprend une région réservée après interruption.
|
||||
|
||||
## Contrat de nouveaux mondes
|
||||
|
||||
Les profils 196–198 gardent leurs paramètres et leurs ancres de démonstration.
|
||||
Les nouveaux profils 199 initialisent un journal d'expansions propre. Aucun
|
||||
ancien monde n'est migré, aucun chunk existant régénéré, aucun ancien format
|
||||
réécrit. Première admission limitée aux régions réellement vierges ; même du
|
||||
vide déjà généré reste protégé. Cette contrainte peut éloigner une expansion
|
||||
si le joueur a déjà exploré les alentours ; ce n'est pas une promesse de
|
||||
contact bord à bord. La réutilisation du vide certifié reste le mécanisme
|
||||
historique distinct, à ne pas activer implicitement dans une partie.
|
||||
|
||||
## Ciel et performance
|
||||
|
||||
Rotation stellaire : sept journées Minecraft, sur l'horloge du monde faisant
|
||||
autorité ; conserver la même transformation pour la visée et les constellations.
|
||||
Les saccades sont également signalées à l'arrêt, y compris shader Sanctuary désactivé (confirmation du créateur). Aucune cause n'est attribuée
|
||||
au worldgen sans mesure ; préserver cette enquête séparément du réglage des
|
||||
expansions. Les débordements de mares restent consignés sans nouvelle refonte.
|
||||
|
||||
## Première tranche jouable
|
||||
|
||||
Le relais demande les mêmes huit offrandes distinctes que le laboratoire. Le
|
||||
joueur reste à proximité, offrande en main, pendant la recherche. Les matériaux
|
||||
ne sont retirés qu'après réservation durable. Une seule préparation est active
|
||||
à la fois ; chaque relais ouvre une région de diamètre nominal 256 blocs, avec
|
||||
un relais de continuation. Le climat suit la couleur du relais d'origine ; la
|
||||
position réelle est choisie automatiquement parmi 64 angles, par distances
|
||||
croissantes sur la grille de chunks. Le relief réutilise la densité 3D historique,
|
||||
comprimée verticalement autour de Y=220 et déformée par son bruit cohérent.
|
||||
|
||||
Les biomes naturels décorent ces nappes. Les villages et forteresses vanilla ne
|
||||
sont pas réactivés par l'ajout de ces biomes à la palette : leurs structures
|
||||
seront une tranche distincte. Les structures et reliefs de l'île centrale sont
|
||||
conservés. Pour Small/42, une recherche locale plus précise peut retrouver les
|
||||
sols d'ancres manqués par la grille historique ; les réservations d'eau suivent
|
||||
alors leurs emprises réelles avec marge au lieu d'exclure un secteur entier.
|
||||
|
||||
Le moteur conserve son journal et sa file native, avec un adaptateur réservé aux
|
||||
profils 199. Admission : 32 lectures asynchrones au maximum par lot, contrôle des
|
||||
chunks chargés et des sauvegardes concurrentes, mémorisation des refus
|
||||
pour éliminer les candidats qui recouvrent un chunk déjà trouvé occupé, puis réservation et publication
|
||||
sur le même tour serveur. Le relais suivant est placé après les chunks FULL ;
|
||||
l'annonce SGA possède une infobulle lisible donnant ses coordonnées.
|
||||
|
||||
Limites : pas de régénération du vide déjà exploré, pas de choix de direction,
|
||||
pas encore de variation du prix/taille pour les relais successifs. La limite
|
||||
historique reste de 64 régions, Sanctuary incluse. Le journal et l'inventaire
|
||||
joueur sont deux fichiers Minecraft distincts : la protection contre le double
|
||||
clic ne constitue pas une transaction atomique entre ces fichiers lors d'une
|
||||
coupure brutale au milieu d'une sauvegarde.
|
||||
|
||||
## Périmètre de validation
|
||||
|
||||
Placement proche sur tous les angles et refus des emprises occupées, densités
|
||||
bornées et nappes fines, horloge stellaire cyclique, activation réelle, deuxième
|
||||
relais, double interaction, interruption/reprise et notification après FULL.
|
||||
`check build`, assemblages et essai client Vulkan avant livraison locale.
|
||||
|
||||
## Relevés de validation
|
||||
|
||||
- Compilation et assemblages : `check build assemblePack assembleTestPack`,
|
||||
avec les suites natives `operator,realtime`, réussis (7 GameTests et contrôles
|
||||
purs). La vérification du placement couvre 9 couples graine/taille : 0, 42 et
|
||||
4736390610738281858 × Small/Medium/Large, les huit secteurs, l'ordre de distance,
|
||||
les conflits et la réouverture du journal.
|
||||
Dernier passage complet : `build/expansion199-check-build-delivery.log`,
|
||||
réussi en 3 min 40 s. Compilation finale des tests client réussie également.
|
||||
- Nouveau Small, graine 42, 2 Gio : serveur prêt vers 14,2 s ; première expansion
|
||||
au centre (368, -368), relais Y=231, après 418 chunks FULL. Le deuxième relais
|
||||
réserve son enfant environ 11 s après l'annonce du premier. L'arrêt volontaire
|
||||
a lieu avec cet enfant encore réservé. Cette durée inclut les essais et n'est
|
||||
pas le temps normal de création d'un monde.
|
||||
- Journaux finaux : `build/expansion199-check-build-final.log` et
|
||||
`build/worldgen-lab/expansion199-native-final/small/42/`. Les premiers essais
|
||||
interrompus restent conservés et ne sont pas des validations.
|
||||
- Réouverture du même Small/42 : enfant repris, 418 chunks FULL, relais
|
||||
(912, 236, -368), une seule annonce pour cet enfant et aucune répétition de
|
||||
celle du parent. Sur 81 colonnes échantillonnées, 1380 blocs non vides, entre
|
||||
Y=191 et Y=275 (végétation comprise) : ce relevé local ne mesure pas le volume
|
||||
total de toutes les expansions.
|
||||
- Client Vulkan, Small/42 : arrivée sur l'île, synchronisation native des étoiles
|
||||
et pause de l'horloge, vraie interaction du joueur avec le relais, double clic
|
||||
sans double prélèvement. Un bloc d'or placé dans le premier candidat reste
|
||||
intact et force l'admission d'un autre emplacement. Les interfaces FR/EN,
|
||||
trois tailles, profils historiques et aller-retour disque passent également.
|
||||
- Deux essais client consécutifs terminent l'expansion puis sauvegardent et
|
||||
ferment normalement (`build/expansion199-client-pass-a.log` et
|
||||
`build/expansion199-client.log`). Le tout premier essai avait réussi les
|
||||
assertions puis rencontré une exception dans `ChunkMap.tick`, lors du suivi
|
||||
des entités. Cause non isolée : un contrôle de réentrance et 100 ticks
|
||||
d'observation supplémentaires n'ont pas reproduit le défaut. Ce résultat
|
||||
n'est pas un correctif prouvé du crash initial. Pas d'essai direct Windows.
|
||||
|
||||
### Saccades : capture locale, cause non isolée
|
||||
|
||||
Première capture client macOS Vulkan, Small/42, vue 8 chunks, shader désactivé, joueur immobile :
|
||||
1241 images relevées, médiane 31,15 ms (limitation de cadence de l'environnement
|
||||
de test), P95 33,12 ms, P99 33,71 ms, maximum 98,01 ms, 7 images au-delà de 50 ms.
|
||||
258 sections ont encore été compilées pendant la capture. Le JFR contient 4152
|
||||
échantillons de workers dans la génération, et des pauses GC jusqu'à 88,45 ms.
|
||||
Le joueur immobile ne signifiait donc pas que le chargement avait terminé.
|
||||
Ce relevé n'isole pas les saccades d'une partie complètement stabilisée, et ne
|
||||
prouve pas leur cause chez le créateur. Le shader n'est pas nécessaire pour
|
||||
reproduire quelques images longues dans cet environnement. Aucun correctif
|
||||
général des saccades n'est revendiqué dans cette livraison.
|
||||
|
||||
Mesures ignorées par Git :
|
||||
`build/expansion199-stationary-first/stationary.json` et `stationary.jfr`.
|
||||
Les captures suivantes restent sous
|
||||
`mods/sanctuary/build/run/clientGameTest/diagnostics/expansion199/`.
|
||||
Pas de nouvelle campagne de screenshots.
|
||||
|
||||
## Livraison locale
|
||||
|
||||
`Sanctuary-Test-beta.199.mrpack`, 12 322 965 octets, copié dans
|
||||
`/Users/koka/Downloads/` avec `Sanctuary-Test-beta.199-Guide.txt`.
|
||||
SHA-256 : `fd2ebe4f43bf0d455377a2f456106165ff5e3519e5c3dce4126818c03f4ae44f`.
|
||||
|
||||
Intégrité ZIP, manifeste Minecraft 26.3/Fabric Loader 0.19.5, dépendances externes,
|
||||
JAR intégrés comparés aux classes compilées et anciennes ressources vérifiés.
|
||||
Les 142 ressources historiques de génération restent identiques à beta.198 ;
|
||||
le preset public vise désormais 199. Reçu : `build/expansion199-artifact.json`.
|
||||
Le canal packwiz et l'installation Prism n'ont pas été modifiés.
|
||||
@@ -0,0 +1,93 @@
|
||||
# SCULPT-10 — Une boîte par sculpture — beta.124
|
||||
|
||||
Contrat du 17 septembre 2026, branche `codex/sculpture-bounds-beta124`.
|
||||
Le créateur choisit **une seule boîte pour la sélection et les collisions**.
|
||||
Ce ticket remplace la forme physique détaillée de beta.122.
|
||||
|
||||
La boîte englobe exactement les dimensions occupées par la sculpture, après
|
||||
orientation et ancrage au centre ou au bord. Elle suit toujours la grille 1/16,
|
||||
y compris les tailles impaires et les modèles comportant des marges vides.
|
||||
Les trous et petits détails restent visibles mais n'ont plus leurs propres
|
||||
surfaces de collision : on ne grimpe plus sur leurs petites marches. Une arche
|
||||
se sélectionne et bloque désormais sur tout son volume englobant.
|
||||
|
||||
La pose utilise la même boîte avant la création de l'entité de bloc : elle
|
||||
refuse une intersection avec le joueur, y compris dans les trous visuels.
|
||||
Les petites sculptures laissent libre le reste du bloc autour de leur boîte.
|
||||
La forme reste mise en cache par modèle et état ; elle ne se recalcule qu'après
|
||||
un changement de modèle, d'orientation ou d'ancrage. Les requêtes physiques et
|
||||
le contour partagent cette même forme native.
|
||||
|
||||
Le calcul parcourt les cellules une seule fois, sans créer de copies tournées
|
||||
ni de grille de collisions 16³. Le contour émet toujours douze arêtes.
|
||||
Il s'agit d'une simplification du travail géométrique ; aucun gain de FPS global
|
||||
n'est annoncé sans mesure sur une scène représentative.
|
||||
|
||||
Le rendu des sculptures et les règles de lumière de beta.122 restent inchangés :
|
||||
pas d'occlusion de cube plein, pas d'émission artificielle de lumière. Aucun
|
||||
identifiant, format d'item ou de sauvegarde ne change. Les anciennes sculptures
|
||||
utilisent la nouvelle forme à partir de leurs données existantes, sans réécriture
|
||||
des mondes ni régénération de chunks. L'atelier et les clés restent inchangés.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le parcours `Sculpture122ClientChecks`, adapté au nouveau contrat, passe en
|
||||
**39 s** sur Minecraft 26.3, client macOS et serveur intégré jetable de graine 122.
|
||||
|
||||
- Sélection native de tout le volume, y compris le trou visuel d'une arche ;
|
||||
contour rectangulaire relu dans la capture.
|
||||
- Même boîte physique et de sélection sur client et serveur ; intérieur rempli,
|
||||
dimensions exactes sans profondeur artificielle de bloc entier.
|
||||
- **80 cas** : boîte unique comparée aux limites du maillage réellement émis,
|
||||
douze arêtes exactement, même objet réutilisé lors des requêtes répétées.
|
||||
Arche, marges vides, cube de 4 096 cellules et voxel unique, dans les quatre
|
||||
orientations et cinq ancrages.
|
||||
- **5 120 placements** de rendu toujours alignés sur la grille entière.
|
||||
- Pose refusée dans le joueur, y compris entre deux piliers séparés ; petite
|
||||
sculpture autorisée à côté du joueur, hors de sa boîte physique.
|
||||
- Cache renouvelé après changement d'orientation/ancrage ou de modèle ;
|
||||
conservation après sauvegarde/reconnexion.
|
||||
- **75 sculptures superposées** : ciel à 15 ; toit de pierre témoin sombre ;
|
||||
lumière de bloc transmise avec atténuation normale ; pièce close à 0.
|
||||
|
||||
Marqueurs dans `build/sculpture124-client.log`, notamment
|
||||
`SCULPTURE124_BOUNDS_PASS 80`, plus les contrôles de régression de beta.122.
|
||||
Captures relues dans `build/sculpture124-evidence/`. Aucun essai Windows,
|
||||
client distant ou shader tiers ; le coût des boîtes est simplifié sans benchmark
|
||||
FPS global.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
passe en **2 min 9 s**, 126 tâches (110 exécutées, 16 à jour).
|
||||
Les sources des JAR correspondent aux sources du dépôt. La comparaison avec
|
||||
beta.123 limite les différences de production aux trois classes de
|
||||
`SculptureGeometry` ; ressources, clés, interfaces, données et éclairage restent
|
||||
identiques. Les packs normal/Test contiennent le même JAR, sans sauvegarde
|
||||
ni fixture. Le template personnel conserve exactement les ressources de beta.123.
|
||||
|
||||
- Pack normal : 10 271 059 octets, SHA-256
|
||||
`2075e4ac7a7e7e2effcd82586d46769607ca1a67e8d9110b000fa378d1bc5506`.
|
||||
- Pack Test : 10 289 985 octets, SHA-256
|
||||
`88263e6896590ea9694b18084666e7234e934064e8d7d596d34866a68cc5ea23`.
|
||||
- JAR Sanctuary : SHA-256
|
||||
`b3969b1a3738b8a5d332b2083db0dd722900239f73035c335b738f70328d43f1`.
|
||||
|
||||
Reçu local : `build/sculpture124-artifact.json`. Les packs normal/Test et le
|
||||
template sont aussi copiés, avec vérification octet pour octet, dans le dossier
|
||||
habituel `sanctuary-beta/build/`.
|
||||
|
||||
Le GameTest dédié reste exclu conformément au refus antérieur de son EULA.
|
||||
Aucun monde personnel n'est ouvert par les essais.
|
||||
|
||||
## Publication et installation
|
||||
|
||||
La [release beta.124](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.124)
|
||||
est publiée depuis `00179e30ef0b45ef98378bc164a7810552dd1bdd`.
|
||||
Le tag exact et les artefacts sont immuables, leurs téléchargements publics
|
||||
vérifiés. Canal packwiz : `67ebcc7d07f8b75e8988f6099e3d6e5704f123fb`.
|
||||
|
||||
Deux synchronisations isolées puis deux dans **Sanctuary Beta** réussissent.
|
||||
Un seul JAR Sanctuary beta.124 est actif, conforme au hash vérifié ; le second
|
||||
passage ne change rien. Les **923 fichiers personnels et réglages suivis**
|
||||
restent inchangés, sans ouverture de monde personnel. Copie préalable dans
|
||||
`sanctuary-backups/before-beta.124/` de l'instance existante.
|
||||
Reçus : `build/sculpture124-isolated.json` et `build/sculpture124-prism.json`.
|
||||
@@ -0,0 +1,84 @@
|
||||
# STAT-07 — Pose centrée des sculptures — beta.119
|
||||
|
||||
Contrat du 17 septembre 2026, branche `codex/sculpture-center-beta119`.
|
||||
|
||||
Viser le carré central de 8 × 8 pixels de la face supérieure ou inférieure
|
||||
du bloc place la sculpture au centre. Les limites de cette zone sont incluses.
|
||||
Autour, le bord horizontal le plus proche reste choisi ; une pose latérale
|
||||
continue à s'appuyer contre le bloc support. L'orientation suit le regard.
|
||||
L'aide du Clay Workshop explique les deux possibilités en français et anglais.
|
||||
|
||||
Le centrage utilise l'emprise réelle des voxels après rotation, en ignorant les
|
||||
marges transparentes. Tous les sommets restent sur la grille de 1/16 de bloc.
|
||||
Une dimension impaire ne peut pas être parfaitement symétrique dans un bloc de
|
||||
16 pixels sans décaler ses voxels : elle prend donc le centrage entier le plus
|
||||
proche, avec un pixel de différence entre les deux marges. Aucune position à
|
||||
un demi-voxel n'est introduite.
|
||||
|
||||
## Compatibilité
|
||||
|
||||
La pose réutilise `anchor=center`, déjà présent depuis beta.113. Aucun nouvel
|
||||
état, identifiant, composant ou format de sauvegarde. Les sculptures existantes
|
||||
gardent leur ancrage ; casser et reposer choisit l'emplacement visé. Le rendu,
|
||||
les couleurs, les chapeaux et les collisions restent inchangés. Aucun parcours
|
||||
de monde existant, aucune régénération. Client et serveur doivent utiliser
|
||||
ensemble la nouvelle version pour le choix de pose.
|
||||
|
||||
## Vérifications et livraison
|
||||
|
||||
Le parcours natif `Statuary106ClientChecks`, avec `Sculpture113ClientChecks`,
|
||||
passe en **54 s** sur Minecraft 26.3/macOS :
|
||||
|
||||
- Vrais clics de pose centrée dans quatre orientations, sur client et serveur,
|
||||
puis pose contre les quatre bords sans modifier les couleurs du modèle.
|
||||
- Limites incluses et points immédiatement de part et d'autre de la zone,
|
||||
faces supérieure/inférieure et positions positives/négatives ; faces
|
||||
latérales toujours calées contre le support.
|
||||
- 5 120 combinaisons de largeur/profondeur, orientation et ancrage : géométrie
|
||||
effectivement rendue sur la grille exacte, emprise sans dépassement,
|
||||
centrage pair/impair et marges transparentes.
|
||||
- Sauvegarde/reconnexion des sculptures centrées et aux bords, sans fichier
|
||||
source ; rotations/miroirs, anciens états, fabrication et hotbar vérifiés.
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest \
|
||||
-PsanctuaryClientTests=true -PsanctuaryStatuary106ClientTests=true \
|
||||
-PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true
|
||||
```
|
||||
|
||||
Marqueurs `SCULPTURE119_PASS`, `STATUARY113_PASS` et
|
||||
`SCULPTURE113_GEOMETRY_PASS` dans `build/sculpture119-client.log`.
|
||||
Captures conservées dans `build/sculpture119-evidence/`, vue centrée relue.
|
||||
Monde plat jetable de graine 106 ; aucun monde personnel ouvert. Pas de
|
||||
validation Windows ni de test depuis deux ordinateurs.
|
||||
Le GameTest dédié reste exclu conformément au refus antérieur de son EULA ;
|
||||
le parcours natif utilise le serveur intégré.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
passe en **2 min 24 s**, 125 tâches. Les sources JAR correspondent aux sources
|
||||
du dépôt ; seuls `SculptureAnchor.class` et le texte d'aide FR/EN diffèrent
|
||||
parmi les classes et ressources de production de beta.118. Les deux packs
|
||||
contiennent le même JAR, sans monde ni fixture de test.
|
||||
|
||||
- Sanctuary-beta.119.mrpack : 10216447 octets, SHA-256
|
||||
`ce29702eaaac7301c77fb6af63a76c6bc1c0c704313ce1b8243c95b5fe59d893`.
|
||||
- Sanctuary-Test-beta.119.mrpack : 10235369 octets, SHA-256
|
||||
`a1a2845f9678b1144d7d9eab4867970cc1776fe0ad5d51722c8110b7c1d4c682`.
|
||||
- JAR Sanctuary : SHA-256
|
||||
`d353bd89b16c53ee1ee48836fa2ff4b311249b280992300c28bf03048d805bff`.
|
||||
|
||||
Reçu local : `build/sculpture119-artifact.json`.
|
||||
|
||||
## Publication et installation
|
||||
|
||||
La [release beta.119](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.119)
|
||||
est publiée depuis `3fd64e1f2a77ea2584b087d6339cf605d8ee0e9b`. Le tag exact et les
|
||||
artefacts sont immuables ; leurs téléchargements publics sont vérifiés.
|
||||
Le canal packwiz avance à `5e823af7807f524f6394acad402fe62328c7e4ab`.
|
||||
|
||||
Deux synchronisations isolées puis deux dans **Sanctuary Beta** réussissent.
|
||||
Un seul JAR Sanctuary beta.119 est actif ; le second passage est identique.
|
||||
Les **923 fichiers personnels et réglages suivis** restent inchangés, sans
|
||||
ouvrir de monde personnel. Copie préalable dans
|
||||
`sanctuary-backups/before-beta.119/` de l'instance existante. Reçus locaux :
|
||||
`build/sculpture119-isolated.json` et `build/sculpture119-prism.json`.
|
||||
@@ -0,0 +1,108 @@
|
||||
# SCULPT-11 — Placement, éclats et modèles découverts — beta.125
|
||||
|
||||
Contrat du 17 septembre 2026, branche `codex/sculpture-placement-beta125`.
|
||||
|
||||
Le point visé choisit neuf positions horizontales (centre, quatre bords et quatre
|
||||
coins) et trois hauteurs (bas, milieu et haut). Sur un support, la sculpture
|
||||
repose au bas de son bloc ; sous un plafond, elle touche le haut ; sur une face
|
||||
latérale, elle suit la hauteur visée et reste contre le support. Les sculptures
|
||||
restent debout et s'orientent selon le regard horizontal du joueur.
|
||||
La bande centrale occupe les huit pixels médians, limites incluses. Toute pose
|
||||
reste sur la grille 1/16 : une dimension impaire utilise le centre entier le
|
||||
plus proche, jamais un demi-voxel. Rendu, boîte unique de sélection et collision
|
||||
partagent les mêmes offsets. La lumière conserve les règles de beta.122.
|
||||
|
||||
## Compatibilité additive des états existants
|
||||
|
||||
Les cinq anciennes valeurs `anchor` gardent exactement leurs noms. Quatre
|
||||
valeurs de coin sont ajoutées. La nouvelle propriété `vertical_anchor` accepte
|
||||
`bottom`, `center`, `top` et `original`, valeur par défaut réservée à la
|
||||
compatibilité. La lecture d'un ancien bloc sans cette propriété conserve
|
||||
l'ancienne hauteur, même si le modèle a des marges transparentes en bas.
|
||||
Le bloc possède 144 états : 108 placements nouveaux et 36 états de compatibilité.
|
||||
|
||||
Le schéma 1 des sculptures, leurs données de voxels et tous leurs identifiants
|
||||
restent inchangés. Aucun monde n'est parcouru ou réécrit, aucun chunk régénéré.
|
||||
Les nouveaux ancrages nécessitent beta.125 ; le retour à une version antérieure
|
||||
ne garantit pas leur position. Ce contrat autorise l'ajout compatible des états,
|
||||
pas une migration destructive des sauvegardes personnelles.
|
||||
|
||||
## Particules
|
||||
|
||||
Les coups et la casse émettent des éclats de la couleur des surfaces voxelisées
|
||||
réellement affichées, avec leur orientation et leur ancrage. Un coup vise la
|
||||
surface réelle la plus proche du point sélectionné, même devant un trou visuel.
|
||||
La casse échantillonne au plus 64 faces ; aucun calcul de texture n'est refait.
|
||||
Les éclats utilisent une taille de voxel, la gravité et la lumière natives.
|
||||
Une petite mémoire par monde (128 entrées de 64 faces, validité 40 ticks) conserve les
|
||||
surfaces si la suppression du bloc précède l'événement de casse. Les autres
|
||||
blocs gardent leurs particules habituelles.
|
||||
|
||||
## Clay Workshop
|
||||
|
||||
L'onglet Animaux utilise exactement les découvertes serveur du catalogue de
|
||||
statues (rencontre, victoire ou mort face à l'espèce). Le menu transmet cette
|
||||
liste à chaque ouverture, sans dépendre d'une visite préalable au Métabli.
|
||||
Le modèle natif et sa texture sont capturés localement, voxelisés en miniature,
|
||||
puis recolorés par la matière choisie. Le résultat reste fabriqué et payé côté
|
||||
serveur. Les sélections d'espèces non découvertes sont refusées. L'onglet Imports
|
||||
conserve les fichiers GLB. Aucun nouveau format de sculpture n'est introduit.
|
||||
Libellés FR et EN.
|
||||
|
||||
## Vérifications
|
||||
|
||||
Le parcours natif `Sculpture125ClientChecks` passe en **1 min 2 s**, client
|
||||
Minecraft 26.3 sur macOS et serveur intégré jetable (graines 125 et 122).
|
||||
|
||||
- 54 clics réels sur les six faces : centres, bords, coins et hauteurs.
|
||||
- 432 contextes de pose, coordonnées positives/négatives, quatre orientations,
|
||||
rotations et miroirs ; 144 états valides.
|
||||
- 20 anciens états sans `vertical_anchor` conservent leur hauteur et marges.
|
||||
- Couleur exacte des éclats au point frappé, surfaces réellement occupées,
|
||||
limite de 64 fragments, événement après suppression et particules normales
|
||||
d'un bloc de pierre témoin.
|
||||
- Atelier : découvertes par rencontre, victoire et mort, transmission native
|
||||
du menu, refus serveur d'une espèce inconnue, trois modèles natifs (vache,
|
||||
mouton, cochon), paiement d'un bloc en survie et import GLB conservé.
|
||||
- Sauvegarde et reconnexion avec les nouveaux coins et hauteurs.
|
||||
- 576 formes comparées aux limites du maillage affiché, boîte unique partagée,
|
||||
cache réutilisé et 12 arêtes ; 9 216 empreintes orientées sur grille entière.
|
||||
- 75 sculptures superposées : ciel à 15, lumière de bloc à 13 après traversée,
|
||||
pièce noire à 0. Pose dans le joueur refusée, même devant un trou visuel.
|
||||
|
||||
Marqueurs dans `build/sculpture125-client.log`. Captures de plafond, murs et
|
||||
atelier relues dans `build/sculpture125-evidence/`. Aucun essai Windows,
|
||||
client distant ou shader tiers ; trois espèces vérifiées visuellement, sans
|
||||
prétendre avoir inspecté chaque espèce. Aucun benchmark FPS global.
|
||||
|
||||
Le GameTest dédié demeure exclu conformément au refus antérieur de son EULA.
|
||||
Les mondes de test sont jetables ; aucun monde personnel n'est ouvert.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
passe en **2 min 16 s**, 126 tâches (110 exécutées, 16 à jour). Les sources
|
||||
des JAR correspondent exactement au dépôt. La comparaison avec beta.124
|
||||
limite les différences aux classes de placement, particules et atelier prévues,
|
||||
aux nouveaux libellés FR/EN, au mixin client et à la source blanche de particules.
|
||||
Les packs normal/Test partagent le même JAR, sans monde ni fixture ; le template
|
||||
reproduit les ressources du mod et du pack intégré.
|
||||
|
||||
- Sanctuary-beta.125.mrpack : 10286360 octets, SHA-256 `9277e59c640c40392ab3750b402bb840020884878f6ece6978e6c4653e18655e`.
|
||||
- Sanctuary-Test-beta.125.mrpack : 10305282 octets, SHA-256 `9e3dbfa14b5382ba4eb62a78fa7d2161758c2f0e1fdc50fbd5ed776fd4ce32c5`.
|
||||
- JAR Sanctuary : SHA-256 `b38b75b900dd8cbe015318c739d5547fd7eac52f4337fa517e98f3f6f0ce3b46`.
|
||||
|
||||
Reçu local : `build/sculpture125-artifact.json`. Les deux packs et le template
|
||||
sont copiés et vérifiés dans le dossier habituel `sanctuary-beta/build/`.
|
||||
|
||||
## Publication et installation
|
||||
|
||||
La [release beta.125](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.125)
|
||||
est publiée depuis `4ec5b0d028a23a9f753770988ffba61015e2e49a`.
|
||||
Tag et artefacts immuables, téléchargements publics vérifiés. Canal packwiz :
|
||||
`47eb833911a96eef0b13805dafe65b2ab7b95c87`.
|
||||
|
||||
Deux synchronisations isolées puis deux dans l'instance **Sanctuary Beta**
|
||||
réussissent. Un seul JAR Sanctuary beta.125 est actif, conforme au hash vérifié ;
|
||||
le second passage ne change rien. Les **923 fichiers personnels et réglages
|
||||
suivis** restent inchangés, sans ouverture de monde personnel. Copie préalable
|
||||
sous `sanctuary-backups/before-beta.125/`. Reçus :
|
||||
`build/sculpture125-isolated.json` et `build/sculpture125-prism.json`.
|
||||
@@ -0,0 +1,108 @@
|
||||
# SCULPT-09 — Forme physique et lumière — beta.122
|
||||
|
||||
Contrat du 17 septembre 2026, branche `codex/sculpture-shape-light-beta122`.
|
||||
Le créateur demande des bounding boxes adaptées aux sculptures et la suppression
|
||||
des ombres cubiques visibles lorsqu'on en pose plusieurs côte à côte.
|
||||
|
||||
La sélection, le contact avec les entités et les collisions suivent les voxels
|
||||
occupés de chaque sculpture, y compris les creux. Le rendu et la forme physique
|
||||
partagent leur placement entier sur la grille 1/16, après orientation et ancrage.
|
||||
Le centre, les quatre bords et les dimensions impaires gardent leur alignement.
|
||||
La pose vérifie aussi les voxels portés avant que l’entité de bloc existe :
|
||||
elle refuse une intersection avec le joueur et autorise les espaces libres.
|
||||
La forme est construite directement sur une grille native 16³ et mise en cache
|
||||
par entité de bloc, modèle et état ; aucun calcul complet à chaque interrogation.
|
||||
|
||||
Les sculptures transmettent la lumière et ne sont plus utilisées comme cubes
|
||||
pleins par l'occlusion ambiante. Leurs faces restent éclairées par le monde,
|
||||
sans émission de lumière et sans rendu à luminosité maximale. Cette règle est
|
||||
commune aux sculptures : l'éclairage natif stocké par bloc ne permet pas une
|
||||
ombre distincte pour chaque petit voxel. L'atelier d'argile reste inchangé.
|
||||
|
||||
Aucun identifiant, blockstate, format d'item ou schéma sauvegardé ne change.
|
||||
Les formes sont recalculées à partir des voxels existants ; aucune migration,
|
||||
aucun parcours de monde ni régénération de chunk. Les données inconnues gardent
|
||||
leur conservation opaque et une petite base sélectionnable pour récupérer l'item.
|
||||
Le travail de documentation déjà présent dans l'autre branche reste intact.
|
||||
|
||||
## Vérifications et livraison
|
||||
|
||||
Le parcours `Sculpture122ClientChecks` passe en **37 s** sur Minecraft 26.3,
|
||||
client macOS et serveur intégré, dans un monde plat jetable de graine 122 :
|
||||
|
||||
- Pose par la commande native d'utilisation ; sélection du pilier et visée
|
||||
à travers le trou d'une arche jusqu'au bloc derrière, captures relues.
|
||||
- Requêtes natives de collision côté serveur et client : voxels occupés solides,
|
||||
espace vide libre, aucune profondeur artificielle d'un bloc entier.
|
||||
- Pose refusée dans le joueur, sans consommer l'objet ; petite sculpture acceptée
|
||||
dans la partie libre du même bloc, sans intersection avec le joueur.
|
||||
- **80 cas** confrontent le volume et les faces de collision au maillage réellement
|
||||
émis : arche creuse, marges vides, cube de 4 096 voxels, voxel unique, quatre
|
||||
orientations et cinq ancrages. Chaque interrogation répétée réutilise la forme.
|
||||
- Régression de **5 120 placements** du rendu existant : dimensions paires/impaires,
|
||||
orientations et ancrages, plus marqueurs de direction et modèles avec marges.
|
||||
- Changement d'orientation/ancrage puis changement des voxels sur la même entité :
|
||||
cache recalculé et forme client synchronisée.
|
||||
- **75 sculptures en trois couches** : skylight natif conservé à 15 partout.
|
||||
Un toit de pierre témoin produit toujours une ombre. La lumière d'un bloc
|
||||
traverse une sculpture avec l'atténuation de distance native (13 à deux blocs).
|
||||
- Le rendu reçoit la lumière réelle du monde : 15 au ciel, **0 dans une pièce
|
||||
fermée et obscure**. Aucun rendu artificiellement lumineux.
|
||||
- Sauvegarde/reconnexion : modèle, collisions et lumière conservés sur les
|
||||
deux côtés, sans fichier 3D source.
|
||||
|
||||
```sh
|
||||
./gradlew :sanctuary:runClientGameTest \
|
||||
-PsanctuaryClientTests=true -PsanctuarySculpture122ClientTests=true \
|
||||
-PsanctuaryClientNoVsync=true -PsanctuaryQuickTests=true
|
||||
```
|
||||
|
||||
Marqueurs `SCULPTURE122_PASS`, `SCULPTURE122_GEOMETRY_PASS`,
|
||||
`SCULPTURE122_PLACEMENT_PASS`, `SCULPTURE122_LIGHT_PASS` et
|
||||
`SCULPTURE113_GEOMETRY_PASS` dans `build/sculpture122-client.log` ; captures
|
||||
conservées dans `build/sculpture122-evidence/`. Le test prépare explicitement
|
||||
son sol à Y=0 : le preset plat nu commence à Y=-1.
|
||||
Aucun monde personnel ouvert ; pas d'essai Windows ni depuis deux ordinateurs,
|
||||
ni de garantie sur les ombres ajoutées par des shaders tiers.
|
||||
Le GameTest serveur dédié reste exclu conformément au refus antérieur de son EULA.
|
||||
|
||||
`./gradlew check build assemblePack assembleTestPack -x :sanctuary:runGameTest`
|
||||
passe en **2 min 13 s**, 126 tâches. Les sources JAR correspondent aux sources
|
||||
Java du dépôt. Par rapport à beta.121, les différences de production se limitent
|
||||
aux classes des sculptures et à la nouvelle géométrie partagée (14 entrées,
|
||||
y compris le déplacement du sélecteur synthétique d'orientation). Toutes les
|
||||
ressources client, données serveur et configurations de mixins sont identiques.
|
||||
Les packs normal/Test contiennent le même JAR, sans sauvegarde ni fixture.
|
||||
Le template beta.122 contient les mêmes ressources que beta.121, octet pour octet.
|
||||
|
||||
Reçu local : `build/sculpture122-artifact.json`.
|
||||
|
||||
- `Sanctuary-beta.122.mrpack` : 10267459 octets, SHA-256
|
||||
`b6e24d65797eb7f16670d2f3a591b5f2476820608f72241ecd37fb78a486008e`.
|
||||
- `Sanctuary-Test-beta.122.mrpack` : 10286380 octets, SHA-256
|
||||
`90487ee3ad4298fccb8c24e8781af4cbf043d88dc0379fba5c21d99733dac92d`.
|
||||
|
||||
JAR Sanctuary : SHA-256
|
||||
`ff8ebf89f39a64809fae6912253386793e9b5e66ec0adb9fa7521729893d406e`.
|
||||
|
||||
## Publication et installation
|
||||
|
||||
La [release beta.122](https://git.botsu.net/koka/sanctuary-beta/releases/tag/beta.122)
|
||||
est publiée depuis `edc7fc3dfb117cde61be42c1d79b03af11f5dec6`. Tag et artefacts immuables,
|
||||
téléchargements publics vérifiés. Canal packwiz :
|
||||
`3d340bea0093b709c6018624795a1b3ca557b72d`.
|
||||
|
||||
Deux synchronisations isolées puis deux dans **Sanctuary Beta** réussissent.
|
||||
Un seul JAR Sanctuary beta.122 est actif ; le second passage est identique.
|
||||
Les **923 fichiers personnels et réglages suivis** restent inchangés.
|
||||
Aucun monde personnel ouvert. Copie préalable dans
|
||||
`sanctuary-backups/before-beta.122/` de l'instance existante ; reçus
|
||||
`build/sculpture122-isolated.json` et `build/sculpture122-prism.json`.
|
||||
|
||||
Le ticket a été réalisé dans le worktree `sanctuary-sculpture-beta122` afin de
|
||||
préserver les changements de `docs/vision.md` et `docs/villageois-illageois.md`
|
||||
déjà présents sur la branche de documentation du checkout principal.
|
||||
|
||||
- [Pack normal](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.122/Sanctuary-beta.122.mrpack).
|
||||
- [Pack de test](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.122/Sanctuary-Test-beta.122.mrpack).
|
||||
- [Template personnel](https://git.botsu.net/koka/sanctuary-beta/releases/download/beta.122/Sanctuary-Template-beta.122.zip).
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user