Skip to content

[M0-S14] Export stages for the game: stage.json manifest #109

Closed

Description

@arudaev

Problem

The stage loader (#24) reads the docs/13 stage manifest game/public/assets/stages/<region>/stage.json, but nothing writes it yet. The layer plates and the collision files live under art/stages/, which the game can't fetch at runtime.

Acceptance criteria

  • python scripts/export_stage.py [regions] writes game/public/assets/stages/<region>/stage.json: chunk ids with grid x/y, and per chunk and state the layer files in draw order with their z and scroll factor, plus the collision file per state
  • It copies the layer plates and collision files next to the manifest. Shared plates (Rusty Creek's right chunk reuses the left one's) are copied once.
  • The output is generated, not committed (no 18 MB of byte-identical copies). The standard library is enough, so the game's dev and build scripts can run it.
  • --verify rebuilds every state from the exported files, in manifest order, and matches the region's composed art pixel for pixel
  • Rusty Creek (3 chunks × clean/anomaly) and the Hidden Garden (1 chunk) export

Notes and dependencies

Contract: 13 – hand-over contracts. Unblocks #24 and #34. Owner: Alexander (lane A).

Verification

--verify passes for both regions; unit tests in scripts/test_export_stage.py.

Activity

  1. self-assigned this
    on Oct 23, 2026
  2. added
    type:taskWork players don't see: tooling, pipeline, collision data, docs; one PR
    area:stageChunks, layers, collision, clean/anomaly states
    area:pipelineRerunnable art and export scripts
    on Oct 23, 2026
  3. arudaev commented on Oct 23, 2026

    @arudaev
    MemberAuthor

    Done in #110. That PR was merged into its base branch chore/85-hidden-garden-collision (the stacked merge took only that layer), and reached main with #106 in e0e6ea8. scripts/export_stage.py and both regions' export.json are on main, and the art CI runs export_stage.py --verify.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:pipelineRerunnable art and export scriptsarea:stageChunks, layers, collision, clean/anomaly statestype:taskWork players don't see: tooling, pipeline, collision data, docs; one PR

Type

No type

Projects

No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions