feat: establish simulation scaling baseline
This commit is contained in:
@@ -467,7 +467,10 @@ a smaller active population remains fully represented. Moving an NPC between
|
||||
fidelity levels preserves identity, inventory, task, relationships, and
|
||||
important history.
|
||||
|
||||
Set the target population only after collecting baseline measurements.
|
||||
[Simulation scaling baseline 01](benchmarks/SIMULATION_SCALING_BASELINE_01.md)
|
||||
sets the first local target at 600 data-only full-fidelity NPCs while preserving
|
||||
deterministic state. Revisit that target when world presentation or LOD enters
|
||||
the measured workload.
|
||||
|
||||
## Milestone 9 — Player interaction and social agency
|
||||
|
||||
@@ -849,14 +852,29 @@ cared-about shortage now produces an inspectable opportunity whose NPC and
|
||||
player responses both use the originating resource, relationship, knowledge,
|
||||
and event systems rather than quest-only duplicates.
|
||||
|
||||
The immediate next slice should begin Milestone 8 with a deterministic headless
|
||||
scaling baseline: measure tick throughput, serialized-state growth, and retained
|
||||
history across increasing NPC/event counts using the current full-fidelity
|
||||
simulation. Set an evidence-backed target before adding spatial partitions,
|
||||
batching, or active/abstract LOD transitions.
|
||||
The first Milestone 8 measurement slice is complete. A reusable schema-valid
|
||||
headless fixture and CLI runner now measure three fresh deterministic samples
|
||||
across 6, 60, and 600 NPCs plus 600 and 6,000 seeded event histories. The
|
||||
reviewed Apple M1 Max baseline reaches 65.84 ticks per second at 600 NPCs, but
|
||||
10x population from 60 to 600 costs about 24.4x per tick and creates 20,950
|
||||
objective events over 200 measured ticks. The machine-readable samples,
|
||||
workload exclusions, checksums, and local 50-ticks-per-second reference target
|
||||
live in
|
||||
[Simulation scaling baseline 01](benchmarks/SIMULATION_SCALING_BASELINE_01.md).
|
||||
|
||||
The immediate next slice should build one bounded per-tick population view for
|
||||
the existing trusted-starving-subject query. That scarce-food path currently
|
||||
rebuilds an all-NPC lookup for each applicable idle decision, making it the
|
||||
first code-level candidate consistent with the measured superlinear growth.
|
||||
Preserve exact selection/checksum behavior and rerun the same ledger before
|
||||
choosing a spatial index or active/abstract LOD design.
|
||||
|
||||
Recently completed:
|
||||
|
||||
- Deterministic simulation scaling baseline: schema-valid full-fidelity
|
||||
fixtures, a repeatable CLI runner, and a fast headless regression now record
|
||||
population throughput, phase timing, serialized-state growth, history
|
||||
retention, event growth, and deterministic checksums before optimization.
|
||||
- Simulation responsibility cleanup: storage/inventory transactions now live
|
||||
in `VillageEconomy`, ordered history and rate queries live in
|
||||
`SimulationEventLog`, and `SimulationManager` exposes a shorter tick
|
||||
|
||||
Reference in New Issue
Block a user