Wake Up Devlog Week 10
- Tristan Atkinson
- Nov 25, 2024
- 2 min read
Updated: Apr 20
At this point, the baseline for each of the Game’s encounters were working on a basic level- all of them except the Boss encounter.
Creating the boss encounter was quite simple, as at the end of the day it is a simpler version of the Combat encounter, as I only need to spawn a boss room, rather than multiple connecting rooms like in the combat encounter.
From the “BP_RoomBase” actor I used for my combat encounter rooms, I created a ‘Boss room Base’ actor. The layout for the baseline includes a starting room, similar to the one in the combat encounter, with a larger room connected to it. There is an exit point scene component placed in between these rooms, as the blueprint I will use to spawn boss rooms will place a door on the exit point of whatever boss room it spawns.


Now, I needed a boss to be spawned in the boss room. Since I’m using the same spawning mechanic as the combat encounter, all I needed to do was create a boss base class, and place an ‘Enemy Spawn Point’ in the Boss room base to assign bosses to be spawned onto.
The first boss I decided to create has an incredibly fast rate of fire and projectile speed, making dodging its fire without using the cover placed around the boss room incredibly difficult. To make up for this, once it has been firing for a certain amount of time, it will ‘Overheat’, in which it will not be able to attack for several seconds, giving the Player a window of opportunity to attack it.
I created simple logic for adding overheat% on the enemy character base, in case I want to include this mechanic on any new enemies in the future. It involves two floats:
Overheat%
Overheat to Add
Whenever the enemy uses a ranged attack, the latter will be added to the former, and clamped between 0.0 and 1.0. (By default ‘OverheatToAdd’ is set to 0.0 so that by default, enemies do not accrue overheat).
I then created a decorator and task for my enemy behaviour trees, which I used on the gatling boss.
BTDecorator_IsOverheated: Checks if overheat% is greater or equal to 1.0
BTTask_ResetOverheat: Resets Overheat% to 0.0

With this, the basis for the boss encounter was created, and all that was needed was to implement it into the progression loop.
Comments