Skip to content

[4/11] feat(stage): platforms in Jenny's arena - #215

Merged
arudaev merged 4 commits into
playtest/3-chickenfrom
playtest/4-arena
Oct 25, 2026
Merged

arudaev merged 4 commits into
playtest/3-chickenfrom
playtest/4-arena

Conversation

@arudaev

@arudaev arudaev commented Oct 25, 2026 •

Copy link
Copy Markdown
Member

Stack: 4 of 11 (playtest): base #214. Merge bottom-up, only on Alexander's word.

What and why

Playtest J6 (Vatsal, A15): Jenny's arena is "awful to fight in" with limited movement, so "add platforms in the middle". There are now two girder platforms hung on chains from the girder over her arena:

the arena

  • Redrawn after Alexander's review. The first take was a strip cut from the maze plate's front face. It read flat next to the game's volumetric pixel art, and it floated with no reason in the world (no glitch, no structure). Now there are two boards in the game's look:
    • arena-platform: a riveted box girder with a lit top flange and a grated underside, drawn from the coffee-machine sheet's look with the maze's own girder as the material reference;
    • arena-chain: a rusted chain.
  • scripts/arena_platforms.py composes them into the overlay plate. Each platform hangs on two chains that tile the chain's measured link period up to the underside of the girder above, measured from the traversal plate. The same numbers write the one-way lines.
  • Heights: the tops are 84–89 px over the walk line, reachable with a full jump (96 px). The 25 px girders end at y 500, so Jenny's 56 px body drives under them: stand on one and let her charge pass.
  • An overlay layer: 05-arena in the anomaly state, flagged "overlay" and "optional". The game draws it, but it stays out of the masters (creek_layers.py pins them) and out of --verify.
  • scripts/backdrop_check.py: puts any PNG over the debug purple and over white, and counts key specks, soft pixels and enclosed holes. It caught 30 pinholes in the first take's beams.
  • J7 (a visible wall) was done in feat: chair reach, low sweep, dodge-dash, target assist, laptop keys #186; the sprite walls are [6/8] feat(art): Jenny's arena walls as a sprite #217.

Issue

Refs #72 (playtest checklist J6 and J7 ✅)

Verification

  • npm test: 332 passed (arena.test.ts: two platforms, reachable from the walk line, clear of her body). pytest scripts: 115 passed. creek_layers.py verified; export_stage.py --verify exact; collision check 0 problems; check_docs clean.
  • backdrop_check.py on the plate: no key specks, no soft pixels. Its 3012 "holes" are the insides of the chain links (the sheet over purple and white shows nothing else).
  • In the game (dev server, debug mode): the arena with 05-arena shown alone and with all layers, over purple and over white, while the fight runs. The chains reach the girder and nothing shows through.
  • Not done: a full fight using the platforms (the hidden pane runs at about 3 fps); Alexander's review of the two boards (🟨).

@vercel

vercel Bot commented Oct 25, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
wincs Ready Ready Preview Oct 25, 2026 11:58am UTC

Request Review

@github-actions github-actions Bot added area:art Sprite sheets, stage plates, direction pack area:enemies Autonomous robots and Jenny area:stage Chunks, layers, collision, clean/anomaly states area:pipeline Rerunnable art and export scripts area:docs Design docs, README, contributor guides labels Oct 25, 2026
@arudaev arudaev changed the title [4/N] feat(stage): platforms in Jenny's arena [4/8] feat(stage): platforms in Jenny's arena Oct 25, 2026
@arudaev arudaev changed the title [4/8] feat(stage): platforms in Jenny's arena [4/9] feat(stage): platforms in Jenny's arena Oct 25, 2026
@arudaev
arudaev added this pull request to stack #230 October 25, 2026 10:14
@arudaev arudaev changed the title [4/9] feat(stage): platforms in Jenny's arena [4/10] feat(stage): platforms in Jenny's arena Oct 25, 2026
Playtest J6: the arena was awful to fight in. Two beams of the maze's own
girder over her floor, as an overlay layer of the anomaly state
(export.json "overlay": drawn in the game, left out of the masters and
--verify) with two one-way lines: reachable with a full jump, high enough
that she drives under them. J7's visible barrier was already done in #186.

Refs #72
…er purple and white

The beams were cut from the maze's soft plate and kept its 30 pinholes and
soft pixels, which show on any backdrop. They are solid now (holes filled
from their neighbours). backdrop_check.py puts any PNG over the debug
purple and over white and counts key specks, soft pixels and enclosed
holes, so every new sprite and layer is checked the same way.

Refs #72
Alexander: the beam cut from the maze plate read flat next to the game's
volumetric pixel art, and floated with no reason in the world. Two boards
in the game's look (arena-platform: a riveted box girder with a grated
underside; arena-chain), composed by scripts/arena_platforms.py: each
platform hangs on two chains measured up to the underside of the girder
over the arena, and the same numbers write the one-way lines. Checked
over purple and white.

Refs #72
The arena-platform board named tmp/girder-ref.png as an input; tmp/ is not
in Git, so check_docs failed in CI. The crop of the maze girder is
committed next to the arena plate.

Refs #72
@arudaev arudaev changed the title [4/10] feat(stage): platforms in Jenny's arena [4/11] feat(stage): platforms in Jenny's arena Oct 25, 2026
@arudaev
arudaev merged commit c862498 into main Oct 25, 2026
10 of 12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area:art Sprite sheets, stage plates, direction pack area:docs Design docs, README, contributor guides area:enemies Autonomous robots and Jenny area:pipeline Rerunnable art and export scripts area:stage Chunks, layers, collision, clean/anomaly states

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant