High on an alpine plateau, a pink salt lick crowns the summit — and every bighorn ram on the mountain wants it. Hold your ground, wind up, and RAM: clashes trade real momentum, losers stagger, and the bluff has edges. A complete top-down knockback arena authored end-to-end by AI agents in Phaser 3, built feel-first: the charge curve, the clash physics and the camera's response to impact were all tuned and measured on gray shapes before a single sprite existed.
Arrows / WASD to move · hold Space, release to RAM · touch joystick + RAM button on phones · ~8 MB · M sound · P pause
The piece was concepted first — an aerial plateau arena with a worn dirt ring, a low-poly bighorn hero, a props sheet and a head-on clash action board set the palette: saturated meadow greens, granite gray, one pink crystal. Every named element in those sheets was authored as a real asset, and every audit round compared the build against them. The rival rams wear a russet coat re-rendered from a second authored material — never an engine tint.


The whole game ran and was beaten as gray shapes before any art existed. This cycle's research: momentum-exchange clashes with mass and restitution, closing-speed-tiered hit-stop, and a directional camera kick — the camera is displaced along the impact normal and spring-returned, replacing the random shake of side-scrollers with a signal that carries the hit's direction. Every constant is recorded in FEEL_NOTES.md with the reason it holds its value and what the rejected values measured. An automated player beats every build end to end on each audit round.

The ram is a voxel-fused Blender build — six audited rounds against its concept with render-sampled palette checks — rigged as a true quadruped and driven by retargeted CMU motion capture. New ground this cycle: a human run clip retargeted onto four legs by mapping limbs only at damped influence (the horizontal spine stays authored), so the clip's natural arm-leg anti-phase lands as a diagonal-pair trot, with hand-keyed lateral spine sway — the quadruped motion an overhead camera actually sees. Salt lick, boulders, tufts, signpost and crown are kit-built Blender renders at one shared pixel scale; the plateau itself is a Blender ortho bake whose cliff edge is the physics rim. Audio is the platform's sampled-instrument engine: an accordion-and-fiddle alpine round, wood-crack and taiko clash tiers, a glockenspiel crown ladder, procedural mountain wind underneath.
The piece ships its own benchmark harness (Playwright, canvas renderer, raw
performance.now() frame deltas — this lab's audit host has no GPU, and headless frame
throttling plus engine delta smoothing otherwise fake a clean 60). Numbers below are from the
quietest observed windows on that shared host; sim-space distances are load-robust.
| Metric | Measured | Conditions |
|---|---|---|
| Input → windup / release → charge | 10.6–29.5 ms (≤2 frames) | DOM key timestamp → state change applied |
| Charge power curve | feint <110 ms · 250 ms → 581 px/s / 354 px · 650 ms → 692 px/s / 468 px | hold-and-release trials, sim-space |
| Clash ladder (closing → knockback / stagger / hit-stop) | 214 → 9 px / 319 ms / 14 ms · 535 → 41 px / 353 ms / 51 ms · 978 → 77 px / 527 ms / 108 ms | staged head-on clashes at three speeds |
| Directional kick | peak 3.4–11.7 px along the hit normal · settle 201–296 ms | critically damped spring, 19 rad/s |
| Event feedback | ≤34 ms, every interactive event | budget 100 ms; same-tick visual response |
| Automated playthrough | crown 100%, win in 64.8 s / 118.1 s, zero errors, zero falls | reactive input bot; second run = confirming audit |
| Frame cost (this audit host) | best 19.3 ms avg · 33 ms p95 | software canvas, no GPU, shared box at load ~17 — real hardware runs the WebGL renderer at 60 |
| Payload | ~8 MB · ~100 files | engine 1.2 MB + art 2.4 MB + sampled audio ~4 MB |
1-D elastic momentum exchange along the contact normal with mass and restitution 0.58 — arcade separation would eat the very thing the game is about.
A ram is long, not round: contact radius blends 17 px side-on to 40 px along the heading, so horn-to-horn connects where the art shows horns meeting.
Displacement along the impact normal with a critically damped spring return; zoom punch reserved for tier-3. Rotation never; translation only.
Y-sorted actors and props, drop shadows that stay on the rim when a ram tumbles, a parallax valley far below, and drifting cloud shadows over everything.
Grazing home anchors, one rotating challenger, retreat after a lost bout and a respect window — measured out of a perma-contested stalemate (240 s, crown 0%) into a 2-minute win path.
The platform Web Audio engine: an alpine accordion-fiddle round, closing-speed-tiered clash voices, distance-faded AI bumps, a glockenspiel crown ladder, procedural wind.