Summary:

 

The gameplay is built around the player character having a jetpack for extra movement and the boss abilities are designed to make the player move.

The boss has two phases which I created using Behaviour tree in UE4

As a reference on what kind of boss would be a good fit for a first person fight I looked at the first boss from DOOM 2016. I iterated the gameplay during the process and had to cut away boss abilities inspired from DOOM because they did not fit with the new jetpack gameplay. 

Goal:

 

Creating a boss fight that is built around the player having a jetpack. The goal with the jetpack is to make the player feel that the fight is even, although the boss has much more firepower.

Specification:

  • 4 weeks - half time

  • Unreal Engine 4

  • Visual scripting

  • FPS

  • Using assets from Epic's free marketplace

Gameplay

The goal with the gameplay was to make the player be in almost constant motion and not just mindlessly running in a circle. Shift between moving to attack and moving to avoid being hit, kind of like a cat and mouse flow. To keep the player on their toes as they are unsure if they should engage or keep the distance, the boss's actions force the player to move differently.

I keep the fight's flow changing by protecting the boss with shields. The player must therefore move around the boss to get a clear shot. In order to not have the player stay close to the boss and easily get to the weak spot, the boss has attacks that force the player to keep their distance.

Phase 1

In Phase 1 the player gets introduced to three abilities. They shift between making the player engage in combat and disengage. It also teaches the player that the boss shield changes depending on which attack the boss will use.

Wave Attack

Player Engage

The goal with the attack was to teach the player that the boss can be staggered. Between each wave is a delay so the player has to go above one wave and then under the next. I took this approach since a player in midair would have a hard time avoiding the waves if they came all at the same time. It's to encourage the player to move around with the jetpack and avoid punishing them for it.

Charge with Knockback

Player Disengage

The purpose is to make the player want to keep the distance. To be wary of getting close to the boss and not just avoid the attacks. That's why the Boss charges and not just shoot a powerful attack. At first, there was no knockback but that only ruined the flow and made the next attack unfairly close to the player. There had to be distance to the boss even if the player moved or not.

Shoot at Player

Player Disengage

The reason for a regular "shoot at player" attack was to create a break for the player. A break where as long as they move around, the boss will have a hard time to hit them. It's not really an attack to make the player fully disengage but something where both parties shoot at each other before the pacing gets faster again. 

Phase 2

In Phase 2 the player gets introduced to a new attack where the boss takes 4 yellow shields around him. It also takes the earlier abilities and builds on them. Except for the red shield charge, that stays the same.

Advanced Wave Attack

Player Engage

To continue building on the wave attack I chose to limit the player's ability to get around the boss. They already knew where the weak spot was so the way there had to be built upon and be made more interesting.

Advanced Shoot At Player

Player Disengage

The wider spread is to make it harder for the player to avoid the bullets and make them react quicker than before. 

Homing Bullet

Player Engage

The goal was to test the player, to make them use everything the boss fight had taught them. To master the jetpack and timing but also understand how to get around the boss's shield. 

Scripting

The boss behaviour tree in phase 1

The player's jetpack

  • Letting the player jump once before starting the jetpack

  • Only start the jetpack if there is fuel

  • Stop using the jetpack when there is no fuel

  • Regain the fuel when the player is on the ground 

Closing Thoughts

I succeeded with my goal of creating a boss fight where the player feel powerful because of their jetpack and higher mobility. I also believe I managed to create a good base for an fps boss. Juice the abilities a bit more and it could be really cool.