docs: mark simulation state phase complete

This commit is contained in:
2026-07-05 12:52:13 +02:00
parent 30cac28fc0
commit f83d2c7704
5 changed files with 115 additions and 32 deletions
+20 -16
View File
@@ -54,17 +54,21 @@ The gate is complete when the same scenario produces the same checksum without
loading `main.tscn`, and loading or unloading a visual does not change
authoritative NPC or resource state.
**Current progress:** the first deterministic slice is implemented:
**Current progress:** the first two architecture slices are implemented:
- `SimulationClock` advances explicit fixed ticks while preserving remainder;
- NPC decisions and visual wander requests use controlled per-NPC random
streams derived from an exported simulation seed;
- a headless scenario verifies same-seed equality, different-seed divergence,
and a final-state checksum without loading `main.tscn`.
- versioned JSON records capture and restore current NPC, village, resource,
clock, and RNG state;
- a save-at-tick-24 continuation test matches an uninterrupted 48-tick
checksum and rejects unsupported schema versions.
The gate remains open. Versioned state records, scene-independent resource
authority, stable definitions, responsibility separation, and visual
load/unload invariance are still required.
The gate remains open. Scene-independent resource authority, stable
definitions, responsibility separation, and visual load/unload invariance are
still required. See [the simulation state schema](SIMULATION_STATE_SCHEMA.md).
## Three vertical slices
@@ -611,23 +615,23 @@ Completed foundations:
The practical next sequence is:
1. Add versioned serializable NPC, village, and resource state records,
including enough clock and RNG state for deterministic continuation.
2. Move resource amount/reservation authority out of `ResourceNode` scenes.
3. Replace free-form task and profession strings with stable IDs and
1. Move resource amount/reservation authority out of `ResourceNode` scenes and
make unloaded resources remain in state.
2. Replace free-form task and profession strings with stable IDs and
definitions.
4. Separate action selection, execution, target resolution, and visual travel;
3. Separate action selection, execution, target resolution, and visual travel;
remove decision mutation from `WorldViewManager`.
5. Define active-position synchronization and prove visual unload/reload.
6. Pass the architecture gate's deterministic headless and unloaded-visual exit
4. Define active-position synchronization and prove visual unload/reload.
5. Pass the architecture gate's deterministic headless and unloaded-visual exit
tests.
7. Build location-based food storage, inventory, and transactions.
8. Emit structured economic events while making one NPC visibly gather, carry,
6. Build location-based food storage, inventory, and transactions.
7. Emit structured economic events while making one NPC visibly gather, carry,
store, retrieve, and eat food.
9. Add versioned save/load before schedules or social state expand.
10. Resume Terrain3D sculpting, runtime integration, and the simulation-garden
8. Add save-slot persistence and explicit schema migrations before schedules
or social state expand.
9. Resume Terrain3D sculpting, runtime integration, and the simulation-garden
beauty pass.
11. Add stylized character and profession readability plus the reason
10. Add stylized character and profession readability plus the reason
inspector.
This order strengthens the simulation while regularly producing visible