Shoulders of Giants
Junior Game Developer
Epic Games, Xbox
Unreal Engine 4
Implement game mechanics and systems through Unreal C++ and Blueprint visual scripting
Assist with various tasks like general bug fixing, setting up character animations and materials, and hooking up VFX
Meet with team to design gameplay systems, combat, and abilities
Owl and Toad Story Bosses
I developed the AI Behavior and attacks for two of the three main story bosses in Shoulders of Giants.
The AI was implemented using Behavior Trees, and boss attacks were implemented in Gameplay Ability Blueprints using Animation Montages and Anim Notifies for timing visual effects.
Storm Level Mode Redesign
Designed and implemented a level mode where the objective is to clear a supernatural storm by searching for and charging Light Probes.
Originally, the objective was simply to find the exit in a level with reduced visibility. At launch, we got a lot of feedback from players saying they often got lost and felt frustrated. Based on the feedback we received, I proposed a redesign that was approved for development.
Character Shader System
Interchangeable "Dyes" that players can use to customize the color of their character.
I created the data asset class used to store all information about each Dye such as name, description, unlock method, colors, etc. I also created colors masks for every character model in Substance Painter, and imported them to the engine where I setup the materials to take Dyes.
Enemy AI Showcase
This video showcases the AI of the enemies I've worked on for Shoulders of Giants.
All enemies were implemented using Behavior Trees and Blackboards. For each enemy, I wrote custom Behavior Tree tasks, services, and decorators in Blueprint/C++.
EQS Spawn Location Finder
A dynamic spawn finding system for resetting players onto levels that were procedurally generated.
Players can fall off the level and need to get reset onto the level. The issue is each level is procedurally generated, so we can't reasonably place static spawn points. I was tasked with developing a solution to this problem, and came up with a system that used Unreal's Environment Query System to generate valid and desirable reset locations on the navmesh.