Projects

Sanic Smash Remastered Thumbnail
Sanic Smash Remastered
2025

While it is a silly project, Sanic Smash Remastered is a very important one to me. This is a remake of a game created by a friend at a summer camp we attended together in middle school, and a love letter to an era of internet culture that I grew up on. This camp and silly project played a huge role in sparking my passion for games, so a remake was a way to pay homage to that.

This was my first fully independent project after learning Godot, where every element was created by myself with the exception of the audio assets. Despite the silly and immature nature of the project, I am very happy with and proud of the result, and I learned a ton from the experience!

Dreams of Mermaid Thumbnail
Dreams of Mermaid
2025

This was a small platformer I created to learn Godot. This was a modification of the popular Godot starter tutorials by Brackeys, and utilizes some assets and sounds from that project. This project was a quick one, but was a great introduction to some of the workflows involved in game development and a good way to learn the basics of the Godot engine to prepare for my own projects.

PKI Scheduling Thumbnail
Classroom Scheduling Application
2024

My final capstone project for my Computer Science degree was a web application for use by the university to optimize and schedule classroom assignments in the computer science building. This application was built using Springboot with a Java backend and React (JavaScript) frontend. We hosted this application on an Apache Tomcat webserver hosted with AWS.

This application was developed in conjunction with three of my peers, and my primary role on the project was developing a recursive scheduling algorithm that took into account the timings of all other scheduled classes, classroom size, class sizes, and class timings to move room assignments around to accomodate changes while mininimally impacting the current schedule. I developed this algorithm using many of the concepts I learned from a Graph Theory course I took the previous semester.

By nature this project was one of the largest undertakings I took in school, and it was a very beneficial learning experience. This project was the closest we got to a real world development experience, and I gained a lot of experience working on a team, presenting progress to stakeholders, creating documentation, and meeting deadlines.

Renderer and Ray Tracer Thumbnail
Renderer and Ray Tracer
2024

As part of my Computer Graphics class, I used JavaScript to write a renderer that parses .obj 3D model files and displays them, and a ray tracer that calculates lighting and reflection visuals for simple objects. Both of these are highly inefficient when compared to mainstream graphics frameworks such as WebGL, but writing them from scratch massively helped me understand what rendering is actually doing. Both rendering and ray tracing are concepts prevalent in games, which made learning about them a very enjoyable experience.

Since these are written in JavaScript, both are directly linked below!

Pac-Man Thumbnail
Pac-Man Search Algorithms
2024

As part of my Intro to AI course in college, we utilized the UC Berkeley "Pac-Man Projects" to learn a variety of pathfinding and search algorithms. These projects were centered on writing AI in Python for Pacman to navigate a maze to eat the dots placed around the maze while avoiding ghosts. I learned about and implemented Depth First Search, Breadth First Search, A* Search, Minimax, and Expectimax algorithms. I also utilized Q learning to create reinforcement algorithms that would learn to solve the mazes faster over time. Lastly, we utilized Markov models to inform a forward algorithm to account for the semi-random nature of real Pac-Man games.

I am unfortunately not permitted to share my specific code from these algorithms because the same projects are still being taught and uploading would require posting publicly available solutions.

Vae Victis Thumbnail
Vae Victis
2023

Vae Victis is a custom map for Call of Duty Black Ops III's zombies mode intended to backport elements of future title's open world zombies experience to Black Ops III. This project was very large in scope as the game was not designed to handle maps of this size, which required the tools to be pushed to their limits.

This project was developed using BO3's official mod tools which primarily consist of a map editor called Radiant and a C-based scripting language called GSC.

This project was a joint effort, and I was just one member of the development team. My primary role was assisting with level design by handling collision for larger imported meshes of previous zombies locations and creating the smaller "filler" style building scattered around the map. This project taught me a lot about level design in a 3D space and was a great opportunity to develop a larger-scale project with a team.

Game Engine Thumbnail
Game Engine/Mini Games
2023

As part of my Intro to Game Programming class in college, I learned the fundamental mechanics behind how a game engine actually works. We spent the semester writing a game engine from scratch in JavaScript. Our final project was to use this game engine we created in class to create two games of our own. I created a Flappy Bird clone, and a bullet-hell style dodging game.

Creating a game engine from scratch was a unique experience that I learned a lot from. Previously, any work I had done with games relied on an engine that was already made, which made me appreciate just how much heavy lifting was being done by said engine. While I don't see myself ever making a game with my own engine, I do appreciate the perspective I gained from writing a very barebones one myself.

Das Lagerhaus Thumbnail
Das Lagerhaus
2023

Das Lagerhaus is a custom map for Call of Duty Black Ops III's zombie mode. A precursor to my work on Vae Victis, this was a solo project intended to let me learn the tools and scripting languages involved with creating maps. Created using Radiant for mapping and GSC for scripting (with a bit of LUA sprinkled in), this was a couple-month long effort that really helped me understand the work that went into creating the experiences behind one of my favorite games.

This project intended to introduce me to all aspects of the mapping process, as I imported enemies, models, HUD elements, perks, player dialog, weapons, sound effects, and music. This was my first real venture into level design, which really opened my eyes to how much thought goes into every little descision behind designing a playable space.

Text Adventure Thumbnail
Text Adventure
2022

This was a small Text Adventure game i wrote in Python as part of my Data Structures class in univeristy. This class taught me the basics of most common data structures, and I learned to program lists, linked lists, stacks, queues, graphs, and binary trees from scratch. The final project for this class involved creating a self-balancing binary tree data structure and a project of our choosing that utilized any other data structure.

For the latter part, I created a short, Zork-like text adventure game that utilizes a graph data structure to create the map of the dungeon with edges representing adjacent rooms. This project was fairly small scope, but taught me a lot about practical applications of data structures. I am also quite happy with the concept behind this game, as it utilizes the lack of visual display to create a fun puzzle. This is a concept I still hope to explore more in the future!

Frank the Zombie Thumbnail
Frank the Zombie Discord Bot
2021

This was a discord bot I wrote in Java to perform some tasks specific to my own friend group's needs. I initially created this bot while starting college as a way to apply the programming concepts I learned in class in a more practical and enjoyable way.

This bot went through a few iterations, and unfortunately the original source code with some of the wackier features such as playing music, playing Wordle, or archiving images/videos has since been lost. The 2.0 iteration never reached the same scope, but the code and fuctionality is much cleaner. Overall, this was a fun project that kept me engaged with everything I learned in my classes!