โ† All DaysยทDay 10
๐ŸŒฑ FoundationsGame FeelTuesday, July 7, 2026

Game Feel: Why Games Feel Good (Or Don't)

Game feel โ€” also called "juice" โ€” is the tactile sensation of interacting with a game. It's the difference between a jump that feels floaty and one that feels snappy and satisfying. Steve Swink's book Game Feel defines it as real-time control, simulated space, and polish working together.

The three pillars:

  • โ–ธInput response โ€” how fast does the game react to your button press? Even 1โ€“2 frames of input lag can make a game feel sluggish. Most great-feeling games aim for sub-2-frame response.
  • โ–ธMovement dynamics โ€” acceleration, deceleration, air control. Mario's jump uses a high gravity on the way down โ€” that's why it feels controllable. Most beginners use symmetric gravity and wonder why jumps feel floaty.
  • โ–ธFeedback loops โ€” every action should produce a visible, audible, and tactile (screen shake, controller rumble) response. Celeste has ~15 systems firing simultaneously when you dash.

Why it matters analytically: Game feel operates below conscious perception. Players can't articulate it โ€” they just say "it feels off." This makes it the hardest discipline in game design, and the most rewarding to master.

The psychophysics angle: Humans perceive cause-and-effect as simultaneous if the gap is under ~100ms. Above that, the brain decouples input from outcome and the game starts feeling broken. Your platformer's jump should play its animation and sound within 2 frames of the input โ€” test it.

Game to Study

Celeste

Celeste's coyote time โ€” you can still jump for a few frames after walking off a ledge. Why does this feel better than strict physics? What does it say about player-friendly design vs realism?

Unity Tip

In your Player.cs, try adding coyote time: store a `coyoteTimeCounter` float. When grounded, reset it to `coyoteTime` (0.2f). Subtract `Time.deltaTime` each frame. Allow jumping while counter > 0, not just while `isGrounded`.

Your platformer's jump works perfectly in code โ€” correct height, speed, gravity โ€” but a playtester says it 'feels floaty and wrong.' They can't explain it further. Walk me through exactly how you'd diagnose and fix this, step by step.