From 0dea48e9fa9ac51c1960f0582e0a1a2f747ec807 Mon Sep 17 00:00:00 2001 From: VinPropane Date: Fri, 3 Apr 2026 22:47:05 -0400 Subject: [PATCH] chore: add zones game-design doc and cross-links Add docs/game-design/zones.md for place identity (tone, economy, faction hooks) on the E4.M1 graph, distinct from risk-security-bands tier rules. Link from overview, README, related vision docs, brainstorm table, and docs-review-agent; anchor Epic 4 slice 1 for deep links. --- .cursor/rules/docs-review-agent.md | 2 +- .../epics/epic_04_world_topology.md | 2 + docs/game-design/README.md | 2 +- docs/game-design/abilities.md | 1 + .../brainstorm/hack-bodyguard-missions.md | 2 +- docs/game-design/crafting.md | 1 + docs/game-design/death-loss-recovery.md | 1 + docs/game-design/economy.md | 1 + docs/game-design/gathering.md | 1 + docs/game-design/gigs.md | 1 + docs/game-design/items.md | 1 + docs/game-design/overview.md | 9 ++- docs/game-design/progression.md | 1 + docs/game-design/risk-security-bands.md | 3 +- docs/game-design/skills.md | 3 +- docs/game-design/zones.md | 74 +++++++++++++++++++ 16 files changed, 96 insertions(+), 9 deletions(-) create mode 100644 docs/game-design/zones.md diff --git a/.cursor/rules/docs-review-agent.md b/.cursor/rules/docs-review-agent.md index 7428629..9cf9c7b 100644 --- a/.cursor/rules/docs-review-agent.md +++ b/.cursor/rules/docs-review-agent.md @@ -26,7 +26,7 @@ Use this rule when the user is working in **`docs/`** (design, decomposition, pl ## Ground truth (required to check) 1. **Same folder and upstream links** — Read every `docs/...` link from the target doc(s); verify paths exist and headings match intent. -2. **Hybrid progression** — `docs/game-design/progression.md`, `skills.md`, `gigs.md`, `abilities.md`, `items.md`, `gathering.md`, `crafting.md`, `economy.md`, `death-loss-recovery.md`, `risk-security-bands.md`: **Gig** = combat role; **Skill** = non-combat; **combat abilities** = gig kit (+ item channels per data); **Seams** live in `skills.md` unless a dedicated doc supersedes. **Combat encounters** → **gig XP** only (no default skill XP from the fight loop). **Gather / craft** → **skill XP** (see `gathering.md`, `crafting.md`, Epic 3)—not **gig** XP. **Mission/quest rewards** may grant **skill XP**, **currency**, or **items** when explicitly defined (`progression.md`, `economy.md`)—separate from the encounter **gig XP** path. **Economy** faucets/sinks and trade (`economy.md`) do not re-gate **craft** on **gig** (see `items.md` / Seams). **Death / loss / recovery** (`death-loss-recovery.md`): server-authoritative combat death; item stakes via **E3.M4** / **E5.M1**; **PvP** loss **E6.M3** vs **PvE** **open**; **cybernetics** vs external **gear** per **Seams**. **Risk / security** (`risk-security-bands.md`): **E4.M4** `SecurityTier` + **E6.M1**/**E6.M2** for **PvP** eligibility and **consent** UX—**not** client-only PvP toggles. +2. **Hybrid progression** — `docs/game-design/progression.md`, `skills.md`, `gigs.md`, `abilities.md`, `items.md`, `gathering.md`, `crafting.md`, `economy.md`, `death-loss-recovery.md`, `risk-security-bands.md`, `zones.md`: **Gig** = combat role; **Skill** = non-combat; **combat abilities** = gig kit (+ item channels per data); **Seams** live in `skills.md` unless a dedicated doc supersedes. **Combat encounters** → **gig XP** only (no default skill XP from the fight loop). **Gather / craft** → **skill XP** (see `gathering.md`, `crafting.md`, Epic 3)—not **gig** XP. **Mission/quest rewards** may grant **skill XP**, **currency**, or **items** when explicitly defined (`progression.md`, `economy.md`)—separate from the encounter **gig XP** path. **Economy** faucets/sinks and trade (`economy.md`) do not re-gate **craft** on **gig** (see `items.md` / Seams). **Death / loss / recovery** (`death-loss-recovery.md`): server-authoritative combat death; item stakes via **E3.M4** / **E5.M1**; **PvP** loss **E6.M3** vs **PvE** **open**; **cybernetics** vs external **gear** per **Seams**. **Risk / security** (`risk-security-bands.md`): **E4.M4** `SecurityTier` + **E6.M1**/**E6.M2** for **PvP** eligibility and **consent** UX—**not** client-only PvP toggles. **Zones** (`zones.md`): **place** **fiction** and **hooks** on the **same** **E4.M1** graph—**not** a second topology. 3. **Decomposition** — Map claims to `docs/decomposition/epics/` and `docs/decomposition/modules/` where relevant; flag **conflicts** (e.g. “combat skill” vs skills-as-non-combat). **CI** enforces a minimal guard via [`scripts/check_decomposition_language.py`](../../scripts/check_decomposition_language.py) in the **PR gate** (extend the script if a vetted exception is needed). 4. **Plans** — If work maps to `docs/plans/`, check for **acceptance criteria** vs design doc (same spirit as [code-review-agent](code-review-agent.md) plan alignment). diff --git a/docs/decomposition/epics/epic_04_world_topology.md b/docs/decomposition/epics/epic_04_world_topology.md index 8f659ef..3bf7e9f 100644 --- a/docs/decomposition/epics/epic_04_world_topology.md +++ b/docs/decomposition/epics/epic_04_world_topology.md @@ -46,6 +46,8 @@ Represent the world as a zone graph with travel rules, security-tier signaling f ## Implementation Slices (Backlog-Ready) + + ### Slice 1 - Prototype district zone graph - Scope: E4.M1 defining hub, PvE pocket, and edge zones with valid transitions. diff --git a/docs/game-design/README.md b/docs/game-design/README.md index 4b0e11e..7548323 100644 --- a/docs/game-design/README.md +++ b/docs/game-design/README.md @@ -6,6 +6,6 @@ **Brainstorm-only** (not specs): [`brainstorm/`](brainstorm/README.md). -Non-implementation notes: **gigs** (combat roles), **skills** (non-combat), **[abilities](abilities.md)** (what players trigger), **[items](items.md)** (loot, craft, equip), **[gathering](gathering.md)** (resource nodes, yields), **[crafting](crafting.md)** (recipes, pipeline), **[economy](economy.md)** (faucets, sinks, trade), **[death-loss-recovery](death-loss-recovery.md)** (stakes, recovery), **[risk-security-bands](risk-security-bands.md)** (tiers, PvP eligibility), zones, mechanics, and other design artifacts before they are tied to concrete systems or tickets. +Non-implementation notes: **gigs** (combat roles), **skills** (non-combat), **[abilities](abilities.md)** (what players trigger), **[items](items.md)** (loot, craft, equip), **[gathering](gathering.md)** (resource nodes, yields), **[crafting](crafting.md)** (recipes, pipeline), **[economy](economy.md)** (faucets, sinks, trade), **[death-loss-recovery](death-loss-recovery.md)** (stakes, recovery), **[risk-security-bands](risk-security-bands.md)** (tiers, PvP eligibility), **[zones](zones.md)** (place identity), travel/mechanics stubs, and other design artifacts before they are tied to concrete systems or tickets. Implementation-facing breakdowns stay under [`docs/decomposition/`](../decomposition/README.md) and plans under [`docs/plans/`](../plans/). diff --git a/docs/game-design/abilities.md b/docs/game-design/abilities.md index 5672ccc..d5dd18f 100644 --- a/docs/game-design/abilities.md +++ b/docs/game-design/abilities.md @@ -63,6 +63,7 @@ Vision for **what the player triggers** in play: combat **kits**, non-combat **s | Economy (trade, sinks—gig does not gate craft) | [economy.md](economy.md) | | Death / loss (combat death, gear stakes) | [death-loss-recovery.md](death-loss-recovery.md) | | Risk tiers & PvP eligibility | [risk-security-bands.md](risk-security-bands.md) | +| Zones (where fights live) | [zones.md](zones.md) | | Seams (gear, craft, consumables) | [skills.md](skills.md) | | Hybrid vocabulary | [progression.md](progression.md) | | Encounter rewards + combat hooks | [Epic 5](../decomposition/epics/epic_05_pve_combat.md), [Epic 7](../decomposition/epics/epic_07_quest_faction.md) | diff --git a/docs/game-design/brainstorm/hack-bodyguard-missions.md b/docs/game-design/brainstorm/hack-bodyguard-missions.md index aa00d7d..455b16f 100644 --- a/docs/game-design/brainstorm/hack-bodyguard-missions.md +++ b/docs/game-design/brainstorm/hack-bodyguard-missions.md @@ -32,5 +32,5 @@ Other directions **open:** power budget for the site, timers, optional side obje |--------|--------| | Gig roster, party language | [gigs.md](../gigs.md) | | Skills, seams with combat gear/crafting | [skills.md](../skills.md) | -| Zone / instance tone later | [overview](../overview.md) planned **Zones** | +| Zone / instance tone | [zones.md](../zones.md) | | Enemy/security archetypes later | [overview](../overview.md) planned **Encounters** | diff --git a/docs/game-design/crafting.md b/docs/game-design/crafting.md index 295f8ea..4594d7c 100644 --- a/docs/game-design/crafting.md +++ b/docs/game-design/crafting.md @@ -76,3 +76,4 @@ Authoritative **recipe graph** is **data** (`RecipeDef`); design intent: | Economy (sinks, trade, tuning) | [economy.md](economy.md) | | Death / loss (durability, repair) | [death-loss-recovery.md](death-loss-recovery.md) | | Risk & security (trade/theft context) | [risk-security-bands.md](risk-security-bands.md) | +| Zones (bench access, district flavor) | [zones.md](zones.md) | diff --git a/docs/game-design/death-loss-recovery.md b/docs/game-design/death-loss-recovery.md index 0224a08..978f8fa 100644 --- a/docs/game-design/death-loss-recovery.md +++ b/docs/game-design/death-loss-recovery.md @@ -75,3 +75,4 @@ Vision for **what happens when a character fails** (especially in **combat**): * | Hybrid XP (death does not imply skill XP change) | [progression.md](progression.md) | | PvP product stance | [Epic 6](../decomposition/epics/epic_06_pvp_security.md) | | Risk & security tiers, PvP eligibility | [risk-security-bands.md](risk-security-bands.md) | +| Place context (hub vs frontier) | [zones.md](zones.md) | diff --git a/docs/game-design/economy.md b/docs/game-design/economy.md index d641a1b..300c684 100644 --- a/docs/game-design/economy.md +++ b/docs/game-design/economy.md @@ -91,3 +91,4 @@ Direction: **prototype** should prove at least one **meaningful** durable sink b | Social / corp context for trade | [Epic 8](../decomposition/epics/epic_08_social_guild.md) | | Death, durability, PvP loss | [death-loss-recovery.md](death-loss-recovery.md) | | Security tiers, PvP eligibility | [risk-security-bands.md](risk-security-bands.md) | +| Zone identity (trade hubs, black markets) | [zones.md](zones.md) | diff --git a/docs/game-design/gathering.md b/docs/game-design/gathering.md index d0a6ad7..5ab5c1c 100644 --- a/docs/game-design/gathering.md +++ b/docs/game-design/gathering.md @@ -78,6 +78,7 @@ Directional goals (implementation **open**): | Economy (faucets from gather + policy) | [economy.md](economy.md) | | Death / loss (contested gather, drops) | [death-loss-recovery.md](death-loss-recovery.md) | | Risk tiers & contest rules | [risk-security-bands.md](risk-security-bands.md) | +| Zone identity & spawn feel | [zones.md](zones.md) | | Epic 3 gather slice | [Epic 3 — Slice 2 (Gather nodes)](../decomposition/epics/epic_03_crafting_economy.md#epic-3-slice-2) | | Interaction contracts | [E1.M3](../decomposition/modules/E1_M3_InteractionAndTargetingLayer.md) | | Zone ecology | [E4.M2](../decomposition/modules/E4_M2_SpawnEcologyController.md), [Epic 4](../decomposition/epics/epic_04_world_topology.md) | diff --git a/docs/game-design/gigs.md b/docs/game-design/gigs.md index 742e098..8e716e9 100644 --- a/docs/game-design/gigs.md +++ b/docs/game-design/gigs.md @@ -137,4 +137,5 @@ Detail: seams table in [skills.md](skills.md). - [economy.md](economy.md) — **gig** does not gate **craft**/**trade**; **wealth** loops are **skill**- and **item**-heavy ([items.md](items.md)). - [death-loss-recovery.md](death-loss-recovery.md) — **combat** death → **gig** loadout context; **PvP** loss rules **E6.M3** (not same as PvE—**open**). - [risk-security-bands.md](risk-security-bands.md) — **where** **PvP** can apply (**E6.M1**); not defined by **gig** pick alone. +- [zones.md](zones.md) — **where** gigs feel grounded; **hub** vs **pocket** world fantasy. - [brainstorm/hack-bodyguard-missions.md](brainstorm/hack-bodyguard-missions.md) — group content where **gigs** hold security while **skills** run the hack (brainstorm). diff --git a/docs/game-design/items.md b/docs/game-design/items.md index b27a1a5..a45b3b1 100644 --- a/docs/game-design/items.md +++ b/docs/game-design/items.md @@ -81,6 +81,7 @@ Design **buckets** above are not 1:1 types in data—they inform tags and metada | Sinks & durability | [E3.M4](../decomposition/modules/E3_M4_SinkAndDurabilityLifecycle.md) | | Death, loss & recovery | [death-loss-recovery.md](death-loss-recovery.md) | | Risk & security bands | [risk-security-bands.md](risk-security-bands.md) | +| Zones (vendor/loot context) | [zones.md](zones.md) | | Economy vision (faucets, trade, policy) | [economy.md](economy.md) | | Economy policy (runtime) | [E3.M5](../decomposition/modules/E3_M5_EconomyBalancePolicy.md) | | Encounter loot routing | [E5.M3](../decomposition/modules/E5_M3_EncounterAndRewardTables.md), [E7.M2](../decomposition/modules/E7_M2_RewardAndUnlockRouter.md) | diff --git a/docs/game-design/overview.md b/docs/game-design/overview.md index 9c8585c..08f3a42 100644 --- a/docs/game-design/overview.md +++ b/docs/game-design/overview.md @@ -6,7 +6,7 @@ This folder holds **vision-level** design: what we want players to feel, do, and Neon Sprawl’s design work here starts from **concrete visions** of progression, places, risk, economy, social play, combat, and the items/abilities that express them. Documents below are added as we write them; each should stay opinionated and specific enough to argue with, without pretending to be a full GDD. -**Hybrid progression:** [progression.md](progression.md) (vocabulary + why gigs + skills). **Gig** detail: [gigs.md](gigs.md). **Skills** + **seams**: [skills.md](skills.md). **Abilities** (combat vs non-combat actions): [abilities.md](abilities.md). **Items** (loot, craft, equip): [items.md](items.md). **Gathering** (nodes, skill XP, ecology): [gathering.md](gathering.md). **Crafting** (recipes, pipeline, benches): [crafting.md](crafting.md). **Economy** (faucets, sinks, trade, policy): [economy.md](economy.md). **Death / loss / recovery:** [death-loss-recovery.md](death-loss-recovery.md). **Risk & security bands:** [risk-security-bands.md](risk-security-bands.md). **Loose ideas:** [`brainstorm/`](brainstorm/README.md). +**Hybrid progression:** [progression.md](progression.md) (vocabulary + why gigs + skills). **Gig** detail: [gigs.md](gigs.md). **Skills** + **seams**: [skills.md](skills.md). **Abilities** (combat vs non-combat actions): [abilities.md](abilities.md). **Items** (loot, craft, equip): [items.md](items.md). **Gathering** (nodes, skill XP, ecology): [gathering.md](gathering.md). **Crafting** (recipes, pipeline, benches): [crafting.md](crafting.md). **Economy** (faucets, sinks, trade, policy): [economy.md](economy.md). **Death / loss / recovery:** [death-loss-recovery.md](death-loss-recovery.md). **Risk & security bands:** [risk-security-bands.md](risk-security-bands.md). **Zones** (place identity, tone, hooks): [zones.md](zones.md). **Loose ideas:** [`brainstorm/`](brainstorm/README.md). ## Presentation and target rating (vision) @@ -31,7 +31,8 @@ Neon Sprawl’s design work here starts from **concrete visions** of progression | [crafting.md](crafting.md) | **Recipes**, **Process/Make** pipeline, bench vs **gig** combat use | **E3.M2**; with [gathering.md](gathering.md), [items.md](items.md), [skills.md](skills.md) **Seams** | | [economy.md](economy.md) | **Faucets/sinks**, trade, **E3.M5** policy, mission vs loot **faucets** | With [items.md](items.md), [crafting.md](crafting.md); **E8.M3** trade, **E6.M4** parity | | [death-loss-recovery.md](death-loss-recovery.md) | **Death** stakes, **durability**/drops, **recovery**, **PvP** loss (**E6.M3**) | With [items.md](items.md), [economy.md](economy.md), [risk-security-bands.md](risk-security-bands.md) | -| [risk-security-bands.md](risk-security-bands.md) | **Security tiers**, **PvP** **eligibility**, **consent** UX (**E4.M4**, **E6.M1**–**M2**) | With [death-loss-recovery.md](death-loss-recovery.md), [gathering.md](gathering.md); **zones** fiction **TBD** | +| [risk-security-bands.md](risk-security-bands.md) | **Security tiers**, **PvP** **eligibility**, **consent** UX (**E4.M4**, **E6.M1**–**M2**) | With [death-loss-recovery.md](death-loss-recovery.md), [gathering.md](gathering.md), [zones.md](zones.md) | +| [zones.md](zones.md) | **District** **identity**, tone, economy/faction **hooks**, **E4.M1** graph | With [risk-security-bands.md](risk-security-bands.md), [gathering.md](gathering.md); **travel** stub in planned topics | | [brainstorm/hack-bodyguard-missions.md](brainstorm/hack-bodyguard-missions.md) | Split **skill** (hack) + **gig** (bodyguard) instances—idea capture | Brainstorm | ### Planned topics (stubs) @@ -39,7 +40,7 @@ Neon Sprawl’s design work here starts from **concrete visions** of progression Link new files here when they exist; remove or rewrite this subsection once the table is populated. - **Progression** — [progression.md](progression.md): hybrid **gig + skill** overview and vocabulary. **Gigs:** [gigs.md](gigs.md). **Skills** + seams: [skills.md](skills.md). Recruitment channel **deferred**; *professions* stay folded into **skills** + rep unless a future doc defines something separate. -- **Zones** — tone, danger, faction or economic role of a place. +- **Zones** — [zones.md](zones.md): tone, danger, faction/economic **hooks**; **graph** in [E4.M1](../decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md). - **Travel & connections** — how places link (gates, costs, downtime, danger en route); complements zone identity. - **Mechanics** — loops, constraints, what the server vs. client must honor. - **Items** — [items.md](items.md): categories, rarity philosophy, crafting vs. drops; **Seams** for gig/skill gates. @@ -50,7 +51,7 @@ Link new files here when they exist; remove or rewrite this subsection once the - **Factions & reputation** — who remembers you, grudges, access gates; **gig** story arcs: [gigs.md](gigs.md), rep + seams: [skills.md](skills.md). - **Combat pillars** — [Vision stub below](#combat-pillars-vision-stub): PvE vs. PvP stance, readability, time-to-kill, fairness; **items in combat** in [items.md](items.md). - **Death, loss & recovery** — [death-loss-recovery.md](death-loss-recovery.md): stakes, **E3.M4**/**E6.M3**, recovery UX. -- **Risk & security bands** — [risk-security-bands.md](risk-security-bands.md): **tiers**, **PvP** opt-in, **theft**/gather **contest** hooks; **zone** tone in future **zones** doc. +- **Risk & security bands** — [risk-security-bands.md](risk-security-bands.md): **tiers**, **PvP** opt-in, **theft**/gather **contest** hooks; **place** **fiction**: [zones.md](zones.md). - **Social play** — squad scale, corps, trust, betrayal affordances, async cooperation. - **Encounters & enemy roles** — archetypes, what a fight teaches, variety without noise. **Skill + gig split runs:** [brainstorm/hack-bodyguard-missions.md](brainstorm/hack-bodyguard-missions.md). - **Onboarding** — first session hook, clarity vs. mystery, how much systems the new player sees. diff --git a/docs/game-design/progression.md b/docs/game-design/progression.md index d2700e5..5d1784e 100644 --- a/docs/game-design/progression.md +++ b/docs/game-design/progression.md @@ -33,6 +33,7 @@ Use these terms in **design specs and tools** (fiction may say *job*, *contract* | **Economy** (faucets, sinks, trade, policy) | [economy.md](economy.md) | | **Death / loss / recovery** (stakes, durability, PvP loss) | [death-loss-recovery.md](death-loss-recovery.md) | | **Risk & security bands** (tiers, PvP eligibility) | [risk-security-bands.md](risk-security-bands.md) | +| **Zones** (place identity, travel graph hooks) | [zones.md](zones.md) | | Skill domains, categories, XP curves, gates, mastery | [skills.md](skills.md) | | **Seams** (combat gear vs craft, consumables, rep, alts) | [skills.md](skills.md) (section *Seams (gigs ↔ skills)*) | | Loose ideas | [brainstorm/](brainstorm/README.md) | diff --git a/docs/game-design/risk-security-bands.md b/docs/game-design/risk-security-bands.md index 484da7e..67c2d76 100644 --- a/docs/game-design/risk-security-bands.md +++ b/docs/game-design/risk-security-bands.md @@ -1,6 +1,6 @@ # Risk & security bands -Vision for **how dangerous a place is** and **what the rules allow**: **security tiers** on the world graph, **PvP eligibility**, **consent / risk UX**, and how **tiers** connect to **theft**, **gathering contest**, **trade**, and **death** stakes—not a full **zone** fiction doc (tone, factions per district → future **`zones.md`**). +Vision for **how dangerous a place is** and **what the rules allow**: **security tiers** on the world graph, **PvP eligibility**, **consent / risk UX**, and how **tiers** connect to **theft**, **gathering contest**, **trade**, and **death** stakes. Place fiction (tone, economic role): [zones.md](zones.md). **Tier data (runtime):** [E4.M4 — SecurityTierZoneFlags](../decomposition/modules/E4_M4_SecurityTierZoneFlags.md) assigns **`SecurityTier`**, **`ZonePolicyState`**, and **`ZoneEntryWarning`** per zone on the graph from [E4.M1 — ZoneGraphAndTravelRules](../decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md). **Server** is source of truth; **client** shows warnings on transition ([Epic 4 — Slice 2](../decomposition/epics/epic_04_world_topology.md#epic-4-slice-2)). @@ -74,4 +74,5 @@ Exact **count** of tiers, **instance** vs **overworld** rules, and **mission** * | Gathering under contest | [gathering.md](gathering.md) | | Zone graph & travel (implementation) | [Epic 4](../decomposition/epics/epic_04_world_topology.md), [E4.M1](../decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md) | | PvP product stance | [Epic 6](../decomposition/epics/epic_06_pvp_security.md) | +| Place identity & district roles | [zones.md](zones.md) | | Folder index | [overview.md](overview.md) | diff --git a/docs/game-design/skills.md b/docs/game-design/skills.md index 76354cc..4214761 100644 --- a/docs/game-design/skills.md +++ b/docs/game-design/skills.md @@ -1,6 +1,6 @@ # Skills (non-combat progression) -Design for **non-combat skills** only. **Shared vocabulary**, **why we use gigs + skills**, and the **hybrid overview** are in **[progression.md](progression.md)**. **Combat gigs** (roster, hub swap, sub-gig, etc.) are **[gigs.md](gigs.md)**. **What counts as a combat vs non-combat action** (kits, interactions, items): **[abilities.md](abilities.md)**. **Item buckets and acquisition** (loot, craft, equip): **[items.md](items.md)**. **Gathering & resource nodes** (competition, ecology, gig vs skill): **[gathering.md](gathering.md)**. **Crafting & recipes** (pipeline, benches, failure/quality): **[crafting.md](crafting.md)**. **Economy** (faucets, sinks, trade, policy): **[economy.md](economy.md)**. **Death, loss & recovery** (durability, PvP loss, recovery): **[death-loss-recovery.md](death-loss-recovery.md)**. **Risk & security bands** (tiers, PvP eligibility): **[risk-security-bands.md](risk-security-bands.md)**. +Design for **non-combat skills** only. **Shared vocabulary**, **why we use gigs + skills**, and the **hybrid overview** are in **[progression.md](progression.md)**. **Combat gigs** (roster, hub swap, sub-gig, etc.) are **[gigs.md](gigs.md)**. **What counts as a combat vs non-combat action** (kits, interactions, items): **[abilities.md](abilities.md)**. **Item buckets and acquisition** (loot, craft, equip): **[items.md](items.md)**. **Gathering & resource nodes** (competition, ecology, gig vs skill): **[gathering.md](gathering.md)**. **Crafting & recipes** (pipeline, benches, failure/quality): **[crafting.md](crafting.md)**. **Economy** (faucets, sinks, trade, policy): **[economy.md](economy.md)**. **Death, loss & recovery** (durability, PvP loss, recovery): **[death-loss-recovery.md](death-loss-recovery.md)**. **Risk & security bands** (tiers, PvP eligibility): **[risk-security-bands.md](risk-security-bands.md)**. **Zones** (place identity, faction/econ hooks): **[zones.md](zones.md)**. **This file also owns the [Seams (gigs ↔ skills)](#seams-gigs-skills)** section—rules where **gigs** and **skills** meet (gear, crafting, consumables, rep, alts). **Brainstorm-only** ideas: [`brainstorm/`](brainstorm/README.md). @@ -255,4 +255,5 @@ Explicit **bonuses** when skill A + B cross a threshold vs **pure fiction** (“ - **[economy.md](economy.md)** — faucets/sinks, trade, **E3.M5**; mission vs loot ([progression.md](progression.md)) (written). - **[death-loss-recovery.md](death-loss-recovery.md)** — death stakes, **E3.M4** / **E6.M3**, recovery (written). - **[risk-security-bands.md](risk-security-bands.md)** — **E4.M4** tiers, **E6.M1**/**M2** PvP + consent (written). +- **[zones.md](zones.md)** — district **identity**, **E4.M1** graph, **hooks** for gather/missions (written). - [brainstorm/hack-bodyguard-missions.md](brainstorm/hack-bodyguard-missions.md) — group **skill** (hack) + **gig** (bodyguard) instances (brainstorm). diff --git a/docs/game-design/zones.md b/docs/game-design/zones.md new file mode 100644 index 0000000..8f920ad --- /dev/null +++ b/docs/game-design/zones.md @@ -0,0 +1,74 @@ +# Zones (places & identity) + +Vision for **what a place is** in fiction and design: **tone**, **danger feel**, **faction** or **economic role**, and **content hooks**—paired with the **same** underlying **zone graph** as [risk-security-bands.md](risk-security-bands.md) (**security tiers**, **PvP** rules) but **not** duplicating **tier** or **eligibility** mechanics. + +**Topology & travel (runtime):** [E4.M1 — ZoneGraphAndTravelRules](../decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md) (`ZoneDef`, `ZoneEdge`, `TravelRule`)—**server-authoritative** **zone** **id** and **legal** **transitions** ([Epic 4 — Slice 1](../decomposition/epics/epic_04_world_topology.md#epic-4-slice-1)). **Travel** costs, **gates**, and **downtime** **fiction** → future **`travel.md`**; **TravelRule** already covers **gating** (level, quest, faction). + +**Ecology & density:** [E4.M2 — SpawnEcologyController](../decomposition/modules/E4_M2_SpawnEcologyController.md) drives **resource** and **NPC** **profiles** **per** **zone** ([gathering.md](gathering.md) **competition** **feel** ties here). + +**Handoffs:** [E4.M3 — SeamlessHandoffAndRegionState](../decomposition/modules/E4_M3_SeamlessHandoffAndRegionState.md) for **cross-region** **authority** (later scope). + +**Security overlay:** [E4.M4](../decomposition/modules/E4_M4_SecurityTierZoneFlags.md) attaches **`SecurityTier`** to **`ZoneDef`**—**one** **zone** **row** carries **both** **fiction** **tags** and **policy** **flags** in data (**open** how we split **design** **docs** vs **one** **`ZoneDef`** **sheet**). + +## Zone lenses (design-facing) + +Use these when briefing **writers**, **environment**, and **systems**; they **overlap** in data. + +| Lens | Questions | +|------|-----------| +| **Tone** | Noir, grime, hope, satire—how **hard** is life **here**? ([overview.md](overview.md) **presentation** band) | +| **Threat** | **Ambient** danger (mobs, cops, gangs) vs **opt-in** **combat**—distinct from **SecurityTier** **alone** | +| **Economy** | **Hub**, **industrial**, **black** **market**, **corporate** **enclave**—feeds **loot**, **vendors**, **gather** **node** **flavor** ([economy.md](economy.md)) | +| **Faction** | Who **owns** **the** **street**? **Rep** **gates**, **quests** ([skills.md](skills.md) **world** **gates**); detail → future **factions** doc | +| **Activity mix** | **PvE** **lanes**, **skill** **instances**, **social** **hubs**—what **players** **do** **here** | + +## Relationship to security tiers + +- **`SecurityTier`** answers **“what rules apply?”** ([risk-security-bands.md](risk-security-bands.md)). +- **Zone** **identity** answers **“what is this place **for** in the **fantasy**?”**—two **districts** can share a **tier** but **feel** **different** (**open** **content**). +- **TravelRule** can **reference** **rep**, **licenses**, **quests**—**fiction** **explains** **why** the **gate** **exists**. + +## Hubs, pockets, and edges + +Directional **shape** for **prototype** **districts** (names **TBD**—align with [Epic 4 — Slice 1](../decomposition/epics/epic_04_world_topology.md#epic-4-slice-1)): + +| Role | Intent | +|------|--------| +| **Hub** | **Services**, **vendors**, **social** **density**, **lower** **ambient** **PvE** **pressure** in **safe** **bands** | +| **Pocket** | **Focused** **PvE** or **skill** **content**—**instances** or **carved** **overworld** **chunks** | +| **Edge / frontier** | **Higher** **risk** **feel**, **richer** **gather** **or** **loot** **fantasy**, **clear** **warnings** on **entry** | + +## Module map (zone–fiction alignment) + +| Module | Role | Ties to this doc | +|--------|------|-------------------| +| [E4.M1](../decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md) | `ZoneDef`, edges, `TravelRule` | **Identity** **data** **home** | +| [E4.M4](../decomposition/modules/E4_M4_SecurityTierZoneFlags.md) | Tier, warnings | **Overlay** on **same** **zones** | +| [E4.M2](../decomposition/modules/E4_M2_SpawnEcologyController.md) | Spawn **profiles** | **Feel** of **danger** / **resources** | +| [E4.M3](../decomposition/modules/E4_M3_SeamlessHandoffAndRegionState.md) | Region **handoff** | **Scale** **up** **later** | +| [E7.M4](../decomposition/modules/E7_M4_ContractMissionGenerator.md) | Contract **gen** | **Zone**-tagged **missions** (per E4.M1 **dependents**) | + +## Decisions log + +| Topic | Direction | Status | +|-------|-----------|--------| +| Fiction vs policy | **Same** **zone** **graph**; **tier** **is** **not** the **only** **identity** **axis** | Agreed | +| Server zone truth | **Current** **zone** **id** **authoritative**—no **client** **shortcuts** | Agreed ([E4.M1](../decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md)) | +| Presentation band | **Grim** **ideas**, **restrained** **depiction**—[overview.md](overview.md) | Agreed | + +## Open questions + +- **Naming** **convention** for **player-facing** **district** **labels** vs **internal** **`ZoneDef` ids**. +- **Verticality** **and** **interiors** as **sub-zones** vs **one** **flat** **graph** **node**. +- **Dynamic** **zones** (lockdown, **riot**, **player** **corp** **capture**) vs **static** **data** **only**. + +## Where to read next + +| Topic | Document / module | +|--------|-------------------| +| Security tiers, PvP, warnings | [risk-security-bands.md](risk-security-bands.md) | +| Gather contest, nodes | [gathering.md](gathering.md) | +| Death / loss by context | [death-loss-recovery.md](death-loss-recovery.md) | +| Economy, trade hubs | [economy.md](economy.md) | +| Epic 4 overview | [Epic 4](../decomposition/epics/epic_04_world_topology.md) | +| Travel detail (stub) | [overview.md](overview.md) planned **Travel & connections** |