Game feel: squash & stretch (and other cheap juice)
- TtsetNov 4, 2026, 3:38 AM
The quickest way to make a jam game feel good is to add "juice": small visual reactions that cost a few lines of code each. Start with squash & stretch.

Squash & stretch in code
- When something moves fast, stretch it along its velocity:
scaleY = 1 + speed * k,scaleX = 1 / scaleY. - On landing, squash it for a few frames:
scaleX = 1.3, scaleY = 0.7, then ease back to 1. - Keep
scaleX × scaleY ≈ 1so the object keeps its volume. Otherwise it looks like it's inflating. - Scale from the bottom of the sprite when squashing on the ground, or it'll float.
More cheap juice, in rough order of impact
- Screen shake on hits: 2–6px, decaying over ~0.2 s. Add a settings toggle; some players hate it.
- Hit-stop: freeze the game for 40–80 ms when something big connects.
- Particles: a puff of dust on landing, a few sparks on a hit.
- Sound: a single good "thud" does more than any amount of animation.
- Easing: never move UI linearly.
easeOutBackmakes menus feel alive.
Add these at the end of the week, after the game is playable. Juice makes a good game great, but it can't save a game that isn't fun yet.
- When something moves fast, stretch it along its velocity: