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

219 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

# 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)**.
**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).
## Classless skills
Everything **outside combat role resolution** trains on **skills**. That includes gathering, refining, crafting, non-combat tech work, and other **world interactions** we choose to track as progression.
### Pillars
- **Any character can train any skill** over time (subject to **world gates**: discovery, rep, licenses—those **add** content, they are not “you picked the wrong class”).
- **Economy identity** is the **skill graph + reputation + gear**, not which **gig** you had equipped last night.
- **Specialist path:** it must be viable to **keep gigs low** (minimal combat-role investment) and still **meaningfully play** by pushing **gather / process / make / tech**—best supplier, best bench, best netsec in the hubs and instances that reward skills. Combat and story may still **touch** gigs; they must not **hard-require** high gig levels to participate in the **economy and skill loops** players care about for that lifestyle ([Seams](#seams-gigs--skills): e.g. **craft** without needing to **equip** what you make).
- **Long-term:** avoid dead-end grinds; slow or expensive is fine, “wrong choice forever” is not.
### What is (and isnt) a skill
A **skill** is a **persistent, leveled** capability, **data-defined** (stable IDs, categories, optional prerequisites). Primary progression is **doing the activity** (gather, refine, assemble, hack a door in a skill-based encounter, etc.). **Books, trainers, or mission grants** can supplement XP—**optional** and should not replace “play the loop” as the main fantasy.
**Not skills:** **gig** combat progression, **raw item stats** with no trained gate, and **one-off** quest flags (unless we explicitly model them as skills—**open**).
### Skill domains (examples)
**Domains** are a **design vocabulary**: when we brainstorm content, what *kind* of real-world activity is this skill about? They help writers and designers stay consistent (“is this **extraction** or **fabrication**?”) and stay separate from **gigs**. Domains are **not** required to match data tags 1:1.
Domains are **content-shaped**, not a locked taxonomy. Early vision includes:
| Domain | Examples (illustrative) |
|--------|-------------------------|
| **Extraction** | Pulling value from the world: **earth/subsurface** (mining, drilling), **consumer salvage & biology** (**Salvage**, **Harvest**), and **urban infrastructure materials** (**Quarry**) vs geological **Extraction** skill |
| **Processing** | Refining, chemistry prep, material conversion |
| **Fabrication** | Weaponsmith, armtech, synth-chem, cooking if we track it |
| **Tech / intrusion** | Hacking, netsec, counter-intrusion, bypass, diagnostics—**combat-facing** net actions stay **gig** |
| **Support craft** | Medtech fabrication, field repair kits, augment maintenance (**open** naming) |
New skills land here as **design + data** demand; a skill can sit in **multiple domains** in conversation before we assign its **primary category**.
### Categories (families)
**Categories** are **registry / UI tags**—what we put in data (e.g. E2.M1 `SkillCategory`) for **filters, sorting, and balance** knobs. Expect **one primary category per skill**; optional **secondary** tags for UI only if we need them.
**Domains vs categories:** **domains** = “what is this skill *about* in the fiction/pipeline?” (design). **categories** = “which bucket does the **system** put it in for players and tuning?” (product). Todays tables **overlap** on purpose while the roster is unsettled (e.g. extraction work often maps to **Gather**); when we lock a skill list, we either **merge** domain language into categories or keep domains as a **writers appendix** only. Categories are **not** gigs, **not** professions, and **not** caps on how many skills you can train.
**Draft families** (can merge or rename):
| Category | Rough scope |
|----------|-------------|
| **Gather** | Nodes, yields, field extraction |
| **Process** | Refine (incl. fab-tech intermediates), batch, intermediate goods |
| **Make** | Finished goods, recipes, bench work |
| **Tech** | Intrusion, netsec, counter-intrusion, electronics, signal—**not** combat gig kit |
Optional **secondary category** for UI sorting only—**primary** category in data drives balance defaults.
### Skill roster (draft ideas by category)
**v0 — for examination, not a commit list.** Each row is a **candidate skill** (or tight cluster we might merge). The tables below are a **solid opening roster**—on the order of **~1723** names depending on how we **merge or split** clusters—and we **expect to add more** as we approach launch. A **wide** skill set is intentional: it gives design and live ops room to grow **loops**, **biomes**, and **specialist fantasies** without collapsing everything into a tiny tree.
Final roster needs **stable IDs**, **XP sources**, and **gig/skill boundary** checks (especially **Tech** vs combat netrunning).
Layout mirrors **[gigs.md](gigs.md) gig roster**: one **table per category**, **Skill** name plus **what it covers** and **open / merge** notes.
#### Gather — pull raw value from the world
| Skill | What it covers | Open / merge |
|-------|----------------|--------------|
| **Salvage** | **Consumer goods and vehicles:** cars, ships, computers, other wrecked or discarded **products**; e-waste, stripped chrome—**not** structural building stock (thats **Quarry**). | — |
| **Extraction** | **From the earth:** mined or drilled feedstock—synth ores, rare earths, geological substrate for industry (subsurface and natural seams, not the city stack). | — |
| **Harvest (bio)** | **Organic feedstock** for chem, medtech, or food chains: cultured tissue and fungal mats **and** deliberately **grim** sourcing—e.g. **morgue** break-ins, **blood** and **tissue** theft, black-market organics. | Grim **concepts** in scope; **how we show it** and **target rating** are **vision-level**—see [overview.md](overview.md) |
| **Quarry / bulk** | **Urban infrastructure** and **built-environment mass:** bricks, concrete, wooden building supplies, aggregate, fill, demo recoverables from **structures**—**not** consumer goods or vehicle wrecks (**Salvage**). | Intentionally **not** **Extraction** (earth seam vs **city stack**) |
#### Process — turn raw into workable intermediate
**Overlapping chains:** **Process** and **Make** are not isolated trees. **Different** skills (or different recipes under one skill) can consume the **same** items and yield **different** intermediates or products—e.g. the same gathered or refined feedstock feeding **Refine**, **Synth-chem prep**, or **Bioprocess** paths with **different outputs**. Data-defined recipes carry the truth; overlap is **intentional** for a dense, interconnected economy.
| Skill | What it covers | Open / merge |
|-------|----------------|--------------|
| **Refine** | Smelt, purify, reduce ore and scrap to usable grades. | Merge vs **Synth-chem prep**? **open** |
| **Fab tech** | *Refine family:* print circuits, micro-actuators, substrate prep—industrial intermediates for **Make**. | Fold into **Refine** mastery only? **open** |
| **Synth-chem prep** | Precursors, reagents, stable compounds for **Make** (stims, reactives, polymers). | — |
| **Bioprocess** | Ferment, culture, grow feedstock for medtech or consumables. | — |
| **Composite work** | Laminate layers, weave fibers, prep armtech “blanks” before final assembly. | — |
| **Data scrub** | Clean, normalize, or decrypt **datasets** that become a craft input. | **Tech** overlap—pick one **primary** category |
#### Make — recipes, benches, finished goods
| Skill | What it covers | Open / merge |
|-------|----------------|--------------|
| **Gunsmith** | Barrels, receivers, ballistics fab. | [Seams](#seams-gigs--skills): craft without gig to *use* |
| **Armtech** | Armor plates, suits, hardshell integration. | — |
| **Synth-chem (product)** | Finish stims, chems, consumables from **Process** outputs. | — |
| **Medtech fab** | Field kits, injectors, trauma foam—**craft** lane. | **Gig** Sawbones = *combat use* |
| **Rigging (gear)** | Drones, harnesses, tool mods—**non-combat** rigging. | Combat deployables **gig**-gated — **open** |
| **Food synth** | Ration fab, street kitchens. | Skill at all? **open** |
#### Tech — systems, hacking, and cyber security (non-gig)
**Skill** tech covers **prep**, **world interaction**, and **instance / downtime** work. **Combat** net attacks, debuffs, and **todays gig kit** **ICE-breaking in a fight** stay **gig**-gated unless we deliberately duplicate (**open**).
| Skill | What it covers | Open / merge |
|-------|----------------|--------------|
| **Intrusion** | Bypass locks and access control, pivot non-combat systems, **hack timers** / objectives. | e.g. [brainstorm/hack-bodyguard](brainstorm/hack-bodyguard-missions.md) |
| **Netsec / hardening** | Patch holes, segment networks, raise **defense** for sites, convoys, ally systems (downtime / prep). | — |
| **Counter-intrusion** | Trace hostile processes, sever sessions, quarantine malware—defensive counterpart to **Intrusion**. | — |
| **Exploit dev** | Build or tune **payloads** and tools for **Intrusion** (pen-tests, heists, corps). | Fold into **Intrusion** mastery? **open** |
| **Crypto & identity** | Break weak schemes; spoof or forge **credentials** where content allows. | Rep / legality hooks — **open** |
| **Electronics** | Repair boards, swap modules, bench diagnostics—physical layer next to netsec. | — |
| **Signal** | Scan, trace, tap—RF and traffic **out of combat** or in objectives. | **Combat** jamming: gig vs skill — **open** |
**Cross-cutting notes**
- **Overlapping production chains:** **Agreed**—shared **inputs** across **Process** / **Make** with **different outputs**; recipe UX and balance **open** (paragraph under **Process** in [Skill roster](#skill-roster-draft-ideas-by-category)).
- **Merge candidates:** e.g. **Refine** + **Synth-chem prep** vs split by fantasy. **Salvage** vs **Quarry** split (**consumer goods / vehicles** vs **urban infrastructure** materials) — **agreed**.
- **Cut / defer:** **Food synth** if not a loop.
- **Next pass:** pick **prototype trio** (one Gather, one Process/Make, one Tech) for Epic 2/3 slices—align with decomposition when ready.
### XP, levels, curves
- **Server-authoritative** XP and level resolution ([E2.M2](../decomposition/modules/E2_M2_XpAwardAndLevelEngine.md)).
- **Primary source (agreed):** **do the activity**—gather, craft steps, skill-based mission objectives, etc.
- **Secondary sources (open):** quests, dailies, books, training dummies—tuned so they **assist** without **replacing** loops.
- **Structured grants:** skill id, amount, **source** (node id, recipe, quest key…) for telemetry and anti-exploit review.
**Failure XP** (failed craft, failed hack attempt—not **death**): **per skill / per mechanic**; **open** until each activitys rules exist ([Decisions log](#decisions-log)).
**Caps (agreed):** **soft** curve only—**each level needs more XP** than the last; **data-driven** per skill or policy. **Runaway** mitigation: steeper curves, context modifiers, diminishing returns on repeat actions—**open** per skill.
**Pacing / catch-up** ([E2.M4](../decomposition/modules/E2_M4_ProgressionPacingControls.md)): global or cohort knobs for ops; **gig** pacing stays separate ([gigs.md](gigs.md)).
### Gates, discovery, prerequisites
**UnlockRequirement**-style gates ([E2.M1](../decomposition/modules/E2_M1_SkillDefinitionRegistry.md)) should **widen** what you can do, not mimic a class pick:
- **Recipes** and **facilities** tied to skill tier or world state.
- **Faction rep** or **licenses** for restricted goods or zones.
- **Discovery:** find a schematic, rescue a teacher, complete a gig-agnostic storyline.
**Open:** how much is **available at level 1** vs **gated**; how **alt-friendly** discovery is.
### Mastery and perks (skills)
Beyond raw level, **mastery tracks** and **perks** ([E2.M3](../decomposition/modules/E2_M3_MasteryAndPerkUnlocks.md)) give **build texture** inside one skill (branch picks, efficiency, side effects). Same *idea* as gig expression, **different** system—no shared perk tree between gig and skill unless we deliberately link them (**open**).
**Respec** for skill mastery—**open** (cost, partial reset).
### Cross-skill synergies
**Open:** explicit **bonuses** when skill A + B cross a threshold vs **pure fiction** (“youre known as a rigger-smith”) with no math. Avoid mandatory cross-grinds unless the loop is fun.
### Where skills meet the rest of the game
| Area | Tie-in |
|------|--------|
| [Epic 2](../decomposition/epics/epic_02_classless_progression.md) | Registry, XP engine, mastery, pacing |
| [Epic 3](../decomposition/epics/epic_03_crafting_economy.md) | Gather and craft **award** skill XP; items and recipes |
| [Epic 7](../decomposition/epics/epic_07_quest_faction.md) | Quest rewards, rep gates, optional skill payouts |
| [gigs.md](gigs.md) | **Craft** combat gear with **skills**; **equip** with **gigs**—[Seams](#seams-gigs--skills) |
| [brainstorm/hack-bodyguard-missions.md](brainstorm/hack-bodyguard-missions.md) | **Skill** lane in a group instance (idea only) |
### Open questions (skills-only)
| Topic | Status |
|-------|--------|
| Full launch **skill list** and names | **Draft** roster by category in [Skill roster](#skill-roster-draft-ideas-by-category) |
| Failure XP defaults per activity type | Open |
| Mastery respec rules | Open |
| Cross-skill synergy math | Open |
| Skill-based **combat-adjacent** actions (e.g. deployable) vs **gig** ability | Open |
## Seams (gigs ↔ skills)
| Topic | Direction |
|--------|-----------|
| **Combat gear** | **Gig-restricted.** Weapons, armor, and other combat-loadout pieces declare which **gig(s)** may equip or fully activate them. After a **hub-only** [gig swap](gigs.md#hub-swap), the player **re-banks or re-equips** combat gear for the new gig (automation vs. manual loadout UX **open**). Non-combat tools (pickaxe, scanner, craft bench) stay **skill**-gated, not gig-gated, unless a piece is explicitly hybrid. |
| **Crafting combat gear** | **No gig or gig level requirement.** Who can *build* it depends on **skills** (e.g. gunsmith), recipes, rep, facilities—never on owning a gig or its level. A character can **craft combat gear they cannot equip** (wrong gig, low gig level, etc.): valid for **trade**, **stock**, or **group play**. **Equip/activation** stays **gig-restricted** as above. |
| **Consumables** | **Carry and use** are not gig-gated by default—anyone can pop a stim or patch. **Passive** potency can scale with **gig** match: e.g. a **medic**-tagged bonus applies if **main *or* sub-gig** matches (see [gigs.md](gigs.md)). Others use a **baseline**. **Active** abilities from consumables (if any) follow their own rules—**open**. Other items may have **no** gig hook—data-driven per item. |
| **Rep / story** | **Hybrid.** **Faction / world reputation** stays **character-wide** where it fits (one person, one web of grudges). **Narrative** also includes **gig storylines** and **main-quest-style arcs** tied to a **gig**—mentor paths, employer chains, identity stories that assume you *are* that role for a chapter. State for those arcs is **per gig** (or per gig branch) on the same character; switching gigs does not erase character rep, but **gig plot progress** is its own track. |
| **Alts / multi-gig mastery** | One avatar still reduces **alt** pressure for economy and story. **Maining every gig** is **not** a design problem for now: **gig leveling is intentionally slow**, so fully progressing (or “maxing”) every gig is a **long-term time investment**, not something handed out quickly. Players who put in that time **may** legitimately be strong in every gig on one character. **Revisit** only if pacing, live balance, or PvP show harm. |
## Player-facing readability
- **Combat:** UI shows **main gig**, **sub-gig**, levels/tracks, combat abilities, and **combat gear** the main gig can use (mismatched gear disabled or greyed). Consumable tooltips for **passive** amps can show **baseline vs. boosted** when **main or sub** matches the items gig hook.
- **Non-combat / crafting:** **skill** list, **category** filters, XP with **source** hints where helpful; **mastery** branches when E2.M3-style systems exist. Crafting combat gear uses **skill**/recipe gates only—not gigs (optional hint if you cant equip the product on your current gig).
- **Story:** journal or quest UI can separate **character / faction** threads from **gig** threads so players see which arc belongs to which gig.
- Use **gig** / **skill** consistently in specs and tools; flavor text can vary.
## Decisions log
| Topic | Direction | Status |
|-------|-----------|--------|
| Vocabulary | **Gig** = combat role; **skill** = non-combat only | Agreed |
| Combat gear | **Gig-restricted** equip/activation; non-combat tools **skill**-gated | Agreed |
| Crafting combat gear | **Skill**/recipe/rep (etc.) only—**not** gig or gig level; craft-for-others OK | Agreed |
| Consumables | Baseline for all; **passive gig amp** from **main or sub** ([gigs.md](gigs.md)) | Agreed |
| Rep / story | Character-wide **rep**; **gig**-scoped **storylines** and **main quests** (per-gig progress on one avatar) | Agreed |
| Multi-gig mastery | **OK for now**; slow gig leveling makes “all gigs” a **time** goal, not a loophole | Agreed (revisit if balance/PvP needs) |
| Combat vs. non-combat | **Gigs** for combat; **skills** for gather/craft/etc. | Agreed |
| Professions (economy) | No separate profession system; economy identity from **skills** + rep | Agreed ([overview](overview.md)) |
| Primary skill XP | Do the activity | Agreed |
| Failure XP | **Open**; decided **per skill / activity** once mechanics exist (not the same as death penalty) | Open |
| Skill caps | **Soft**; **progressively more XP** per level (data-driven curves) | Agreed |
| Gig swap rules | **Hub-only** (city / home base / designated site)—**not** in the field or mid-fight | Agreed |
| Sub-gig | **FFXI-style** slot **agreed**; sub abilities up to **~½ main gig level** (formula TBD); wide build space | Agreed |
| Combat progression | **Per gig**—separate level/XP (and mastery) per gig; no shared combat rank | Agreed |
| Social skills category | **No** dedicated **Social** skill family or tracked negotiation/fixer/fence skills—outcomes live in **rep**, **quests**, **economy**, and other systems if we need them | Agreed |
| Low-gig specialist | **Viable** to focus progression on **skills** (gather/craft/tech) with **low gig levels**; economy loops must not **hard-gate** on high gig rank | Agreed |
| Skill roster size | **Opening** v0 list is strong; **add skills** pre-launch as needed—**breadth** is a feature | Agreed |
| Gig XP award | **Main gig only**; **sub-gig** earns no XP—see [gigs.md](gigs.md) | Agreed |
| Epic 2 doc split | Align modules when gig data model is chosen | TBD |
## Next artifacts
- **[gigs.md](gigs.md)** — gig roster, hub UX, recruitment **deferred**; **PvP** gig rules **open indefinite** (overall PvP scope TBD).
- **Abilities** — **gig-locked** vs. **item-locked** vs. **skill-gated**.
- **Items** — **equip:** gig rules; **craft:** **skills** (and recipe/rep), never gig level.
- [brainstorm/hack-bodyguard-missions.md](brainstorm/hack-bodyguard-missions.md) — group **skill** (hack) + **gig** (bodyguard) instances (brainstorm).