Team Size: 5
Tools: Unreal Engine 5, C++, Perforce
Project Length: 9+ Months (May 2025 - Present)
Project Contributions:
Programmed enemy behavior with a hybrid Behavior Tree and Utility System approach for combat gameplay. This was done in a designer-friendly, data-oriented way inspired by the Infinite Axis Utility System from Guild Wars 2.
My system uses UCurveFloat data types as response curves, and a custom Utility Selector Composite node with custom Utility Behavior Tree Task nodes to select from after calculating consideration scores.
To learn more about how I created the Utility System's architecture, you can read about it here in this easily digestible technical document that I wrote here!
You can also view a presentation I made for my Utility System down here 👇
Project Contributions (Continued):
Created custom EQS test cases to allow for sine scored distance and dot product test cases since Unreal Engine 5 does not natively support EQS sine scoring functions.
This led to a more natural feeling strafing around the player.
You can read more about how I did this here.
Created a designer-friendly Herd Manager and Enemy Spawning system which allows for rapid iteration of creating combat encounters.
Designers connect spawn points to different waves, decide when the next wave should spawn, and add which enemies they want to spawn through a TMap where they choose an enemy archetype (the key) and the amount of that type which they want to spawn (the value).
The herd manager keeps track of all enemies and gives permission for enemies to attack via a combat token system. Once all enemy agents are dead, it broadcasts a message to the player to reward XP/ progress the quest.
Worked on friendly, interactable NPCs that can converse with the player. Each NPC has a custom DataAsset for their specific dialogue lines.
Team Size: 5
Tools: Unity, C#, Git
Project Length: 1 Month (April 2025 - May 2025)
Project Contributions:
Implemented A* pathfinding using the Manhattan heuristic for enemy AI navigation in this 2D grid-based, turn-based, tactical RPG prototype.
Created melee and ranged enemy archetypes that would use a state machine to determine if it was their turn, if they should move, if they should attack, and if they should end their turn.
Team Size: 5
Tools: Unity, C#, Git
Project Length: 3 Weeks (March 2025)
Project Contributions:
Rapidly prototyped a 2D boss battle in which the enemy agent uses an N-Gram algorithm to gradually predict and eventually counter the player's attack patterns.