I've been thinking about boss fights in beat em bmup style games, what I like in them and what I don't. I had a bit of a writer's block trying to organize my thoughts & not making logical leaps but decided to just say fuck it and write a stream-of-consciousness post cause I don't want these posts to take up too much time. Hopefully it'll still be interesting, but be warned!
SSStartup!
From a design perspective, bosses start from a disadvantageous position compared to normal mooks. The combat of most bmup style games is primarily designed around normal encounters - group fights in levels, somtimes with relatively complex geometry. That's where they tend to get their dynamics, depth & exciting moments. Bosses, especially 1v1 duels, lack those expected elements and have to rely solely on their own AI and attacks for depth.
An attack is a state, a timer & a hitbox. It's a brief moment in time, often measured in a handful of frames, very discrete & isolated. This being the case, how are you gonna add complexity to attacks? I think there are basically 3 answers here - complicate what happens before the attack (setup), complicate the player's responses to said attack (response), or zoom out and treat the attack as part of a broader challenge (gameplan).
For a more concrete idea of what a [setup] heavy attack might look like, look at charging bull style of attacks, misdirecting them is all you need to do, once the attack state begins you're usually either cooked or in the clear. For a more concrete idea of what a [response] oriented attack might look like, you have to turn to Punchout and its many successors like Sekiro - your job is to recognize the type of attack you're dealing with, its moment of impact, then pick the right tool to respond to it. More complex games will have a range of more/less effective attacks. [Gameplan] complexity is trickier to describe, but it's something akin to streaming patterns in shmups - they aren't trying to kill you, they're trying to corner you. Or perhaps attacks that waste your time in games with harsh time limits. Successfully dodging an attack can be a loss rather than a win.
!!!ACTIVE FRAMES!!!
I've been feeling a bit burnt out on bosses because a lot of them neglect the setup, MASSIVELY neglect the gameplan, and focus a lot on response. Except instead of creating a bigger gradient of responses for fewer attacks, they just opt for quantity - more attacks in faster sequences with less downtime. The attacks are still isolated from each other, and the response is static(ish). But they happen in quick enough succession to still be engaging & challenging.
This style of design front loads its complexity. When a fight starts, you're assaulted with new moves, mixups, conditional variations and extensions. As this gets more complex & difficult, you'll have a lot of little chunks & bits of information to learn. But then once that information has been memorized, games remain in relative stasis - once you've figured out a good response to an attack, that's it.
Recovery...
This is almost the opposite of the kind of boss attack design I like. The problem is that [setup] & [gameplan] are unpalatable to a huge chunk of players and go against some important modern game design principles such as fairness. If an attack is setup heavy, you can fail before you even saw the threat. If an attack is gameplan heavy, you can fail even if you feel like you "did everything right". So developers are trapped in a fairly narrow range of attack design. On top of that, [responses] become rather meaningless without the meta - does it truly matter if you iframe dodged, spacing-dodged or parried an attack if you can't really lose anything, only delay your win?
In my opinion, good boss design prioritizes setup & gameplan, treating responses as a tool rather than an end goal. Games should keep number of attacks as low as possible but integrate them & the player's actions as much as possible. All this is abstract, so let me give a clearer simple example :

This is the power plant boss of Gravity Circuit. This room layout might be familiar to anyone who has played Megaman. The boss has a bunch of attacks, but one of the most interesting aspects of the fight is that whenever he does a jump attack or shoots projectiles, the platforms light up and damage you. As a result of this very simple arena-attack integration, the way you read his attacks and respond to them will vary - if you're on the same platform he's about to attack you will have to dodge, if not then you're safe. If you're close to an edge you can drop down, otherwise you'll have to jump. If you're close to him, you can run to his other side as he's landing and dodge that way, if not then you have to move back. There's a lot of variety and micro-adjustments that have to be made, despite this being just 1 attack.
It's not difficult to figure out how to make this even more complicated. IIRC the boss has no active hitbox so his jump arc isn't that relevant to your dodging calculations and he can't corner you. By simply adding an active hitbox and increasing its size, you can complicate both the setup and gameplan layer of the fight. By adding a strict timer, how you dodge will mean something since you will be able to lose by not outputting enough damage. And best of all? All this variety is almost pure in-the-moment decision making. Learning the attack and properties is trivial, learning how to respond well at all times is not. You're figuring out how to solve the puzzle, rather than looking for puzzle pieces.
Having extra mooks during the fight accomplishes very similar goals - how you dodge a boss' attack will vary based on situation, and you will be rewarded for your situational awareness. Having attack overlap also does something similar - the previous attack and your position will dictate the next set of actions you can take. It's integration, baby!
My Forbidden Boss
Since I'll probably abandon this idea in the full game, I wanna talk a bit about the first boss I designed for Armed Decobot and the cool idea I have, which would probably be too annoying in practice.
The boss was (and still is) a giant mech that essentially plays Punchout with you - he has a left jab & a right jab. The attacks themselves are very simple with obvious solutions - just move in the direction opposite of where the jab's coming from. Since this is really simple, I was thinking how to make this more interesting - the solution I came up with going all in on the setup.
I gave the boss some movement AI. The boss would track the player in a way that'd make the attack nearly undodgeable & predict the player's movement direction during windup to prevent the player from baiting the attack too easily. Then I added a whole bunch of layers to this - accel/decel and some randomization to the boss movement. The idea was to get the player to wiggle back & forth, observing the boss' movement & manipulating it. Then, when they successfully misdirected the attack, they'd have to dodge at the last second. Basically since the attacks themselves have no depth, I wanted the depth to come from the really granular tricky spacing-based interactions between the player & boss.
Unfortunately, not only does this feel like total BS to new players who will not understand how this attack is even supposed to be dodged, but because there's a bunch of obscure complicated layers to the boss movement, learning how to manipulate it comes down to getting a feel for it rather than anything more deliberate.
It's a discouraging, "cheap" feeling nightmare, so unless I figure out how to implement this in a way that feels fair & lets players play with intentionality, it will only exist as a cohost blog entry.
