Within the setting of a thrilling Wild West-inspired canyon, the player takes on the role of gunslinger Quinn del Ramo, who has risen from the grave to solve their own murder. Harness the powers of the spirit world to enhance your sharpshooting abilities and fight off the many forces trying to put you six feet under again.
I served as the lead for an overhaul of the gameplay systems, expanding player abilities with the "Hex System". It enabled us to not only quickly develop persistent effects on characters and in the world but to allow a greater range of interactions for the player.
I Built out a simple behavior tree to enable basic functioning AI for a third person shooter while learning about Unreal 5's integrated functionality. Heavy utilization of the behavior tree systems enabled for some iterative development.
Originally, the core mechanic of the game involved switching between a set of hexes. Not too dissimilar to the result, but each applied a singular effect to your shots. One would ignite an enemy, one would stun an enemy, and another would heal you for a portion of the damage you dealt. This was functional, but uninteresting and I was onboarded in part to remedy this.
The new aim became a mix-n-match elemental system that can create effects in the world. The primary hexes involved burning, freezing, and staggering opponents, but now also applied temporary effects in the world and combined to make much more potent effects. Ice and Quake, for example, could combine for a large instant burst of damage.
This would be easily solvable with some basic polymorphism. A base Hex Actor would be able to provide common structure for attaching to a target vs. persisting on the ground as well as managing combo-reactions. Then, children could use that inherited functionality to produce a larger variety of effects with easy implementation and rapid prototyping.
Given the timeframe allotted, some minor improvements were necessary for the AI. Originally implemented on a state machine, it had become unmanageable even with extremely simple behavior.
While learning Unreal I migrated the systems to a behavior tree, adding the Unreal Engines senses systems and a basic level of spawning and partitioning to save on performance.
With the basics set up, I used the remaining time to add a few basic elements to make the AI more responsive and added some variables that would create minor variance in behavior such as approach distances, how close they would let the player get, and the chance to throw grenades using the hex system instead of firing.