NPC Lifecycle and Relationship Stages¶
Each NPC moves through relationship stages. Trust is shown through dialogue, not points.
Stages¶
| Stage | Name | Description |
|---|---|---|
| 0 | Unknown | Not met yet; may be visible but not interactable |
| 1 | First meeting | Handcrafted intro + first problem |
| 2 | First helped | World visibly changes; bond formed |
| 3 | Trusted helper | NPC recognizes return visits; repeatable jobs unlock |
| 4 | Recurring relationship | Rotating story problems (delivery, wet labels, manifest, …) |
| 5 | Deep relationship | Rare keepsakes, emotional dialogue, special story clues |
Deep relationship = more meaning, not more power.
Interaction models¶
First interaction¶
Never randomly generated. Must include:
- NPC introduction
- Visible world problem
- Short story reason
- Activity type
- Physical world change
- Thank-you moment
- Deterministic reward or story progression
Example — Merchant first interaction
- Scene: small island dock
- Problem: wind blew letters from three box labels
- Activity: Missing Letter · 3 rounds · verb Repair
- Each round: fix label → crate opens
- Completion: merchant thanks player
- Reward: merchant lends boat (trust, not "3 words = boat")
- World: boat at dock, path unlocked
Second interaction¶
Confirms the NPC remembers the child.
Example — Merchant second
- Opening: "Captain! Those boxes stayed fixed thanks to you."
- New problem: rain washed labels away
- Activity: Spelling · verb Write
- Optional reward: small decorative crate for home
Purpose: prove memory, introduce variation, begin optional collectible loop.
Third and later¶
NPC enters the living world job pool. Selection considers:
- child level · destination · activity type needed
- recent activity history · relationship stage · world state
- story chapter · words needing practice
- collectible eligibility · cooldowns
Example merchant job pool: repair_box_labels, write_wet_labels, read_delivery_note, restore_shipping_manifest, organise_market_signs, prepare_whale_bay_order, fix_price_tags, label_new_supplies
Trust (invisible)¶
Internal events (child never sees numbers):
- first_met: +1
- completed_job: +5
- helped_story_moment: +10
- returned_after_previous_help: +2
External dialogue shifts:
- Low: "Could you help me with something?"
- Higher: "Captain, I knew I could count on you."
- High: "I saved this for you."
→ Deterministic Rewards and Optional Drops