JUSTIN SALANGA

Game Developer / Software Engineer

LinkedIn GitHub CV/Resumé
Return Home

Sunset Hollow

Developed in Unreal Engine 5.3.2


This project was created so I can learn specific Game Development practices and awesome systems from Unreal Engine 5.

Gameplay Ability System

The Gameplay Ability System is an incredible framework for Unreal Engine that allows developers to create organized and modular classes to handle the use of abilities. The main key components of the Gameplay Ability System are:


Enemy Behavior Tree

The Behavior Tree of the Enemy The Enemy contains a Perception System based on Sight. It uses a sight radius 360 degrees to detect if a player (which contains a Sight Stimulus) is within range.

  1. First checks if the Enemy is currently in a Damage Animation.
  2. If they are, then just wait until it is finished. This allows the player to interrupt the enemy by damaging them.
  3. If they are not currently getting damaged, then the enemy checks if the player is within the perception. a. If the player is not within range, then the Enemy will randomly move within a navigatable space within the nav mesh while moving at a slower speed. b. If the player is within range, then the Enemy will chase the player at a faster speed, and cast a random ability when the player is within striking distance.

Navigation System and Nav Links

Since the character's controls are not directly controlled by the player (using arrow keys, or WASD, or a joystick to move), the character needed to use the navigational mesh and AI pathfinding to move around. The design of the game needed the character to be able to jump from one navigatable mesh to another. Unreal's basic Nav Link Proxy will automatically have Nav Agents drop down to lower nav meshes. I cancelled that and wanted to create my own Jump system. I added an interactable actor that spawns on the Left Nav Proxy and created a jump event once the interactable actor has been interacted with.

Justin Salanga 2024