docs: mark jajce runtime integration complete

This commit is contained in:
2026-07-05 18:18:08 +02:00
parent 5851c0362a
commit f12fb6ad78
5 changed files with 40 additions and 31 deletions
+16 -9
View File
@@ -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 There is a reproducible baseline showing the existing flat prototype and its
working behaviors. 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 `docs/baselines/FLAT_MAP_BASELINE.md` establish the executable behavior
baseline. A visual before-clip and frame-time capture remain useful content work baseline. A visual before-clip and frame-time capture remain useful content work
but do not block the architecture gate. 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. 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 ### Exit condition
The current three NPCs and player can perform all existing prototype behaviors 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. 3. `JajceWorld`, dedicated 512 m Terrain3D seed, and lookdev camera.
4. Initial landmark greybox, stable-ID resources, activity markers, and 4. Initial landmark greybox, stable-ID resources, activity markers, and
navigation spike. navigation spike.
5. Architecture gate, food transactions/events, and validated quicksave.
6. `JajceWorld` runtime integration with bindings and regression coverage.
Next: Next:
1. Pass the mandatory architecture gate before beauty production. 1. Sculpt the Terrain3D ridge, river valley, terraces, and waterfall drop.
2. Sculpt the Terrain3D ridge, river valley, terraces, and waterfall drop. 2. Establish terrain materials, lighting, water, mist, and foliage.
3. Establish terrain materials, lighting, water, mist, and foliage. 3. Capture “Jajce Lookdev 01.”
4. Capture “Jajce Lookdev 01.” 4. Add profession/readability presentation and the reason inspector.
5. Instance `JajceWorld` into `main.tscn`. 5. Capture “Simulation Garden 01.”
6. Reconnect activity markers, rebake navigation, and run regression scenarios.
7. Add profession/readability presentation and the reason inspector.
8. Capture “Simulation Garden 01.”
Do not start with GIS data, a full city, a large asset pack, or more NPC 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 mechanics. The next proof is a beautiful stage for the systems that already
+2 -2
View File
@@ -647,8 +647,8 @@ Completed after the architecture gate:
The practical next sequence is: The practical next sequence is:
1. Resume Terrain3D sculpting, runtime integration, and the simulation-garden 1. Sculpt and texture the integrated Terrain3D world as a bounded
beauty pass. simulation-garden beauty pass.
2. Add stylized character and profession readability plus the reason 2. Add stylized character and profession readability plus the reason
inspector. inspector.
3. Expand persistence only when schedules, player state, or a real save menu 3. Expand persistence only when schedules, player state, or a real save menu
+11 -10
View File
@@ -192,8 +192,8 @@ migration is documented in
- **Language:** GDScript (`odig` analysis with warnings treated as errors) - **Language:** GDScript (`odig` analysis with warnings treated as errors)
- **Main scene:** `res://main.tscn` - **Main scene:** `res://main.tscn`
- **Terrain:** Terrain3D 1.0.2 is installed and enabled - **Terrain:** Terrain3D 1.0.2 is installed and enabled
- **Jajce scaffold:** separate 512 m Terrain3D seed, greybox landmarks, stable - **Jajce runtime:** reusable 512 m Terrain3D seed, greybox landmarks, stable
ResourceNode placement, lookdev camera, and temporary navigation spike ResourceNode placement, lookdev camera, and tested runtime navigation
- **Terrain compatibility floor:** Godot 4.4 according to the bundled extension - **Terrain compatibility floor:** Godot 4.4 according to the bundled extension
- **Version control:** Git - **Version control:** Git
- **Primary branch:** `main` - **Primary branch:** `main`
@@ -315,8 +315,8 @@ resource source.
### Jajce scaffold ### Jajce scaffold
`world/jajce/JajceWorld.tscn` now provides a reusable environment scaffold `world/jajce/JajceWorld.tscn` provides the reusable environment instanced by
separate from `main.tscn`: `main.tscn`:
- a centered 512 m flat Terrain3D seed split across four regions; - a centered 512 m flat Terrain3D seed split across four regions;
- dedicated terrain data and assets; - dedicated terrain data and assets;
@@ -326,10 +326,10 @@ separate from `main.tscn`:
- a temporary baked navigation loop with 24 tested routes; - a temporary baked navigation loop with 24 tested routes;
- a look-development scene and camera. - a look-development scene and camera.
This is a placement and integration proof, not the final terrain composition. This is a runtime integration proof, not the final terrain composition.
`main.tscn` still runs the flat prototype. Terrain3D startup requires several Terrain3D startup requires several physics frames before reliable
physics frames before reliable NavigationServer path queries; the scaffold test NavigationServer path queries; the scaffold and runtime tests capture that
captures that synchronization requirement. synchronization requirement.
### Current UI ### Current UI
@@ -467,9 +467,9 @@ NpcVisual navigates through the active world
├── tests/ ├── tests/
│ ├── action_system_boundaries_test.gd │ ├── action_system_boundaries_test.gd
│ ├── deterministic_simulation_test.gd │ ├── deterministic_simulation_test.gd
│ ├── flat_map_baseline_test.gd
│ ├── food_storage_loop_test.gd │ ├── food_storage_loop_test.gd
│ ├── jajce_world_scaffold_test.gd │ ├── jajce_world_scaffold_test.gd
│ ├── jajce_runtime_integration_test.gd
│ ├── npc_visual_lifecycle_test.gd │ ├── npc_visual_lifecycle_test.gd
│ ├── resource_node_player_parity_test.gd │ ├── resource_node_player_parity_test.gd
│ ├── simulation_definitions_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 mutation APIs, but selection, execution, target resolution, and active-world
queries now have focused collaborators. 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. - 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, - Combat, companions, factions, politics, trade, rumours, quests, persistence,
and regional travel do not yet exist. and regional travel do not yet exist.
- Placeholder geometry is sufficient for debugging but not for build-in-public - Placeholder geometry is sufficient for debugging but not for build-in-public
+7 -6
View File
@@ -9,7 +9,7 @@
| **3** | Authoritative extraction on completion | ✅ Complete | | **3** | Authoritative extraction on completion | ✅ Complete |
| **4a** | Wood target selection (NPC) | ✅ Complete | | **4a** | Wood target selection (NPC) | ✅ Complete |
| **4b** | Player parity (extraction contract) | ✅ 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 | | **6** | Replace remaining activity markers | 🔶 Resource zones removed; activity targets pending |
### Key divergences from the original plan ### Key divergences from the original plan
@@ -493,10 +493,11 @@ baseline.
- use the old task zones only for rest, eat, patrol, and study; - use the old task zones only for rest, eat, patrol, and study;
- verify target discovery does not rely on parent scene paths. - verify target discovery does not rely on parent scene paths.
**Progress:** `556d0fd` adds the standalone Jajce scaffold, four stable-ID **Status: complete.** `556d0fd` added the standalone scaffold and the runtime
resources, dedicated Terrain3D seed data, remaining activity markers, and 24 now instances it from `main.tscn`. Four stable-ID resources, the remaining
headless navigation-route checks. Runtime `main.tscn` migration is intentionally activity markers, player bindings, active-world targeting, and all 24
deferred until after the architecture gate, so this phase is not yet complete. 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 **Exit:** the existing food and wood loops work after moving from the flat map
to Terrain3D. to Terrain3D.
@@ -584,7 +585,7 @@ resource conservation through debug presentation.
| 10 | Add navigation failure handling (replaces regression scenarios) | ✅ Done | `b8752f8` | | 10 | Add navigation failure handling (replaces regression scenarios) | ✅ Done | `b8752f8` |
| 11 | Migrate wood | ✅ Done | `c6033b6`, `8049c52` | | 11 | Migrate wood | ✅ Done | `c6033b6`, `8049c52` |
| 12 | Give the player the same extraction path | ✅ Done | `326df51` | | 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 ## Definition of done for the first migration
+4 -4
View File
@@ -2,13 +2,13 @@
- **Captured:** 2026-07-04 - **Captured:** 2026-07-04
- **Scene:** `res://main.tscn` - **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` - **Companion resource test:** `res://tests/resource_node_player_parity_test.gd`
## Contract ## Contract
The flat prototype remains the regression reference while `JajceWorld` is The captured flat prototype remains the historical behavior reference. The
developed separately. same contract now runs against the integrated `JajceWorld` runtime.
The automated baseline verifies: The automated baseline verifies:
@@ -29,7 +29,7 @@ The companion player-parity scenario verifies:
```powershell ```powershell
& "C:\Program Files (x86)\Godot\Godot_v4.5.1-stable_win64_console.exe" ` & "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" ` & "C:\Program Files (x86)\Godot\Godot_v4.5.1-stable_win64_console.exe" `
--headless --path . --script res://tests/resource_node_player_parity_test.gd --headless --path . --script res://tests/resource_node_player_parity_test.gd