neon-sprawl/docs/game-design/gathering.md

85 lines
7.0 KiB
Markdown

# Gathering & resources
Vision for **pulling raw value from the world**: **resource nodes**, **yields**, **who can compete**, and how gathering feeds **inventory** and **skill** progression—without collapsing into **gig** combat progression.
**Runtime ownership:** [E3.M1 — ResourceNodeAndGatherLoop](../decomposition/modules/E3_M1_ResourceNodeAndGatherLoop.md) defines **`ResourceNodeDef`**, **`GatherResult`**, **`ResourceYieldTable`**, and ties gather interactions to [E1.M3 — InteractionAndTargetingLayer](../decomposition/modules/E1_M3_InteractionAndTargetingLayer.md). Outputs land as items via [E3.M3](../decomposition/modules/E3_M3_ItemizationAndInventorySchema.md). **Ecology / respawn pacing** per zone: [E4.M2 — SpawnEcologyController](../decomposition/modules/E4_M2_SpawnEcologyController.md).
**Skill roster (Gather category):** [skills.md — Gather](skills.md#skill-roster-draft-ideas-by-category) (**Salvage**, **Extraction**, **Harvest (bio)**, **Quarry / bulk**). **Hybrid vocabulary:** [progression.md](progression.md). **Where gathered stuff goes:** [items.md](items.md) **Materials & intermediates** and **Acquisition**.
## Gig vs skill
- **Gathering is skill progression**, not **gig** identity. **Combat encounters** do not grant **skill XP** by default; **gather / craft** pipes do ([progression.md](progression.md), [Epic 2 — Skills](../decomposition/epics/epic_02_skills_and_progression.md) **Slice 3**).
- **No gig XP** from nodes or harvest loops—**gig XP** stays on the **combat** path ([gigs.md](gigs.md)).
- **World gates** (rep, licenses, zone access) can **gate which nodes exist or who may interact**; they must not replace “wrong class” locks—**any character** can train **Gather** skills over time ([skills.md](skills.md) **Pillars**).
## Node lenses (design-facing)
Nodes are **data** (`ResourceNodeDef`); these **lenses** help content and balance talk align with **Gather** skills:
| Lens | Fiction / examples | Typical skill hook |
|------|--------------------|--------------------|
| **Consumer salvage** | Wrecks, e-waste, stripped chrome, discarded gear | **Salvage** |
| **Subsurface / geological** | Seams, drilled feedstock, rare earths | **Extraction** |
| **Bio / organic** | Fungal mats, cultured tissue, black-market organics (grim **concepts**—[overview.md](overview.md) presentation band) | **Harvest (bio)** |
| **Urban bulk / structures** | Demo recoverables, aggregate, structural mass—not consumer wrecks | **Quarry / bulk** |
Same **physical prop** might map to **different** node types or yield tables by **zone tier** and **fiction**—**content** decides; skills table in [skills.md](skills.md) stays the **boundary** reference (e.g. **Salvage** vs **Quarry**).
## Competition and “open world” feel
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 [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
- **Stamina / daily caps / exhaustion** on gather—**open**; if used, should support **specialist fantasy** without hard **gig** coupling ([skills.md](skills.md) **Low-gig specialist**).
- **Tools** (pickaxes, rigs, scanners) are **items**—craft or buy via [items.md](items.md); **use** may be **skill**-gated per item data ([Seams](skills.md#seams-gigs-skills) **Non-combat Rigging / utility** pattern).
- **Skill XP** from gather: award on **successful** interaction / yield resolution—structured for telemetry ([E2.M2 — XpAwardAndLevelEngine](../decomposition/modules/E2_M2_XpAwardAndLevelEngine.md)); exact curves **open**.
## Pipeline position
**Gather → Process → Make** is the agreed chain shape ([skills.md](skills.md) **Production chains**). This doc stops at **raw outputs**; **recipes, benches, and pipeline vision:** [crafting.md](crafting.md); **runtime contracts:** [E3.M2](../decomposition/modules/E3_M2_RefinementAndRecipeExecution.md).
## Module map (gathering-focused)
| Module | Role | Ties to this doc |
|--------|------|-------------------|
| [E3.M1](../decomposition/modules/E3_M1_ResourceNodeAndGatherLoop.md) | Nodes, gather, yields | **Core** |
| [E2.M2](../decomposition/modules/E2_M2_XpAwardAndLevelEngine.md) | Skill XP awards | Gather **skill** progression |
| [E3.M3](../decomposition/modules/E3_M3_ItemizationAndInventorySchema.md) | Items in inventory | **GatherResult** outputs |
| [E4.M2](../decomposition/modules/E4_M2_SpawnEcologyController.md) | Spawn profiles, respawn, depletion bounds | Zone **density** and recovery |
| [E1.M3](../decomposition/modules/E1_M3_InteractionAndTargetingLayer.md) | Interaction range / targeting | Player **interacts** with node |
## Decisions log
| Topic | Direction | Status |
|-------|-----------|--------|
| Gather → skill XP, not gig XP | **Skill** XP from gather/craft pipes; **gig** XP from combat encounters | Agreed ([progression.md](progression.md)) |
| Gather skills vs node fiction | **Salvage** / **Extraction** / **Harvest** / **Quarry** boundaries as in [skills.md](skills.md) | Agreed |
| Pipeline | Raw from nodes feeds **Process** then **Make**—not a flat single-step economy | Agreed ([skills.md](skills.md)) |
## Open questions
- **Node ownership** (personal tap, party split, corp claims) vs **FFA** taps—social and exploit surface.
- **Stealing** gathered output or **harvesting under fire**—ties to **risk bands** and [death-loss-recovery.md](death-loss-recovery.md) (**TBD** tuning).
- **Bots / automation** fantasy vs anti-bot—how much **AFK** is acceptable (**open**).
- **Cross-skill nodes** (e.g. **Intrusion** to **unlock** a **Salvage** pile)—mission design vs systemic rule.
## Where to read next
| Topic | Document / module |
|--------|-------------------|
| Gather skill names & merge notes | [skills.md](skills.md) **Gather** table |
| Items & materials buckets | [items.md](items.md) |
| 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) |
| 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) |