301 lines
10 KiB
Markdown
301 lines
10 KiB
Markdown
# Full Technology Progression Tasks (superseded)
|
||
|
||
> Superseded by `tasks/tech-tree-todo-v0.2.md`. Retained only as a record of the rejected factory-reskin direction.
|
||
|
||
## TT1: Define the progression data contract
|
||
|
||
**Description:** Create stable IDs and typed records for technologies, research costs, prerequisites, recipes, buildings, unlocks, and postgame formulas. Import the v0.1 catalog without putting unlock conditions in UI code.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] Every row in `docs/tech-tree-nodes-v0.1.csv` maps to one runtime record.
|
||
- [ ] Display names can change without changing save-compatible IDs.
|
||
- [ ] Mainline, comfort, optional, and postgame roles are explicit data.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Headless catalog-load test reports 76 records.
|
||
- [ ] Unknown pack, technology, recipe, or unlock IDs fail with an actionable message.
|
||
- [ ] Existing simulation smoke tests still pass.
|
||
|
||
**Dependencies:** None
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/data/technology_definition.gd`
|
||
- `src/data/technology_catalog.gd`
|
||
- `src/data/technology_catalog.tres`
|
||
- `tests/technology_catalog_smoke.gd`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT2: Validate the graph and simulate route costs
|
||
|
||
**Description:** Add tooling that validates the dependency DAG and computes a selected route's tablet totals, lab-seconds, earliest unlocks, and final heart-furnace materials.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] Validator rejects duplicates, missing prerequisites, cycles, and any M node that transitively depends on O.
|
||
- [ ] Mainline totals equal Q 11,220; A 10,920; R 9,990; V 8,400; G 5,300.
|
||
- [ ] Simulator can compare mainline, recommended-normal, and custom routes.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Fixture tests cover each invalid-graph class.
|
||
- [ ] Golden output records per-era cost and theoretical lab bottlenecks.
|
||
- [ ] CI exits nonzero if catalog validation fails.
|
||
|
||
**Dependencies:** TT1
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/data/technology_graph.gd`
|
||
- `tools/progression_calculator.gd`
|
||
- `tests/technology_graph_smoke.gd`
|
||
- `tests/fixtures/technology_graphs.tres`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT3: Implement the fixed-tick research runtime
|
||
|
||
**Description:** Add research queues, lab input consumption, partial progress, completion events, and unlock commands while preserving the simulation's event-driven scheduling.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] Labs consume one exact tablet set per completed unit and never duplicate or lose items.
|
||
- [ ] Loss of an input pauses exact progress and input restoration wakes the lab.
|
||
- [ ] Completing a technology emits one idempotent unlock event.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Fixed-seed runs produce identical research fingerprints.
|
||
- [ ] Disconnect/reconnect tests preserve partial unit progress exactly.
|
||
- [ ] Parallel labs complete the same technology without over-consuming the final unit.
|
||
|
||
**Dependencies:** TT1, TT2
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/simulation/research_system.gd`
|
||
- `src/simulation/world_simulation.gd`
|
||
- `tests/research_simulation_smoke.gd`
|
||
- `tests/simulation_smoke.gd`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT4: Add research UI and persistence
|
||
|
||
**Description:** Let players inspect the graph, understand missing prerequisites and materials, manage the queue, and resume exact progress after save/load.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] Locked, available, queued, active, and complete states are visually distinct.
|
||
- [ ] Selecting a node shows prerequisites, exact cost, unlocks, and current bottleneck.
|
||
- [ ] Save/load preserves completion, queue order, invested tablets, timer, and achievement eligibility.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] UI only submits research commands and never grants unlocks directly.
|
||
- [ ] Save-then-run and uninterrupted-run fingerprints match.
|
||
- [ ] Keyboard/mouse navigation works at 1280×720 and 1920×1080.
|
||
|
||
**Dependencies:** TT3
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/ui/research_screen.gd`
|
||
- `scenes/ui/research_screen.tscn`
|
||
- `src/persistence/world_snapshot.gd`
|
||
- `tests/research_save_smoke.gd`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT5: Deliver the T0/T1 vertical slice
|
||
|
||
**Description:** Build the campaign opening from repair milestones through automated mining, refinement, bridge arms, and continuous cyan-tablet production.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] A fresh player can reach C11 using only produced resources and objective guidance.
|
||
- [ ] Existing demo entities map to progression IDs without changing their deterministic behavior.
|
||
- [ ] Cyan production at 15/min is achievable with a clearly readable small factory.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Fresh-start headless scenario completes all six milestones and C11.
|
||
- [ ] Manual walkthrough needs no developer controls or hidden starter stock.
|
||
- [ ] Regression suite for belts, mana, and bridge endpoints passes.
|
||
|
||
**Dependencies:** TT4
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/data/era_t0_t1_content.tres`
|
||
- `src/simulation/objective_system.gd`
|
||
- `src/main.gd`
|
||
- `tests/era_t1_flow_smoke.gd`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT6: Deliver the T2 mana-logistics slice
|
||
|
||
**Description:** Add second-tier belts and bridge arms, mana stabilization, spirit-sand glasswork, ether-fluid handling, and the crimson-tablet gate.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] The first fluid recipe requires pumps and storage but has no unrecoverable deadlock.
|
||
- [ ] Disconnecting mana or fluid produces a precise stop reason and resumes safely.
|
||
- [ ] The reference build sustains 15 crimson tablets per minute.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Automated flow covers A01 through A12 from a T1-complete save.
|
||
- [ ] Fluid and mana conservation tests pass under backpressure.
|
||
- [ ] Bridge II range and filters match catalog data.
|
||
|
||
**Dependencies:** TT5
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/data/era_t2_content.tres`
|
||
- `src/simulation/fluid_network.gd`
|
||
- `src/simulation/world_simulation.gd`
|
||
- `tests/era_t2_flow_smoke.gd`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT7: Deliver the T3 alchemy slice
|
||
|
||
**Description:** Add elemental separation, alchemical synthesis, thermal mana, precision construction, leyline survey, and violet-tablet production.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] R13 can be reached without any C or O technology.
|
||
- [ ] Byproducts back up visibly and can be routed or voided through an explicit recipe.
|
||
- [ ] The reference build sustains 20 violet tablets per minute for normal pacing.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Automated flow covers the mandatory T3 route from a T2-complete save.
|
||
- [ ] Conservation and deterministic allocation tests include solid, fluid, and mana networks.
|
||
- [ ] Optional construction golems do not appear in the mandatory dependency closure.
|
||
|
||
**Dependencies:** TT6
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/data/era_t3_content.tres`
|
||
- `src/simulation/recipe_system.gd`
|
||
- `src/simulation/resource_survey.gd`
|
||
- `tests/era_t3_flow_smoke.gd`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT8: Deliver the T4 cross-island slice
|
||
|
||
**Description:** Add bounded floating-island expansion, bulk shipping, deep leyline mining, phase metallurgy, spirit processors, and emerald-tablet production.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] A mandatory late resource is obtained from another island and moved by an automated route.
|
||
- [ ] Required-resource distances stay inside the achievement-safe generation envelope.
|
||
- [ ] The reference build sustains 20 emerald tablets per minute for normal pacing.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Fixed benchmark seeds expose all critical resources in allowed distance bands.
|
||
- [ ] Cross-island transport preserves item counts across save/load.
|
||
- [ ] Automated flow reaches V13 without comfort or warding nodes.
|
||
|
||
**Dependencies:** TT7
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/data/era_t4_content.tres`
|
||
- `src/simulation/island_logistics.gd`
|
||
- `src/world/resource_topology.gd`
|
||
- `tests/era_t4_flow_smoke.gd`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT9: Deliver T5 and the heart-furnace victory loop
|
||
|
||
**Description:** Add source extraction, perpetual mana, warp logistics, heart components, furnace assembly, 300-second ignition, authoritative victory timing, and both limit achievements.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] G13 unlocks the ignition process but does not itself win the game.
|
||
- [ ] The furnace consumes exact structure and component totals and pauses safely on mana loss.
|
||
- [ ] Completion at 8 hours grants both achievements; completion after 8 but by 24 grants only the 24-hour achievement.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Accelerated deterministic test runs the entire final sequence without debug item injection.
|
||
- [ ] Boundary tests cover 07:59:59, 08:00:00, 23:59:59, and 24:00:00.
|
||
- [ ] Save/load during component assembly and ignition preserves exact progress and clock state.
|
||
|
||
**Dependencies:** TT8
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/data/era_t5_content.tres`
|
||
- `src/simulation/victory_system.gd`
|
||
- `src/simulation/achievement_clock.gd`
|
||
- `tests/victory_flow_smoke.gd`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT10: Add optional and postgame branches
|
||
|
||
**Description:** Implement comfort automation, modules, construction/logistics golems, warding, sky tablets, and seven repeatable technology lines without altering the mainline closure.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] Every C technology has a measurable convenience or payback claim.
|
||
- [ ] Standard campaign can finish with every O technology locked.
|
||
- [ ] Repeatable costs follow catalog formulas and cannot overflow save or UI values.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Dependency validator still reports no M-to-O path.
|
||
- [ ] Mainline route totals remain unchanged after optional content loads.
|
||
- [ ] Repeatable levels 1, 10, and 50 calculate deterministically.
|
||
|
||
**Dependencies:** TT9
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/data/optional_technology_content.tres`
|
||
- `src/data/postgame_technology_content.tres`
|
||
- `src/simulation/research_system.gd`
|
||
- `tests/postgame_research_smoke.gd`
|
||
|
||
**Estimated scope:** Medium
|
||
|
||
## TT11: Prove and tune 8/24-hour pacing
|
||
|
||
**Description:** Instrument progression timestamps and bottlenecks, create reference saves/routes, run structured expert and normal playtests, then tune against percentile targets.
|
||
|
||
**Acceptance criteria:**
|
||
|
||
- [ ] Telemetry records every metric listed in the design without collecting personal data.
|
||
- [ ] Expert P50/P90 and normal P50/P75 meet the agreed limits on standard maps.
|
||
- [ ] Each tuning change names the observed bottleneck and preserves route identity.
|
||
|
||
**Verification:**
|
||
|
||
- [ ] Benchmark report compares at least three expert runs and eight first-play runs.
|
||
- [ ] Automated route simulation agrees with catalog costs and benchmark save inventories.
|
||
- [ ] Final release checklist contains no unexplained wait above five minutes.
|
||
|
||
**Dependencies:** TT9, TT10
|
||
|
||
**Files likely touched:**
|
||
|
||
- `src/telemetry/progression_metrics.gd`
|
||
- `tools/progression_report.gd`
|
||
- `tests/progression_benchmark_smoke.gd`
|
||
- `artifacts/progression-benchmark.md`
|
||
|
||
**Estimated scope:** Medium
|