Designing and Creating a Minecraft Boss Fight
By Daricio and Shells124, mapmakers of “The Legend of Steve”.
I will be listing general suggestions and examples here. If you want more information on how to make the specific pieces of code work, don’t worry, I plan on also posting guides for some basic armor stand work, particle effects, sound effects, and possibly others. For this post, I’m not going to go into talking code.
How are you going to make your boss look unique and interesting?
The easiest solution is to create a custom resource pack. It’s much easier to build a big dragon or a tentacle monster if you can retexture blocks to look like specific body parts. My sister and I, however, opted not to have a custom resource pack when making our map, so if you want more information on creating boss creatures in this way, you’ll have to look to other sources.
A popular boss fight that has been created many times in the Minecraft world is a large structure or pixel-art boss set far back out of reach of the player. Often, this involves shooting at targets on specific parts of the boss, and the boss firing back using TNT or various projectiles. This works pretty well, since you don’t have to worry as much about players breaking things, as it limits the player’s contact with the boss itself. The main reason that you might want to avoid making a boss like this is simply because, as I mentioned, it’s a fight that has been made and remade a lot, so it’s hard to do something original. It also has very limited ways for the player to hurt the boss and for the boss to hurt the player: long range weapons only.
It is always tempting to simply build a giant structure of some sort (Like a big tree, or a kraken) to be your boss. This can work okay, but this boss has the problems of a) not moving and b) you having to come up with a way for the player to attack the structure. If you want to play with setblock, fill, or clone commands to animate your boss structure, feel free to try. Just know that doing so will cause a ton of lag.
Armor stands are quite fun. These things can be difficult to play with, but you can do a lot of very useful things with them. In our map, we used an armor stand for our Skullkid fight, where the boss itself was the armor stand. We had at least 15 different poses for him to be in, and animated his movement by constantly summoning a new pose, killing it and summoning the next pose, and so on. Creating the poses was harder than you’d think. We made heavy use of the internet tool MCStacker (a site that generates Minecraft code for you), and quickly discovered that, even using that, trying to put in numbers to create a specific angle for the arms, legs, and head was tedious and often frustrating. The appearance of this boss was great when it was done, but I would recommend this only if you’re willing to spend time doing lots of tweaking and testing to get the look you want. One warning, though: make sure your players can’t steal stuff off of your armor stands.
Learning how to make good particle effects is a great asset when making a good-looking boss. Be careful not to spam too many particles, as they can be distracting, but when used as accents for your boss fight, particles can add a lot to the visual appearance. For example, we used white swirl clouds to point the way to Skullkid’s next location when he teleports. Try to find a good balance for your specific boss.
Of course, sometimes spamming particles can make an okay boss in and of itself, such as the flame monster in our map’s fire temple. We discovered that you can use the execute command to create particle effect fields around specific mobs (or players). Combining this with a fast fill clock resulted in the crazy flaming beast, which was simply an invisible zombie riding a mine cart around a track with crazy amounts of lava particles following it around. Experiment freely with different kinds of particles placed on, above, to the sides, and other places around your boss mob. You can get some pretty cool results.
Keep in mind that you can manipulate sound effects in the game as well. Not only can you use command blocks to play the sound files from regular Minecraft, you can also adjust the pitch and volume of the sounds, and in some cases this results in sounds much different from the original. (Want a good squeaky-toy sound effect? Play mob.villager.yes with the pitch really high and repeat it a bunch.) You can also create your own sound effects with a custom resource pack.
Not all boss fights have to be big, elaborate contraptions, either. Sometimes, all you need is a single (or a few) modified mobs. Using command blocks, you can summon mobs with different armor, different health levels, different weapons or attack power, or even mobs riding on other mobs (riding on other mobs riding on other mobs riding on other mobs). Potion effects can be given to them as well, which can give some interesting visual effects (For instance, an invisible powered creeper is really cool-looking). These things can be used for full boss fights or for mini boss fights, depending on the difficulty of the thing you’ve created. Just keep in mind that simply having a basic mob with a ton of health can be boring to fight, so adding other elements, such as extra attacks or teleportation, is recommended, especially for the full boss fights.
How does the boss hurt you?
The absolute, number one thing I’m going to stress here is that throwing hundreds of mobs at the player over and over and over again is only interesting for so long before the player will want to simply rage quit. Yes, boss fights usually work best with other mobs added in to fight at the same time, but only if they come in small doses. In addition, the boss itself should be attacking the player in ways that are separate from whatever other mobs you add in.
Always keep in mind that it is very easy for a mapmaker to accidently kill all their players by making their maps impossible. Adding or taking away some of these extra mobs to the fight is a good way to alter your difficulty level. This was true with our Spaz fight, where I decided to add endermites to help Spaz when people complained that he was too easy. On the other end of the spectrum, our fire temple boss frequently has way too many zombie pigmen coming at you all the time, and we’ve had to decrease their spawn rates several times to make sure the fight could actually be won.
But let’s talk about how the boss itself will attack. Minecraft has a pretty wide range of different kinds of attacks that their mobs can make, and you can use command blocks to simulate basically all of them. From creeper/TNT explosions to blaze fires and everything in between, you’ve got a fairly wide range of options to choose from. Sometimes it’s difficult to aim these things properly (ghast fireballs are one of the glitchiest things I’ve ever worked with) but you can instead try to simply blanket an area with a widespread attack instead of trying to aim specifically at the player.
It’s also possible to summon invisible, silent, immobile mobs that can still attack, usually with ranged weapons. Adding these to the walls or to pillars can make it look like the attacks are coming from the columns. A blaze in each corner of the room, for example, would do a pretty good job of attacking the player fairly consistently without being overwhelming.
Even things that aren’t technically “attacks” can be used as such. For instance, our fire temple boss will occasionally summon lightning strikes directly underneath itself. Lightning does a lot of damage, so we made sure to add in a warning sound effect leading up to the strikes, and the result was cool.
If your boss is a modified mob, then attacking with them is fairly straightforward, since they just attack like normal. You can add in other effects, such as teleporting them or switching their weapons around during the fight (which is what we did for the Herobrine battle) just to spice them up a little more.
Sometimes additional attack methods are necessary even for mobs that can already attack. For instance, we had some trouble with our Spaz fight. Due to General Spaz being a creeper, obviously we couldn’t just let him use his default attack, or he would explode and the battle would immediately be over. We solved this dilemma by summoning him riding on an invisible silverfish so that it could attack for him. It’s a bit out of the ordinary, but sometimes stacking mobs together can create some very interesting effects. Experimenting with whatever you can think of is key to finding something that works well with your boss.
How do you hurt the boss?
Of these three questions, this one is probably the hardest to answer. If your boss is a mob, then the player can just swing a sword at it, but if your boss is an animated armor stand (which dies every few seconds anyway) or a big structure made of blocks, it takes a bit more thinking to come up with a way to kill it.
Buttons, levers, pressure plates, and other redstone activation things are some easy ways of putting “weak spots” on your boss that the player can activate. In fact, unless you use mob/player/entity sensors of some sort, these are basically what you’re going to have to use somehow. The main problem with them is that by themselves they aren’t very exciting. Going around and hitting switches (with arrows or manually) feels more like puzzle solving than that you’re actually fighting something. Don’t let that stop you from using them, but try not to base the entire boss fight on these simple devices.
The first boss I attempted to make was basically an iron box with faces on all four sides. Pressing a button at the base would give the player jump boost and open up a panel on the top of the face box, revealing another button. Hitting that scored a ‘hit’ on the box. Waiting too long would cause the top to close back up. I thought it was pretty clever while I was making it, but once it got to actual game play, the only thing that made it at all fun was getting to jump really high. Pressing buttons just isn’t satisfying by itself.
When we created Skullkid, we decided that we wanted the player to use their bow and arrows for the fight, so he was designed to be well out of melee reach of the player most of the time. Instead of buttons, we were going to use the testfor command to search for arrows in a radius around Skullkid, but quickly ran into weird problems. Eventually, we had to give up on using that particular command and instead added in an invisible iron golem in the same spot as the armor stand and had a sensor testing for whether or not the golem was still alive.
Keep in mind that not only is it hard to come up with ways to hurt the boss, running into glitches sometimes means that you have to come up with completely different ways to hurt it. Because of this, make sure you keep your ideas flexible, so that changes can be made where needed to fix bugs.
When we started building the General Spaz fight, we had one moment where we had everything built, and then realized that there wasn’t a good way for the player to actually attack him. He was up in a tower out of reach, and we didn’t want to modify the design too much to compensate. Eventually, we had to fall back on one of the simple ways of hurting a boss by giving the player a convenient button to hit that would blow up the tower. We decided to have a phase two for Spaz so that the final boss wasn’t just killed by something that silly. For that second phase, the player could just hit him with a sword like a normal person, since he was simply a modified mob.
Those are the strategies we used for our bosses, but I’m sure there are plenty of other ideas out there. You may even have some ideas of your own. If so, go try them out! And above all else, have fun playing Minecraft.