Articles

The Game Juice Checklist: 30 Ways to Polish Any Game

A curated, prioritised checklist of 30 juice techniques you can apply to any game this week. Synthesised from Vlambeer's legendary list, the juice audit framework, and five volumes of game feel research. Tiered by time investment.

28 April 2026 ยท 9 min read

Game feel is improved through iteration, not inspiration. This checklist gives you 30 specific techniques drawn from Vlambeer's legendary INDIGO talk, the five-volume Game Juice Master Reference, and decades of industry practice. Each item is something you can implement this week. They are tiered by time investment: start at Tier 1 and work down.

How to use this list: do not work through it top to bottom. Run the Toy Test first - spend two minutes moving your character in an empty scene. Notice what feels missing. Then cross-reference the checklist for techniques that address that gap. The list is a menu, not a sequence.

Tier 1: Immediate Wins (under 2 hours each)

These five techniques have the highest return on time invested. If your game has none of them, they should be your first session of juice work.

1. Add screen shake to your primary action. Whatever the player does most - shoot, hit, jump, place - the camera should react. Use a trauma-based system with Perlin noise for organic feel. Even a 3-frame, tiny-amplitude shake transforms the perceived weight of an action. No accessibility option yet? Add a toggle at the same time.

2. Add pitch variation to every repeating sound. The machine gun audio problem - identical sounds triggering rapidly - is one of the fastest ways to make a game feel cheap. Add plus or minus 7% random pitch variation to every sound effect that plays more than twice per minute. This single change takes 20 minutes and makes a game feel dramatically more alive.

3. Replace linear movement with eased movement. Find every Lerp, MoveTowards, or linear transition in your codebase. Replace linear with ease-in-out, or use spring lerp for organic overshoot. UI elements popping in, health bars draining, objects moving to targets - all of them feel robotic on linear and organic on eased. The change is often a single function call.

4. Add a hit flash on damage. When an enemy or the player takes damage, briefly render the mesh or sprite as solid white for 1-3 frames, then return to normal. This is the cheapest hit confirmation in the kit. It costs almost nothing to implement, requires no particles or animation, and immediately communicates that the hit registered.

5. Add a sound to every UI interaction. Button hover, button press, menu open, menu close. A minimum of four sounds. If your UI is currently silent, this single afternoon of work will make your game feel substantially more polished to every player who touches it.

Tier 2: Weekend Improvements (2-8 hours each)

These ten techniques require more setup but cover the core of the juice toolkit.

6. Build a tiered shake language. Define four shake tiers (light, medium, heavy, catastrophic) with distinct amplitude and duration values. Map every game event to a tier. Consistency is what turns individual shakes into a readable feedback language.

7. Add hit stop to your primary combat hit. A 4-6 frame near-freeze at the moment of impact transforms combat feel. Time.timeScale = 0.05 for the duration, then reset. Scale stop duration by hit severity: light hit = 2 frames, heavy hit = 8-10 frames. The most impactful single addition to combat feel in any action game.

8. Add impact particles to your primary hit. A small burst of 8-12 particles at the point of impact. Keep them directional - they should spray outward in the direction the hit came from, not in a uniform ring. Add a brief velocity, then fade over 0.3-0.5 seconds. This communicates force direction as well as impact confirmation.

9. Add squash and stretch to your character's jump. Stretch on lift-off (scale Y up, scale X down), squash on landing (scale Y down, scale X up). Keep volume constant: if Y multiplier is 1.2, X multiplier should be approximately 0.85. Ease back to normal over 4-8 frames. The most classic juice technique in platformers.

10. Add easing to enemy death. Enemies that disappear on death rob the player of the satisfaction of their kill. Add a brief death animation - a flash, a dissolve, a ragdoll pop. Even a 0.3s scale-to-zero with an elastic easing makes death feel earned rather than administrative.

11. Add enemy knockback. Enemies that register hits but don't physically react feel invincible even when they are taking damage. A brief velocity impulse in the hit direction - small for light hits, larger for heavy hits - communicates that the player's attacks are physically meaningful.

12. Add a dust or landing particle on jump landing. A small puff of dust or debris when the character lands. This communicates weight and grounds the character in the world. Extremely fast to implement; one of the most visible improvements to platformer feel.

13. Add a victory stinger on kill or task completion. A brief musical phrase (0.5-2 seconds) that triggers when the player completes the core loop action. Enemy death, drink order complete, level clear. The most rewarding sound in the game. This single audio event is what distinguishes juicy completion moments from administrative ones.

14. Add weapon or bullet trails. A trailing sprite or line renderer behind projectiles dramatically increases perceived speed and gives fast-moving objects a readable presence. Without trails, fast projectiles often register as 'invisible hit from nowhere.' With trails, they feel like physical objects moving through space.

15. Add a health bar ghost trail. When the player takes damage, the health bar should jump instantly to the new value, but a ghost bar should linger behind and drain slowly over 0.5-1 seconds. This communicates both the new state (instant) and the amount lost (ghost). It is the difference between a health bar that informs and one that tells a story.

Tier 3: Architecture-Level Improvements (days to weeks)

These fifteen techniques require system-level thinking and investment. They are the difference between a game that has juice effects and one that feels like a coherent, polished experience.

16. Implement coyote time (platformers). 4-8 frame grace period after leaving a ledge during which jumping is still valid. Players never notice it when present; they feel cheated when absent. Celeste uses 5 frames.

17. Implement input buffering. Store the player's most recent action for 100-150ms and execute it on the first valid frame. Prevents eaten inputs, rewards anticipation, and makes controls feel tuned and deliberate.

18. Implement variable jump gravity. Standard gravity on ascent, 1.5-3x gravity on descent. Cut the arc short when the jump button is released early for variable jump height. This single physics change transforms a floaty jump into a snappy, controllable arc.

19. Build a sound variant pool system. Create 3-6 variants of each high-frequency sound. Build a system that cycles through them and avoids immediate repeats. This is a one-time architectural investment that all future audio benefits from.

20. Implement the three-channel rule systematically. Audit every significant game event. For each one: is there a visual response? An audio response? A kinesthetic response (haptic, animation weight, momentum)? Any event missing a channel should be upgraded before adding juice to events that already have all three.

21. Add adaptive music with at least two states. Exploration and combat. Cross-fade between them based on gameplay state. Even a two-state system with 0.5-1s cross-fade is dramatically more immersive than a single looping track.

22. Add permanence to high-impact events. Bullet holes, scorch marks, craters, broken objects that stay broken. The world should remember the player was there. Even a simple decal system for 5-10 impact types makes a game feel inhabited rather than temporary.

23. Implement controller rumble. Two motors: left (low-frequency, heavy impacts) and right (high-frequency, rapid events). Map your event tiers to rumble profiles. Always include a toggle. The third channel of the feedback rule.

24. Add a color flash on damage taken. A brief red screen overlay (30-40% opacity, 0.1-0.2s) when the player takes damage. Communicates injury through the most visible channel available - the entire screen - without obstructing gameplay. Standard in virtually every action game for a reason.

25. Tune your ADSR envelopes across channels. For your primary feedback event, measure how long the visual, audio, and haptic feedback each last. They should resolve at approximately the same time. Mismatched envelopes are one of the most common causes of feedback that 'doesn't quite land' even when all three channels are present.

26. Add a win/loss feedback sequence. The emotional climax of the game loop needs the most juice. A death that is just a fade to black with a 'You Died' text robs the player of catharsis. A victory that is just a score screen robs them of triumph. Design these moments as choreographed sequences: flash, freeze, audio swell, particle burst, then resolution.

27. Add UI reactions to gameplay events. Score text that bounces on pickup. Health bars that pulse at critical levels. Damage numbers that scale with hit severity. The UI should feel like it is alive and reacting to the game, not displaying static information.

28. Build a juice profile / ScriptableObject system. Store all juice parameters (shake amplitude, particle count, hitstop duration, sound volume) in data assets rather than hard-coded values. This makes iteration dramatically faster - tune in the editor during play, no recompile.

29. Implement object pooling for particles. Spawning and destroying particle systems every hit is a performance spike that compounds in heavy-action moments - exactly when you can least afford it. A simple pool of 20-50 pre-allocated particle systems eliminates this entirely.

30. Add accessibility options for every screen-based effect. Screen shake toggle, chromatic aberration toggle, motion blur toggle, flashing reduction option. These are not optional niceties - they are the standard for respectful, professional game development. Build the settings menu before shipping, not as an afterthought.

Using the Checklist as an Audit

Run through this list with your game open and a recording running. For each item: is it implemented? Does it feel right? Mark each as done, needs tuning, or missing. The resulting list is a prioritised juice backlog.

A game that scores 15 of 30 on this checklist and has all 15 tuned well will feel better than a game that has all 30 implemented poorly. Juice quality beats juice quantity. Every item on this list should feel intentional, calibrated, and specific to your game's feel goals - not applied wholesale from a tutorial.

Part of a series

Systems & Process