docs: capture the embodied player citizen slices in plans and schema
This commit is contained in:
@@ -23,6 +23,7 @@ SimulationClock
|
|||||||
-> VillageOpportunitySystem projects one known unresolved need
|
-> VillageOpportunitySystem projects one known unresolved need
|
||||||
-> PlayerQuestSystem turns open needs into named player quests and
|
-> PlayerQuestSystem turns open needs into named player quests and
|
||||||
grants Standing as the player resolves them through real supply/feed
|
grants Standing as the player resolves them through real supply/feed
|
||||||
|
-> PlayerNeedsSystem advances the player's hunger, energy, and carry
|
||||||
-> WorldViewManager presents travel, NPC state, and world-state cues
|
-> WorldViewManager presents travel, NPC state, and world-state cues
|
||||||
-> ActiveWorldAdapter supplies loaded-world positions/capacity
|
-> ActiveWorldAdapter supplies loaded-world positions/capacity
|
||||||
-> LoadedResourceSpatialIndex bounds finite-anchor discovery
|
-> LoadedResourceSpatialIndex bounds finite-anchor discovery
|
||||||
@@ -75,6 +76,13 @@ would otherwise obscure that lifecycle:
|
|||||||
gratitude; a requester who personally trusts the player can ask them directly
|
gratitude; a requester who personally trusts the player can ask them directly
|
||||||
even when another capable helper exists. Quests, Standing, and gratitude are
|
even when another capable helper exists. Quests, Standing, and gratitude are
|
||||||
persisted and never become quest-only simulation state;
|
persisted and never become quest-only simulation state;
|
||||||
|
- `simulation/quests/PlayerNeedsSystem.gd` owns the player's embodied hunger,
|
||||||
|
energy, starvation, death, and carried inventory, advancing on the
|
||||||
|
deterministic tick and mutating finite resources and storage only through the
|
||||||
|
ordinary economy and recorder;
|
||||||
|
- `simulation/quests/PlayerNegotiationSystem.gd` owns the read-only villager
|
||||||
|
talk surface plus accept/decline of personal requests, delegating quest
|
||||||
|
lifecycle to `PlayerQuestSystem`;
|
||||||
- `simulation/persistence/` owns save-slot file safety;
|
- `simulation/persistence/` owns save-slot file safety;
|
||||||
- `simulation/state/` owns versioned serialized record contracts;
|
- `simulation/state/` owns versioned serialized record contracts;
|
||||||
- `simulation/definitions/` owns stable IDs and immutable action/profession
|
- `simulation/definitions/` owns stable IDs and immutable action/profession
|
||||||
|
|||||||
@@ -864,6 +864,15 @@ Next:
|
|||||||
asking them directly even when another helper could act. All of it flows
|
asking them directly even when another helper could act. All of it flows
|
||||||
through the ordinary finite-resource harvest/feed contracts, survives
|
through the ordinary finite-resource harvest/feed contracts, survives
|
||||||
save/restore deterministically, and adds no quest-only state.
|
save/restore deterministically, and adds no quest-only state.
|
||||||
|
4. Make the player a citizen with a body. **Complete:** the player now has
|
||||||
|
hunger and energy that advance on the simulation tick, eats from the real
|
||||||
|
pantry, weakens when starving, and can die by starvation (halving Standing).
|
||||||
|
Gathering fills a carried inventory with capacity, and depositing at the
|
||||||
|
pantry or woodpile is an explicit transaction that resolves the same quests.
|
||||||
|
Pressing `E` on a villager opens a personal talk where you accept or decline
|
||||||
|
their real request. The embodied needs, carry, and negotiation rules live in
|
||||||
|
focused `PlayerNeedsSystem`/`PlayerNegotiationSystem` collaborators and are
|
||||||
|
covered by headless, runtime, and schema-restore regressions.
|
||||||
|
|
||||||
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
|
||||||
|
|||||||
@@ -1021,6 +1021,26 @@ The first bounded player-Standing and quest slice is complete:
|
|||||||
completion, invalidation, animal care, personal requests, and tier
|
completion, invalidation, animal care, personal requests, and tier
|
||||||
progression.
|
progression.
|
||||||
|
|
||||||
|
The first embodied-citizen slice is complete:
|
||||||
|
|
||||||
|
- the player now has a body in the world: hunger and energy advance on the
|
||||||
|
deterministic tick (`PlayerStateRecord`), eating at the pantry reduces the
|
||||||
|
player's own hunger, starvation weakens movement, and death by starvation
|
||||||
|
halves Standing and allows a respawn, all persisted through world schema v13;
|
||||||
|
- the player carries a real inventory with capacity: gathering a finite
|
||||||
|
resource fills the hands, depositing at the pantry or woodpile is an explicit
|
||||||
|
transaction that resolves opportunities and quests through the same supply
|
||||||
|
contract used by NPCs;
|
||||||
|
- pressing `E` on a nearby villager opens a personal talk: the villager greets
|
||||||
|
you and surfaces their real need, and you can accept their request (which
|
||||||
|
surfaces the same open quest) or decline it (closing the quest without
|
||||||
|
gratitude);
|
||||||
|
- `PlayerNeedsSystem`, `PlayerNegotiationSystem`, and `SimulationEventRecorder`
|
||||||
|
keep the player-citizen rules out of the manager;
|
||||||
|
- headless, runtime, carry/deposit, talk/negotiation, and schema-restore
|
||||||
|
regressions cover needs, death, respawn, carrying, depositing, quest
|
||||||
|
resolution, and personal request accept/decline.
|
||||||
|
|
||||||
Recently completed:
|
Recently completed:
|
||||||
|
|
||||||
- `Jajce Villager Field Note 12`: a separate player-facing note selects the
|
- `Jajce Villager Field Note 12`: a separate player-facing note selects the
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
## Current contract
|
## Current contract
|
||||||
|
|
||||||
`SimulationStateRecord` is the versioned JSON boundary for the current
|
`SimulationStateRecord` is the versioned JSON boundary for the current
|
||||||
simulation. The current world schema is v12 and captures:
|
simulation. The current world schema is v13 and captures:
|
||||||
|
|
||||||
- simulation seed, tick interval, tick count, clock remainder, and elapsed
|
- simulation seed, tick interval, tick count, clock remainder, and elapsed
|
||||||
clock ticks;
|
clock ticks;
|
||||||
@@ -29,14 +29,16 @@ simulation. The current world schema is v12 and captures:
|
|||||||
- the player's Standing reputation (0–100), resolved-need count, and per-NPC
|
- the player's Standing reputation (0–100), resolved-need count, and per-NPC
|
||||||
gratitude, plus named player quest records that reference the originating
|
gratitude, plus named player quest records that reference the originating
|
||||||
opportunity or animal, requester NPC, resource/target/amount, Standing
|
opportunity or animal, requester NPC, resource/target/amount, Standing
|
||||||
reward, and exact resolution or invalidation tick.
|
reward, and exact resolution or invalidation tick;
|
||||||
|
- the player's embodied state: hunger, energy, starvation progress, death
|
||||||
|
count, and carried inventory with its capacity (schema v13).
|
||||||
|
|
||||||
The top-level identity is:
|
The top-level identity is:
|
||||||
|
|
||||||
```json
|
```json
|
||||||
{
|
{
|
||||||
"schema": "the_steward.simulation",
|
"schema": "the_steward.simulation",
|
||||||
"schema_version": 12
|
"schema_version": 13
|
||||||
}
|
}
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user