2100 Years After Humanity
Group Project | Programmer
Unreal Engine 5 | Blueprints
Unreal Engine 5 | Blueprints
I was in charge of programming the boss behavior and mechanics for this project. To do this, I utilized UE5's AI navigation, a behavior tree, tasks for the boss to respond to the tree's state changes, a blueprint interface, and an animation blueprint with state machines (all with visual scripting).
This was my first major project using Unreal Engine 5, as all of my previous development experience was with the Unity engine for personal projects.
The behavior tree is split into two segments: the first and second phases of the boss fight. This is determined by the current health of the boss, and is swapped using a selector.
The first phase has three distance based actions for short, medium, and long ranged attacks. The second phase only has short and medium, emphasizing a rush on the player.
Most tasks on the tree are ran based on blackboard keys that are being updated every tick within the boss blueprint, and are essential for the boss and the tree to communicate which branch of the tree should be running.
Chase Target - Walk towards the player until the target is reached.
Lunge - Jump towards the player and generate a shockwave.
Energy Cannon - Shoot an energy orb at the player and generate an area of effect hitbox.
Turret - Shoot bullets towards the player.
Light Attack - Initiate a light attack combo sequence.
Heavy Attack - Initiate a heavy attack combo sequence.
Grapple - Grapple the player towards the boss.
Charge - Run towards the initial player direction and delay for recovery.
Second Phase - Primes the blackboard keys for a second phase.
I implemented an interface blueprint to store events within the Boss that could be called by tasks within the behavior tree. These events were then given implementation within the Boss blueprint, as shown with the Turret event in the example above, and is essentially how I structured each of the boss's moves.