From d192567f57fb185798ebb015ff39fac850c86622 Mon Sep 17 00:00:00 2001 From: VinPropane Date: Fri, 3 Apr 2026 22:35:03 -0400 Subject: [PATCH] chore: add game-design risk-security-bands doc - Add risk-security-bands.md (E4.M4 tiers, E6.M1/M2 PvP + consent, tier gates) - epic_04: anchor epic-4-slice-2 for security tier slice - Cross-link death, items, economy, gathering; overview combat stub + index - Extend docs-review-agent ground truth --- .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 + docs/game-design/crafting.md | 1 + docs/game-design/death-loss-recovery.md | 8 +- docs/game-design/economy.md | 3 +- docs/game-design/gathering.md | 3 +- docs/game-design/gigs.md | 1 + docs/game-design/items.md | 3 +- docs/game-design/overview.md | 10 ++- docs/game-design/progression.md | 1 + docs/game-design/risk-security-bands.md | 77 +++++++++++++++++++ docs/game-design/skills.md | 5 +- 14 files changed, 104 insertions(+), 15 deletions(-) create mode 100644 docs/game-design/risk-security-bands.md diff --git a/.cursor/rules/docs-review-agent.md b/.cursor/rules/docs-review-agent.md index 23f8ab0..7428629 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`: **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**. +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. 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 f72db9d..8f659ef 100644 --- a/docs/decomposition/epics/epic_04_world_topology.md +++ b/docs/decomposition/epics/epic_04_world_topology.md @@ -55,6 +55,8 @@ Represent the world as a zone graph with travel rules, security-tier signaling f - Travel rules prevent illegal shortcuts. - Telemetry hooks: `zone_enter`, `zone_exit`, invalid transition attempts. + + ### Slice 2 - Security tier tagging and UI hooks - Scope: E4.M4 on E4.M1: per-zone `SecurityTier`, `ZonePolicyState`, and entry-warning payloads. E6.M1 subscribes to this data for PvP eligibility (implemented in Epic 6; no circular module dependency). diff --git a/docs/game-design/README.md b/docs/game-design/README.md index 842fb0c..4b0e11e 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), 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, mechanics, 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 87ed7eb..5672ccc 100644 --- a/docs/game-design/abilities.md +++ b/docs/game-design/abilities.md @@ -62,6 +62,7 @@ Vision for **what the player triggers** in play: combat **kits**, non-combat **s | Crafting (bench skill vs gig combat use) | [crafting.md](crafting.md) | | 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) | | 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/crafting.md b/docs/game-design/crafting.md index ec3eb08..295f8ea 100644 --- a/docs/game-design/crafting.md +++ b/docs/game-design/crafting.md @@ -75,3 +75,4 @@ Authoritative **recipe graph** is **data** (`RecipeDef`); design intent: | Gather slice (inputs) | [Epic 3 — Slice 2 (Gather nodes)](../decomposition/epics/epic_03_crafting_economy.md#epic-3-slice-2) | | 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) | diff --git a/docs/game-design/death-loss-recovery.md b/docs/game-design/death-loss-recovery.md index af21d06..0224a08 100644 --- a/docs/game-design/death-loss-recovery.md +++ b/docs/game-design/death-loss-recovery.md @@ -1,6 +1,6 @@ # Death, loss & recovery -Vision for **what happens when a character fails** (especially in **combat**): **item** stakes, **durability** and **destruction**, **recovery** flow, and **anti-grief** boundaries—without duplicating **combat ability** design ([abilities.md](abilities.md)) or full **risk tier** rules (stub in [overview.md](overview.md); future **risk** doc). +Vision for **what happens when a character fails** (especially in **combat**): **item** stakes, **durability** and **destruction**, **recovery** flow, and **anti-grief** boundaries—without duplicating **combat ability** design ([abilities.md](abilities.md)) or **security tier** / **PvP** **eligibility** ([risk-security-bands.md](risk-security-bands.md)). **Combat resolution & death event:** [E5.M1 — CombatRulesEngine](../decomposition/modules/E5_M1_CombatRulesEngine.md) is **server-authoritative** for outcomes including **death** ([client vs server authority](../decomposition/modules/client_server_authority.md)); telemetry includes `player_death` per [Epic 5](../decomposition/epics/epic_05_pve_combat.md). @@ -12,7 +12,7 @@ Vision for **what happens when a character fails** (especially in **combat**): * ## PvE vs PvP (design intent) -- **PvE-first** product stance ([Epic 6](../decomposition/epics/epic_06_pvp_security.md) objective): default **loss** in **opt-in** or **high-tier** spaces can be **harsher** than in **safe** hubs; exact **banding** is a **risk** / **security tier** doc (**TBD**). +- **PvE-first** product stance ([Epic 6](../decomposition/epics/epic_06_pvp_security.md) objective): default **loss** in **opt-in** or **high-tier** spaces can be **harsher** than in **safe** hubs; **tier** **language** in [risk-security-bands.md](risk-security-bands.md); exact **tables** **TBD**. - **PvP death** applies **E6.M3** rules (drops, durability hits, flags)—not necessarily the same table as **PvE wipe** (**open** until PvP vision lands; [gigs.md](gigs.md) **PvP** notes). - **Skill** and **gig** **progression** are **not** assumed to **reset** on death—loss is primarily **items**, **currency** (if any), **buffs**, and **position** unless a **hardcore** mode or **content** says otherwise (**open**). @@ -35,7 +35,7 @@ Vision for **what happens when a character fails** (especially in **combat**): * ## Anti-grief and readability - **Spawn protection**, **repeated** **killing** penalties, and **escalation** to **integrity** pipeline: **E6.M3** / **E9.M4**. -- **Readable** stakes before engagement: ties to **consent / risk UX** ([Epic 6](../decomposition/epics/epic_06_pvp_security.md), [E6.M2](../decomposition/modules/E6_M2_ConsentAndRiskUxSignals.md))—detail **TBD** in **risk** doc. +- **Readable** stakes before engagement: ties to **consent / risk UX** ([Epic 6](../decomposition/epics/epic_06_pvp_security.md), [E6.M2](../decomposition/modules/E6_M2_ConsentAndRiskUxSignals.md), [risk-security-bands.md](risk-security-bands.md)). - **Exploits** (dupe corpse, disconnect abuse): **server** truth + [E9.M4](../decomposition/modules/E9_M4_IntegrityAndAbuseResponse.md). ## Module map (death / loss–focused) @@ -74,4 +74,4 @@ Vision for **what happens when a character fails** (especially in **combat**): * | Combat actions & kits | [abilities.md](abilities.md), [gigs.md](gigs.md) | | 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 (stub) | [overview.md](overview.md) planned **Risk & security bands** | +| Risk & security tiers, PvP eligibility | [risk-security-bands.md](risk-security-bands.md) | diff --git a/docs/game-design/economy.md b/docs/game-design/economy.md index 2732b41..d641a1b 100644 --- a/docs/game-design/economy.md +++ b/docs/game-design/economy.md @@ -43,7 +43,7 @@ Direction: **prototype** should prove at least one **meaningful** durable sink b - **One primary player currency** vs **multiple** (regional, corp scrip, crypto **fiction**)—**open**; UX must stay **readable** ([items.md](items.md) **tooltips** discipline). - **Wealth fantasy** includes **stockpiles**, **loadout value**, **workspace access**, and **social** **flex**—not only raw balance. -- **Binding**, **insurance**, **theft**, and **security tiers** change **effective** supply—see [items.md](items.md) **Open questions**, [death-loss-recovery.md](death-loss-recovery.md), and future **risk** doc (**TBD**). +- **Binding**, **insurance**, **theft**, and **security tiers** change **effective** supply—see [items.md](items.md) **Open questions**, [death-loss-recovery.md](death-loss-recovery.md), [risk-security-bands.md](risk-security-bands.md). ## Trade and prices @@ -90,3 +90,4 @@ Direction: **prototype** should prove at least one **meaningful** durable sink b | Epic 3 slices (incl. sinks/policy) | [Epic 3](../decomposition/epics/epic_03_crafting_economy.md) | | 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) | diff --git a/docs/game-design/gathering.md b/docs/game-design/gathering.md index 8e5ae74..d0a6ad7 100644 --- a/docs/game-design/gathering.md +++ b/docs/game-design/gathering.md @@ -30,7 +30,7 @@ Same **physical prop** might map to **different** node types or yield tables by Directional goals (implementation **open**): - **Depletion** and **regen** (capacity, timers) make **presence** and **timing** matter—aligned with E3.M1/E4.M2 responsibilities. -- **Contesting** the same node may be **non-combat** (arrival order, channel time, tool tier) or **high-risk** (PvP-adjacent) depending on **security tier**—see [overview.md](overview.md) **Risk & security bands** (stub) and [gigs.md](gigs.md) **PvP** notes (**open** until PvP vision lands). +- **Contesting** the same node may be **non-combat** (arrival order, channel time, tool tier) or **high-risk** (PvP-adjacent) depending on **security tier**—see [risk-security-bands.md](risk-security-bands.md) and [gigs.md](gigs.md) **PvP** notes (**open** until PvP vision lands). - **Instanced vs shared** world: some resources may live only in **contracts** or **dungeons**; others in **shared** overworld—**split by content**, not a single global rule (**open**). ## Exhaustion, tools, and gates @@ -77,6 +77,7 @@ Directional goals (implementation **open**): | Crafting & recipes (vision) | [crafting.md](crafting.md) | | 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) | | 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 1406c36..742e098 100644 --- a/docs/game-design/gigs.md +++ b/docs/game-design/gigs.md @@ -136,4 +136,5 @@ Detail: seams table in [skills.md](skills.md). - [crafting.md](crafting.md) — **bench** = **skill**; **combat use** of most crafted **gear** still **gig**-gated ([Seams](skills.md#seams-gigs-skills)). - [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. - [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 9569124..b27a1a5 100644 --- a/docs/game-design/items.md +++ b/docs/game-design/items.md @@ -61,7 +61,7 @@ Design **buckets** above are not 1:1 types in data—they inform tags and metada ## Open questions - **Durability, repair, sinks**—when items leave the economy ([E3.M4](../decomposition/modules/E3_M4_SinkAndDurabilityLifecycle.md)); how hard **death** hits gear (**open**—[death-loss-recovery.md](death-loss-recovery.md)). -- **Binding**, **insurance**, **theft** in which **security tiers** ([overview.md](overview.md) risk stubs; [death-loss-recovery.md](death-loss-recovery.md) **Open questions**). +- **Binding**, **insurance**, **theft** in which **security tiers** ([risk-security-bands.md](risk-security-bands.md); [death-loss-recovery.md](death-loss-recovery.md) **Open questions**). - **Named crafter**, **provenance**, **counterfeits**—social/economy flavor vs implementation cost. - **Stacking**, **charges**, **mod slots**—per category defaults. @@ -80,6 +80,7 @@ Design **buckets** above are not 1:1 types in data—they inform tags and metada | Item schema & inventory | [E3.M3](../decomposition/modules/E3_M3_ItemizationAndInventorySchema.md) | | 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) | | 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 7b13194..9c8585c 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). **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). **Loose ideas:** [`brainstorm/`](brainstorm/README.md). ## Presentation and target rating (vision) @@ -30,7 +30,8 @@ Neon Sprawl’s design work here starts from **concrete visions** of progression | [gathering.md](gathering.md) | Resource **nodes**, **Gather** skills, contesting, pipeline to refine/craft | **E3.M1** + **E4.M2**; with [skills.md](skills.md), [items.md](items.md) | | [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** stub in this file | +| [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** | | [brainstorm/hack-bodyguard-missions.md](brainstorm/hack-bodyguard-missions.md) | Split **skill** (hack) + **gig** (bodyguard) instances—idea capture | Brainstorm | ### Planned topics (stubs) @@ -48,8 +49,8 @@ Link new files here when they exist; remove or rewrite this subsection once the - **Economy** — [economy.md](economy.md): currency, sinks, trade, **E3.M5** / **E8.M3**; **mission** payouts vs **combat** loot ([progression.md](progression.md)). - **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 tiers** still stub below. -- **Risk & security bands** — safe pockets vs. wild space; where optional PvP and theft sit (aligns with security-tier thinking). +- **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. - **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. @@ -66,6 +67,7 @@ Combat is still missing a **single** pillar doc. Until then, use this table for | **Roster, roles, party, sub-gig** | [gigs.md](gigs.md) | | **PvE readability, TTK, encounter fairness** | Stub—future dedicated combat doc; implementation direction in [Epic 5 — PvE combat](../decomposition/epics/epic_05_pve_combat.md) | | **Death, durability, recovery** | [death-loss-recovery.md](death-loss-recovery.md) (with [Epic 6](../decomposition/epics/epic_06_pvp_security.md) for **PvP** loss) | +| **Risk tiers, PvP eligibility, warnings** | [risk-security-bands.md](risk-security-bands.md) ([Epic 4](../decomposition/epics/epic_04_world_topology.md) **Slice 2**) | **Items in fights:** [items.md](items.md) **Combat gear** is **gig**-tagged for equip/deploy; **consumables** baseline is not gig-gated; **chrome** persists across gig swap. Aligns with [abilities.md](abilities.md) **Item-linked actions**. **Stakes on defeat:** [death-loss-recovery.md](death-loss-recovery.md). diff --git a/docs/game-design/progression.md b/docs/game-design/progression.md index 47b79bf..d2700e5 100644 --- a/docs/game-design/progression.md +++ b/docs/game-design/progression.md @@ -32,6 +32,7 @@ Use these terms in **design specs and tools** (fiction may say *job*, *contract* | **Crafting** (recipes, pipeline, bench vs gig) | [crafting.md](crafting.md) | | **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) | | 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 new file mode 100644 index 0000000..484da7e --- /dev/null +++ b/docs/game-design/risk-security-bands.md @@ -0,0 +1,77 @@ +# 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`**). + +**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)). + +**PvP gating:** [E6.M1 — PvPEligibilityAndFlagState](../decomposition/modules/E6_M1_PvPEligibilityAndFlagState.md) maps **tier + context** to whether **player hostility** is allowed—**never** client-only toggles ([Epic 6](../decomposition/epics/epic_06_pvp_security.md)). + +**Risk UI:** [E6.M2 — ConsentAndRiskUxSignals](../decomposition/modules/E6_M2_ConsentAndRiskUxSignals.md) consumes **tier** and **warnings** for prompts and HUD. + +**Combat pipeline order:** [pvp_combat_integration.md](../decomposition/modules/pvp_combat_integration.md) — eligibility → **E5.M1** resolution → [E6.M3](../decomposition/modules/E6_M3_LossPenaltyAndAntiGriefRules.md) **loss** rules. + +**Downstream design:** [death-loss-recovery.md](death-loss-recovery.md) (**loss** tables may differ by tier), [economy.md](economy.md) (**binding**, **theft**, **effective** supply), [items.md](items.md) **Open questions**, [gathering.md](gathering.md) **contesting**. **Gig** roster does not define **security**—[gigs.md](gigs.md) **PvP** stays **open** until product locks **opt-in** posture. + +## Tier lenses (design-facing) + +Tiers are **discrete** in data (`SecurityTier`); fiction may say *green zone*, *extraterritorial*, *lockdown*. Example **bands** (names **TBD**—align with content): + +| Band (illustrative) | Player expectation (directional) | +|---------------------|----------------------------------| +| **High security** | **No** optional **PvP**; **theft** / **player** **loot** **restricted** or **off**; **gather** contesting **mild** or **instanced** | +| **Low / frontier** | **Opt-in** or **conditional** **PvP**; **harsher** **death** **loss** **possible**; **contested** **nodes** | +| **Contested / special** | **Event**, **faction**, or **contract** **overrides**—explicit **warning** before entry | + +Exact **count** of tiers, **instance** vs **overworld** rules, and **mission** **pocket** **exceptions** are **content** + data (**open**). + +## What tiers gate (non-exhaustive) + +| System | Tie to tier | +|--------|-------------| +| **PvP** | **E6.M1** / **E6.M2** | +| **Death penalties** | [death-loss-recovery.md](death-loss-recovery.md) — e.g. **drop** tables **stricter** in **riskier** bands (**open**) | +| **Theft / looting players** | [items.md](items.md), [economy.md](economy.md) — only where **policy** allows | +| **Gathering contest** | [gathering.md](gathering.md) — **FFA** vs **protected** **node** **access** | +| **Trade / market fees** | [economy.md](economy.md) — optional **tier**-based **tax** **fiction** (**open**) | + +## Consent and clarity + +- **ZoneEntryWarning** must support **plain** copy: what can happen to **you** and **your** **gear** ([E4.M4](../decomposition/modules/E4_M4_SecurityTierZoneFlags.md)). +- **Opt-in** flows (flag, party, **contract**) sit with **E6.M1** / **E6.M2**; **retroactive** “I didn’t know” is a **UX** **failure** to fix in **content** or **systems**. +- **Teen-oriented** presentation ([overview.md](overview.md)) applies to **risk** **UI** and **threat** **messaging**, not only **cutscenes**. + +## Module map (risk / security–focused) + +| Module | Role | Ties to this doc | +|--------|------|-------------------| +| [E4.M1](../decomposition/modules/E4_M1_ZoneGraphAndTravelRules.md) | Zone graph, travel | **Where** tiers attach | +| [E4.M4](../decomposition/modules/E4_M4_SecurityTierZoneFlags.md) | `SecurityTier`, warnings | **Core** | +| [E6.M1](../decomposition/modules/E6_M1_PvPEligibilityAndFlagState.md) | PvP allow/deny | **Consumes** tiers | +| [E6.M2](../decomposition/modules/E6_M2_ConsentAndRiskUxSignals.md) | Risk prompts, HUD | **Player** **readability** | +| [E6.M3](../decomposition/modules/E6_M3_LossPenaltyAndAntiGriefRules.md) | PvP loss, spawn protection | After **hostility** | +| [E5.M1](../decomposition/modules/E5_M1_CombatRulesEngine.md) | Combat | Consults **eligibility** for **PvP** | + +## Decisions log + +| Topic | Direction | Status | +|-------|-----------|--------| +| Server-authoritative tier | **Zone** **risk** and **PvP** **policy** from **server**; client **display** only | Agreed ([E4.M4](../decomposition/modules/E4_M4_SecurityTierZoneFlags.md)) | +| E4 → E6 direction | **Epic 4** **tags**; **Epic 6** **consumes**—**no** circular **module** **dependency** | Agreed (epic/module text) | +| PvE-first | **High-security** **default** for **new** / **core** **progression**; **harsh** **bands** **opt-in** or **signed** **entry** | Agreed direction ([Epic 6](../decomposition/epics/epic_06_pvp_security.md) framing) | + +## Open questions + +- **Instanced** **dungeons** vs **open** **world** **tier** **inheritance** (override table per **content** **type**). +- **Corporation** / **faction** **leased** **quarters** vs **public** **street** **tier** **in** **same** **district** **mesh**. +- **Skill** **activities** (**hack**, **gather**) in **high** **PvP** **zones**—**interrupt** rules and **loss** of **progress** vs **gear** only. + +## Where to read next + +| Topic | Document / module | +|--------|-------------------| +| Death, durability, PvP loss | [death-loss-recovery.md](death-loss-recovery.md) | +| Economy, theft, binding | [economy.md](economy.md), [items.md](items.md) | +| 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) | +| Folder index | [overview.md](overview.md) | diff --git a/docs/game-design/skills.md b/docs/game-design/skills.md index 0f3424b..76354cc 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)**. +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)**. **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). @@ -253,5 +253,6 @@ Explicit **bonuses** when skill A + B cross a threshold vs **pure fiction** (“ - **[gathering.md](gathering.md)** — nodes, yields, **skill** XP from gather; **E3.M1** / **E4.M2** hooks (written). - **[crafting.md](crafting.md)** — **Process/Make** pipeline, **RecipeDef** vision, bench vs **gig**; **E3.M2** (written). - **[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; **risk** doc still stub (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). - [brainstorm/hack-bodyguard-missions.md](brainstorm/hack-bodyguard-missions.md) — group **skill** (hack) + **gig** (bodyguard) instances (brainstorm).