AI Game Dev Search

Why your boss feels cheap: boss battle design with phases, patterns and three more rules

Five boss battle design rules that make a fight fair and learnable: phases, a repeating pattern, punish windows, escalation and a readable arena, each shown side by side.

Tested with Claude Code 2.1.296 · Opus 5.5

A boss health bar split into three phases, comparing a random attack sequence with a repeating pattern that ends in a lit punish window, above five coloured trick labels.
What we asked“Make a web page that demonstrates the five boss battle design rules that make a boss fair and learnable one at a time, so anyone can see and feel each one within a few seconds. For each one, show the same short moment side by side: without it on the left, with it on the right, playing in a loop, with a caption that says what just happened and a replay button. Where it helps, let me play the moment myself. It will sit inside a blog post about 720 pixels wide, so it has to look good at that width and on a phone. Also make each one viewable alone with ?trick=<id>&solo, using these ids: phases, pattern-loop, punish-window, escalation, fair-arena. Use one simple boss for all five, and show it compressed to a few seconds per side, with the left side breaking only that one rule. Use the internet freely for better results: free CC0 art, fonts or small libraries (for example Kenney's CC0 assets) are welcome; download anything you use into this folder so the page works without outside links, and list each item with its licence and source in CREDITS.md.”

What happened

  • Loaded the boss-fight skill
  • Downloaded two free Kenney fonts and drew the golem, the player and the arena in code
  • Wrote one shared boss simulation and checked every clip without a browser before drawing anything
Claude
Each rule is one on/off switch, so the left side is the same boss with exactly one switch off. A stand-in player plays both sides: it reacts to what it can see, and needs about half a second to recognise an attack it didn't predict.
  • Added Play it yourself on every card, with keys and touch buttons
  • Fixed two bugs that testing found: very quick key taps were ignored, and the touch buttons showed under both sides
  • Checked screenshots at 760 px, 375 px and in solo mode, in Chromium and WebKit
Claude
With a 2.5 s stun, the player walks in and lands a full 3-hit combo for 9 damage. With a 0.5 s opening, it lands nothing. In the final phase the gaps are 28% shorter, but no wind-up drops under 0.4 s.

You lose to the boss, and you don’t know why. An attack came from nowhere, the fight went on forever, and the next try felt just as random. That is a boss that feels cheap. A good boss is an exam on what the player has learned, and every loss should teach something. Most Cuphead bosses, for example, have three phases (Cuphead Wiki).

Every demo below uses the same golem with three attacks: a ground slam you jump over, a beam aimed where you stand, and falling rocks you step between. The right side has all five rules on. The left side is the same boss with only one rule off. A stand-in player fights both sides, and the strip under each arena marks every attack OK or X. Play without and Play with let you fight it yourself: arrow keys or WASD to move, Space to jump, X or J to attack, or the touch buttons on a phone. Play mode uses double damage so a fight stays short.

1. Phases

Split the health bar into 2 to 4 phases, for example at 66% and 33%. Each new phase adds or swaps one or two attacks, and you announce it with a short pause where the boss can’t be hurt and a change of colour, pose or music. The marks on the bar also show players how far they got, which makes a loss feel like progress. In our demo the boss pauses for 1.3 s, turns orange, shows “PHASE 2” and starts dropping rocks. On the left, health passes 66% and the same slam just comes again.

2. A pattern that repeats

Give each phase a fixed order of 3 to 5 attacks that loops, with little or no randomness: swap two attacks at most, never pick from everything. Mike Stout, who designed bosses for Ratchet & Clank, describes a “Business as Usual” part of a boss fight where “the player can get used to the boss’ pattern” (Game Developer). Psychonauts 2’s bosses were reportedly built the same way: telegraph, attack, recovery, and only light randomness (Game Developer). In our demo, the second time through phase 2, the player knows rocks, slam, beam is coming and dodges all three. With random picks it takes 2 hits, and the left side changes its random order every loop, so you can’t learn it either.

3. A punish window

After each loop, or after one specific attack, open the boss up: stunned, with a weak point showing. Make it long enough to walk in and land a full combo, about 2 to 3 seconds. Combat designer Mike Birkhead puts it plainly: “Anything less than one full combo is not enough,” and the player also needs time to reach the boss (Game Developer). In our demo, a 0.5 s opening closes before the player arrives: 0 hits. A 2.5 s stun with a glowing weak point gives a full 3-hit combo for 9 damage.

4. Escalation

Raise the pressure as health falls: gaps between attacks about 15% shorter per phase and one extra attack at the end. But never let a wind-up get shorter than about 0.4 s, or players can’t react any more. Mike Stout points to Ocarina of Time, where “Ganon gains two extra attacks” in the final phase (Game Developer). In our demo, at 20% health the gaps are 28% shorter and a double slam closes the loop: 4 attacks instead of 3. On the left, the boss keeps the same 0.55 s gaps it had at full health.

5. A fair arena

Keep the floor clear, keep every attack on screen and out from under the HUD, and make each hitbox match its drawing. Anything in the arena should be clearly usable or clearly scenery. Mike Birkhead’s rule is “Show what matters, and only what matters”: in God of War: Ghost of Sparta, players kept trying to use a crane wheel in the Scylla fight, though it did nothing until she went down (Game Developer). On the left of our demo, a slam wave hides under a score panel, and the beam hits a player who stepped clear of its drawing (the real hitbox is shown dashed). On the right, the same two attacks are both dodged.

Is it learnable?

A hard boss is fine. A boss where players don’t get better is not. To check, log every hit the player takes with the attack’s name and how many times they had already seen that attack. With the rules on:

  • Hits per attack fall as players see it more often.
  • No single attack causes most deaths. If one does, its wind-up is too short or it is hard to see.
  • Each attempt gets further than the last.

If the fight drags, look at the punish windows before you lower the boss’s health. Every attack also needs a clear wind-up, which is its own topic: telegraphed attacks.

Add it to your game

  1. Copy the skill at the end of this page into your project.
  2. Ask your agent: “Make my boss fight fair and learnable.”
  3. Play it, then tune in plain words: “The stun in phase 2 is too short to land a combo.”

Fonts in the demos: Kenney Future and Kenney Mini by Kenney (CC0).

The skill that made it work

This is the whole skill we gave Claude Code. Copy it into your project and ask your agent to make your boss fair. The last step logs every hit with how often the player had seen that attack, so you can check they are learning.

boss-fight
  1. Find the boss: its health, its attacks and their timings, how it picks the next one, and its arena.
  2. Put every rule behind one named switch in a single settings object, all on by default, so each can be tested on its own.
  3. phases. Split the health bar into 2 to 4 phases, for example at 66% and 33%. Each phase adds or swaps one or two attacks. Announce it with a 1 to 2 s invulnerable transition and a change of pose, colour or music.
  4. pattern-loop. Give each phase a fixed sequence of 3 to 5 attacks that repeats, with at most light randomness (swap the order of two attacks, never pick from everything). Each attack has a wind-up, the hit and a recovery. Give players time to get used to the pattern before it changes.
  5. punish-window. After each loop or one specific attack, open the boss up: stunned, weak point showing. Make it long enough to walk in and land a full combo, about 2 to 3 s. A combat designer writing on Game Developer: anything less than one full combo is not enough.
  6. escalation. Raise the pressure as health falls: gaps between attacks about 15% shorter per phase and an extra attack at the end, but never a wind-up under about 0.4 s. In Ocarina of Time's final fight, Ganon gains two extra attacks in his later phase.
  7. fair-arena. Keep the floor clear, every attack on screen and out from under the HUD, and the boss's hitbox matching its drawing. Anything in the arena is either clearly usable or clearly scenery: "Show what matters, and only what matters."
  8. Measure it. Log every hit the player takes with the attack's name and how many times the player had already seen that attack. With the rules on, hits per attack should fall as that count rises, no single attack should cause most deaths, and each attempt should get further than the last.

Save it as .claude/skills/boss-fight/SKILL.md in your project. Or connect your agent and type /aigamedev: it loads this skill with its reference files and the results from this post.