Guide
Game camera shake and screen shake explained
Harbor Ruins' third boss fight layered three overlapping slam attacks, each triggering a full-screen wobble that lasted nearly a second. Playtest heatmaps showed players hugging the arena edges — not for strategy, but because the camera never settled long enough to read telegraphs. Accessibility telemetry reported a 41% opt-out rate for camera effects within two attempts. The team did not remove shake. They rebuilt it as a trauma system: short directional punches on heavy hits, fast exponential decay, amplitude caps during multi-hit combos, and a separate “subtle” preset that preserved feedback without roll-induced nausea. Boss retry rate improved 19% with zero damage changes. Camera shake (also called screen shake) offsets the view — position, rotation, or field of view — to sell impact, explosion scale, and environmental threat. It is one of the cheapest ways to add juice, but uncontrolled shake erodes readability, triggers motion sickness, and trains players to disable your effects entirely. This guide covers trauma and decay models, procedural versus authored shake, directional punch, pairing with hitstop and haptics, genre tuning, accessibility, the Harbor refactor, a decision table, pitfalls, and a practitioner checklist alongside our hitstop guide, juice and feel overview, and camera systems guide.
What camera shake is (and what it is not)
Camera shake temporarily displaces the player's viewpoint from its ideal follow position. Unlike cutscene camera moves, shake is reactive: it fires on events (hits, explosions, landing, boss roars) and returns to baseline. The brain interprets the jolt as force transfer even when no physics object moved the camera rig.
Shake is not the same as camera sway (breathing idle motion), FOV kick (sprint zoom), or recoil (weapon-driven view kick in shooters). All can stack, but each needs its own amplitude budget. Shake also differs from chromatic aberration or motion blur — post effects that widen the discomfort surface area when combined with aggressive positional shake.
Screen shake in 2D games usually translates the entire viewport or tilemap layer. In 3D, shake typically perturbs a spring arm or cinematic camera component while the player character keeps animating. The implementation changes; the design goal is identical: communicate magnitude and direction of an event in under 200 milliseconds.
Trauma, amplitude, and decay
The most maintainable pattern is a trauma variable between 0 and 1. When an event fires, add trauma (clamped at 1). Each frame, multiply trauma by a decay factor (e.g. 0.9 per frame at 60 fps) or subtract a fixed decay rate. Actual shake offset scales with trauma squared or cubed so small residual values fade smoothly instead of snapping off.
Pseudocode shape:
trauma = min(1.0, trauma + eventTrauma)
offset.x = maxShakeX * trauma * trauma * noise1(t)
offset.y = maxShakeY * trauma * trauma * noise2(t)
offset.z = maxShakeRoll * trauma * trauma * noise3(t)
trauma *= pow(decay, deltaTime * 60)
Event trauma values live in a data table keyed by event type: light hit 0.08, grenade 0.35, boss slam 0.55. Stacking hits add trauma until the cap, then decay handles the tail. This prevents infinite escalation during machine-gun fire without arbitrary cooldown timers.
Decay speed is a feel knob. Fast decay (0.85–0.92 per frame) reads snappy and fighting-game clean. Slow decay (0.95+) feels earthquake-like and suits horror or destruction spectacles — but only if telegraphs remain readable between peaks.
Procedural noise versus authored keyframes
Two implementation families dominate production:
- Procedural noise: Perlin or simplex noise sampled over time drives X/Y/Z offset. Cheap, infinite variation, easy to layer frequencies for “rumble” versus “jitter.” Risk: can look random instead of directional if you do not bias axes.
- Authored curves: animation curves or spring impulses define a single punch (e.g. −0.3 units back on Z for 80 ms, ease out). Repeatable, cinematic, easy to sync with hitstop frames. Risk: repetition if the same curve fires on every attack.
- Hybrid: authored envelope (attack/decay) multiplied by noise. Harbor Ruins adopted this: boss slams use a downward bias curve with low-amplitude horizontal noise on top.
For directional punch, offset along the vector from impact to camera (or from attacker to target) sells causality. A hit from the left should push the view right. Explosions push outward from epicenter. Random isotropic shake on every event feels like a broken tripod, not combat feedback.
Pairing shake with hitstop, VFX, and haptics
Shake lands hardest when synchronized with other feedback channels on the same frame. See our hitstop guide for freeze-frame timing; the pairing rules are:
- Apply trauma spike on the first hitstop frame, not when damage resolves server-side milliseconds later.
- Scale shake amplitude with hitstop duration for heavies; lights get shake only, no freeze, to keep combo flow.
- Trigger controller rumble with the same trauma value so console players feel parity. Our haptics guide covers motor mixing.
- Spawn VFX (sparks, dust) on the same frame; shake without particles reads as a technical glitch.
Cumulative caps: during a 5-hit combo, either decay trauma between hits fast enough that each hit registers separately, or use diminishing returns on repeated trauma adds (second hit in 200 ms adds 50% trauma, third adds 25%). Uncapped stacking is how brawlers become unplayable on small screens.
Genre and camera-mode tuning
Shake budgets differ sharply by genre and camera distance:
- Fighting games: minimal positional shake; brief rotational punch on KOs only. Players read frame data at pixel precision.
- Third-person action: moderate trauma, strong directionality, fast decay. Boss attacks get more trauma than trash mobs.
- FPS: recoil handles weapons; shake reserved for explosions and melee takedowns. Never shake on every bullet.
- Horror: slow low-frequency sway for dread; separate from jump-scare spikes. Allow longer decay because tension benefits from unease.
- Mobile / handheld: reduce amplitude 30–50%; smaller screens amplify perceived motion.
- VR: positional camera shake is a comfort violation for many users. Prefer haptics, audio, and world-space effects; if shake is mandatory, keep it sub-degree rotational only.
First-person and third-person need different tables for the same event. A grenade might add trauma 0.4 in third-person but 0.15 in first-person with stronger audio low-pass instead.
Accessibility and player trust
Camera effects are among the first toggles players seek when uncomfortable. Ship these from day one:
- Reduce camera shake: scales max amplitude (e.g. 40% of default), not just trauma add values — preserves event differentiation.
- Disable camera shake: hard off; compensate with stronger hitstop, audio thump, or UI pulse so impacts still read.
- Reduce motion: umbrella setting that also dampens FOV kick, screen warp, and chromatic aberration.
- Photosensitivity: cap flash + shake on rapid lightning or strobe VFX sequences.
Never hide the toggle three menus deep. If 30%+ of players disable shake, your default curve is wrong, not your audience. Telemetry on opt-out rate per level is a design signal, not a niche metric.
Harbor Ruins boss refactor (worked example)
Problem: the bridge boss applied trauma 0.6 on every slam with 0.97 decay, so three slams in six seconds kept trauma above 0.4 continuously. Players could not see wind-up animations. Edge-death rate spiked (see our knockback guide for the parallel positioning fix).
Changes shipped:
- Slam trauma reduced to 0.45 with downward directional bias (70% vertical component).
- Decay tightened to 0.88 per frame; combo slams within 1.2 s use diminishing trauma adds.
- Telegraph phase (1 s before slam) forces trauma to zero — a “calm window” guaranteed readable.
- “Reduced shake” preset scales boss slam to 0.25 max trauma; full disable routes impact feedback to controller rumble + bass hit.
- QA replay tests: same seed produces identical trauma curves for regression.
Outcome: accessibility opt-out dropped from 41% to 12% on that encounter; average attempts-to-clear fell from 4.1 to 3.3.
Technique decision table
| Need | Approach | Pros | Watch for |
|---|---|---|---|
| Many varied combat hits | Trauma + Perlin noise | Scales with event table, cheap | Feels mushy without direction bias |
| Cinematic boss moments | Authored curve + trauma cap | Precise sync with anim | Overuse dulls spectacle |
| 2D pixel art | Whole-viewport translate | Simple, retro-authentic | Integer pixel snap for crisp art |
| Large open-world explosions | Distance falloff on trauma | Far blasts do not white-out view | Players miss near-miss feedback |
| Multiplayer PvP | Local shake only on confirmed hits | No desync on speculative shots | Shooter victims need victim-side trauma |
| VR comfort | Haptics + audio substitute | Reduces sim sickness reports | Impact feels flat without tuning |
Common pitfalls
- Same shake on every hit: lights and heavies feel identical; players ignore feedback.
- No decay: trauma stays high; screen never stabilizes during core loop.
- Isotropic random shake: no directional story; reads as bug.
- Shake during precision platforming: undermines jump timing; disable or zero trauma in platform challenge zones.
- Ignoring cutscene cameras: shake fighting scripted pans causes double motion.
- UI parented to shaking camera: menus wobble; parent HUD to screen-space overlay.
- Max trauma on ambient events: footstep rumble, pickup sparkle, and damage share one bucket — everything feels violent.
Practitioner checklist
- Central trauma table: event ID, trauma add, direction bias, decay override.
- Global max amplitude per camera mode (FP / TP / top-down).
- Diminishing returns window for rapid repeated events documented.
- Calm windows before unreadable boss attacks enforced in code.
- Hitstop, VFX, audio, and haptics fire same frame as trauma spike.
- Reduce and disable toggles in first-run accessibility prompt.
- Opt-out telemetry per level and per boss encounter.
- HUD and menus decoupled from shaken camera rig.
- Distance falloff for world explosions tested at min/max range.
- Regression replays: deterministic trauma curve from fixed seed.
Key takeaways
- Camera shake sells impact in milliseconds; trauma with fast decay beats long wobbles.
- Directional punch and hybrid noise curves communicate causality better than random jitter.
- Pair shake with hitstop, VFX, and haptics on the same frame; cap cumulative trauma in combos.
- Genre and camera distance need separate amplitude tables — FPS is not third-person.
- Accessibility presets and opt-out telemetry are design tools; high disable rates mean defaults are too aggressive.
Related reading
- Hitstop and hit pause explained — freeze frames, impact timing and combo rhythm
- Juice and game feel explained — feedback layering beyond camera motion
- Camera systems explained — follow rigs, collision and FOV
- Haptics and rumble explained — controller feedback when shake is off