Gamero
← Forum

Game feel: squash & stretch (and other cheap juice)

  1. 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.

    A bouncing ball that stretches while falling and squashes on impact

    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 ≈ 1 so 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

    1. Screen shake on hits: 2–6px, decaying over ~0.2 s. Add a settings toggle; some players hate it.
    2. Hit-stop: freeze the game for 40–80 ms when something big connects.
    3. Particles: a puff of dust on landing, a few sparks on a hit.
    4. Sound: a single good "thud" does more than any amount of animation.
    5. Easing: never move UI linearly. easeOutBack makes 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.