LifePlay-Revival/Docs/Migration/etat/REL/ALPHA/REL-ALPHA.md
edujiro5972 8084622450 LifePlay UE 5.8 : état de développement au 2026-10-19
Tickets : REP1-T4

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-19 22:57:42 +02:00

9.7 KiB

Fiche REL-ALPHA — Niveau N1 (lot) — Modèle prévu opus (orchestration) ; lp-writer, lp-validator, lp-builder (sonnet / haiku) | utilisé claude-opus-5-5 (préparation) — Agent session REL — Skills lp-lot, lp-build, lp-paths

REL-ALPHA : build de livraison de l'alpha 2026.10.2.1a (2026-10-14) — fiche préparée, en attente d'UE-GO

Demande de l'utilisateur, transmise par Big Boss le 2026-10-14 : « bien je valide le comportement de l'alpha. Prépares la build de livraison ».

  • Base : l'arbre actuel, qui correspond à COMMUN-13 validé, plus le seul changement de version.
  • Rien n'est encore fait dans UE. Seul un relevé T0 de %LOCALAPPDATA%\LifePlay a été pris, en lecture seule (§ T4).

Point à trancher avant T1 (Big Boss / utilisateur) : la lettre « a » casse le contrôle de version des mods

Constat (établi, lecture du code) :

  • LPModGuard.cpp:52-73 (ParseVersion) refuse toute composante non numérique : 2026.10.2.1a est donc illisible.
  • Conséquence 1 : bGameParsed = false (l. 272). Le contrôle « version max » des mods est désactivé sans bruit en Shipping (l. 381), puisque la ligne d'erreur (l. 277) n'existe qu'en journal et que le Shipping n'en a pas.
  • Conséquence 2 : BuildMod.ps1:181, 279 (addon) inscrit MODULE_GAME_VERSION: <ProjectVersion> dans tout mod construit contre ce jeu. Un mod construit pour l'alpha porterait 2026.10.2.1a. Il serait refusé par le contrôle « version min », actif par défaut (LPModGuard.cpp:366-371, « unreadable game version »).
  • LPVersionSubsystem.cpp:15 affiche la chaîne telle quelle (GI.version_text) : aucun problème de ce côté.
Option Changement Effet
A (recommandée) ProjectVersion=2026.10.2.1 ; « alpha » seulement dans le nom de l'archive, le tag v2026.10.2.1a et les notes de version contrôles des mods intacts ; aucun code touché ; le menu affiche 2026.10.2.1
B Garder 2026.10.2.1a, puis accepter un suffixe de lettres dans ParseVersion (C++ de LPModGuard, VAL, build) touche au format MODULE_GAME_VERSION des mods, donc au contrat des mods, figé : décision dédiée de l'utilisateur ; risque avant la livraison
C Garder 2026.10.2.1a sans rien changer version max désactivée ; mods construits pour l'alpha refusés tant que le joueur ne décoche pas le contrôle dans Settings > Misc. Déconseillé

Étapes (une fiche par étape, livrables dans ce dossier)

T1 — Version (sans jeton UE)

  • Tools\Snapshot.ps1 -Lot REL-ALPHA -Path Config\DefaultGame.ini, puis Edit de la ligne 4 : ProjectVersion=2026.10.2.0 → valeur de l'option retenue. Fins de ligne d'origine gardées (git ls-files --eol relevé avant).

  • Diff attendu : 1 ligne. Livrable : REL-ALPHA-T1-IMPL.md.

  • T1v (lp-validator, agent distinct) :

    • git diff -- Config/DefaultGame.ini = 1 ligne ;
    • MD5 de l'instantané = MD5 de HEAD ;
    • aucun autre fichier de Config/ modifié ;
    • format conforme à ParseVersion si l'option A est retenue.

    Livrable : REL-ALPHA-T1v-VAL.md.

T2 — Build Shipping (lp-builder, sous UE-GO)

  1. Contrôle d'entrée. UeState.ps1 : 0 processus. MD5 relevés par Get-FileHash et comparés à ceux de COMMUN-13 (message de Big Boss du 2026-10-14) :

    • CameraMode .cpp 1f10631f, .h 9aee8d04 ;
    • PC 707220a6 ; Room 93138747 ; GI 32fc0a97 ; Person 8668a47c ; TopRight cb835360 ;
    • ShowCouple 3cdd572d / 44c721ee ;
    • DirectControl 5f9d7e00 / 01d5ea3c ;
    • OutdoorRoom dc68ed8a / 6a3edd73 ;
    • Debug f0081f9f / 78d3a079 ;
    • SaveRelaunch a0cd6687 / f31173f6 ;
    • BonusReward 16147626 / 87177c7a ;
    • LifePlay.cpp 3f7ffa30 ;
    • ajouts REL-ALPHA (option B) : LPModGuard.cpp 54aac4d9 (V2, VAL V3 PASS-STATIC), LPModGuard.h c09543be (inchangé), Config/DefaultGame.ini 4f89f2d1 (ProjectVersion=2026.10.2.1a, VAL T1v PASS).

    Écart = ARRÊT. Aussi : Mods\ vide ; aucun LPSaveLocation.ini dans la copie.

  2. Compilation : .\Tools\Build.ps1 -Lot REL-ALPHA -Target LifePlay -Config Shipping -ExtraArgs '-NoUBA' (procédure U8-T2r2). Critère : code 0, 0 erreur, 0 avertissement nouveau.

  3. Cuisson à froid, sans -iterate (doc 21 l. 214, U8-T3r2) : .cmd d'une ligne RunUAT.bat BuildCookRun -project=… -platform=Win64 -clientconfig=Shipping -skipbuild -cook -createreleaseversion=<version> -unattended -utf8output -nop4, avec la sortie redirigée dans le .cmd (le crochet refuse > sur la ligne de commande de l'agent).

    Critères : FULL COOK présent ; LegacyIterative (casse exacte) absent ; 0 erreur ; 0 avertissement ; nombre de paquets relevé.

  4. Mise en paquet (U8-T4r2) : -skipbuild -skipcook -stage -pak -iostore -compressed -createreleaseversion=<version> -archive -archivedirectory="D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping" -nodebuginfo.

    PDB copié dans D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping_PDB avec BUILD-ID.txt (GUID RSDS de l'exe).

  5. CheckPackage : pwsh -NoProfile -File Tools\CheckPackage.ps1 -Build "D:\Game\LifePlay_Build_5.8_ALPHA-2026.10.2.1a_Shipping" -Config Shipping. Critère : PASS, code 0.

  6. Livrable : REL-ALPHA-T2-BUILD.md, avec les journaux archivés sous Saved\Logs\portage\REL-ALPHA_* et une ligne de traces.

Durée estimée (estimé d'après U8r2 et COMMUN-13) : 20 à 35 min de jeton UE.

  • Compilation Shipping : 5 à 15 min. Le module LifePlay est à recompiler en entier, puisque le dernier exe Shipping de la copie date du 2026-10-10.
  • Cuisson complète : 3 à 10 min (U8r2 : 2 min 31 s ; assets modifiés depuis).
  • Paquet : 1 à 2 min ; CheckPackage et PDB : 1 à 2 min.

T3 — Contrôles du Shipping (lp-validator, sans lancer le jeu, sans jeton UE)

Contrôle Méthode Attendu
Version UnrealPak.exe <archive>\Windows\LifePlay\Content\Paks\LifePlay-Windows.pak -Extract <scratchpad> -Filter=*DefaultGame.ini, ou -List puis extraction ; Releases\<version> créé par la cuisson ProjectVersion=<version> dans l'ini du pak ; dossier Releases\<version> présent
DrawDebugBox (ERR-124) Lecture : EngineDefines.h:13-15 donne UE_ENABLE_DEBUG_DRAWING = !(SHIPPING || TEST) || WITH_EDITOR, et DrawDebugHelpers.h:14 : les appels sont vides en Shipping. Archive : contrôle croisé par -clientconfig=Shipping dans le journal UAT établi par lecture ; aucun appel actif en Shipping
Témoins de débogage LPDebugSubsystem.cpp:7 (#if !UE_BUILD_SHIPPING) ; dans l'exe (UTF-16LE) : 0 occurrence de chaînes propres au débogage, par exemple Profiling/LPDebug et MemReports (LPDebugSubsystem.cpp:78, 101) 0
Garde LPSaveRelaunch Dans LifePlay-Win64-Shipping.exe (UTF-16LE) : LP_SAVE_RELAUNCHED, LPSaveLocation.ini, \LifePlay-Revival, -lpnosaverelaunch, SaveLocation, Content\Paks\LifePlay-Windows.pak 6 sur 6 présentes
Sentry absent Archive : 0 fichier *sentry*, 0 crashpad_handler.exe ; exe : 0 sentry (ASCII et UTF-16, sans casse) 0
LPSaveLocation.ini Get-ChildItem -Recurse <archive> -Filter LPSaveLocation.ini 0
Développement CheckPackage (T2.5) : aucun PDB, addon, .git ni LastResort* dans l'archive PASS

Livrable : REL-ALPHA-T3-VAL.md.

T4 — Essais E5 et E9 avec l'utilisateur (Shipping, via Big Boss)

  • Relevé T0 pris le 2026-10-14 (lecture seule) : REL-ALPHA-releve-T0-LifePlay.csv (chemin relatif, octets, date, MD5). Contenu de %LOCALAPPDATA%\LifePlay : 68 fichiers, 19 650 943 octets, dernière écriture 2026-10-13 23:17:10. %LOCALAPPDATA%\LifePlay-Revival est absent.
    • Note : les écritures du 2026-10-13 entre 22:58 et 23:17 (WindowsNoEditor\*.ini, UE4CC-*, Default.sav, GameSettings.sav) viennent d'un jeu UE4, la version d'origine. Ce dossier reste donc le dossier vivant des anciennes versions.
  • Juste avant l'essai : refaire le même relevé (T1), identique à T0 sauf si une ancienne version a été jouée entre-temps, et vérifier que LifePlay-Revival est absent.
  • E9 (Shipping sans .ini) : l'utilisateur lance <archive>\Windows\LifePlay.exe, puis fait une nouvelle partie, une sauvegarde, quitte, relance et charge par Continuer. Attendus :
    • pendant le jeu, Get-CimInstance Win32_Process -Filter "Name like 'LifePlay%'" montre 3 processus : le bootstrap, le parent LifePlay-Win64-Shipping.exe sans -UserDir, et l'enfant avec -UserDir="…\LifePlay-Revival" ;
    • %LOCALAPPDATA%\LifePlay-Revival\Saved\{Config,SaveGames} est créé ;
    • Continuer recharge la partie ;
    • relevé T2, pris après la fermeture du dernier jeu, identique à T1 (0 fichier créé ou modifié dans %LOCALAPPDATA%\LifePlay).
  • E5 (SaveDir invalide) : poser <archive>\Windows\LifePlay\LPSaveLocation.ini avec [SaveLocation] et SaveDir=relatif\x, lancer puis quitter. Même dossier LifePlay-Revival, même ancien dossier intact. Retirer le .ini après l'essai, puisque l'archive se publie sans lui.
  • Sans journal en Shipping, la preuve vient des lignes de commande, des dossiers et des relevés. Livrable : REL-ALPHA-T4-ESSAI.md.

T5 — Après l'essai de l'utilisateur

  • Copie de l'archive vers D:\Game\LifePlay_Publication\ contrôlée par Tools\PubCheck.ps1 (code 0 exigé).
  • Notes de version : brouillon REL-ALPHA-NOTES.md, soumis à Big Boss. Elles reprennent le README REL-SAV-DOC D1 (nouveau dossier, anciennes sauvegardes non déplacées, LPSaveLocation.ini).
  • Tag local v2026.10.2.1a par le gardien, après les commits des lots ordonnés par Big Boss. Pas de push.

Contraintes

Agents lp-* ; ni tee, ni >, ni -> dans les commandes des agents (redirection seulement dans un .cmd écrit par Write) ; un refus du crochet entraîne l'arrêt et un compte rendu ; aucun jeton UE avant l'UE-GO ; aucun fichier hors Config/DefaultGame.ini (T1) et les livrables.