feat: index loaded resource discovery
This commit is contained in:
+26
-9
@@ -195,8 +195,8 @@ study, and patrol target typed activity sites. The migration is documented in
|
||||
- **Terrain:** Terrain3D 1.0.2 is installed and enabled
|
||||
- **Jajce runtime:** reusable 512 m Terrain3D seed, stable ResourceNode
|
||||
placement, larger citadel/village-center composition, terrain-following river
|
||||
ribbon, reactive camera-local grass, and Terrain3D-derived runtime navigation
|
||||
with collision guardrails
|
||||
ribbon, reactive camera-local grass, exact indexed finite-resource discovery,
|
||||
and Terrain3D-derived runtime navigation with collision guardrails
|
||||
- **Lookdev baseline:** `Jajce Lookdev 01` is captured at
|
||||
`docs/baselines/jajce_lookdev_01.png` with
|
||||
`tools/capture_jajce_lookdev.gd`
|
||||
@@ -330,7 +330,9 @@ than broad resource zones: trees in foliage clusters, berry patches, animal
|
||||
camps, and village stockpiles can be ranked by reachability, distance, safety,
|
||||
profession, and NPC comfort range. The current resolver already combines
|
||||
distance with resource `safety_risk`, `comfort_distance`, and
|
||||
`discovery_priority` metadata.
|
||||
`discovery_priority` metadata. Loaded anchors are indexed by
|
||||
`ActiveWorldAdapter`; exact expanding queries usually inspect only nearby cells
|
||||
but retain far sources whenever their authoritative metadata can still win.
|
||||
|
||||
### Jajce scaffold
|
||||
|
||||
@@ -548,6 +550,7 @@ NpcVisual navigates through the active world
|
||||
│ ├── SimulationClock.gd
|
||||
│ ├── SimulationManager.gd
|
||||
│ ├── actions/ Selection, execution, and target resolution
|
||||
│ ├── benchmark/ Population/history and resource-query workloads
|
||||
│ ├── definitions/ Stable IDs and custom definition resources
|
||||
│ ├── economy/ Inventory and storage transactions
|
||||
│ ├── events/ Ordered event history and queries
|
||||
@@ -566,6 +569,7 @@ NpcVisual navigates through the active world
|
||||
│ ├── jajce_world_scaffold_test.gd
|
||||
│ ├── knowledge_retention_consequence_test.gd
|
||||
│ ├── jajce_runtime_integration_test.gd
|
||||
│ ├── loaded_resource_spatial_query_test.gd
|
||||
│ ├── npc_visual_lifecycle_test.gd
|
||||
│ ├── opportunity_communication_helper_test.gd
|
||||
│ ├── relationship_consequence_test.gd
|
||||
@@ -577,6 +581,7 @@ NpcVisual navigates through the active world
|
||||
│ └── witnessed_knowledge_consequence_test.gd
|
||||
├── terrain/jajce/ Dedicated Terrain3D seed data and assets
|
||||
├── tools/
|
||||
│ ├── benchmark_loaded_resource_discovery.gd
|
||||
│ └── generate_jajce_terrain_seed.gd
|
||||
├── world/
|
||||
│ ├── jajce/
|
||||
@@ -586,6 +591,7 @@ NpcVisual navigates through the active world
|
||||
│ │ ├── beauty_camera.gd
|
||||
│ │ └── vfx/WindGustField.tscn
|
||||
│ ├── resource_nodes/
|
||||
│ │ ├── LoadedResourceSpatialIndex.gd
|
||||
│ │ ├── ResourceNode.gd
|
||||
│ │ ├── ResourceNode.gd.uid
|
||||
│ │ └── ResourceNode.tscn
|
||||
@@ -643,7 +649,9 @@ These are expected prototype constraints, not necessarily isolated bugs:
|
||||
- Active navigation is used as if all agents are local; no simulation LOD exists.
|
||||
- Unloaded traveling NPCs preserve their state but do not yet advance through
|
||||
abstract travel time.
|
||||
- There is no spatial query/index layer for large populations.
|
||||
- Loaded finite-resource anchors have one measured active-world spatial index;
|
||||
people, buildings, events, and unloaded simulation still have no spatial/LOD
|
||||
layer.
|
||||
- SimulationManager still coordinates the tick lifecycle and bounded
|
||||
player-facing commands, while action rules, active-world queries, economic
|
||||
transactions, and event history have focused collaborators.
|
||||
@@ -962,11 +970,20 @@ reference target, while exposing superlinear population cost and rapid
|
||||
objective-log growth. Workload details and raw samples live in
|
||||
[`docs/benchmarks/`](benchmarks/SIMULATION_SCALING_BASELINE_01.md).
|
||||
|
||||
The next slice should build one stable per-tick population view for the
|
||||
existing trusted-starving-subject query, which currently rebuilds an all-NPC
|
||||
map for each applicable scarce-food decision. Preserve exact selection and
|
||||
continuation checksums, rerun the same benchmark, and use the remaining measured
|
||||
cost before committing to spatial partitions or active/abstract LOD.
|
||||
The first two measured optimizations are complete. A disposable per-tick
|
||||
population view preserves continuation checksums and improves the 600-NPC
|
||||
fixture by 23.3%. A separate resource-specific grid inside
|
||||
`ActiveWorldAdapter` preserves exact selected targets while reducing the
|
||||
reviewed 1,800-loaded-anchor resolution from 6,448.00 to 46.94 microseconds.
|
||||
Raw samples and workload exclusions live in
|
||||
[Simulation scaling baseline 02](benchmarks/SIMULATION_SCALING_BASELINE_02.md)
|
||||
and [Loaded Resource Discovery 01](benchmarks/LOADED_RESOURCE_DISCOVERY_01.md).
|
||||
|
||||
The next slice should return to the authored Jajce stage: sculpt the real
|
||||
Terrain3D river channel and waterfall shelf, rebake/validate navigation, and
|
||||
use the following foliage expansion to prove a bounded stable-ID resource
|
||||
anchor placement workflow beside decorative Terrain3D instances. Do not yet
|
||||
generalize the resource grid or introduce active/abstract simulation LOD.
|
||||
|
||||
The remaining simulation-garden target still aims for:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user