diff --git a/README.md b/README.md index c36cd3f..4fcf3a1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Neon Sprawl -**Neon Sprawl** is the working title for a classless, crafting-focused sci-fi / cyberpunk MMORPG (solo-dev scope). Product intent and phase gates: [`neon_sprawl_vision.plan.md`](neon_sprawl_vision.plan.md). +**Neon Sprawl** is the working title for a crafting-focused sci-fi / cyberpunk MMORPG with **gigs** (combat roles) and open non-combat **skills** (solo-dev scope). Product intent and phase gates: [`neon_sprawl_vision.plan.md`](neon_sprawl_vision.plan.md). ## Tech stack (locked) diff --git a/docs/decomposition/README.md b/docs/decomposition/README.md index a303cc7..92cd357 100644 --- a/docs/decomposition/README.md +++ b/docs/decomposition/README.md @@ -25,7 +25,7 @@ This workspace contains detailed planning artifacts derived from the finalized m | Epic | Document | |------|----------| | 1 - Core Player Runtime | [epics/epic_01_core_player_runtime.md](epics/epic_01_core_player_runtime.md) | -| 2 - Classless Progression Framework | [epics/epic_02_classless_progression.md](epics/epic_02_classless_progression.md) | +| 2 - Skills and Progression Framework | [epics/epic_02_skills_and_progression.md](epics/epic_02_skills_and_progression.md) | | 3 - Crafting Economy | [epics/epic_03_crafting_economy.md](epics/epic_03_crafting_economy.md) | | 4 - World Topology | [epics/epic_04_world_topology.md](epics/epic_04_world_topology.md) | | 5 - PvE Combat | [epics/epic_05_pve_combat.md](epics/epic_05_pve_combat.md) | diff --git a/docs/decomposition/epics/epic_02_classless_progression.md b/docs/decomposition/epics/epic_02_skills_and_progression.md similarity index 85% rename from docs/decomposition/epics/epic_02_classless_progression.md rename to docs/decomposition/epics/epic_02_skills_and_progression.md index 3301fd4..549ca28 100644 --- a/docs/decomposition/epics/epic_02_classless_progression.md +++ b/docs/decomposition/epics/epic_02_skills_and_progression.md @@ -1,4 +1,4 @@ -# Epic 2 - Classless Progression Framework +# Epic 2 - Skills and Progression Framework ## Source Anchors @@ -8,11 +8,11 @@ ## Ownership and success (Level 1) - **Ownership focus:** Systems Design + Gameplay Engineering -- **Success criteria:** Any character can train all skills, and progression remains long-term without dead-end grinds. +- **Success criteria:** Any character can train all **non-combat** **skills** tracked as `SkillDef`, and **skill** progression stays long-term without dead-end grinds (**gig** combat roles are separate—see [`gigs.md`](../../game-design/gigs.md)). ## Objective -Provide a data-driven **classless non-combat skill** layer: `SkillDef` registry, **skill** XP awards, level curves, and eventually mastery/perk and pacing controls. **Gathering** and **crafting** feed **skill** progression via [E2.M2](../modules/E2_M2_XpAwardAndLevelEngine.md); **combat encounters** feed **gig** progression (not `SkillDef` XP)—see [`docs/game-design/progression.md`](../../game-design/progression.md). **Mission rewards** may still grant **skill** XP when scripted. +Provide a data-driven **non-combat skill** layer: `SkillDef` registry, **skill** XP awards, level curves, and eventually mastery/perk and pacing controls. **Gathering** and **crafting** feed **skill** progression via [E2.M2](../modules/E2_M2_XpAwardAndLevelEngine.md); **combat encounters** feed **gig** progression (not `SkillDef` XP)—see [`docs/game-design/progression.md`](../../game-design/progression.md). **Mission rewards** may still grant **skill** XP when scripted. ## Module Breakdown @@ -33,7 +33,7 @@ Provide a data-driven **classless non-combat skill** layer: `SkillDef` registry, ### E2.M3 - MasteryAndPerkUnlocks -- Responsibility: Mastery tracks and perk unlock state for non-class build expression. +- Responsibility: Mastery tracks and perk unlock state for **skill** build expression beyond raw levels. - Key contracts: `MasteryTrack`, `PerkUnlockEvent`, `PerkState` - Dependencies: E2.M2 - Stage target: Pre-production @@ -87,7 +87,7 @@ Provide a data-driven **classless non-combat skill** layer: `SkillDef` registry, - Risk: XP faucets create runaway leveling in one skill. - Mitigation: Diminishing returns per slice; monitor skill distribution via E9.M2. -- Risk: Classless identity feels flat without mastery expression. +- Risk: **Skill** progression feels flat without mastery expression. - Mitigation: Ship E2.M3 early in pre-production with one flagship mastery line. ## Definition of Done diff --git a/docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md b/docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md index 9dcf95c..585b4f9 100644 --- a/docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md +++ b/docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md @@ -5,7 +5,7 @@ | Field | Value | |--------|--------| | **Module ID** | E2.M1 | -| **Epic** | [Epic 2 — Classless Progression Framework](../epics/epic_02_classless_progression.md) | +| **Epic** | [Epic 2 — Skills and Progression Framework](../epics/epic_02_skills_and_progression.md) | | **Stage target** | Prototype | | **Status** | Planned (see [dependency register](module_dependency_register.md)) | diff --git a/docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md b/docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md index 7a99e31..2c9a91d 100644 --- a/docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md +++ b/docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md @@ -5,13 +5,13 @@ | Field | Value | |--------|--------| | **Module ID** | E2.M2 | -| **Epic** | [Epic 2 — Classless Progression Framework](../epics/epic_02_classless_progression.md) | +| **Epic** | [Epic 2 — Skills and Progression Framework](../epics/epic_02_skills_and_progression.md) | | **Stage target** | Prototype | | **Status** | Planned (see [dependency register](module_dependency_register.md)) | ## Purpose -Central server-authoritative engine for **classless skill** progression: applying XP grants, resolving levels against data-driven curves, and emitting level-up events. **Gathering** and **crafting** integrate as callers for **skill** XP. **Combat encounters** advance **gigs** (gig XP), not `SkillDef` lines. **Mission rewards** may call this API for **skill** XP when the payout lists a skill grant. Callers are not hard dependencies for implementing the engine core (see Epic 2 Slice 2 vs Slice 3). +Central server-authoritative engine for **non-combat skill** progression: applying XP grants, resolving levels against data-driven curves, and emitting level-up events. **Gathering** and **crafting** integrate as callers for **skill** XP. **Combat encounters** advance **gigs** (gig XP), not `SkillDef` lines. **Mission rewards** may call this API for **skill** XP when the payout lists a skill grant. Callers are not hard dependencies for implementing the engine core (see Epic 2 Slice 2 vs Slice 3). ## Responsibilities diff --git a/docs/decomposition/modules/E2_M3_MasteryAndPerkUnlocks.md b/docs/decomposition/modules/E2_M3_MasteryAndPerkUnlocks.md index a44989c..faffe5c 100644 --- a/docs/decomposition/modules/E2_M3_MasteryAndPerkUnlocks.md +++ b/docs/decomposition/modules/E2_M3_MasteryAndPerkUnlocks.md @@ -5,13 +5,13 @@ | Field | Value | |--------|--------| | **Module ID** | E2.M3 | -| **Epic** | [Epic 2 — Classless Progression Framework](../epics/epic_02_classless_progression.md) | +| **Epic** | [Epic 2 — Skills and Progression Framework](../epics/epic_02_skills_and_progression.md) | | **Stage target** | Pre-production | | **Status** | Planned (see [dependency register](module_dependency_register.md)) | ## Purpose -Mastery tracks and perk unlock state so classless builds have expressive identity beyond raw level curves. +Mastery tracks and perk unlock state so **skill** builds have expressive identity beyond raw level curves. ## Responsibilities diff --git a/docs/decomposition/modules/E2_M4_ProgressionPacingControls.md b/docs/decomposition/modules/E2_M4_ProgressionPacingControls.md index f6d636c..146862d 100644 --- a/docs/decomposition/modules/E2_M4_ProgressionPacingControls.md +++ b/docs/decomposition/modules/E2_M4_ProgressionPacingControls.md @@ -5,7 +5,7 @@ | Field | Value | |--------|--------| | **Module ID** | E2.M4 | -| **Epic** | [Epic 2 — Classless Progression Framework](../epics/epic_02_classless_progression.md) | +| **Epic** | [Epic 2 — Skills and Progression Framework](../epics/epic_02_skills_and_progression.md) | | **Stage target** | Pre-production | | **Status** | Planned (see [dependency register](module_dependency_register.md)) | diff --git a/docs/decomposition/modules/module_dependency_register.md b/docs/decomposition/modules/module_dependency_register.md index 5aba75a..1c15a82 100644 --- a/docs/decomposition/modules/module_dependency_register.md +++ b/docs/decomposition/modules/module_dependency_register.md @@ -17,7 +17,7 @@ Fleshed-out scope, contracts, and integration notes live in **per-module documen | E1.M3 | InteractionAndTargetingLayer | E1.M1 | TargetState, InteractableDescriptor, SelectionEvent | Prototype | Planned | | E1.M4 | AbilityInputScaffold | E1.M3, E5.M1 | AbilityCastRequest, HotbarLoadout, CooldownSnapshot | Prototype | Planned | -### Epic 2 — Classless Progression Framework +### Epic 2 — Skills and Progression Framework | Module ID | Module Name | Depends On | Contract Needed | Phase Required | Status | |---|---|---|---|---|---| diff --git a/docs/decomposition/modules/quest_scope_and_party.md b/docs/decomposition/modules/quest_scope_and_party.md index eb6e04e..04b6a51 100644 --- a/docs/decomposition/modules/quest_scope_and_party.md +++ b/docs/decomposition/modules/quest_scope_and_party.md @@ -9,7 +9,7 @@ This doc fixes **solo vs party** quest behavior: where `QuestStepState` lives, w - **Authoritative state** for a quest is stored **per character** (`QuestStepState` keyed by character / player id, plus quest id and any run id if replays exist). - There is **no** single shared “party quest row” in the prototype model; party play is expressed by **synchronizing advances** across multiple per-character states when content opts in (see below). -**Rationale:** Avoids orphan state when members leave the party, keeps abandon/reset rules simple, and matches “classless solo-friendly” progression with optional co-op credit. +**Rationale:** Avoids orphan state when members leave the party, keeps abandon/reset rules simple, and matches “solo-friendly” progression with optional co-op credit. --- diff --git a/docs/game-design/gigs.md b/docs/game-design/gigs.md index 8316438..96a8807 100644 --- a/docs/game-design/gigs.md +++ b/docs/game-design/gigs.md @@ -2,7 +2,7 @@ Vision-level design for **combat identity**: what you bring to a fight, how you progress, and how you swap roles. **Shared progression framing** and **vocabulary**: [progression.md](progression.md). **Gigs ↔ skills seams** (gear, crafting, consumables, rep): [skills.md](skills.md). This file is the **gig** artifact proper. -**Implementation anchors:** [Epic 5 — PvE combat](../decomposition/epics/epic_05_pve_combat.md); gig XP/progression will need alignment with [Epic 2 — Classless Progression Framework](../decomposition/epics/epic_02_classless_progression.md) when data models split. +**Implementation anchors:** [Epic 5 — PvE combat](../decomposition/epics/epic_05_pve_combat.md); gig XP/progression will need alignment with [Epic 2 — Skills and Progression Framework](../decomposition/epics/epic_02_skills_and_progression.md) when data models split. ## What a gig is diff --git a/docs/game-design/progression.md b/docs/game-design/progression.md index b4102fb..1368ffb 100644 --- a/docs/game-design/progression.md +++ b/docs/game-design/progression.md @@ -2,7 +2,7 @@ Shared vision for **how characters grow** in Neon Sprawl: **combat** vs **everything else** use different systems that still live on **one avatar**. Detail docs: **[gigs.md](gigs.md)** (combat roles), **[skills.md](skills.md)** (non-combat skills and **gigs ↔ skills seams**). -**Implementation note:** [Epic 2 — Classless Progression Framework](../decomposition/epics/epic_02_classless_progression.md) (E2.M1–M4): **Slice 3** wires **gather/craft** to **skill** XP (E2.M2), **combat encounters** to **gig XP only**, and allows **mission reward** hooks to grant **skill** XP when scripted—**not** via the combat encounter pipe. **Gig** levels stay **per gig**; exact gig XP module ownership may sit beside E2.M2 or under Epic 5 until the gig data model is finalized. +**Implementation note:** [Epic 2 — Skills and Progression Framework](../decomposition/epics/epic_02_skills_and_progression.md) (E2.M1–M4): **Slice 3** wires **gather/craft** to **skill** XP (E2.M2), **combat encounters** to **gig XP only**, and allows **mission reward** hooks to grant **skill** XP when scripted—**not** via the combat encounter pipe. **Gig** levels stay **per gig**; exact gig XP module ownership may sit beside E2.M2 or under Epic 5 until the gig data model is finalized. ## Vocabulary @@ -17,7 +17,7 @@ Use these terms in **design specs and tools** (fiction may say *job*, *contract* ## Why hybrid - **Gigs** answer “what are you on **this fight**?”—readable roles, **hub swap**, cyberpunk **contract** fantasy, without alts for combat variety. -- **Skills** keep **economy and crafting** **classless**: anyone can raise gather/craft over time; “street doc” can mean high **Medtech fab** **skill** + rep, not only tonight’s gig. +- **Skills** keep **economy and crafting** **open to every character** (independent of **gig**): anyone can raise gather/craft over time; “street doc” can mean high **Medtech fab** **skill** + rep, not only tonight’s gig. - **Specialist fantasy:** a player can **under-invest in gigs** and still **mainline the game** through **skills**—top gatherer, crafter, or tech, with **lots of options** to explore. The **skill roster** is meant to **grow** over time; see [skills.md](skills.md) **Pillars** and **Skill roster**. - **Mission rewards vs combat XP:** **Missions** (contracts, arcs, hand-ins) may **pay skill XP** as an explicit **reward**—separate from the **combat encounter** pipe. Default flow stays **fight → gig XP**; skill XP from an op is **“this job’s payout,”** not **“kills trained my fab skill.”** diff --git a/docs/game-design/skills.md b/docs/game-design/skills.md index 3fe1df6..fbd1de9 100644 --- a/docs/game-design/skills.md +++ b/docs/game-design/skills.md @@ -4,7 +4,7 @@ Design for **non-combat skills** only. **Shared vocabulary**, **why we use gigs **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 +## Skills outside combat roles 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. @@ -165,7 +165,7 @@ Explicit **bonuses** when skill A + B cross a threshold vs **pure fiction** (“ | Area | Tie-in | |------|--------| -| [Epic 2 — Classless Progression Framework](../decomposition/epics/epic_02_classless_progression.md) | Registry, XP engine, mastery, pacing | +| [Epic 2 — Skills and Progression Framework](../decomposition/epics/epic_02_skills_and_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) | diff --git a/docs/reviews/2026-03-31-game-design-skills-coherence.md b/docs/reviews/2026-03-31-game-design-skills-coherence.md index 625d75a..d2316a1 100644 --- a/docs/reviews/2026-03-31-game-design-skills-coherence.md +++ b/docs/reviews/2026-03-31-game-design-skills-coherence.md @@ -23,7 +23,7 @@ Remaining gaps are **expected** for vision docs: stable skill IDs, per-recipe da | `docs/game-design/overview.md` | **Matches** — index, rating vision, artifact table | | `docs/game-design/gigs.md` | **Matches** — sub-gig **Combat gear** bullet now links to `skills.md` **Seams** | | `docs/game-design/README.md` | **Matches** | -| `docs/decomposition/epics/epic_02_classless_progression.md` | **Matches** — **Slice 3**: gather/craft → E2.M2 **skill** XP; **encounters** → **gig** XP; **mission rewards** may grant **skill** XP (no combat `SkillDef` from encounters) | +| `docs/decomposition/epics/epic_02_skills_and_progression.md` | **Matches** — **Slice 3**: gather/craft → E2.M2 **skill** XP; **encounters** → **gig** XP; **mission rewards** may grant **skill** XP (no combat `SkillDef` from encounters) | | `docs/decomposition/epics/epic_03_crafting_economy.md` | **Not re-read in full** — `skills.md` “Where skills meet” cites E3; no contradiction spotted from skills side | | `docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md` | **Matches** — schema + `allowedXpSourceKinds`, categories `gather`/`process`/`make`/`tech`, Slice 1 acceptance criteria | @@ -51,7 +51,7 @@ None for **using the docs as design guidance**. (No incorrect security or author ## Follow-up (applied in this review pass) - `progression.md`: **medic fab** → **Medtech fab** (consistent with roster). -- `epic_02_classless_progression.md` **Slice 1** scope: **non-combat** trio aligned with `skills.md` / gigs hybrid (see commit). +- `epic_02_skills_and_progression.md` **Slice 1** scope: **non-combat** trio aligned with `skills.md` / gigs hybrid (see commit). - `skills.md`: **Tech** category row aligned with full Tech roster (exploit dev, crypto & identity). - `gigs.md`: sub-gig **Combat gear** → link to `skills.md` **Seams**. - `AGENTS.md`: **Docs review** agent row → `.cursor/rules/docs-review-agent.md`. diff --git a/docs/reviews/2026-04-03-branch-chore-game-design-docs-vs-main.md b/docs/reviews/2026-04-03-branch-chore-game-design-docs-vs-main.md index 59953d2..ce3cc90 100644 --- a/docs/reviews/2026-04-03-branch-chore-game-design-docs-vs-main.md +++ b/docs/reviews/2026-04-03-branch-chore-game-design-docs-vs-main.md @@ -10,7 +10,7 @@ ## Summary -Compared to `main`, this branch adds the **`docs/game-design/`** corpus (`overview`, `progression`, `skills`, `gigs`, `README`, `brainstorm/`), extends **Epic 2** and **E2.M1/E2.M2** to match that vision, introduces **`content/schemas/skill-def.schema.json`** with **`allowedXpSourceKinds`**, replaces prototype skills with three **non-combat** rows, and adds the **docs review** agent plus an earlier coherence review file. Cross-links between game-design and decomposition are generally consistent. One **stale sentence** in **Epic 2 Objective** implied combat fed the same “classless skill” model as gather/craft; that line is **updated** during this review to match **`progression.md`** / **Slice 3**. +Compared to `main`, this branch adds the **`docs/game-design/`** corpus (`overview`, `progression`, `skills`, `gigs`, `README`, `brainstorm/`), extends **Epic 2** and **E2.M1/E2.M2** to match that vision, introduces **`content/schemas/skill-def.schema.json`** with **`allowedXpSourceKinds`**, replaces prototype skills with three **non-combat** rows, and adds the **docs review** agent plus an earlier coherence review file. Cross-links between game-design and decomposition are generally consistent. One **stale sentence** in **Epic 2 Objective** implied combat fed the same **skill-XP** pipeline as gather/craft; that line is **updated** during this review to match **`progression.md`** / **Slice 3**. ## Documentation checked @@ -22,7 +22,7 @@ Compared to `main`, this branch adds the **`docs/game-design/`** corpus (`overvi | `docs/game-design/gigs.md` | New | **Matches** gig XP rules, link to **Seams**, combat vs skill boundary | | `docs/game-design/README.md` | New | **Matches** entry to `overview` / `progression` / brainstorm | | `docs/game-design/brainstorm/*` | New | **Matches** “ideas only”; links to `skills.md` resolve | -| `docs/decomposition/epics/epic_02_classless_progression.md` | Updated | **Matches** after **Objective** paragraph fix (hybrid model explicit); Slice 1/3/DoD align | +| `docs/decomposition/epics/epic_02_skills_and_progression.md` | Updated | **Matches** after **Objective** paragraph fix (hybrid model explicit); Slice 1/3/DoD align | | `docs/decomposition/modules/E2_M1_SkillDefinitionRegistry.md` | Updated | **Matches** schema paths, categories, acceptance criteria | | `docs/decomposition/modules/E2_M2_XpAwardAndLevelEngine.md` | Updated | **Matches** `sourceKind` validation, gig vs skill callers | | `content/schemas/skill-def.schema.json` | Updated | **Matches** game-design categories (`gather`/`process`/`make`/`tech`); no combat `SkillDef` | @@ -33,7 +33,7 @@ Compared to `main`, this branch adds the **`docs/game-design/`** corpus (`overvi | `docs/reviews/2026-03-31-game-design-skills-coherence.md` | New | Prior focused review; still consistent with branch after later edits | | `docs/decomposition/epics/epic_03_crafting_economy.md` | Unchanged | **Spot-check:** gather/craft → skill XP via E2.M2 — **no contradiction** | | `docs/decomposition/modules/client_server_authority.md` | Unchanged | **Nit:** combat path still says “`SkillDef`” in one line — likely **ability/stats** semantics, not non-combat skill catalog; clarify when combat data model is written | -| `neon_sprawl_vision.plan.md` | Unchanged | **Spot-check:** Epic 2 bullets generic — **no direct conflict** with hybrid detail in epics | +| `neon_sprawl_vision.plan.md` | Updated later | Epic 2 / pillars align with **gigs + skills** hybrid (see current plan text) | | `.vscode/launch.json`, `.vscode/tasks.json` | New | **N/A** (editor config, not design docs) | ## Blocking issues @@ -49,7 +49,7 @@ None for **using the branch as design + schema guidance**. ## Nits -- ~~**Epic title vs filename:**~~ **Addressed** — epic H1 and vision plan use **Classless Progression Framework** (matches `epic_02_classless_progression.md`); cross-links use the same name. +- ~~**Epic title vs filename:**~~ **Addressed** — epic file is **`epic_02_skills_and_progression.md`** with H1 **Skills and Progression Framework**; cross-links match. - **`module_dependency_register.md`:** E2.M1 row could list **`allowedXpSourceKinds`** in the contract column when you next touch the register (cosmetic). - **Two review files:** `2026-03-31-…` vs this `2026-04-03-…` — keep both; this one is **branch-wide vs main**, the other is **skills-focused**. @@ -61,8 +61,8 @@ None for **using the branch as design + schema guidance**. ## Follow-up (applied during this review pass) -- `epic_02_classless_progression.md` **Objective**: hybrid **skill** vs **gig** wording + links to `progression.md` and E2.M2. -- `epic_02_classless_progression.md` **E2.M1** module stub: non-combat **`SkillDef`**, categories, **`allowedXpSourceKinds`**, links to E2.M1 module + JSON Schema. +- `epic_02_skills_and_progression.md` **Objective**: hybrid **skill** vs **gig** wording + links to `progression.md` and E2.M2. +- `epic_02_skills_and_progression.md` **E2.M1** module stub: non-combat **`SkillDef`**, categories, **`allowedXpSourceKinds`**, links to E2.M1 module + JSON Schema. - **Content CI:** `.github/workflows/pr-gate.yml` + `scripts/validate_content.py` + `scripts/requirements-content.txt`; CT.M1 / E2.M1 / `content/README` / internal-content-authoring updates. - **Decomposition language CI:** `scripts/check_decomposition_language.py` + PR gate + CT.M1 / docs-review-agent notes. -- **Epic 2 naming:** H1 + `neon_sprawl_vision.plan.md` + module/game-design link text → **Classless Progression Framework**. +- **Epic 2 naming:** Renamed epic doc + **Skills and Progression Framework** (dropped misleading “classless” now that **gigs** are combat roles). diff --git a/neon_sprawl_vision.plan.md b/neon_sprawl_vision.plan.md index 4b56ff8..f11e4d5 100644 --- a/neon_sprawl_vision.plan.md +++ b/neon_sprawl_vision.plan.md @@ -1,6 +1,6 @@ --- name: Neon Sprawl Vision -overview: Create a 50,000-foot planning document for Neon Sprawl, a sci-fi/cyberpunk MMORPG inspired by RuneScape, focused on classless progression and deep crafting, with optional PvP and questing. +overview: Create a 50,000-foot planning document for Neon Sprawl, a sci-fi/cyberpunk MMORPG inspired by RuneScape, focused on hybrid progression (combat **gigs** and open non-combat **skills**) and deep crafting, with optional PvP and questing. isProject: false --- @@ -17,7 +17,7 @@ isProject: false ### Experience Pillars -- **Classless mastery:** Every character can learn and level every skill over time; identity comes from choices, gear, economy role, and mastery paths. +- **Open skill training:** Every character can learn and level every **non-combat** **skill** over time; **combat** identity uses **gigs** (swappable roles). Identity also comes from choices, gear, economy role, and mastery paths. - **Crafting-first economy:** Crafting and gathering are central progression loops, not side systems; player-made goods should matter at every stage. - **Persistent social world:** Shared hubs, guilds/corps, trading, and cooperative activities should be core to retention. - **Meaningful progression:** Long-term goals, visible advancement, and layered progression loops (short, mid, long horizons). @@ -298,11 +298,11 @@ Transform the validated prototype into a scalable production-ready development m - **Scope:** Isometric camera runtime, character movement, interaction framework, input/ability scaffolding, moment-to-moment game feel. - **Success criteria:** Stable 3D isometric control loop feels responsive and readable across supported hardware tiers. -### Epic 2 - Classless Progression Framework +### Epic 2 - Skills and Progression Framework - **Ownership focus:** Systems Design + Gameplay Engineering -- **Scope:** Skill definitions, XP curves, unlock logic, mastery/perk unlocks, progression pacing controls. -- **Success criteria:** Any character can train all skills, and progression remains long-term without dead-end grinds. +- **Scope:** **Non-combat** `SkillDef` catalog, **skill** XP and level curves, unlock logic, mastery/perk unlocks, progression pacing controls. **Combat role** progression (**gigs**) is separate—see Epic 5 and game-design `gigs.md`. +- **Success criteria:** Any character can train all **non-combat** **skills** tracked as `SkillDef`, with long-term **skill** progression and no dead-end grinds; **gig** combat roles remain swappable combat identity. ### Epic 3 - Crafting, Gathering, and Itemization Economy @@ -385,10 +385,10 @@ Module template: - Dependencies: E1.M3, E5.M1. - Stage target: Prototype. -### Epic 2 Modules - Classless Progression Framework +### Epic 2 Modules - Skills and Progression Framework - **E2.M1 SkillDefinitionRegistry** - - Responsibility: Central catalog for skill metadata, category tags, unlock prerequisites. + - Responsibility: Central catalog for **non-combat** `SkillDef` metadata, category tags, unlock prerequisites (and **`allowedXpSourceKinds`** in prototype schema). - Key contracts: `SkillDef`, `SkillCategory`, `UnlockRequirement`. - Dependencies: None. - Stage target: Prototype. @@ -398,7 +398,7 @@ Module template: - Dependencies: E2.M1. - Stage target: Prototype. - **E2.M3 MasteryAndPerkUnlocks** - - Responsibility: Mastery tracks and perk unlock state for non-class build expression. + - Responsibility: Mastery tracks and perk unlock state for **skill** build expression beyond raw levels. - Key contracts: `MasteryTrack`, `PerkUnlockEvent`, `PerkState`. - Dependencies: E2.M2. - Stage target: Pre-production. @@ -644,7 +644,7 @@ flowchart TD ```mermaid flowchart TD - E1[CorePlayerRuntime] --> E2[ClasslessProgression] + E1[CorePlayerRuntime] --> E2[SkillsProgression] E1 --> E5[PvECombatEncounters] E4[WorldTopologyZones] --> E5 E4 --> E6[PvPSecurityZones] @@ -767,7 +767,7 @@ flowchart TD flowchart TD Vision[ProductVision] --> Pillars[ExperiencePillars] Pillars --> Systems[CoreSystems] - Systems --> Progression[ClasslessSkillProgression] + Systems --> Progression[SkillXpAndMastery] Systems --> Crafting[CraftingAndEconomy] Systems --> Questing[QuestAndFactionContent] Systems --> Combat[CombatAndEncounters]