Guide
Game damage indicator and directional hit feedback systems explained
Harbor Crest's tactical shooter beta shipped with a single feedback channel when players took damage: a uniform red vignette that pulsed at the screen edges regardless of where the shot originated. Playtest telemetry tagged every post-hit camera rotation and compared it to the server-validated attacker bearing. 58% of damage events were followed by a turn of 90 degrees or more in the wrong direction — players spun toward the vignette center instead of the threat arc. Time-to-return-fire averaged 1.4 seconds in duels where pro benchmarks sat under 0.5 s. Support tickets blamed “broken audio” and “invisible campers” even though hit registration was fair.
The refactor layered three synchronized channels: directional screen wedges on a compass ring, hit-marker confirmation on outgoing shots, and spatial gunfire audio with HRTF falloff. Wrong-turn rate fell from 58% to 12%; median return-fire delay dropped to 0.52 s. Directional damage feedback closes the loop between taking a hit and orienting toward the threat. This guide covers wedge geometry, vignette stacking rules, hit-marker taxonomy, audio localization, multiplayer sync with health systems, accessibility presets, the Harbor Crest refactor, a technique decision table, pitfalls, and a production checklist alongside floating damage numbers and kill feed design.
What directional damage feedback is
When a player receives damage, the game must answer two questions faster than conscious thought: how hurt am I? and from where? Health bars and damage numbers handle magnitude. Directional indicators handle bearing — the horizontal angle from the victim's facing vector to the damage source at the moment of impact.
Good directional feedback is:
- Instant — appears on the same frame or the next as health deduction
- Angle-accurate — within roughly 15–30 degrees for shooters; tighter for arena modes
- Stackable — multiple hits from different bearings remain readable
- Non-exclusive — works with audio, haptics, and recap UI without fighting them
Poor feedback — full-screen flashes, center-only vignettes, or delayed indicators — trains wrong muscle memory. Players learn to panic-spin instead of read cues, which inflates perceived input lag and unfair-death reports.
Screen-space directional wedges
The industry-standard pattern is a compass ring or screen-edge arc: a short-lived glyph on the perimeter pointing toward the attacker's bearing relative to camera yaw. Implementation steps:
- Server or authoritative client emits
DamageEventwithsourceActorId,damageAmount, andhitLocation - Client computes
bearing = atan2(attacker.x - victim.x, attacker.z - victim.z) - cameraYaw - Map bearing to screen edge: 0° = top center, 90° = right, etc.
- Spawn wedge sprite or chevron with fade-out over 0.6–1.2 s
Wedge geometry and stacking
Harbor Crest used 45-degree arc wedges on an elliptical ring inset 4% from the safe-zone border. Each new hit from a distinct 30-degree bin spawned a new wedge; hits within the same bin refreshed intensity instead of duplicating. Maximum five simultaneous wedges prevented shotgun-blast clutter. Wedge opacity scaled with damage as a fraction of max health: chip damage at 25% opacity, lethal burst at 100%.
Elevation and vertical shots
Pure horizontal bearing fails when snipers shoot from rooftops. Add a vertical chevron modifier: small up or down tick beside the wedge when pitch offset exceeds 25°. Some games collapse elevation into audio only; hybrid approaches reduce ceiling-camp confusion without cluttering the ring.
Vignette, desaturation and hurt FX
Vignettes communicate severity, not direction. Use them as a secondary intensity layer on top of wedges, never as the sole cue.
| Effect | Signals | Risk if overused |
|---|---|---|
| Red edge vignette | Health loss magnitude | Obscures wedges; causes wrong-direction spins |
| Desaturation pulse | Near-death state | Reduces enemy silhouette readability |
| Camera kick / shake | Impact force | Motion-sickness; aim disruption in ranked |
| Blood splatter on lens | Flavor / immersion | Blocks center reticle in ADS |
Harbor Crest limited vignette to 15% max opacity and tied duration to damage over max HP (80 ms per 1% health lost, cap 400 ms). Ranked presets disabled camera kick entirely. Casual presets kept light kick for “impact feel” without stacking more than two FX channels at once.
Hit markers and outgoing confirmation
Directional indicators cover incoming damage. Hit markers cover outgoing confirmation — the crosshair flash when your shot connects. They are complementary: wedges teach defense; markers teach aim correction.
Marker taxonomy
- White X — body hit confirmed
- Red X or skull overlay — headshot or weak-point
- Shield break glyph — barrier depleted, health untouched
- Kill confirm — distinct sound + marker when elimination registers
Markers should appear on server acknowledgment, not client prediction, to avoid false positives when lag compensation rejects a shot. Optional “predicted marker” with gray tint can reduce perceived latency in casual modes; revert on server deny.
Audio pairing
Pair markers with distinct mix-bus sounds: higher pitch for headshots, dull thud for shield hits. Keep marker audio under 120 ms and duck music 3–6 dB so confirmation cuts through without dominating voice chat.
Spatial audio and off-screen threats
Audio is the oldest directional channel. Modern shooters combine stereo pan with HRTF for elevation and rear-hemisphere accuracy. Gunfire events should carry attacker position, weapon class, and occlusion flag so the mixer can apply wall low-pass filters.
Rules Harbor Crest adopted:
- Footsteps within 12 m use full spatialization; beyond that, volume falloff only
- Suppressed weapons reduce high-frequency content — wedges become primary cue
- Explosions bypass HRTF precision; rely on wedge + kill feed for attribution
- Accessibility: mono mix option with amplified wedge size (+20% arc)
Never let audio and wedges disagree. If occlusion dampens a shot by 12 dB, wedge intensity should still reflect true bearing — players trust their eyes when headphones are wrong.
Multiplayer sync and cheat resistance
Directional UI must derive from server-validated damage events. Client-only ray tests toward muzzle flashes are exploitable and desync when attackers are behind walls. Pipeline:
- Server applies damage and broadcasts
DamageNotifyto victim - Payload includes attacker entity id or last-known position snapshot
- Victim client computes bearing from authoritative positions at tick of impact
- Replay wedge uses stored bearing — not live attacker position if they moved
For area-of-effect damage, use damageCenter world coordinate
instead of a shooter entity. DOT ticks from the same source within 2 s merge
into one wedge refresh to avoid flicker from
damage-over-time
systems.
Accessibility and competitive presets
Ship at least three profiles:
| Preset | Wedge style | Motion FX | Audio |
|---|---|---|---|
| Standard | Red arcs on compass ring | Light vignette, optional kick | Full HRTF |
| Color-blind | Shape-coded chevrons (triangle = bullet, diamond = explosive) | No red; blue/orange severity instead | Unchanged |
| Reduced motion | Static icons, longer hold, no pulse | No shake, no lens blood | Mono + louder markers |
| Ranked competitive | Minimal wedges, thin lines | Vignette capped at 8% | Footstep mix ducked for clarity |
Allow per-channel toggles in settings — some players want wedges without vignette, or markers without hit sounds. Document defaults per mode so esports observers know what athletes see.
Harbor Crest refactor (worked example)
Before: uniform vignette, no wedges, stereo pan only, hit markers on client prediction. After:
- Compass ring with 45° wedges, five-stack cap, 30° bin merge
- Vignette capped at 15% opacity, duration tied to damage percent
- Server-confirmed hit markers with headshot and shield-break variants
- HRTF gunfire with occlusion; mono accessibility fallback
- Vertical chevron when pitch offset > 25°
Results after 40k matches: wrong-turn rate 58% → 12%, return-fire median 1.4 s → 0.52 s, “unfair death” reports down 44%. Players still died to good aim — but they understood where it came from, which improved death recap trust scores in post-match surveys.
Technique decision table
| Technique | Best for | Weak when |
|---|---|---|
| Compass ring wedges | Tactical shooters, BR, any 360° threat space | UI clutter in dense UI-heavy ARPGs |
| Screen-edge-only flash (directional) | Arcade shooters needing minimal HUD | Precise bearing above/below player |
| Full-screen red vignette alone | Horror / single-player tension | Multiplayer orientation (misleading) |
| Hit markers only | Arena duels with clear sightlines | Off-angle and suppression scenarios |
| Spatial audio only | Hardcore sims with skilled headphone users | Mono speakers, noisy environments |
| Floating damage numbers | RPGs, telegraphing chip vs burst magnitude | Fast TTK shooters where numbers add noise |
Common pitfalls
- Using center vignette as direction — players spin toward screen middle, not threat bearing.
- Computing bearing from live attacker position — wedges jump when shooters strafe after hit.
- Client-predicted hit markers without server confirm — false feedback erodes trust in netcode.
- One wedge per damage tick on shotguns — ring becomes unreadable noise.
- Ignoring vertical offset — rooftop snipers feel “invisible.”
- Stacking shake + heavy vignette + blood overlay — ranked players disable all FX and lose cues entirely.
- Delaying wedges until damage numbers finish animating — orientation must lead, not follow.
Production checklist
- Define
DamageNotifyschema with attacker id, hit location, damage type, and tick. - Implement bearing from victim facing at impact tick; store for wedge lifetime.
- Build compass ring with bin merge, stack cap, and opacity-from-damage scaling.
- Cap vignette opacity; separate severity from direction channels.
- Ship server-confirmed hit markers with headshot and shield variants.
- Pair gunfire with HRTF; add mono + enlarged wedge accessibility mode.
- Add vertical chevron when pitch offset exceeds design threshold.
- Merge DOT ticks from same source within 2 s into one wedge refresh.
- Telemetry: log post-hit turn angle vs true bearing for playtest tuning.
- QA: verify wedge, audio pan, and marker agree in occlusion and off-screen cases.
Key takeaways
- Directional feedback answers “from where?” — vignettes answer “how much?” Never swap those roles.
- Compass wedges with bin merge and stack caps stay readable under shotgun and explosive spam.
- Hit markers confirm outgoing shots; wedges orient incoming fire — both should be server-grounded.
- Harbor Crest cut wrong-turn rate from 58% to 12% by synchronizing wedges, capped vignette, and HRTF audio.
- Accessibility presets are not optional — color-blind shapes and reduced motion preserve fairness.
Related reading
- Hit registration and lag compensation explained — server authority behind damage events
- Floating combat text and damage numbers explained — magnitude feedback alongside direction
- Kill feed and death recap systems explained — post-death attribution UI
- Health and damage systems explained — pools, shields, and damage pipeline