Academic Projects
20XX MAXX
(Aug 2018 - Dec 2019)
A 4 player split-screen competitive battle area. Players compete with 6 unique vehicles to collect the most points by defeating other players. Developed for both PC and Xbox One through the Xbox Creator's Program.
I worked on 20XX MAXX for 1.5 years as a gameplay programmer and producer. Over the course of the project, I worked on a camera that adapted to the fast-paced nature of the game, a replay structure that helped with playtesting and continuing development, and a decal system that allowed players to customize their vehicles with 100+ combinations and express themselves through their car.
Camera
Much of my work on this project revolved around making a camera that would fit in this fast-paced environment. I used heavy interpolation with the position of the camera and relative rotations to the car to provide a smooth experience. I also implemented collision avoidance and predicting where the player would be driving so the camera could look in that direction.
The camera also features lock-on capability that determines what other car should be locked on to based on visibility, distance, and angle.
Replay System
In a game where playtests could involve four different perspectives an overseer would try to pay attention to, a way to record and run back the data gathered from playtesting would be ideal. This was the motivation for the replay system, which recorded games and was able to play them back at runtime to a good amount of accuracy.
The replay system tracks the player's inputs in addition to the position and rotation of the car. If only the input were tracked, the car would quickly become desynced and run off track. If only the car's values, the playback would be jerky and inaccurate. To provide the best experience for users, I used both.
Decal System
A neat way to give players a way to build a bond with their car and be able to identify it is to have customization. I accomplished this with a decal system, which simply changed the colors of the player's car. Both primary and accent colors could be chosen, with accent colors glowing like neon.
Throughout the testing of the game, players always spent time meticulously choosing the perfect color combination for their car to personalize it to them. The decal system was a great way to get players engaged right from the beginning before the match even started.
Cut, Copy, Paste
(Aug 2017 - Apr 2018)
A 2D puzzle platformer in which the player cuts, copies, and pastes blocks to traverse a digital world. The game was featured at DigiPen's PAX Arcade Booth in 2018.
​
I worked on Cut, Copy, Paste for a year as a tools and graphics programmer. Throughout the project, I worked on a fully-featured level editor that supported designers and decreased iteration time significantly, an interactive level selection screen that showcased the level along with high scores, and a custom graphics engine build from the ground up to create multi-pass post-processing effects.
Graphics Engine
The bulk of my time spent on this project was working on the custom engine, mainly developing the graphics system.
The engine supported post-processing operations like bloom for neon-like objects and a nice CRT screen effect that distorted the game into the classic CRT shape and added scan lines across the screen for an authentic-looking effect.
Level Editor
The editor for Cut, Copy, Paste had a multitude of features to support our designers and make iteration time with levels as fast as possible. I worked closely with our level designers to create an application that had everything he needed to do what they do best.
The editor was made in C++ using ImGUI, and also incorporated JSON serialization to read into the game. It supported many features including basic operations like moving, modifying, and deleting objects as well as more advanced procedures like multiselection, cut/copy/paste, and a robust undo system.
Shoot to Thrill
(Jan 2020 - Apr 2020)
A parkour focused, first person shooter where the player plays a movie star filming the climactic scene of an action movie, where the player gains points by performing cool action moves and taking out stuntmen.
I designed and built the AI enemies as well as populating them throughout the level, and giving them paths and determining what their idle state is. I also tweaked the AIs to act differently depending on what weapon type they utilized. I also designed and revamped weapons so that they fit the playstyle the AIs were using for them. I also designed support drones that hovered around other enemies and adding much needed variety into the fights.
Basic AI
The basic framework for enemies had three major states: Idle, Attacking, and Searching.
The Idle state allowed the AI to follow a predetermined path, stopping at certain points to look around. When an AI sees the player, it enters the Attacking state, where it tries to get a certain distance from the player and then fires their weapon. Different weapon types want to be varying distances from the player. For example, a shotgun AI would want to get much closer than an AI with an RPG. Once the AI loses sight of the player, the AI goes to the last known location and wanders around looking for the player before returning to the Idle state.
Support Drone
The Support Drone went through many iterations, from being a floaty enemy with a pistol, to a healer, to the final version that follows around an enemy and gives them an invincibility shield until the drone is killed.
The Drone is unique in that it floats off the ground and also attaches itself to other enemies to shield them. This required separate pathfinding techniques and different states. The drone selects an enemy to shield based on proximity, and then follows their target while pivoting around them. Pivoting allows the drone to be even harder to hit, further adding to the difficulty of this enemy.