Game Feel Library
← Browse
VFXIntermediate

Impact Decals

Bullet holes and scorch marks that stay on the wall — the world remembering the fight is a feedback channel too.

vfxdecalspersistenceshooter

Examples

Captured from this page's own interactive demo below.

Overview

Sparks and flashes last a tenth of a second; the bullet hole stays. Impact decals are the world's memory — chips in concrete, scorch rings around an explosion, cracked glass — and they do quiet feedback work long after the impact frame: they confirm exactly where shots landed, they turn a spray pattern into something the player can read on the wall, and they make surfaces feel like matter instead of painted cardboard.

The standard implementation is a ring-buffer pool: a fixed budget of decal quads (say 64), placed at the hit point, aligned to the surface normal, with random rotation and slight scale variance so repeats don't read. When the pool overflows, the oldest decal fades out over a second rather than vanishing — players genuinely notice a bullet hole popping off a wall, and the fade launders the recycling.

Match the decal to the material and the caliber: a pistol chips drywall, punches metal, and stars glass, and each says something about the world. The one hard rule is placement honesty — the decal must sit exactly where the trace hit, because players use bullet holes as an aiming record; a decal that drifts off the hit point actively teaches wrong aim.

Interactive Demo

past the budget, the oldest holes fade out — they never pop
0/14
Decal Budget14
Decal Size11px

Use Cases

Bullet holes on architectureExplosion scorch marksBlood and slime splatterTire marks and drift lines

Best Practices

Do

  • ✓Pool decals in a ring buffer with a hard budget, and fade the oldest out instead of popping it off the wall.
  • ✓Randomize rotation and scale a little per decal so a spray never reads as a repeated stamp.
  • ✓Place the decal exactly at the trace hit point — players use bullet holes as an aiming record.

Don't

  • ✕Don't let decals z-fight the surface; bias them a hair along the normal and render them after the wall.
  • ✕Don't spawn a decal per pellet of every shotgun blast at full budget — cluster hits can share one bigger mark.
  • ✕Don't keep decals on destroyed or moving objects unless they're parented to them; floating holes break the spell.

Common Mistakes

Implementation

Paste this into your AI assistant (Cursor, Copilot, Claude) to add the effect to your project.

Prompt
Add the "Impact Decals" game-feel effect to my project: Bullet holes and scorch marks that stay on the wall — the world remembering the fight is a feedback channel too.

How it works: Sparks and flashes last a tenth of a second; the bullet hole stays. Impact decals are the world's memory — chips in concrete, scorch rings around an explosion, cracked glass — and they do quiet feedback work long after the impact frame: they confirm exactly where shots landed, they turn a spray pattern into something the player can read on the wall, and they make surfaces feel like matter instead of painted cardboard.

Guidelines:
- Pool decals in a ring buffer with a hard budget, and fade the oldest out instead of popping it off the wall.
- Randomize rotation and scale a little per decal so a spray never reads as a repeated stamp.
- Place the decal exactly at the trace hit point — players use bullet holes as an aiming record.

Avoid:
- Don't let decals z-fight the surface; bias them a hair along the normal and render them after the wall.
- Don't spawn a decal per pellet of every shotgun blast at full budget — cluster hits can share one bigger mark.
- Don't keep decals on destroyed or moving objects unless they're parented to them; floating holes break the spell.

Implement the effect in whatever engine/stack the project already uses and follow its existing code style. Wire it up where it makes sense.

References

Related Effects

Comments

…