system

Use when

The game feels "off" and you need to fix the intent→motion pipeline.

Camera & Controls

What it is. The pipeline from a button press to a pixel moving: how input is sampled, buffered, and resolved; and how the camera chooses what to frame. This is not chrome around the game — for anything real-time it is the game feel.

Player fantasy / why it’s fun. The avatar is my body. When latency is low and the camera shows me what I need one beat before I need it, intention and motion fuse — I stop thinking about the controller. Celeste and Super Mario World feel “tight” here; the mechanics are ordinary, the pipeline is not.

When to use / when NOT

Sweat this when…Ease off when…
Real-time input decides success (platformer, action, genre-bullet-hell)The game is turn-perfect (genre-grid-puzzle, genre-tactics)
The world is larger than one screenEverything relevant fits on a fixed frame
A missed frame costs a life or a comboInput is a single considered choice (genre-narrative-decisions)
Precision is the fantasy (genre-precision-platformer)Camera would only add motion sickness

Turn-based games still have a “camera” — it’s what the board shows and when it scrolls to the action. And a considered click still deserves an honest hover state. The pipeline never fully disappears; it just changes clock.

Camera variants

CameraFramesBest forAnchor
Fixed / roomone static shot per spaceauthored layouts, horror sightlinesgenre-survival-horror, early anchor-celeste rooms
Follow (deadzone)tracks avatar, lags inside a slack boxmost platformers/actionmechanic-double-jump games
Look-aheadleads the direction of travel/aimfast movement, mechanic-dashanchor-dead-cells, anchor-nuclear-throne
Snap-to-targetreframes on a locked enemy1v1 actionmechanic-lock-on, anchor-dark-souls
Zoom-to-contextpulls out on threat, in on calmpacing beatsbosses, system-boss-design
Player-framedthe player aims/pans the shotphotography, tactics reconsee twist below

Input variants

Input modelRuleUse when
Raw / polledact on the frame the press landsrhythm-exact reads (genre-rhythm)
Buffereda press just-early still firesalmost every action game
Coyote-graceda press just-late still firesplatformers with ledges (system-grace)
Charged / heldduration maps to powermechanic-charge-attack, mechanic-throw
Context-sensitiveone button, verb picked by statesee twist below

Tuning levers

LeverDoesHealthy feel
Deadzoneslack box before the camera moveswide enough to ignore idle jitter, tight enough to never lose the avatar
Camera smoothinglerp/spring toward targetfast enough to keep up on a mechanic-dash; never so slow the avatar outruns frame
Look-aheadhow far the frame leads intentscales with speed — more when fast, none at rest
Input bufferwindow a too-early press survives~a few frames; long enough to forgive, short enough to feel deliberate
Coyote timewindow a too-late jump still firesthe system-grace floor — proven to the frame, not vibed
Response latencyframes from press → visible motionthe fewer the better; every extra frame reads as “mushy”

Every window is specced in frames and proven at the edge — buffer and coyote are leniency, and unbounded leniency is its own bug. That proof is system-grace‘s job; here you only decide the numbers and why.

Twist seams

How it wires to Hayao

Fails when…

Verify

This module rendersthe repo's markdowndirectly — edit it there, it changes here.