Files

194 lines
7.2 KiB
Markdown

# Magic Factory Demo Tasks
## Task 1: Register tools and third-party assets
**Description:** Add the portable Godot version record, import Kenney Factory Kit 3.0, and preserve provenance so every external file remains auditable and replaceable.
**Acceptance criteria:**
- [x] Godot 4.7.1 can run from a workspace-local tool directory.
- [x] Factory Kit source archive and extracted game-ready models are separated.
- [x] Author, source URL, version, license, and acquisition date are documented.
**Verification:**
- [x] Godot reports version 4.7.1 stable.
- [x] Asset archive contains its original CC0 license.
- [x] No unlicensed third-party file is present.
**Dependencies:** None
**Estimated scope:** Medium
## Task 2: Create a launchable 2.5D world
**Description:** Build the project shell, orthographic camera, lit ground, environment, and a minimal HUD using the imported visual language.
**Acceptance criteria:**
- [x] Project starts directly into a readable isometric-like factory site.
- [x] Camera pans and zooms within bounded limits.
- [x] Resolution changes do not break the HUD.
**Verification:**
- [x] Headless project import completes without script errors.
- [x] Graphical capture confirms camera composition and HUD layout.
**Dependencies:** Task 1
**Estimated scope:** Medium
## Task 3: Add grid construction controls
**Description:** Let the player choose a building type, preview its footprint, place it on the grid, rotate it, and remove it.
**Acceptance criteria:**
- [x] Valid and invalid placement previews are visibly different.
- [x] Occupied cells cannot overlap.
- [x] Rotation and removal update both world data and visuals.
**Verification:**
- [x] Automated grid occupancy and removal checks pass.
- [x] Full player-flow smoke test builds the required routes through the construction API.
**Dependencies:** Task 2
**Estimated scope:** Medium
## Task 4: Run one belt-to-machine production chain
**Description:** Implement a source, straight and corner belts, one processing machine, and a sink so an item visibly becomes another item.
**Acceptance criteria:**
- [x] Items advance on fixed simulation ticks and render smoothly between them.
- [x] Machine consumes the correct input and emits exactly one configured output.
- [x] Backpressure stops the machine without losing or duplicating items.
**Verification:**
- [x] Identical fixed-tick runs produce matching counts and state fingerprints.
- [x] Player-flow test remains correct after build, rejected overlap, removal, and replacement.
**Dependencies:** Task 3
**Estimated scope:** Medium
## Task 5: Add mana supply and pipe connectivity
**Description:** Add mana sources, pipes, and capacity-limited consumers; network topology is recalculated only when construction changes it.
**Acceptance criteria:**
- [x] Connected powered machines run and disconnected machines stop.
- [x] Shared demand above source capacity produces deterministic allocation.
- [x] Reconnecting a pipe wakes affected machines immediately.
**Verification:**
- [x] Connectivity and deterministic allocation tests pass.
- [x] Disconnect/reconnect regression preserves unfinished recipe time exactly.
**Dependencies:** Task 4
**Estimated scope:** Medium
## Task 6: Add configurable bridge arms
**Description:** Bind an overhead arm to a machine and let the player select explicit pickup and drop cells across multiple belt lanes.
**Acceptance criteria:**
- [x] Endpoint preview clearly shows valid and invalid target cells.
- [x] The arm transfers through the owning machine without an independent polling loop.
- [x] Removing an endpoint leaves the machine safely waiting for a valid belt.
**Verification:**
- [x] Transfer count remains deterministic under input and output blockage.
- [x] Full player-flow test binds explicit pickup and drop cells across a broken belt route.
**Dependencies:** Task 4
**Estimated scope:** Medium
## Task 7: Add status inspection and objective guidance
**Description:** Add a selection panel, machine stop reasons, throughput counters, construction hints, and a short objective sequence.
**Acceptance criteria:**
- [x] Selected machines expose recipe, progress, inventory, mana, and stop reason.
- [x] Objectives lead from first belt placement to first processed item.
- [x] UI never becomes authoritative simulation state.
**Verification:**
- [x] Every machine state maps to a readable UI message.
- [x] Fresh-start walkthrough can be completed without debug controls.
**Dependencies:** Tasks 5 and 6
**Estimated scope:** Medium
## Task 8: Add a second recipe and demo completion state
**Description:** Extend the chain to raw crystal, refined crystal, and charged crystal, then detect sustained final output as completion.
**Acceptance criteria:**
- [x] Two machine stages can operate continuously with belt backpressure.
- [x] Increasing a real bottleneck increases measured final throughput.
- [x] Completion is based on sustained production, not one debug-spawned item.
**Verification:**
- [x] End-to-end count conservation test passes.
- [x] Fresh-game manual completion path succeeds.
**Dependencies:** Task 7
**Estimated scope:** Medium
## Task 9: Add demo presentation and snapshot saving
**Description:** Add title/pause screens, coherent materials and mana effects, audio hooks, and one-slot world snapshot persistence.
**Acceptance criteria:**
- [x] New game, continue, pause, restart, and quit flows work.
- [x] Snapshot restores construction, transport, production, and objectives.
- [x] Industrial assets read as magical machinery through a unified material pass.
**Verification:**
- [x] Save-then-run and run-from-save produce matching state hashes.
- [ ] Manual UI flow works at 1080p and a smaller window.
**Dependencies:** Task 8
**Estimated scope:** Medium
## Task 10: Add deterministic stress generation and metrics
**Description:** Add a developer-only scene that generates representative active, blocked, and offscreen factories and reports separate simulation/render costs.
**Acceptance criteria:**
- [ ] Presets create 1k visible, 10k active, and 100k blocked entity workloads.
- [ ] Metrics show tick time, frame time, active/sleeping machines, and transported items.
- [ ] Blocked-machine per-tick cost does not grow linearly with their count.
**Verification:**
- [ ] Fixed presets produce repeatable state hashes and entity counts.
- [ ] A saved benchmark report identifies the first measured bottleneck.
**Dependencies:** Task 8
**Estimated scope:** Medium
## Task 11: Package a Windows demo build
**Description:** Configure export settings, build the playable Windows package, and verify it outside the editor.
**Acceptance criteria:**
- [ ] Export contains required assets and third-party notices.
- [ ] Demo starts without the editor or workspace-local source tree.
- [ ] Release README explains controls and current scope.
**Verification:**
- [ ] Clean-path smoke test reaches the first playable objective.
- [ ] Packaged file list contains no source archives or development-only tools.
**Dependencies:** Tasks 9 and 10
**Estimated scope:** Medium
## Post-demo progression work
The 8/24-hour full technology progression is intentionally tracked separately in `tasks/tech-tree-plan-v0.2.md` and `tasks/tech-tree-todo-v0.2.md`. It does not add hidden completion requirements to the current demo tasks.