top of page

Shoulders of Giants

Shoulders of Giants is a multiplayer action roguelike where you fight the forces of Entropy as a gun-slinging frog and a sword-wielding robot.

Epic Games Store Page | Xbox Store Page

My Role
Junior Game Developer

Team Size


Epic Games, Xbox

Game Engine
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

My Work

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.

bottom of page