A playtester died eight times to your boss and then said the worst possible thing: "I don't know, it just kind of killed me." Not "that second attack is too fast." Not "I couldn't find an opening." Just a shrug. That shrug means the fight has no readable structure — the player never built a model of what was happening, so every death felt arbitrary and every win felt like luck.
A good boss is the opposite. It is an exam for the skills your game spent the last hour teaching, and the player should be able to describe what they learned in a sentence: "You dodge toward him, not away." Getting there is less about inspiration than about structure — phases, tells, arena and a number budget you can actually tune.
A boss is a test, not a wall
Before you design a single attack, write down what the fight is testing. One line, concrete, in the player's vocabulary:
- "Can you use the dash-cancel under pressure?"
- "Will you stop mashing and wait for the third swing?"
- "Can you manage two threats on opposite sides of the screen?"
If you can't finish that sentence, you don't have a boss yet — you have a big enemy with a health bar. The test should point at the verb your game is actually about. Hollow Knight's Mantis Lords are a test of precise dodging and punish windows; Cuphead's bosses test pattern memorisation and sustained aim under movement. In both cases the fight interrogates one thing the whole game has been drilling.
The skill ledger
List the mechanics the player should already own by the time they reach this fight, and where they learned each one. If an attack demands a skill that appears nowhere in that ledger, you have two options: teach it earlier, or cut the attack. Introducing a new required verb inside a boss fight is the single most common reason a boss "feels unfair" — the player is being tested on material that was never on the syllabus.
Three phases, three jobs
Multi-phase bosses work when each phase has a different job, not just more health and faster numbers. A reliable default:
| Phase | Job | Design rule |
|---|---|---|
| 1 | Teach the vocabulary | 3 attacks, generous tells, long recovery windows |
| 2 | Combine and pressure | Same 3 attacks + 1 new one, shorter gaps, chained sequences |
| 3 | Final exam | No new mechanics, tighter spacing, one signature threat |
The hard rule is in phase 3: introduce nothing new. A move the player has never seen, appearing when they're at 20% health after a two-minute fight, reads as a cheat. Escalate by recombining, not by revealing.
Make phase transitions loud and unmissable: a stagger, a colour change, an arena shift, a music layer coming in. The transition is also the fight's only free checkpoint for the player's nerves — a one-second invulnerable pause while the boss repositions lets them breathe and reset their grip.
Tells: the readability contract
Every attack is three segments: windup → active → recovery. The windup is the promise, the recovery is the reward. At 60 fps, a workable starting grammar:
| Attack class | Windup | Active | Recovery | Player gets |
|---|---|---|---|---|
| Light poke | 12f (200ms) | 4f | 14f | Reactive dodge |
| Heavy slam | 30f (500ms) | 6f | 40f | Dodge + 2 hits |
| Unblockable grab | 40f (660ms) | 8f | 50f | Dodge + 3 hits |
| Arena-wide burst | 60f (1s) | 10f | 30f | Reposition only |
Two principles hold that table together. First, the bigger the punishment, the longer the warning — a one-shot grab needs the most generous windup in the fight, not the shortest. Second, windup silhouette must differ between attacks. If two moves share the same first 15 frames, the player cannot react, only guess, and your fight has become a coin flip. Pose the character differently, not just the particle effect: a raised arm versus a planted foot reads at a glance; two orange glows do not.
Give every tell a redundant channel — animation plus a distinct audio cue — so it survives a cluttered screen. If an attack must be fast, give it a pre-tell: a small flinch 200ms before the real windup.
The arena is half the fight
Designers tune boss stats for a week and never touch the room. The arena decides which attacks are threatening:
- Size sets the dodge language. A small room makes projectiles lethal and melee readable; a big room does the reverse.
- Pillars and cover turn a line attack into a puzzle. They also let a struggling player stall, which is good: a slow win is a win.
- Hazards should be optional, not ambient. Lava on the floor plus a knockback attack is a double punish for one mistake.
- Verticality gives the boss a reason to change tactics between phases without changing moves.
A cheap, powerful trick: change one arena property at the phase 2 transition — drop the water level, break the floor, light the chandeliers. The player's spatial plan is invalidated while their attack knowledge stays valid. That's escalation that doesn't feel like cheating.
The number budget
Don't guess HP. Derive it from a target fight length, then split it across phases.
Say your player's realistic sustained damage is 110 DPS (not their theoretical maximum — their actual output while also dodging), and you want a first clear to last about 90 seconds of contact time. Add roughly 30% for downtime: transitions, repositioning, and attacks you can't punish.
Effective damage window = 90s x 0.70 = 63s
Total boss HP = 63 x 110 ≈ 6,900 HP
Phase split (35/35/30) = 2,415 / 2,415 / 2,070
Then sanity-check the other direction. If the player's incoming damage is 90 per heavy hit and they have 400 HP with 3 healing charges, they can absorb roughly 7–8 mistakes across 90 seconds. Is that the difficulty you want? A fight that allows 7 mistakes feels like a tough-but-fair test; one that allows 2 feels like a rhythm game. Both are valid — but pick deliberately instead of discovering it in a bug report.
Keep these in a balance sheet alongside your other combat numbers, so a change to player DPS flags every boss that needs retuning rather than silently invalidating four fights. GameDesignerX's balance and economy sheets are a reasonable home for this; so is a spreadsheet, as long as it's the single home.
Fairness rails
Run every boss against this list before you call it done:
- No attack can kill from full health without a prior warning hit
- Every attack has at least one counter the player already owns
- No two attacks share their first 15 windup frames
- Offscreen attacks are impossible, or telegraphed by an onscreen indicator
- The camera never loses the boss during its own attack
- Death-to-retry takes under 10 seconds, with no unskippable cutscene
- The fight restarts at the phase the player died in, or the whole fight is short enough that it doesn't need to
- Heal windows exist: at least one recovery per phase is long enough to drink
- Phase transitions are legible without reading the health bar
That retry time matters more than any stat. A boss that kills you in 40 seconds and restarts in 5 can be brutally hard and still feel good. The same boss with a 25-second walk back will be called unfair by people who never reached phase 2.
Playtesting a boss specifically
Generic playtesting advice under-serves bosses, because the interesting data is per-attempt. For each tester, log:
- Attempts to first clear
- Which phase most deaths happened in
- Which single attack caused the most deaths
- Whether they could name, unprompted, what the fight wanted from them
Item 4 is the real result. If three testers out of five describe the same intended strategy in their own words, your tells and structure are working and the rest is tuning. If nobody can name it, more HP changes nothing — go fix the readability of phase 1, where the vocabulary is supposed to be taught.
Watch too for the signature of an unreadable fight: attempts don't get faster. A player learning a boss shows a downward trend in time-to-death over 5–6 attempts. A flat line means there's nothing legible to learn.
Keep one page per boss in your mechanics doc — the test sentence, the attack table with frame data, the arena diagram and the phase HP split — and attach the playtest notes to it. By the fourth boss you'll notice you've been reusing the same three tells, and that's exactly the kind of thing only written-down design will tell you.