From f12fb6ad78fd52c03f8e5a98605d822e11549c7e Mon Sep 17 00:00:00 2001 From: Rijad Zuzo Date: Sun, 5 Jul 2026 18:18:08 +0200 Subject: [PATCH] docs: mark jajce runtime integration complete --- docs/BUILD_IN_PUBLIC_PLAN.md | 25 ++++++++++++++++--------- docs/LEARNING_ROADMAP.md | 4 ++-- docs/PROJECT_CONTEXT.md | 21 +++++++++++---------- docs/RESOURCE_NODE_MIGRATION.md | 13 +++++++------ docs/baselines/FLAT_MAP_BASELINE.md | 8 ++++---- 5 files changed, 40 insertions(+), 31 deletions(-) diff --git a/docs/BUILD_IN_PUBLIC_PLAN.md b/docs/BUILD_IN_PUBLIC_PLAN.md index 7dfa229..9fabff1 100644 --- a/docs/BUILD_IN_PUBLIC_PLAN.md +++ b/docs/BUILD_IN_PUBLIC_PLAN.md @@ -253,7 +253,7 @@ This becomes both a regression reference and excellent before/after material. There is a reproducible baseline showing the existing flat prototype and its working behaviors. -`tests/flat_map_baseline_test.gd` and +`tests/jajce_runtime_integration_test.gd` and `docs/baselines/FLAT_MAP_BASELINE.md` establish the executable behavior baseline. A visual before-clip and frame-time capture remain useful content work but do not block the architecture gate. @@ -423,6 +423,14 @@ Once the world composition is stable: Do not move simulation ownership into `JajceWorld` to make wiring convenient. +**Status: runtime integration complete.** `main.tscn` now instances the reusable +world and points player/simulation adapters at its stable-ID resources and +remaining activity markers. The duplicate flat world objects were removed. +The runtime regression checks Terrain3D presence, 24 navigation routes, core +task execution, starvation/death, player extraction parity, reservations, and +NPC visual lifecycle. Terrain sculpting and presentation polish remain +separate work, not blockers for this wiring milestone. + ### Exit condition The current three NPCs and player can perform all existing prototype behaviors @@ -593,17 +601,16 @@ Completed: 3. `JajceWorld`, dedicated 512 m Terrain3D seed, and lookdev camera. 4. Initial landmark greybox, stable-ID resources, activity markers, and navigation spike. +5. Architecture gate, food transactions/events, and validated quicksave. +6. `JajceWorld` runtime integration with bindings and regression coverage. Next: -1. Pass the mandatory architecture gate before beauty production. -2. Sculpt the Terrain3D ridge, river valley, terraces, and waterfall drop. -3. Establish terrain materials, lighting, water, mist, and foliage. -4. Capture “Jajce Lookdev 01.” -5. Instance `JajceWorld` into `main.tscn`. -6. Reconnect activity markers, rebake navigation, and run regression scenarios. -7. Add profession/readability presentation and the reason inspector. -8. Capture “Simulation Garden 01.” +1. Sculpt the Terrain3D ridge, river valley, terraces, and waterfall drop. +2. Establish terrain materials, lighting, water, mist, and foliage. +3. Capture “Jajce Lookdev 01.” +4. Add profession/readability presentation and the reason inspector. +5. Capture “Simulation Garden 01.” Do not start with GIS data, a full city, a large asset pack, or more NPC mechanics. The next proof is a beautiful stage for the systems that already diff --git a/docs/LEARNING_ROADMAP.md b/docs/LEARNING_ROADMAP.md index 59938cd..9a3b9a3 100644 --- a/docs/LEARNING_ROADMAP.md +++ b/docs/LEARNING_ROADMAP.md @@ -647,8 +647,8 @@ Completed after the architecture gate: The practical next sequence is: -1. Resume Terrain3D sculpting, runtime integration, and the simulation-garden - beauty pass. +1. Sculpt and texture the integrated Terrain3D world as a bounded + simulation-garden beauty pass. 2. Add stylized character and profession readability plus the reason inspector. 3. Expand persistence only when schedules, player state, or a real save menu diff --git a/docs/PROJECT_CONTEXT.md b/docs/PROJECT_CONTEXT.md index dbeffbe..edfdf27 100644 --- a/docs/PROJECT_CONTEXT.md +++ b/docs/PROJECT_CONTEXT.md @@ -192,8 +192,8 @@ migration is documented in - **Language:** GDScript (`odig` analysis with warnings treated as errors) - **Main scene:** `res://main.tscn` - **Terrain:** Terrain3D 1.0.2 is installed and enabled -- **Jajce scaffold:** separate 512 m Terrain3D seed, greybox landmarks, stable - ResourceNode placement, lookdev camera, and temporary navigation spike +- **Jajce runtime:** reusable 512 m Terrain3D seed, greybox landmarks, stable + ResourceNode placement, lookdev camera, and tested runtime navigation - **Terrain compatibility floor:** Godot 4.4 according to the bundled extension - **Version control:** Git - **Primary branch:** `main` @@ -315,8 +315,8 @@ resource source. ### Jajce scaffold -`world/jajce/JajceWorld.tscn` now provides a reusable environment scaffold -separate from `main.tscn`: +`world/jajce/JajceWorld.tscn` provides the reusable environment instanced by +`main.tscn`: - a centered 512 m flat Terrain3D seed split across four regions; - dedicated terrain data and assets; @@ -326,10 +326,10 @@ separate from `main.tscn`: - a temporary baked navigation loop with 24 tested routes; - a look-development scene and camera. -This is a placement and integration proof, not the final terrain composition. -`main.tscn` still runs the flat prototype. Terrain3D startup requires several -physics frames before reliable NavigationServer path queries; the scaffold test -captures that synchronization requirement. +This is a runtime integration proof, not the final terrain composition. +Terrain3D startup requires several physics frames before reliable +NavigationServer path queries; the scaffold and runtime tests capture that +synchronization requirement. ### Current UI @@ -467,9 +467,9 @@ NpcVisual navigates through the active world ├── tests/ │ ├── action_system_boundaries_test.gd │ ├── deterministic_simulation_test.gd -│ ├── flat_map_baseline_test.gd │ ├── food_storage_loop_test.gd │ ├── jajce_world_scaffold_test.gd +│ ├── jajce_runtime_integration_test.gd │ ├── npc_visual_lifecycle_test.gd │ ├── resource_node_player_parity_test.gd │ ├── simulation_definitions_test.gd @@ -526,7 +526,8 @@ These are expected prototype constraints, not necessarily isolated bugs: mutation APIs, but selection, execution, target resolution, and active-world queries now have focused collaborators. - Path failure and interruption emit a `navigation_failed` signal and send the NPC to wander; this is functional but not yet polished. -- Terrain3D is enabled but not yet used by the main game scene. +- Terrain3D and the Jajce scaffold now run in the main game scene; terrain + sculpting and final presentation are still pending. - Combat, companions, factions, politics, trade, rumours, quests, persistence, and regional travel do not yet exist. - Placeholder geometry is sufficient for debugging but not for build-in-public diff --git a/docs/RESOURCE_NODE_MIGRATION.md b/docs/RESOURCE_NODE_MIGRATION.md index c5092d8..471d07c 100644 --- a/docs/RESOURCE_NODE_MIGRATION.md +++ b/docs/RESOURCE_NODE_MIGRATION.md @@ -9,7 +9,7 @@ | **3** | Authoritative extraction on completion | ✅ Complete | | **4a** | Wood target selection (NPC) | ✅ Complete | | **4b** | Player parity (extraction contract) | ✅ Complete | -| **5** | Jajce world placement | 🔶 Scaffold/navigation proof complete | +| **5** | Jajce world placement and runtime integration | ✅ Complete | | **6** | Replace remaining activity markers | 🔶 Resource zones removed; activity targets pending | ### Key divergences from the original plan @@ -493,10 +493,11 @@ baseline. - use the old task zones only for rest, eat, patrol, and study; - verify target discovery does not rely on parent scene paths. -**Progress:** `556d0fd` adds the standalone Jajce scaffold, four stable-ID -resources, dedicated Terrain3D seed data, remaining activity markers, and 24 -headless navigation-route checks. Runtime `main.tscn` migration is intentionally -deferred until after the architecture gate, so this phase is not yet complete. +**Status: complete.** `556d0fd` added the standalone scaffold and the runtime +now instances it from `main.tscn`. Four stable-ID resources, the remaining +activity markers, player bindings, active-world targeting, and all 24 +navigation routes run through `JajceWorld`; duplicate flat-map objects were +removed. **Exit:** the existing food and wood loops work after moving from the flat map to Terrain3D. @@ -584,7 +585,7 @@ resource conservation through debug presentation. | 10 | Add navigation failure handling (replaces regression scenarios) | ✅ Done | `b8752f8` | | 11 | Migrate wood | ✅ Done | `c6033b6`, `8049c52` | | 12 | Give the player the same extraction path | ✅ Done | `326df51` | -| 13 | Continue with the Jajce world scaffold | 🔶 Placement proof done; runtime migration pending | `556d0fd` | +| 13 | Integrate the Jajce world scaffold into runtime | ✅ Done | `556d0fd`, current phase | ## Definition of done for the first migration diff --git a/docs/baselines/FLAT_MAP_BASELINE.md b/docs/baselines/FLAT_MAP_BASELINE.md index 0116912..c857a43 100644 --- a/docs/baselines/FLAT_MAP_BASELINE.md +++ b/docs/baselines/FLAT_MAP_BASELINE.md @@ -2,13 +2,13 @@ - **Captured:** 2026-07-04 - **Scene:** `res://main.tscn` -- **Automated check:** `res://tests/flat_map_baseline_test.gd` +- **Current contract check:** `res://tests/jajce_runtime_integration_test.gd` - **Companion resource test:** `res://tests/resource_node_player_parity_test.gd` ## Contract -The flat prototype remains the regression reference while `JajceWorld` is -developed separately. +The captured flat prototype remains the historical behavior reference. The +same contract now runs against the integrated `JajceWorld` runtime. The automated baseline verifies: @@ -29,7 +29,7 @@ The companion player-parity scenario verifies: ```powershell & "C:\Program Files (x86)\Godot\Godot_v4.5.1-stable_win64_console.exe" ` - --headless --path . --script res://tests/flat_map_baseline_test.gd + --headless --path . --script res://tests/jajce_runtime_integration_test.gd & "C:\Program Files (x86)\Godot\Godot_v4.5.1-stable_win64_console.exe" ` --headless --path . --script res://tests/resource_node_player_parity_test.gd