In this build efficiency is key. I created a "Room Activation" blueprint and an enemy spawner. Basically, the level designer places the spawner nodes in the environment within the box extent of the activation. The spawners are parented to it, and ONLY spawn when the player enters the box. Then all actors are destroyed on room transition, and only the spawners parented to the next activation spawn enemies.
I added a finisher move that is required to finish off enemies. The player must charge it up by holding the attack button for a few seconds, and once the player lights up, the charge is ready. Releasing the attack button sends the player into a flurry of sweeping motions.
This build added animations. I used Mixamo as we did not have a dedicated animator on the team. Adding in the animations was easy, simple checks were used to determine what animation state the player was in. A blend between upper and lower body joints was also implemented so the character could attack on their upper body while moving their legs on the lower body.
Save Game Progress
I implemented a save game system that works with checkpoints around the level. When activated, the blueprint will chick if a save game exists, and either overwrite or create one. It will take all of the players progress variables and store them to save game variables. Then, when the player loads progress, the values of the variables in the save are transferred to the variables of the player.
The crawl was changed to a slide in order to make gameplay more dynamic. Being an ability that needs to be unlocked, it allows the player to get under spaces otherwise unreachable. In the BP, the Slide starts by running it's usual checks to prevent code conflicts. It also checks to make sure the player has momentum before activating. It then activates dust particles for the slide, disables input, reduces collision box size, reduces friction, and launches the character. A line trace checks to see if there is enough room for the player to stand, if not, the slide will continue to run until this parameter is met. It then begins the process of returning the player settings to normal. Players can also use this ability to slide under foes.
The Teleport function allows players to attack foes through walls. The player is launched into the air, where a projectile is repeatedly shot to look for an enemy overlap. If the player aims at the enemies's hitbox, a marker BP called "TPLoc" will appear, becoming an anchor for the player to teleport to. In our BP here, the first time the player hits the Teleport button, they are cast into the air, a function in the background is turned on spawning the projectile, and gravity and velocity are set to zero to hold the player in place. When pressed again, if the player has a valid anchor, they will teleport to that anchors position.