Character Customization & Selection System
(Unreal Engine)
I built a character selection and customization system for a racing game in Unreal Engine, allowing the player to seamlessly swap character type, hats, and sleds. The system was designed so all combinations fit correctly without manual adjustments, using sockets to attach and align modular parts.

Badger Enemy AI
(Unity)
The badger patrols between waypoints using A* pathfinding until it sees the player. When the player is detected, it begins chasing them. If it loses sight of the player, it moves to the player’s last known position to search, and if the player is still not found, it returns to patrol.

Player Detection / Field of View
The badger uses a custom Field of View system to detect the player. It checks radius, viewing angle, and line of sight with a raycast, and supports obstacle layers that block vision. All detection values can be adjusted in the editor.


Uses a custom A* system to determine which tiles are blocked and walkable for navigation. This is the same pathfinding setup I also used in my Tactical Game project.


Boids Simulation (2D & 3D)
(Unreal Engine)
I built both a 2D and 3D boids simulation in Unreal Engine, with a focus on believable flocking and keeping performance stable even with lots of agents. To speed up neighbor checks, I used spatial partitioning with a QuadTree for the 2D version and an Octree for the 3D version (third-party implementations), and I exposed the main flocking settings in the editor so they’re easy to tweak and balance.


Simple Enemy AI (Melee & Ranged)
(unreal Engine)
I built two simple enemy AI types with the same core behavior: they wander/patrol until they detect the player, then switch into a chase state. One enemy uses melee attacks when close to the player, while the other keeps distance and fires ranged shots.


