Flukz — open-source shmup community resource open-source GPL devlog  ·  about
// indie shmup & game-dev resource

Shmup Design · March 29, 2026

Designing Difficulty Curves That Feel Fair

A game that kills you repeatedly is not automatically hard — it may just be poorly balanced. Difficulty curves should teach, then challenge, then reward. Here is how to design a progression that respects the player.

There is a useful distinction between a game that is hard and a game that is unfair. Hard means the player needs real skill, real practice, and real learning to succeed. Unfair means the player is failing for reasons outside their control, or for reasons the game has not given them the tools to understand. The goal of difficulty design is to be hard but not unfair — to make every death feel, on reflection, avoidable with better play.

The teaching arc

Good difficulty design follows a recognizable structure. Early in the game, introduce each mechanic or enemy type in a context where the player cannot be killed by it before they understand it. Show an enemy pattern in isolation before you combine it with three other patterns. Give the player a power-up before a section that genuinely requires it. This is not hand-holding; it is teaching with intention.

The classic example from shmup history is the mid-boss: a significant enemy encounter that appears once per stage, does not kill the player outright on a first encounter (except on hard mode), and then reappears as a regular enemy in later stages. By the time you face the ex-mid-boss as an end-of-game challenge, you have had ten encounters with it. Your death there is your fault, not the game's.

Rising difficulty that is not monotone

A difficulty curve is not a straight line from easy to hard. The best curves have peaks and valleys. A brutal boss encounter might be followed by an easier section that lets the player recover and feel competent again before the next challenge arrives. This rhythm prevents exhaustion and maintains the player's sense of progress.

In a five-stage shmup, a rough difficulty shape might be:

The valley in stage 4 (shorter stage length) prevents the hardest section from feeling like a grind before the final boss. The player arrives at the end boss with energy rather than depletion.

Multiple difficulty modes done right

Most modern shmups ship with multiple difficulty levels: Easy, Normal, Hard, and sometimes a Lunatic mode that is genuinely designed for players who have completed the game many times. The important design principle here is that each difficulty should be a complete, balanced game at its own level, not just the same game with more or fewer bullets.

On Easy, enemy health might be reduced, patterns simplified, and death consequences softened (more lives, checkpoints). On Lunatic, entirely new bullet patterns might be added, enemies might move faster, and the window for specific mechanics (like graze-based scoring) might be narrower. The design effort for multiple difficulties is significant — it is close to designing separate experiences — which is why many indie shmups focus on getting Normal mode right and treat Hard as a bonus.

Death that teaches

In a bullet-hell game, death is so frequent (especially while learning) that its educational value must be maximized. Several design choices affect how much a death teaches:

Each of these features turns death from a reset into a lesson. The player's frustration decreases when they understand what happened; their motivation to try again increases when they can see exactly what needs to change.

Playtesting is the only calibration tool

No amount of design theory replaces watching real players encounter your game. The designer knows every pattern by heart and cannot accurately predict which sections a first-time player will find approachable versus overwhelming. Structured playtesting sessions — watching players attempt specific sections and noting where they die, how many attempts they need, and whether they seem frustrated or engaged — provide the data needed to calibrate difficulty after the fact. Design the difficulty intellectually, then tune it empirically.