# INTRO-01 — apparition galactique, beta.031 Branche `codex/introduction-beta031`. Première proposition jouable demandée le 14 septembre 2026 : entre **Entrer dans Sanctuary** et le spawn / message `helloworld`, l'identité du joueur apparaît dans le vide. ## Séquence proposée Durée **29,5 secondes**, indépendante du nombre d'images par seconde. La direction demandée s'inspire de la tension et du mystère de l'introduction de **Super Metroid**, avec une composition propre à Sanctuary. - 0–2 s : noir profond, grondement lointain et premières traces de profondeur. - 2–22,2 s : **un glyphe après l'autre**, au centre. Chaque signe s'approche, persiste brièvement, puis traverse le regard avec des rémanences. Les premiers durent près de 1,4 s ; les derniers s'enchaînent en environ un quart de seconde. Leur lumière augmente, du bleu gris presque noir au blanc froid. Des rémanences spectrales cyan et violettes accompagnent les premiers signes. - 22,2–28,6 s : les glyphes partent des bords de l'écran et descendent vers le centre en tournant. Leurs traces forment les marches d'un escalier en colimaçon **vu du dessus**, avec une spirale circulaire continue. Un portail carré grandit au centre jusqu’à dépasser les bords : la caméra semble entrer à l’intérieur. Sa surface utilise la texture animée native du portail Minecraft. - 28,6–29,5 s : la spirale entre dans un **flash blanc**. Le blanc couvre la transition réseau et le chargement des chunks, puis s'efface en 1,2 s sur le monde prêt : l'ouverture révèle le spawn, sans retour au panorama du menu. Les grands glyphes de la première partie et leurs rémanences adaptent leur cadrage à la taille de la fenêtre. L'UUID exact fourni par le serveur conserve ses 128 bits : chaque chiffre hexadécimal `0..f` devient une lettre `a..p`, rendue avec la police Minecraft `minecraft:alt` (SGA). Tous les signes passent dans leur ordre UUID. Ils ne s'accumulent jamais sur une ligne : seul le signe courant et la courte rémanence du précédent coexistent avant la spirale. Chacun atteint le centre avant le blanc final. Quelques points froids suggèrent la profondeur du vide. Le fond sonore combine l'ambiance de la vallée des âmes, le portail assourdi, une écoute lointaine et huit battements de Warden de plus en plus rapprochés, puis l’ouverture du portail de l’End. Les sons proviennent de Minecraft **26.3-pre-2**, déjà requis ; aucune nouvelle dépendance ou copie de fichier audio vanilla n'est ajoutée. Le mixage respecte les volumes **Général / Ambiance**. Dans beta.031, la musique était interrompue pendant la séquence. [Beta.061](arrival-mount-beta061.md) déclenche désormais la musique à la révélation du portail, puis la conserve jusque dans le monde, sans modifier les réglages. Les ambiances de la cinématique sont arrêtées à la sortie. Le voile blanc est abandonné à une déconnexion ou à un écran d’erreur ; les menus ne sont pas masqués. **Échap** passe la séquence après la première seconde. Une indication FR/EN apparaît en bas après trois secondes. Le flash blanc est unique et progressif, sans clignotement répété. **`/sanctuary intro`** permet de la revoir à volonté, avec son UUID courant. La commande d'aperçu laisse le monde tourner, pour conserver le même mixage sonore que l'introduction. Elle se teste depuis un endroit tranquille. ## Admission et sauvegardes La bio et la couleur sont validées avant le démarrage. Le serveur garde sa tâche de configuration ouverte jusqu'à l'accusé de fin : aucune entité joueur, chute, attaque ou annonce `helloworld` pendant l'introduction. Un paquet de fin avant la création est ignoré, comme une deuxième soumission pendant la cinématique. L'identité utilise le schéma existant, dont `arrived=false` désigne déjà une création qui n'a pas encore rejoint le monde. Après une déconnexion pendant l'introduction, la fiche et sa couleur restent acquises, puis l'apparition reprend à la connexion suivante. `arrived=true` est toujours écrit à l'arrivée effective. Les habitants déjà arrivés ne rejouent pas l'introduction. Deux nouveaux payloads de configuration, `sanctuary:intro_v1` et `sanctuary:intro_finished_v1`, accompagnent le contrat existant. Un client ancien qui reste compatible avec les autres fonctionnalités peut conserver l'ancien parcours ; il ne reçoit pas une cinématique qu'il ne sait pas rendre. Pour tester cette proposition, utiliser le client et le serveur beta.031 ensemble. Aucun schéma, paramètre de génération ou chunk n'est modifié. La commande d'aperçu n'écrit aucun état de progression. ## Vérifications et livraison Les contrôles purs valident les 128 bits de l'UUID, l'ordre et l'accélération, la présence d'au plus deux signes dans la première partie, les trajectoires circulaires toujours convergentes, l'arrivée des 32 signes au centre avant le flash, et la conservation d'une identité interrompue avant son arrivée. Le parcours client natif complet réussit sur un monde Sanctuary neuf, graine `42` : validation de fiche, UUID serveur, absence de joueur pendant l'animation, paquets prématurés et doublons ignorés, arrivée sous le blanc, effacement sur le monde prêt, reconnexion sans répétition, puis relecture par la commande réellement saisie dans le chat. La fin est unique et une fermeture inattendue n'envoie pas d'accusé de fin. Le serveur conserve son annonce unique. Les dernières retouches de rendu (rémanences, courbe circulaire et portail qui remplit l'écran) passent ensuite le parcours graphique court, en français et en anglais, avec redimensionnement. Elles ne modifient pas l'admission ni le raccord du flash déjà testé. Les captures sont inspectées dans `build/intro031-evidence/`. Logs : `build/intro031-spiral-client.log` et `build/intro031-final-visual.log`. `./gradlew check build assemblePack -PsanctuaryFocusedTests=progression,lights` réussit sur le code final : **9 tests serveur**, contrôles purs du projet, construction et vérification des manifestes passent. Export local : [Sanctuary-beta.031.mrpack](../build/Sanctuary-beta.031.mrpack), **4 810 444 octets**. Les **1 278 classes** du JAR embarqué sont identiques au build ; aucune classe de test n'est distribuée. La comparaison avec beta.030 borne les changements à l'introduction et à son admission. Les instructions des anciens payloads Action/Names/Snapshot restent identiques (seules leurs lignes de debug se déplacent). Les classes Demeure/JEI et l'archive beta.030 sont préservées. SHA-256 MRpack : `c7161e024d84ff9709ccaea8f940b79d5f8adba743ecf5f7759c273424297717`. Reçu : `build/intro031-artifact.json` ; build : `build/intro031-check.log`. Le canal publié et l'instance Prism personnelle ne sont pas modifiés par cet export d'essai. L'introduction reste une proposition à affiner à l'écoute et en partie réelle. Aucun essai Windows ni connexion à un serveur distant n'est revendiqué. Aucune sauvegarde personnelle n'a servi aux essais.