Shmup Design · June 30, 2026
The Graze System in Shmups: Near-Miss Scoring and Resource Design
Most shmup players think of bullet proximity in binary terms: you were hit or you were not. The graze system breaks that binary into a third state — close enough to earn a reward, far enough to survive. Done well, it transforms every dense bullet pattern into an opportunity rather than a hazard, and makes score runs look visually spectacular. Done poorly, it rewards random survival instead of intentional play.
Published June 30, 2026
Two hitboxes, one ship
The graze system requires every player entity to carry two distinct hitboxes at all times. The damage hitbox is the small, usually pixel-scale box that actually kills the player on contact with a bullet. The graze hitbox is a larger concentric area — typically three to five times the radius of the damage hitbox — that detects when a bullet passes through proximity range without triggering a kill.
The important rule: a bullet entering the graze zone awards the graze, then the bullet continues on its path. The bullet is not consumed, not deflected, and not neutralised. It remains active and dangerous. This means that grazing a volley of twenty bullets requires weaving through all twenty, not just touching the first.
In implementation, most engines handle this naturally by giving the graze zone a different collision layer from the damage hitbox. Enemy bullets check against the damage layer; the graze zone fires a detection signal on overlap-enter. A flag per-bullet prevents the same bullet from awarding multiple grazes in a single pass — the graze triggers once per bullet, not continuously while the bullet overlaps.
What graze should yield
The resource awarded by grazing defines the economic role the system plays in your game. The three most common designs:
| Yield type | Effect | Design implication |
|---|---|---|
| Score points | Flat or multiplied point bonus per graze | Scoring layer only; no gameplay resource impact |
| Bomb gauge fill | Each graze fills a small portion of the bomb meter | Skilled play generates defensive resources; reduces bomb scarcity |
| Power/charge buildup | Graze charges a special attack or multiplier | Aggressive proximity play unlocks offensive options |
| Hybrid | Points plus gauge fill simultaneously | High reward ceiling, requires careful balancing so bomb generation does not trivialise the game |
Bomb gauge graze systems require the most balancing attention. If the gauge fills too quickly, players accumulate more bombs than they can use and the resource becomes meaningless. The target is that a player running maximum-proximity routes should earn roughly one bomb per stage section, not one per pattern. Testing with experienced players is the only reliable calibration method.
Visual feedback
Graze feedback must be immediate, readable, and non-intrusive. The player is already processing dense bullet patterns at maximum attention; feedback that demands additional visual focus competes with survival information and causes mistakes.
The most effective graze indicators use peripheral triggers: a brief ring flash around the player sprite, a small particle spray at the graze contact point, or an additive flash on the bullet itself as it clears the graze zone. Score number popups for individual grazes are rarely worth the visual noise unless they are small, fast-fading, and positioned consistently relative to the player rather than at the bullet position.
Sound design reinforces visual graze feedback without requiring the player to look anywhere. A short, high-frequency metallic tick that fires once per graze gives an auditory count of proximity passes. Keep it quiet and dry — it needs to be perceptible in a mix of ongoing gunfire without becoming irritating on a run through a thirty-bullet ring burst.
Radius tuning and feel
The graze radius determines how hard the system is to engage with. A graze zone that is too small means only the most precise players will ever trigger it. A zone that is too large rewards casual movement as grazes and collapses the distinction between intentional proximity and accidental nearby movement.
A practical starting radius is approximately the diameter of the player sprite visible hull — the full drawn character, not just the damage hitbox. This makes the graze zone feel spatially anchored to the ship outline, so players develop an intuitive sense of the engagement distance without needing to consciously calculate hitbox geometry.
Tune the radius by watching new players on their second or third session. If they never trigger a graze accidentally, the zone may be too small to discover organically. If they are triggering grazes constantly without aiming to, the zone is undermining the skill expression the system is meant to create.
Design intent and player motivation
The graze system exists to give expert players a reason to intentionally inhabit the most dangerous space in the play field. In a game without grazes, the optimal strategy is to maintain maximum distance from bullets at all times. In a game with grazes, proximity has positive expected value for a player who can control it, and the game becomes a negotiation between safety margin and resource gain.
This design intent has one important implication: the rewards for grazing must be meaningful enough that choosing to engage with the system at the expense of safety margin feels like a real and worthwhile trade. If the bomb gauge fills just as fast from item collection as from grazing, no rational player will graze intentionally. The system needs to offer a payoff that is only available by getting close.
The graze system is one of the few mechanics in shmup design that makes the game's hardest content look beautiful. A score run through a tight bullet ring, with graze ticks firing every frame, is visually distinct from defensive play and communicates mastery without explanation. That spectacle is worth the implementation complexity.