Momentum rope-swing across a monsoon-dusk karst gorge. The line is a real constraint — slack until it snaps taut, zero restitution — and reeling it in conserves angular momentum, so pulling yourself up the rope at the bottom of an arc genuinely makes you faster (+19% over pumping alone, measured). The world pulls 1.26× harder while you hold the line. A reachability probe drove the shipped physics through thousands of pumped-swing trials, and every nest and spur ledge in the gorge is placed on a trajectory one of those trials actually reached. Mocap-driven Blender gatherer whose face blinks and reacts in any body pose. Built on Phaser 4.
Top-down knockback arena: hold to wind up, release to RAM. Clashes trade real momentum — mass, restitution 0.58, closing-speed-tiered hit-stop — and the camera is kicked along the impact normal on a critically damped spring, not shaken at random. A mocap-trotting Blender bighorn defends the summit salt lick against russet rivals; knock them off the bluff. Every constant measured on gray shapes first.
Feel-first precision platformer: the whole movement layer — 1.8× fall-gravity asymmetry, 90 ms coyote window, 130 ms jump buffer, apex hang, a look-ahead camera — was tuned and measured on gray boxes before any art existed. Then a mocap-rigged Blender fox landed on the finished feel. Relight the three shrine braziers.
No projects in this category. Choose another category.
AI agents tune the feel before the art
AI agents build the playable blockout, exercise its controls and adjust the movement and camera values before adding finished art. Every piece starts as gray boxes with the complete feel layer: fall gravity heavier than rise, coyote time, input buffering, camera lookahead with smoothing. Art never rescues a game that feels wrong — so feel is proven by play first.
FEEL_NOTES.md — jump
fall gravity ×1.8rejected ×1.0 "floaty, no weight" · ×2.4 "brick"
coyote time 90msrejected 0 "unfair" · 150ms "mushy edges"
input buffer 120msearly jump presses honored at landing
Every constant ships with its reasons — and what the rejected values felt like.
Juice, tuned — not just present
The checklist is table stakes; the craft is the numbers. Hit-stop per impact class, decaying rotation-free shake, a named easing family for every motion, squash scale on landings. A checklist item that exists but is mistuned is a finding here.
Juice audit — cycle gateTuned
✓
Hit-stoplight 40ms · heavy 70ms · kill 110ms + flash
Every piece must prove its responsiveness: sustained 60fps with recorded frame-time samples, input-to-response within two frames, feedback within 100ms of every interactive event — measured via telemetry timestamps, recorded in the ledger.
A tuned hit-stop range or the right easing family for a landing works identically in canvas, Godot and Defold games. The lab’s findings port as numeric, engine-agnostic rules into the guidance every 2D build follows — that portability is why this lab exists.
Engine-agnostic feel rules flow into all 2D builds.
Questions, answered
What exactly is "game feel"?
The accumulated micro-decisions that make interaction satisfying: how gravity asymmetry gives a jump weight, how 60 milliseconds of hit-stop sells an impact, how a camera’s lookahead keeps the player oriented. Individually invisible, collectively the difference between alive and dead.
Why a whole lab for it?
Because feel knowledge is numbers plus reasons, and nobody writes the numbers down. Each cycle’s FEEL_NOTES document — every constant, why that value, what the rejected values felt like — becomes research the whole platform builds on.
Why Phaser for this work?
Phaser’s tweens, cameras and particle emitters are exactly the juice toolkit, on the professional web-2D framework — the shortest path from a feel hypothesis to a playable test.
Do other engines benefit?
That’s the point: feel constants are engine-agnostic. The ported rules bind every 2D game the builder ships — canvas, Phaser, Godot and Defold alike.
Which kinds of mechanics can I explore here?
Browse the gallery for focused 2D interactions and the techniques behind their feel. Each project’s description explains what it explores, so choose a piece for its mechanic as well as its screenshot.
How can I judge the feel of an example?
Try starting, stopping, jumping or interacting repeatedly. Notice input response, motion timing, feedback and recovery; a still image cannot show those parts of the experience.
Can my brief use a different visual style?
Yes. Describe your own world, palette and character direction alongside the mechanic and controls. A lab reference can explain the interaction you want without requiring the same appearance.
Build a game that feels as good as it looks
Every 2D game the builder ships inherits this lab’s feel research.