Quick answer: Capture the bullet pattern state, the player hitbox and collision, and the performance and projectile count on bullet hell shmup bug reports, because the genre demands pixel-perfect collision and stable performance under thousands of projectiles. The pattern-and-hitbox context is what makes a precise collision or performance bug reproducible.
Bullet hell shoot-em-ups are a genre of precision under chaos: the screen fills with hundreds or thousands of projectiles, and survival depends on a tiny, pixel-perfect player hitbox threading through patterns. This demands exact collision detection, precisely choreographed bullet patterns, and high, stable performance even with enormous projectile counts. Bugs here, a hitbox that registers wrong, a pattern that spawns incorrectly, a slowdown that breaks the timing, are devastating because the genre tolerates no imprecision. Tracking shmup bugs means capturing the bullet pattern, hitbox, and performance state behind these precise failures.
Precision under chaos defines the genre
A bullet hell shmup is built on a paradox: overwhelming visual chaos, the screen saturated with projectiles, combined with absolute mechanical precision, a tiny hitbox that must thread between bullets pixel by pixel. This precision-under-chaos is the appeal, and it makes the genre intolerant of imprecision. A collision that registers a hit the player should have dodged, or fails to register one they should have taken, breaks the fairness the genre demands.
This precision requirement makes shmup bugs especially consequential. Players of the genre are exacting, expecting frame-perfect, pixel-perfect consistency, and they notice immediately when collision, pattern timing, or performance deviates. The bugs depend on exact state, the precise bullet positions, the precise hitbox, the precise frame, which is more than a player can describe, so capturing this precise state is what makes shmup bugs, which are fundamentally about precision, diagnosable and reproducible.
Capture the bullet pattern state
Bullet hell patterns are carefully choreographed sequences of projectiles, and pattern bugs are common: a pattern that spawns wrong, bullets at incorrect positions or velocities, a pattern that desyncs from its timing. Capture the pattern state when a pattern bug is reported, which pattern was active, its timing or phase, and the relevant projectile positions and velocities, since the bug is in how the pattern generated.
A report that a pattern looked or behaved wrong becomes diagnosable when you can see the actual projectile state the pattern produced, comparing it to the intended pattern. Patterns are often deterministic and parameter-driven, so capturing the pattern identity and its state lets you reproduce the exact pattern execution that went wrong, revealing whether the bug is in the pattern definition, its timing, or the projectile spawning, which is where shmup pattern bugs live.
Capture the hitbox and collision
Collision is the heart of a shmup, and the player hitbox is famously tiny and precise, so hitbox and collision bugs are the most critical: a hit registered when the bullet did not touch the hitbox, or a hit missed when it did. Capture the player hitbox state, its position and size, the relevant bullet positions, and the collision result when a collision bug is reported, since the bug is about whether a bullet intersected the precise hitbox.
Capture the grazing state too, if your game rewards near-misses, since grazing is a precise collision-adjacent mechanic that can bug. A collision complaint becomes diagnosable when you can see the exact hitbox and bullet positions and the collision calculation, revealing whether the hit was geometrically justified at the pixel level. The hitbox and collision context, at the precision the genre demands, turns a felt-unfair collision into a visible geometric question, which is exactly what shmup collision bugs require.
Capture performance and projectile count
Bullet hell games push enormous projectile counts, and performance is critical, because slowdown changes the timing the genre depends on, and a frame-rate drop can make a dodgeable pattern undodgeable or vice versa. Some shmups even use deliberate slowdown as a mechanic, but unintended performance drops are bugs that break the precise timing. Capture the performance state, the frame rate and frame timing, and the projectile count when a timing or performance bug is reported.
A report that the game slowed down or the timing felt off becomes diagnosable when you can see the frame rate and the projectile count at the moment, revealing whether a performance drop under heavy projectile load disrupted the timing. Performance and projectile count are tightly linked in a shmup, and a slowdown that only happens at high projectile counts points at a performance scaling issue. Capturing this context lets you find the performance bugs that break the genre demanding timing requirements.
Setting it up with Bugnet
Add an in-game report option and attach the bullet pattern state, player hitbox and collision result, grazing state, and performance and projectile count as custom fields, with a screenshot of the chaotic moment. Bugnet stores them so a shmup bug arrives with the precise pattern, hitbox, and performance context needed to reproduce a collision, pattern, or timing bug at the precision the genre demands.
Enable automatic crash capture and group identical issues into occurrence counts, watching whether collision or performance bugs cluster at particular patterns or projectile counts. Because bullet hell shmups are defined by precision under chaos and tolerate no imprecision, this precise-state capture is what lets you find and fix the collision, pattern, and performance bugs, maintaining the frame-perfect, pixel-perfect consistency that the exacting genre audience expects and that the entire experience depends on.
Build deterministic pattern tests
Bullet hell patterns are often deterministic, generated from parameters and seeds, which makes them ideal for deterministic regression testing. Each pattern can be tested by running it and asserting the projectiles spawn at the correct positions and timing, and each collision case from a captured bug can be replayed to assert the hitbox collision resolves correctly, since the precise state is reproducible.
This testing is essential because shmup precision is unforgiving, and a change to the pattern system, the collision, or performance optimization can break the exact behavior the genre requires. Running deterministic pattern and collision tests after every change catches regressions in the precision that defines the genre, and feeding captured bugs into the suite ensures a fixed collision or pattern bug stays fixed. For a game where pixel-perfect, frame-perfect consistency is the entire foundation, this deterministic testing of patterns and collision is what keeps the precise gameplay reliable as the game evolves.
Bullet hell is precision under chaos. Capture the exact pattern, hitbox, and frame behind every unfair hit.