So bosses need abilities — special activated powers they can use periodically. I mean, they don’t have to have them, but it would feel silly if bosses are just big enemies that don’t do anything special. Players have certain unsaid expectations of boss encounters and it’s just plain old not fun otherwise. I already made enough framework before to support it and now I’m just re-justifying to myself the time investment needed.
I should likely start with something relatively simple and reusable. The less things I hardcode and the more I use existing features, the better. One relatively simple thing is to just make the boss fire a lot of bullets, just in some controlled way rather than just “towards player”. The best (in the sense that the player can learn to avoid it) pattern here is a predictable one and I will do a barrage of bullets in an arc. I will define one of my special abilities as that:
And I will make it go in a certain arc — starting on one “side” of the player and “swiping” to the other:
I will also not hardcode any special bullet logic, but just have the boss equip a temporary second weapon for the ability and fire “as normal”, in this case a fast-firing unlimited bullet machine gun:
And after some tinkering, I get the boss doing this during their activated special:
The timing is determined by special’s duration — the boss just picks an angle proportionally within that range. The direction on the “wave” is also picked randomly each time. I might need some props or walls in the room to make sure the player can actually hide.
(We’re back to the good old “I want to make feature X, but first I need features A, B, C, C1 and C1b for it”. I have lots of ideas for boss abilities, and at the same time I have none†. For example, I want to make the boss drop a turret in the room. It would be useless on its own, just mostly annoying. But the boss would keep dropping them and eventually they would add up. So this is something the player needs to take care of (or earn an achievement for killing the boss without doing so). But now I need to implement turrets… At its core, it’s just the boss spawning enemies. So may be I can simplify it first and make the enemies just do something special, like be little explosion bots that zero in on the player and explode. The player would have to shoot them before they get close. But then again, now I need new enemies, explosions, some sort of feedback for this. So I could just spawn a plain old boring regular enemy from the boss that does nothing that normal enemies don’t do. Well, how boring. †So that’s not really something I would say is an “idea”.)
But I have to implement something, so mob spawning it is:
And this works nicely, I can even add some effects to it:
But, as always, there are some hilarious results with this, for example, I didn’t check if the boss can see the spot where they want to spawn the new enemy:
And there’s no limit to mobs (not that I care, because there’s a limit to player’s health and ability to avoid these):
This does mean that there could be way too many dead mob part props slowing the game. I don’t really have a nice solution for this, so I’ll have to deal with this later… as with so many other things.
I should do a third unique-ish ability. I can already reuse the above two in variety of ways, but I’d rather make a completely new one first. I think I will add something a boss does directly and the typical example is to charge the player. I have the physics for this and I can do all the maths and stuff easily enough. So it’s a matter of parameters and timings, lots of them:
And this works cool
I do need some additional damage rules for the player. The problem is that the player can get instantly killed if they stay in the path of the boss, because they will get damaged. In fact, that will happen with any source of damage. What I want is a short invincibility period for the player (like most games do):
I don’t really know how to balance this. Damage period of the player is something I can “upgrade”, letting the player receive less punishment from burst damage. But it has to then be low to begin with then. Which means, there has to also be a periodic damage for the charge:
And that should do it nicely.
Okay, so I finally made some boss abilities. This is… a complex design decision. While I need cool abilities, each one takes a lot of time to do. I have to balance it being worth it. I’ve been thinking how to distribute my abilities for bosses. There’s no way I can make enough for every boss to have multiple ones. And I don’t think it is necessary. I’ve made bosses have 3 “stages” and specials for each, but I could just use the same ability, just more frequently or more powerful versions of it. Basically, each boss gets their own arch-type ability, and the player can learn which bosses have which one. May be the last boss can have more. But I’ll get to that later.