
Crimson Dust is a fast-paced hack and slash game in a wild-west reimagination of purgatory where the players will play as Cassian, a half-angel outcast.
RESPONSIBILITIES
* Build a fully functional AI enemy framework with varied melee and ranged enemy behaviors.
* Work with other developers to help push the combat and the enemy systems forward.
* Work with both Blueprints and C++ for easier design access.

Project Specifications
* Engine: Unreal Engine, Singleplayer, C++, Blueprint
* Team Size: 20+ (studio) / 4 (programmer)
* Time: Ongoing
* Platform: PC
* Genre & Keywords: Hack and Slash, Stylish Combat, Hell Aesthetic, AI enemies.
GAME OVERVIEW
* A stylish Hack and Slash game with an emphasis on fuild, fast paced, anti-button mashing combat experience.
* Built in Unreal 5 with an in house GAS implementation and blueprint support.
* Focsed on creating a aesthetic first, coehesive and fun gameplay experience.
Gameplay scene showing off the combat system. Enemies are set to slow/for demo purposes.
INITIAL RESPONSIBILITIES
Here's what my initial responsibilties as a developer seemed to be after analysis of the current team;
As a developer, they were looking for someone with AI unreal engine expertise and be able to be flexible with their skills in both C++ and blueprints to increase the speed and efficiency of the dev team.
Before starting work on my system, here are some of the Challenges/Questions I had to answer/approach:
* Have enemies be dynamic, and not just follow the same behavior patterns
* Have the "State of battle" change based on what the player does and doesn't do
* Make this system flexible, and account for different combinations of enemies, and different enemy levels.
All of these have one solution that i came up with. This is the bespoke(?), amazing all encompassing system im calling ...
CRIMSON DUST AGGRESSION SYSTEM
* The crimson dust aggression system or the CDAS was born out of these every changing requirements of the enemy behavior. Here is the recreation of the original draft of this system, whipped up to explain the basic barebones.
THE PROBLEM
The enemies being "similar" was something that came up after the initial implementation. All of them would either strafe around our main character, or attack at the same time, irrespective of their start distance.
THE SOLUTION
CDAS is a token based system. What this means is that every “encounter” will have a given pool of tokens from which the enemies can “buy” their aggression. These tokens are what determine how many enemies, can be aggressive at a given point. And this is determined based on many different factors.
Here are roughly the steps taken to figure out what the enemy state is;
1. Have enemies be dynamic, and not just follow the same behavior patterns
2. it goes through every instance of enemy in the level, and calls for them to calculate their own aggression points, based on a few parameters
2.1 Distance from Cassian - how far away a unit is from cassian has the MOST weight on it’s aggression system.
2.2 Angle from the camera - Depending on how “close” the enemy is to the center of the camera, it will be decided if the enemy is counted or not. **Enemies that are behind the camera are excluded from this tick.**
2.3 Type of enemy - melee enemies have a higher chance to be aggressive
2.4 If the enemy has been soft locked to or not - recently soft locked enemies are given priority.
3. Once this has been done, enemies are sorted out based on these points with the enemies with a higher aggression put on the front.
4. Starting from the highest aggression enemy, enemies go one by one and “buy” an aggression token. If there are enough aggression tokens for the enemy, its marked as aggressive and if not, then its a non aggressive enemy.
Location