From c7a168f4a9df848751f8604fe2438513ba4d88f4 Mon Sep 17 00:00:00 2001 From: Malte Langkabel Date: Fri, 3 Jul 2026 13:54:24 +0200 Subject: [PATCH] Record production tree v2 decisions and resource deposit rules MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit progression_design.md: rewrite the resource phases around the four decided inputs (two mined everywhere, one deposit-gated mid resource, one scrap-only late input), add the Resource deposits rule set (freedom first / geography later, deposits only in expansions, patch area as throughput cap, deterministic content, binary mining), note the dual gating of the mid resource, and add the deposit-layer action item. content_design.md: mark the first-pass tree as superseded and record the v2 decisions — iron/copper/quartz/voidsteel with their fiction (M-type asteroid, quartz geodes, battle-forged voidsteel), titanium dropped with its gating role moved to electronics and possibly a quality-steel step, the material palette fingerprints, and the laser-to-railgun rename with lasers reserved as a future weapon type. Update the balancing target phase boundaries accordingly. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01DyCu8vwChKMbLJQ3xosYEN --- docs/content_design.md | 64 ++++++++++++++++++++++++++++++++++++-- docs/progression_design.md | 63 +++++++++++++++++++++++++++++++------ 2 files changed, 114 insertions(+), 13 deletions(-) diff --git a/docs/content_design.md b/docs/content_design.md index 4d4d8e1..ee94be1 100644 --- a/docs/content_design.md +++ b/docs/content_design.md @@ -129,7 +129,12 @@ Maximum simultaneous (disjoint) placements: m guns — cruiser 2, battlecruiser 3, battleship 4; l guns — battleship 1, dreadnought 3; drone hangar — carrier 1. -## Production tree +## Production tree (first pass — superseded) + +**Superseded (July 2026):** this first-pass tree predates the rules in +`docs/progression_design.md` and will be replaced. The decisions for the +redesign are recorded in "Production tree v2 — decisions" below; the text +of this section is kept for reference until the new tree lands. Design principle: each game phase adds exactly one new base input chain, so factory complexity ramps alongside ship size. @@ -171,6 +176,59 @@ It verifies every consumed item has a producer, every item has a visuals entry, flags orphaned items, and prints which items are reprocessing-only (currently exactly advanced_alloy). +## Production tree v2 — decisions (July 2026) + +The old tree is discarded; the new one is designed against the rules in +`docs/progression_design.md` (ratio curve, cost ladder, cost archetypes, +refactorability). Decisions fixed so far: + +### Base inputs (4) and fiction + +- **iron_ore, copper_ore** — from the start, minable on every asteroid + tile. Fiction: the asteroid is an M-type (metal) body — its bulk rock + *is* ore, which is why the shipyard operation was built here at all. +- **quartz** — mid-game, minable only on geode deposit patches in + expansion territory (see the Resource deposits rules in + `progression_design.md`). Fiction: ordinary silicate dust is everywhere + and worthless; chips and optics need rare, pocket-bound optical-grade + crystal. +- **voidsteel** — late-game, obtained only by reprocessing scrap. + Fiction: battle-forged — formed when weapon plasma anneals hull metal + in the violence of ship destruction. Any wreck yields it, including the + player's own; no foundry can replicate it. +- **titanium is dropped.** Its hull-gating role moves to quartz-era + control systems ("you can smelt all the steel you want, but you cannot + steer a battlecruiser without electronics") and possibly a *quality* + steel step — e.g. a long-running hardened-steel recipe (time-heavy + archetype). Open question for the tree draft: quality step vs. + electronics-only gating; explicitly **not** sheer steel quantity alone. + +### Material palette (fingerprints per family) + +- **iron/steel** — structure. +- **copper** — conduction and heat: wiring, coils, heat sinks. +- **silicon family** (all derived from quartz): silicon (logic, + sensors), glass/optics (lenses, focusing crystals), ceramics (heat + shielding, insulators). Carries the non-metal variety without extra + base inputs. +- **voidsteel** — capital-tier structure and exotics. +- Deliberately skipped: carbon (mostly redundant with copper/ceramics), + plastics (drags in Factorio-style chemical chains; ceramics read more + sci-fi anyway), volatiles/ice (materials are build costs only — no + consumption mechanic to justify fuel). + +### Weapons + +- All current lasers are renamed to **railguns** (`laser_cannon_s/m/l` → + `railgun_s/m/l`); footprints and the gating matrix are unchanged. + Implementation stays as-is (instant damage application, no projectile, + no ammunition) — the beam visual reads as a tracer round. Materials: + iron slugs, copper coils, steel rails — the starting-metal fingerprint. +- **Lasers are reserved for later** as a genuinely distinct weapon type + (e.g. once projectile/ammunition mechanics exist for other families), + arriving with quartz optics. More weapon types are planned; railguns + are simply the baseline tech that ships with v1. + ## Balancing targets (first pass, July 2026) The six root numbers for the balancing pass. Every derived value (threat @@ -189,8 +247,8 @@ targets deliberately ignore that; playtesting will show real run lengths. 1. **Run length** — a winning run takes up to 2 hours of game time: win around boss cycle 20–24. Losing runs end earlier. 2. **Phase boundaries** — early = cycles 1–5 (iron/copper, small hulls), - mid = cycles 6–14 (titanium, medium hulls), late = cycles 15+ - (advanced alloy, capitals). Push cadence roughly one station set per + mid = cycles 6–14 (quartz, medium hulls), late = cycles 15+ + (voidsteel, capitals). Push cadence roughly one station set per cycle from mid onward. This fixes the `unlock_at_station_level` ladder and, with the artifact win count, the `artifact_chance_formula` pacing. diff --git a/docs/progression_design.md b/docs/progression_design.md index dc68f65..6e9fb17 100644 --- a/docs/progression_design.md +++ b/docs/progression_design.md @@ -27,20 +27,55 @@ adapts later (see Refactorability). ## Resource phases - A run has exactly **four base inputs**: - 1. Two mined ores available from the start. - 2. A third mined ore unlocked mid-game (slower to mine than the starting - ores). + 1. Two mined resources available from the start, minable on **every** + asteroid tile. + 2. A third mined resource unlocked mid-game, minable **only on deposit + patches** found in expansion territory (see Resource deposits). 3. A fourth input unlocked late-game, obtainable **only** from reprocessing salvaged scrap. - The fourth input is the core loop hook: capital ship production requires fighting (salvaging and reprocessing), not just mining. +- Every gating has a fictional reason (concrete fiction in + `content_design.md`): the asteroid is a metal-rich body, so its bulk + rock is minable anywhere; the mid resource sits in rare pockets; the + late input is battle-forged — created only in the violence of ship + destruction, which is why any wreck (including the player's own) + yields it and no foundry can make it. +- The mid resource is **dual-gated**: schematics (knowledge, via drops) + and territory (deposits, via expansions). Tuning must guarantee the + deposit-bearing expansion is comfortably affordable by the time the + first mid-tier schematics drop, or those drops are dead picks. - There is no direct "resource unlock" mechanism. Miner recipes unlock **implicitly** (REQ-LOCK-IMPLICIT) when some unlocked schematic's material - chain reaches that ore. Resource pacing is therefore controlled entirely + chain reaches that resource. Resource pacing is therefore controlled through the `unlock_at_station_level` values of ships, modules, and assembler recipe schematics — and the content must guarantee that the chains actually connect (a mid-game schematic must require an item whose - chain reaches the third ore, or the ore never unlocks). + chain reaches the mid resource, or it never unlocks). + +### Resource deposits + +- **Rule: freedom first, geography later.** The starting resources are + minable everywhere, so the player has full layout freedom while + learning. Later mined resources are bound to deposit patches — fixed + geography as a layout puzzle, introduced once the player is competent. +- **Rule: deposits exist only in expansion territory.** Expansions buy + space *and* access to resource tiers — the second leg of the growth + curve (see Building block economy). +- **Rule: patch area is the throughput cap.** Deposits never deplete but + are finite in area; the number of deposit tiles caps how many miners + the chain supports. Buying deeper expansions raises the throughput + ceiling of high-tier chains. +- **Rule: no empty expansions.** Deposit content per expansion is + deterministic and config-defined; only the placement within the new + columns is randomized. Buying an expansion never rolls "nothing". +- **Rule: mining is binary.** A miner whose footprint overlaps at least + one deposit tile of a resource can select that resource's recipe; no + partial-coverage rate scaling. +- Deposits arrive at the periphery (expansions add columns on the left), + so each new chain starts in fresh space — supporting the + refactorability property — and high-tier chains have the longest belt + runs to the shipyards, escalating the logistics puzzle with tier. ## Production tree rules @@ -48,11 +83,11 @@ adapts later (see Refactorability). - **Each phase transition adds exactly one new base input chain.** A base input is a bottom-level resource entering the factory from outside — a - mined ore or the scrap-only input. The early game starts with two ores - as the baseline; the transition to mid adds one (the third ore), the - transition to late adds one (the scrap-only input). No transition ever - introduces more than one unfamiliar bottom-level chain, so the factory - grows in one direction at a time. + mined resource or the scrap-only input. The early game starts with two + ores as the baseline; the transition to mid adds one (the deposit-bound + mid resource), the transition to late adds one (the scrap-only input). + No transition ever introduces more than one unfamiliar bottom-level + chain, so the factory grows in one direction at a time. - **Intermediates are generic shared parts.** Keep the item count low — modules and hulls of a tier draw from a shared pool of that tier's and lower tiers' intermediates rather than each having bespoke inputs. @@ -330,3 +365,11 @@ in `requirements.md` and the git history). Still open: number of expansions already purchased (x = expansions bought so far), so expansion costs can escalate per the block economy rules. Update REQ-EXP-COST and wherever the UI displays the expansion cost. +5. **Resource deposits.** Add a terrain deposit layer per the Resource + deposits rules: deposit patches generated in expansion columns + (deterministic content per expansion, randomized placement within the + new columns), deposit rendering, and a miner condition (a resource + recipe is selectable only if the miner's footprint overlaps at least + one matching deposit tile). Touches REQ-BLD-MINER ("every asteroid + tile is equivalent" no longer holds), REQ-GW-ASTEROID-EXPAND / + REQ-EXP-*, `world.toml`, and `visuals.toml`.