Projects
Squeaky Team
Squeaky Team is an isometric puzzle platformer I developed alongside two artists at the Local RVA Game Jam running from Jan 31-Feb 2, 2025. When the jam theme was revealed to be “Bubbles,” my team opted to create a bubble-bath-oriented game where one player controls a gun-wielding rubber ducky that shoots bubbles, while the second controls a bar of soap that can ram into obstacles and bounce off bubbles, but cannot jump.
What I did:
- Coded all gameplay mechanics in Unity with C#, including player movement, bubble physics, checkpoint system, and on-rail camera.
- Designed and whiteboxed the level puzzles to maximize player cooperation given the asymmetric playstyles of their characters.
A Pig’s Phobia
A Pig’s Phobia is a 2D platformer created for the Aug-Sep 2024 Metroidvania Game Jam, though I continued development for several months after. Largely drawing from the Winnie the Pooh mythos, the game places players in the shoes of Piglet as he fights and flees from bloodthirsty distortions of the main cast, gradually unlocking abilities and gaining access to new areas in the 100-Acre Wood. I was the main gameplay programmer in a team of 5 people and assembled the game in Unity with C#.
What I did:
- Created a modular player ability system, allowing for seamless collection, selection, and use of the 6 unique abilities in the game, like the pogo stick and grappling hook.
- Crafted a save system that preserves item placement, enemy status, and player inventory and world location between play sessions.
- Assembled a designer-friendly on-rail camera with options for snapping and zoom control to boost cinematic potential.
Polypore
Polypore is a sci-fi grand strategy game I am actively developing as a member of Broken Bag Games. The player has crash-landed on a mushroom-covered alien planet and must harvest resources, expand their territory, and combat the natives to acquire the material needed to escape.
What I did:
- Created from scratch the hex generation and grid movement, building and resource management, fog of war, and combat systems in Unreal Engine 5 with C++ code.
- Deeply collaborated with the team’s programmers and designers to ensure needed systems and data were easily accessible and modifiable in C++ and Blueprint.
- Strongly maintained the organization and readability of code to allow for clean and simple expansion of game systems in the future.
Cover Shooter AI Demo
In a programming-based independent study, I modified the behavior of the AI provided in Unreal Engine 5’s Lyra Shooter Example Project to make use of cover and search for the player within multiple states of alertness.
What I did:
- Utilized Unreal’s behavior tree system to shift between states of moving to and shooting from cover, repositioning in response to being flanked, and transitioning between high and low-alert patrol states.
- Crafted a ‘hivemind’ object to enable AI controllers to update each other’s awareness, distribute cover and patrol points, and exchange brief vocal interactions upon state changes.
Battle of Nowhere
Battle of Nowhere is a virtual reality horde shooter I played a large role in developing while an intern at Great Victory Legends, Inc.
What I did:
- Programmed behaviors for 3 enemy types, a multi-phase boss fight, and a companion who aids the player and emotes in response to in-game events.
- Developed an in-depth and designer-friendly wave creator, allowing for customization in the enemies that spawn, which lane they spawn in, what items drop at the start of the wave, and other handy features.
- Implemented UI art and created the functionality for displaying player performance statistics and world variables like the number of enemies remaining in a wave, time until the next wave, etc.
Port-A-Chess
Port-A-Chess is an augmented reality chess board developed for Android by a group of 10, including myself, as an AR/VR class midterm project. Upon the app detecting a specific image, a 3D chess board would materialize in the world, and players would take turns aiming the camera at pieces and board tiles to make moves like traditional chess.
What I did:
- Assembled all the chess piece movement and rules from scratch in Unity with C#, including available move generation, piece taking logic, and more specialized maneuvers like En Passant and Castling.
- Utilized Vuforia to create the AR functionality of projecting the board onto an image in the real world.
BJ VS The Hound of Hell
BJ VS The Hound of Hell is a 2D horror platformer I created as a final project for a global horror film class. You assume the role of the fearless BJ as he explores an abandoned laboratory while being stalked by a flesh-eating demon dog.
What I did:
- Programmed from scratch the demon dog’s behavior, which dynamically traverses the walls and ceiling to reach positions to pounce at the player, while also allowing for modularity to create more scripted attack patterns.
- Developed the player character controller from the ground-up in Unity C#, with fluid and responsive transitions between walking, running, jumping, and rolling.
Mason Mayhem
Mason Mayhem is a cooperative 2D boss rush bullet hell with three levels featuring iconic faces and locations from the George Mason University campus. This was the product of a class of 30+ students at GMU, and was designed to be played on a 4-player arcade cabinet.
What I did:
- Designed and programmed all behavior systems for the 3 boss fights, including over 15 attack patterns and 3 high-spectacle phase transitions.
- Created 4 highly customizable and portable hazard behaviors to produce over 20 unique environmental hazards and enemy attacks.
- Communicated with over 30 coworkers in art, sound, design, and programming fields to ensure all assets were correctly implemented and the vision for the game was made a reality.
Laundry Game
Laundry Game is a narratively-driven collection of minigames created using the prompt of liminal space, in this case being the plane of existence between of the dresser and the laundry room: the laundry basket. The basket is fed up with its owner’s laziness and will do whatever it takes to get its contents washed.
What I did:
- Developed the entire game over the course of two weekends, programming all minigames in Unity with C#.
- Utilized Unity’s animation system to create a cinematic transition between each minigame, creating a clean narrative flow throughout the experience.
Clockwork
Clockwork is a top-down 2D puzzle game designed to be played on the Nintendo DS. The player manipulates the stopwatch on the bottom screen to move objects forward and backward in time, while carefully using time-stopping bubbles to freeze certain objects and create a path to the exit.
What I did:
- Programmed all aspects of the game using C#, including the environmental interactions and touch-controlled UI.
- Designed and assembled both levels in Unity, ensuring each puzzle promoted creative and intelligent use of the tools provided to the player.
- Thoroughly tested the game for visual and mechanical bugs and resolved them accordingly to achieve maximum polish.
Cave Run
Cave Run is a 2D platformer designed to be played on a fictional handheld device with the graphical color range of the original Game Boy and the restriction of only three buttons: a left arrow, a right arrow, and an action button. This game is focused around the central mechanic of fluidly switching between the foreground and background, triggered by pressing left and right simultaneously.
What I did:
- Programmed all aspects of the game using C# and Unity, happily accepting the challenge of creating a natural and smooth transition between foreground and background.
- Designed and assembled all three levels in the game, utilizing the central mechanic in fun, thought-provoking ways in each level, without them being confusing.
- Playtested intensely to ensure smooth depth-switching while avoiding collisions between the foreground and background.
Zom-B-Gone
Zom-B-Gone is 2D platformer and shooter I developed while part of the creatively titled Zom-B-Gone Team. The player must use a variety of weapons to shoot their way through hordes of zombies, destroy the space station’s core, and escape before the station explodes.
What I did:
- Programmed the entire game using C# and Unity, taking the most pride in designing multiple weapons, scripting enemy encounters, and utilizing a dynamic soundtrack.
- Crafted all enemy encounters in each of the three levels and carefully tested each to maximize fun, uniqueness, and balance.
Shutdown
Shutdown is a 3D shooter and platformer developed by me and the other folks at Shutdown Games. The player must navigate a treacherous warehouse using parkour to reach the exit within the time limit, shooting drones along the way to gain more time.
What I did:
- Assembled and tested both levels in the game using Unreal Engine 4, positioning platforms and enemies around player movement and abilities I was given to create fun, fast-paced platforming.
- Assisted in programming the clock display using UE4’s blueprint system, identifying issues with the transition between minutes and quickly resolving them.
Village
This is a small village I assembled using 3DS Max and the landscaping tools in Unity. This lonely settlement upon a mountaintop is intended to function as a location a player might discover in an open world game.
What I did:
- Designed the world to be exciting and fun to explore, as well as visually striking.
- Modeled and generated UV maps for all objects and structures in the world using 3DS Max.
- Created textures and normal maps using a mix of Adobe Photoshop and Substance 3D Painter.
- Utilized whiteboxing to plan the location of each major structure in the world.
- Formed the landscape and painted textures and grass using Unity’s landscaping tools.
Slimber Climber
Slimber Climber is physics-based 2D platformer I developed while part of the team comedically titled Groovy Boyz. The player controls a shotgun-wielding slime who must utilize the firearm’s recoil and attached grappling hook to launch and grapple its way to the exit.
What I did:
- Programmed the entire game using C# and Unity, most notably (and enjoyably) the shotgun launching physics and grappling hook.
- Positioned enemy encounters, environmental hazards, and pickups to create challenging, engaging, and fun levels.