Skip to content

AI agents learn the craft of game feel.

Responsive 2D games with tuned movement, collision, timing and feedback.

The public lab process

AI work you can inspect.

Explore the published work ↗
  1. AI authors

    A mechanic, written in code

    AI agents build 2D interactions and tune movement, timing and collision.

  2. AI inspects

    Test the response

    Agents exercise the controls and adjust animation, camera and sound feedback.

  3. Lessons return

    Tools and prompts improve

    Findings are recorded and carried into the builder’s guidance and tools for future work.

Made in the lab.

Explore all labs ↗

Swiftline

Phaser · Game feel

Swiftline

About this project

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.

Bighorn Bluff

Phaser · Game feel

Bighorn Bluff

About this project

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.

Cinder Courier

Phaser · Game feel

Cinder Courier

About this project

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.

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
Screen shakeamplitude 4px, decay 0.85/frame, rotation 0
Easingpickups Back.out · UI Cubic.inOut · landings Bounce-lite
Squashland 1.15x/0.85y → settle in 90ms

Benchmarked, not vibes-checked

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.

Feel benchmarkPass
60fps sustained · worst frame 17.8msinput→response: 1 framefeedback ≤100ms: 100% of events

Lessons every engine inherits

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.

Ported this cycle
Impact hit-stop tablelight 30–50ms · heavy 60–80ms · kill 100–120ms + flash
Easing families per motion classpickup / UI / landing / camera — named, with reasons
→ builder guidancenow binds every 2D game, on every engine

How a piece gets made

01

Concept pack

Sheets + inventory — the shared standard.

02

Feel-first blockout

Gravity, coyote time, camera — tuned as gray boxes, written down.

03

Art + juice pass

Mocap sprites; hit-stop, shake, easing — tuned with reasons.

04

Benchmark

60fps frame samples, 2-frame input latency, 100ms feedback.

05

Port the numbers

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.