Stabilization batch 01¶
Goal: correct three independent source defects without new features or player-save writes.
| Issue | Intended correction | Verification |
|---|---|---|
| GAME-04 | Store best level under BestLevel, preserving separate score history |
Exercise GameEndValueToSaveData across improving/regressing level and score using in-memory player data. |
| GAME-07 | Check a null reward array before its length | Invoke Enemy.Rewarding with null and empty arrays on an inactive object. |
| SAVE-01 | Accept null Steam identity in legacy construction, preserving nonempty-ID paths | Construct legacy/modern resolvers for null, empty, and a normal Steam ID; check paths without save IO. |
Status: completed at the owner's one-batch checkpoint. Three targeted fixes are applied and regression-verified on the Linux Editor. Full player acceptance and the stabilization goal remain incomplete.
Results¶
| Check | Original gameplay code | Patched code |
|---|---|---|
| Best-level/score history | FAIL: level 20 / score 9 did not write BestLevel | PASS: runs (level, score) (20,9), (10,30), (25,15) retain independent maxima 25 and 30; TotalScore accumulates to 54. |
| Null/empty enemy reward arrays | FAIL: null reference in reward handling | PASS: null and empty arrays return without throwing. |
| Offline/identified save paths | FAIL: constructor rejected null path component | PASS: null, empty, and normal Steam-ID legacy paths plus modern Main/Beta identity suffixes. |
The baseline run exited nonzero and logged Batch 01: 0/3 checks passed. The corrected run exited 0 and logged Batch 01: 3/3 checks passed. The check runner itself initially needed an adjustment to initialize the existing read-only progression model; that compile setup error was corrected before the original-code baseline above. Game/Editor script compilation completed with the existing source-generator warnings; no new compiler error remains.
Runner: StabilizationChecks, invoked with -executeMethod TinyChaos.EditorTools.StabilizationChecks.RunBatch through the installed Unity CLI, -nographics -buildTarget Linux64. Sanitized results are retained here; temporary detailed logs are /tmp/tinychaos-batch01-before.log and /tmp/tinychaos-batch01-after.log. Do not commit raw launch logs.
Only three existing gameplay lines changed. The additional source file is an Editor-only regression runner with its Unity metadata. No player save was read or written, and no gameplay scene/playthrough, backend call, or Windows IL2CPP build was tested.
Limits and next check-in¶
- GAME-04 fixes future updates; old level/score history was not repaired or guessed. Game-over/save/reload still needs candidate-player verification.
- SAVE-01 proves the Linux constructor/path correction, not a complete offline launch or execution of the Windows resolver branch.
- The owner clarified GAME-01 as an intermittent roughly one-minute main-menu arrival delay across devices. It remains unresolved; past save/graphics experiments do not prove a root cause.
- Windows IL2CPP builds will run on the other PC; local validation/builds target Linux.
- Audio deletion was explicitly left untouched pending investigation. Unity-generated package changes were restored to their exact pre-batch bytes, preserving existing unrelated changes.
- All 41 findings are assigned once in the effort plan; three are now regression-verified and one was already disproven. The remaining findings still require evidence-backed disposition.
- Stop after this batch, as requested. At the next check-in, choose the next small batch or a focused main-menu freeze investigation using the existing plan; do not automatically begin feature work.
The Editor-only runner temporarily substitutes in-memory singleton references, creates inactive objects, and restores references/objects afterward. It does not load a gameplay scene, contact Steam/backend, or read/write player save data. These are regression checks, not a full playthrough.
Original audio deletions remain untouched pending investigation. No release version was chosen.