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

210 lines
17 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.
- **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** | Salvage, mining, harvesting, reclaiming scrap |
| **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) |
| **Social / street** | Negotiation, street doc *craft*, fences—**only if** we give them real loops and XP (**open**) |
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 |
| **Social** | If we skill it: negotiation, contracts UI hooks (**open**) |
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 bullet is a **candidate skill** (or tight cluster we might merge). Final roster needs **stable IDs**, **XP sources**, and **gig/skill boundary** checks (especially **Tech** vs combat netrunning).
#### Gather — pull raw value from the world
- **Salvage** — wrecks, derelicts, e-waste pulls, stripped chrome.
- **Extraction** — mined or drilled feedstock (synth ores, rare earths, substrate for industry).
- **Reclaim** — urban scavenge: construction scrap, abandoned blocks, “legal gray” recovery.
- **Harvest (bio)** — cultured tissue, fungal mats, organics for chem or food chains (**open** how grim we want this).
- **Quarry / bulk** — aggregate and low-grade mass for concrete, fill, industrial bulk (**open** if distinct from Extraction).
#### Process — turn raw into workable intermediate
- **Refine** — smelt, purify, reduce ore and scrap to usable grades.
- **Fab tech** (*refine family*) — print circuits, micro-actuators, substrate prep—industrial intermediates that feed **Make** (**open** vs folding into **Refine** mastery only).
- **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
- **Gunsmith** — barrels, receivers, ballistics fab (ties [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 is *combat use*.
- **Rigging (gear)** — drones, harnesses, tool mods—**non-combat** rigging; combat deployables stay **gig**-gated (**open**).
- **Food synth** — ration fab, street kitchens (**open** if we skill it).
#### 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**).
- **Intrusion** — bypass locks and access control, pivot through non-combat systems, progress **hack timers** and objectives (e.g. [brainstorm/hack-bodyguard](brainstorm/hack-bodyguard-missions.md)).
- **Netsec / hardening** — patch holes, segment networks, raise **defense** ratings for sites, convoys, or ally systems before/during downtime phases.
- **Counter-intrusion** — trace hostile processes, sever sessions, quarantine malware—**defensive** counterpart to **Intrusion** in supported content.
- **Exploit dev** — build or tune **payloads** and tools used by Intrusion (authorized pen-tests, heists, corps)—**open** vs folding into **Intrusion** mastery.
- **Crypto & identity** — break weak schemes, spoof or forge **credentials** where content allows; ties rep and legality (**open**).
- **Electronics** — repair boards, swap modules, bench diagnostics on devices and vehicles (physical layer adjacent to netsec).
- **Signal** — scan, trace, tap—RF and traffic analysis **out of combat** or in **objectives**; jamming in **combat** **open** (gig vs skill).
#### Social — only if we give real loops and XP
- **Negotiation** — better outcomes on prices, timers, aggression thresholds in supported content.
- **Fixer facework** — unlock alternate quest routes, call in markers (**open** vs pure rep).
- **Fence / laundering** — move hot goods with less heat (**economy risk** skill—**open**).
**Cross-cutting notes**
- **Merge candidates:** e.g. **Refine** + **Synth-chem prep** vs split by fantasy; **Salvage** + **Reclaim** vs one **Scavenge** skill.
- **Cut / defer:** **Social** entire row if we decide rep-only; **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) |
| Social / negotiation as tracked skills | Open |
| 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 |
| 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).