Files
magic-factorio/tasks/todo.md
T

7.2 KiB

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:

  • Godot 4.7.1 can run from a workspace-local tool directory.
  • Factory Kit source archive and extracted game-ready models are separated.
  • Author, source URL, version, license, and acquisition date are documented.

Verification:

  • Godot reports version 4.7.1 stable.
  • Asset archive contains its original CC0 license.
  • 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:

  • Project starts directly into a readable isometric-like factory site.
  • Camera pans and zooms within bounded limits.
  • Resolution changes do not break the HUD.

Verification:

  • Headless project import completes without script errors.
  • 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:

  • Valid and invalid placement previews are visibly different.
  • Occupied cells cannot overlap.
  • Rotation and removal update both world data and visuals.

Verification:

  • Automated grid occupancy and removal checks pass.
  • 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:

  • Items advance on fixed simulation ticks and render smoothly between them.
  • Machine consumes the correct input and emits exactly one configured output.
  • Backpressure stops the machine without losing or duplicating items.

Verification:

  • Identical fixed-tick runs produce matching counts and state fingerprints.
  • 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:

  • Connected powered machines run and disconnected machines stop.
  • Shared demand above source capacity produces deterministic allocation.
  • Reconnecting a pipe wakes affected machines immediately.

Verification:

  • Connectivity and deterministic allocation tests pass.
  • 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:

  • Endpoint preview clearly shows valid and invalid target cells.
  • The arm transfers through the owning machine without an independent polling loop.
  • Removing an endpoint leaves the machine safely waiting for a valid belt.

Verification:

  • Transfer count remains deterministic under input and output blockage.
  • 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:

  • Selected machines expose recipe, progress, inventory, mana, and stop reason.
  • Objectives lead from first belt placement to first processed item.
  • UI never becomes authoritative simulation state.

Verification:

  • Every machine state maps to a readable UI message.
  • 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:

  • Two machine stages can operate continuously with belt backpressure.
  • Increasing a real bottleneck increases measured final throughput.
  • Completion is based on sustained production, not one debug-spawned item.

Verification:

  • End-to-end count conservation test passes.
  • 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:

  • New game, continue, pause, restart, and quit flows work.
  • Snapshot restores construction, transport, production, and objectives.
  • Industrial assets read as magical machinery through a unified material pass.

Verification:

  • 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.