docs: update architecture gate progress
BUILD_IN_PUBLIC_PLAN.md: - Mark systems gate items deterministic clock and headless checksum as complete; remaining gate work stays flagged as in-progress - Rename TaskZone references to ActivityMarkers for consistency LEARNING_ROADMAP.md: - Add architecture gate progress note: first deterministic slice (SimulationClock, seeded streams, headless checksum) is implemented - Update recommended implementation order to reflect shifted priorities PROJECT_CONTEXT.md: - Note that farm and forest markers have been deleted from main.tscn - Update activity marker description (4 remaining: guard/study/rest/food) - Add SimulationClock.gd and deterministic_simulation_test.gd to repo map - Update technical debt: randomness is now seeded but RNG state is not yet serialized; clock is explicit but orchestration still lives on scene tree - Gate status updated with completed first-slice summary RESOURCE_NODE_MIGRATION.md: - Mark Phase 4b (player parity) complete - Phase 6 renamed from 'remove zone model' to 'replace activity markers' with progress note: TaskZone container and FarmZone/ForestZone deleted - Update divergences to note farm/forest scene nodes have been removed
This commit is contained in:
+35
-28
@@ -180,8 +180,9 @@ The current prototype implements a very early version of observe, autonomous
|
||||
task choice, physical travel, work completion, resource change, and direct
|
||||
player assistance. NPC `gather_food` and `gather_wood` tasks now use finite
|
||||
world `ResourceNode` instances (berry bushes and trees) rather than abstract
|
||||
zone markers. The zone markers remain only for player interaction and
|
||||
non-resource tasks. The migration is documented in
|
||||
zone markers. The obsolete farm and forest markers have been removed. Separate
|
||||
temporary activity markers remain for eating, rest, study, and patrol. The
|
||||
migration is documented in
|
||||
[the ResourceNode plan](RESOURCE_NODE_MIGRATION.md).
|
||||
|
||||
## Current technology
|
||||
@@ -214,7 +215,8 @@ plugin content, not game architecture.
|
||||
follow/focus behavior.
|
||||
- Pressing `E` near a berry bush or tree extracts its configured yield into the
|
||||
village through the same `ResourceNode` contract used by NPCs.
|
||||
- Guard, study, and food interactions still use their temporary task zones.
|
||||
- Guard, study, rest, and food interactions still use temporary activity
|
||||
markers.
|
||||
- `Escape` releases captured mouse input.
|
||||
|
||||
### Village simulation
|
||||
@@ -288,24 +290,20 @@ result only when the task duration completes.
|
||||
Starvation can reduce productivity and eventually kill an NPC. Dead visuals
|
||||
stop moving, change appearance, and no longer collide.
|
||||
|
||||
### Current task zones
|
||||
### Current activity markers
|
||||
|
||||
The main scene contains placeholder zones for:
|
||||
The main scene contains placeholder activity markers for guard duty, study,
|
||||
rest, and food. The former farm and forest zones and their decorative geometry
|
||||
have been deleted.
|
||||
|
||||
- farm;
|
||||
- forest;
|
||||
- guard duty;
|
||||
- study;
|
||||
- rest;
|
||||
- food.
|
||||
**Migration status:** NPC `gather_food` and `gather_wood` target `ResourceNode`
|
||||
instances (berry bushes and trees), with no marker fallback. The remaining
|
||||
markers are direct transitional targets for non-resource NPC tasks:
|
||||
|
||||
The farm, forest, guard, study, rest, and food locations are represented by
|
||||
primitive geometry and a few tree assets.
|
||||
|
||||
**Migration status:** NPC `gather_food` and `gather_wood` no longer use the
|
||||
farm and forest zones. They target `ResourceNode` instances (berry bushes and
|
||||
trees) instead. The zone markers remain for:
|
||||
- Non-resource NPC tasks (patrol → guard_zone, study → study_zone, rest → rest_zone, eat → food_zone)
|
||||
- patrol → guard marker;
|
||||
- study → study marker;
|
||||
- rest → rest marker;
|
||||
- eat → food marker.
|
||||
|
||||
The player also harvests food and wood directly from nearby `ResourceNode`
|
||||
instances. Extraction returns the actual amount removed, updates the village by
|
||||
@@ -465,8 +463,10 @@ NpcVisual navigates through the active world
|
||||
├── simulation/
|
||||
│ ├── SimNPC.gd
|
||||
│ ├── SimVillage.gd
|
||||
│ ├── SimulationClock.gd
|
||||
│ └── SimulationManager.gd
|
||||
├── tests/
|
||||
│ ├── deterministic_simulation_test.gd
|
||||
│ ├── flat_map_baseline_test.gd
|
||||
│ ├── jajce_world_scaffold_test.gd
|
||||
│ └── resource_node_player_parity_test.gd
|
||||
@@ -493,14 +493,17 @@ NpcVisual navigates through the active world
|
||||
|
||||
These are expected prototype constraints, not necessarily isolated bugs:
|
||||
|
||||
- Task names and task-to-zone mappings are duplicated strings.
|
||||
- Task zones remain for non-resource activities; NPC and player food/wood
|
||||
gathering use `ResourceNode` instances.
|
||||
- Task names and task-to-activity-marker mappings are duplicated strings.
|
||||
- Temporary activity markers remain for eating, rest, study, and patrol; NPC
|
||||
and player food/wood gathering use `ResourceNode` instances with no fallback.
|
||||
- Mutable simulation state is not serializable through a defined save schema.
|
||||
- Randomness is not seeded for deterministic replay.
|
||||
- Simulation time depends on `_process` and a scene-tree node.
|
||||
- Automated coverage currently contains one headless player-parity and
|
||||
resource-contention scenario; broader simulation coverage is still missing.
|
||||
- Simulation randomness is seeded and split into controlled per-NPC streams,
|
||||
but RNG state is not yet part of a serializable save record.
|
||||
- An explicit fixed-step clock converts frame delta into simulation ticks, but
|
||||
orchestration still lives on the scene-tree `SimulationManager`.
|
||||
- Automated coverage includes deterministic same-seed checksum,
|
||||
player-parity/resource-contention, flat-map, and Jajce scaffold scenarios;
|
||||
broader gameplay coverage is still missing.
|
||||
- Resources are global floating-point counters rather than items in locations
|
||||
and inventories.
|
||||
- NPCs do not have homes, schedules, possessions, memories, relationships,
|
||||
@@ -710,10 +713,14 @@ Food and wood migration and the deliberately minimal `JajceWorld` scaffold,
|
||||
greybox, navigation spike, and stable-ID placement proof are complete. Do not
|
||||
proceed directly from that proof into open-ended beauty production.
|
||||
|
||||
The architecture gate is now the active milestone:
|
||||
The architecture gate is now the active milestone. Its first slice is complete:
|
||||
|
||||
- explicit fixed-step simulation clock;
|
||||
- seeded per-NPC decision and wander random streams;
|
||||
- headless fixed-seed scenario with a final-state checksum.
|
||||
|
||||
The remaining gate work is:
|
||||
|
||||
- deterministic clock and controlled random source;
|
||||
- fixed-seed headless scenarios with final-state checksums;
|
||||
- versioned serializable NPC, village, and resource state;
|
||||
- data-defined action and profession IDs;
|
||||
- separated action selection, execution, target resolution, and visual travel;
|
||||
|
||||
Reference in New Issue
Block a user