GAMES PROJECTS
Lanesplitterz


Role: AI / Player / Physics Programmer, AI / Mechanic / Narrative Designer
Tech: Unity, C#, Behavior Trees,GitHub
AI Details: (To be added soon)
Lanesplitterz is a fast-paced competitive bowling game, where you have to steer your ball through as many pins as you can before the enemy beats you to it. It was developed by a 15-person subset of the Veiled Ones team (now known as Last Sundae Studios) over the course of one summer.
As one of the three main programmers who worked on the project, I built a physics-driven player movement system, environmental obstacles, and an AI movement / decision-making system. I'm particularly proud of the AI system, as I had to build a predictive physics system from scratch to suit our unique premise of contact bowling.
I also designed much of the game, particularly the player mechanics, enemy behavior, and the narrative. I was the primary writer for Kaiba's dialogue, and contributed script revisions for both E1 and Caesar.
As of January 2025, we're currently awaiting final approval to publish the game on Steam for free. It consists of three sets of levels, each centered a unique antagonist the player has to outwit.
The Veiled Ones

Role: Lead AI Programmer, Enemy Designer
Tech: Unity, C#, Behavior Trees, Perforce
AI Details: (To be added soon)
The Veiled Ones is a first-person horror game developed over the course of a year with a team of over 40 student developers including artists, designers, programmers, and producers.
I was the lead AI programmer, using behavior trees to create complex behavior for two types of enemy NPCs. I scripted more than 40 custom nodes to extend the abilities of the tree framework, including robust sight, hearing, and player investigation systems.
I also did some design work for the enemies, helping ensure they seem intelligent and threatening without overwhelming players.
The game runs about an hour in length. It's divided into five story sequences each forming a different "level" in the same large, semi-open world map. There's no combat, so the player has to master the stealth system to survive.
The Veiled Ones was published on Steam in August 2024.
Little Timmy's Hide & Seek Spooktacular

Role: Lead Programmer, Lead Designer, AI Programmer
Tech: Unity, C#, Maya, State Machines
Over the course of one semester I led a team of six students in the design and implementation of a game prototype built in Unity.
Little Timmy is an action-stealth game. The player has to explore the environment to find items and traps that help them take down their spooky adversaries, trying to avoid them all the while.
As lead programmer I partially implemented the player, camera, UI, item, and trap systems. I also implemented the enemy AI in its entirety using my own state machine.
As lead designer I designed the core gameplay and all major systems, including inventory, environmental interactions, and stealth. I also designed all the enemy behavior, and four finalized levels.
Having been developed quickly over the course of a semester, the prototype isn't without its faults, but I'm still very proud of what I and my team were able to put together with the time we had.
The prototype has nine levels, two enemy types, two traps, and two player items. A WebGL version is available online and can be played on any major web browser. Check out the links above if you want to play or learn more!

Game Engine Systems

I created a suite of systems for the PrimeEngine, a C++ based game engine. This engine was originally developed by Artem Kovalovs, a principal programmer at Naughty Dog.
My additions include graphical optimization, physics collisions, low-level mesh modification, and AI pathfinding.
While the engine previously supported basic rendering and animation, these additions are wholly original, written by me directly into the engine's core code.

WorldBuilder


Role: Project Lead, AI Programmer, Front-End Programmer
Tech: JavaScript, p5.js, HTML
Using the agile development framework, I led a team of five student engineers to develop WorldBuilder, a procedural map generator.
WorldBuilder uses agent-based AI to procedurally generate large landmasses. This agent-based approach allows for an extremely high degree of customization at runtime, while remaining simple for a user.
I implemented several layers of the AI system, adapted from an academic paper by Jonathon Doran and Ian Parberry. I also programmed all web integration and designed the UI.
Rendering Engine


Role: Graphics Programmer, Web Programmer
Tech: JavaScript, WebGL, GLSL
I developed an online low-level rendering engine in WebGL.
It supports UV mapped textures, dynamic phong shading, and free camera movement.
I wrote the entire program, including all shaders, core engine code, and web page integration.
Pacman AI


Role: AI Programmer & Designer
Tech: Python 3, LINQS Pacman Codebase
I designed and programmed the AI for a competitive version of Pacman, where each team has agents that both guard pellets on their side and steal them from the enemy side.
I structured my team with one agent focused on offense and another on defense.
The offense agent would prioritize invading the enemy field, trying to eat as many pellets as possible. It evaded enemies by prioritizing pellets that were both closer and adjacent to the best escape routes.
The defense agent focused on camping the border, trying to prevent enemy agents from entering at all, as well as chasing out invaders. During an invasion, it predicted the target destination of the invading enemy and tried to cut it off.
In certain circumstances agents could switch from offense to defense or vice-versa, but each would always prefer one strategy. This dynamism helped the team take advantage of scenarios where stronger defense or offense was beneficial.
Bomb Buddies


Role: Usability Lead, QA Tester
Tech: Unity, AR Foundation
Bomb Buddies is an AR-based mobile party game that was developed over a year in USC's Advanced Games Project program.Its premise is simple: A series of AR microgames that two players must collaborate in to win.
I served primarily as the team's usability lead. In this capacity I planned, oversaw, and reviewed all playtests. I maintained a database of known issues, and compiled statistics to help guide the design and engineering teams as development progressed.
I was also a QA tester, comparing the game's performance against the expectations of the engineering team every week.
Block Runner

Role: Lead Programmer & Lead Designer
Tech: Visual Basic .NET
Block Runner is an arcade-style dodge-em-up game, where the player must navigate an increasingly perilous onslaught of blocks flying toward them.

I designed all the game's core systems, and programmed the player movement, block generation, items, and UI in their entirety.
This was my first major coding project, way back in High School. It's a lot more primitive than anything I can do now, but I'm still proud of it!
Games Lectures

