All of my projects, in chronological order.
Worked on a team of 2 game developers at WPI to complete a 48-hour game jam
Built a 4-player local co-op game in which two teams of scarecrows battle over a hot potato.
Performed early playtesting and adapted game based on playtester feedback.
Programmed physics-based 3D player movement, including a directional dash-attack and the ability to pick up, throw, and drop a hot potato.
Programmed the core behavior for the hot potato, allowing it to change color and gain fire particle effects as it heats up.
Added juice effects such as explosion particles, sound effects, and slow-motion.
This was the first 48-hour game jam where I've been able to get external playtester feedback before the game was finished, mostly because of how fast I've gotten at coding physics-based movement. This feedback was really helpful, as it guided us to add several key gameplay systems, including hay bales and teams. Designing a local co-op minigame was a very interesting challenge - we wanted to strike the right balance of approachability, skillful gameplay, and chaos. In the end, I'm very happy with how the final game plays. It has a unique, chaotic gameplay loop that always gets players excited.
Independently developed a replica of the tower defense game 'Plants Vs. Zombies' using the Godot game engine.
Created over 60 hand-drawn sprites, 9 of which were rigged and animated.
Created over 15 unique sound effects using only originally sourced recording material processed in DAW.
Focused on writing clean, object-oriented code, using the principles inheritance and composition to ensure the game could be easily extended in the future.
Produced a polished, bug-free, visually appealing game with a well-populated soundscape.
Crafted a fun and visually engaging scrolling credits sequence.
Developed part-time over 10 weeks as a self-directed educational exercise.
My goal going into this project was to hone my game development skills by creating a finished, polished product. I chose to recreate an existing game because it would allow me to practice my technical game development skills without the additional burden of needing to experiment with the game's design.
I found myself spending the bulk of development time on asset creation. I wanted to make sure everything looked finished and presentable, so I revised sprites multiple times and made unique sprites for every user interface element. This is also the first project in which I've rigged and animated sprites. Every plant and zombie is animated, often with several layers of animation that overlap. This was difficult to do, but I'm happy with the result. I think it really adds a lot of life to the game, makes it significantly more visually appealing.
I began work on this project shortly after completing a college-level sound design course, so this is one of the first games in which I crafted all of the sound effects by myself. This was a lot of work, but I'm glad I did it. The sounds make interacting with the game a lot more satisfying.
While programming this project, I focused on creating clean, readable, extendable code using object-oriented design techniques. This ended up making the programming overall easier, especially later in the project, where I could reuse more of my already written code. I don't intend to return to this project, but if I did, I'm certain that programming new plants, zombies, and levels would be easy due to the high-quality code I already have in place.
Overall, I think I achieved my goal of creating a finished, polished product. The core game has good visuals with no real rough edges, a well-populated soundscape, and high-quality, well-organized code. Having completed this game, I feel much more confident in my technical abilities as a game developer.
This is the first game I've fully completed in the Godot engine. Building it made me more confident in the engine's strengths, but also made me aware of some of its weaknesses (particularly its lack of support for many object-oriented features, such as interfaces).
Independently developed a general-purpose ASCII graphics game engine in 5 weeks using C++ and SFML.
Created a testing framework for the engine and a rigorous test suite.
Built a polished arcade game in the custom engine to demonstrate engine functionality.
Worked with 1 other WPI student over a period of 1 week to develop a thrilling, strategic arcade game where you play as a spider trying to protect your web from oncoming threats.
Programmed grid-based player movement, state-driven enemy AI, and the player's 'attack' ability.
Developing the game engine was by far the most difficult part of this project, as it's something I've never done before. But I'm really glad I got the chance to try it, because it taught me so much about how game engines work on a fundamental level. Additionally, this is the largest project I've ever built in C++, so it allowed me to improve my C++ coding abilities a lot. I now understand C++ quite a bit better and feel more comfortable working in it, which is great.
The actual game of Spider Shoot was a lot of fun to design. I especially like that the player's 'silk shot' ability is capable of both killing enemies and repairing the grid - it's a nice piece of dual-purpose design that makes the game a lot more interesting. Overall, I think the game is a ton of fun and very polished for a week-long project. I'm very proud of how it came out.
Worked on a team of three game development students at WPI to develop a boat-themed, romantic matchmaking puzzle game.
The team collaboratively designed a prototype game with a novel concept during a one-week game jam. Development on the prototype continued as a side project for several months, until the game was polished enough to release.
Collaboratively wrote over 100 lines of dialogue for 11 unique boat characters.
Acted as a secondary programmer, creating core gameplay systems such as boat data management and dialogue management.
Recorded and edited voice lines from 10 unique voice actors.
Created several sprite assets, including 6 boats and the main dock area.
The game has one of the most unique concepts out of anything I've worked on. You play by learning about the boat characters through clues in their dialogue, and then use your romantic intuition to help them find their soulmate. Designing such a unique concept with my team was a lot of fun, and it helped me practice my skills at designing unique gameplay systems. The core of this game rests heavily on writing and character design, which is an aspect of game development I haven't explored much in my other projects, so it was a lot of fun to try it out here. This game is also the largest collaborative effort out of any of my projects; while there were only 3 core developers, assets were contributed by 10 voice actors and 4 artists (see the in-game credits for more details).
Worked on a team of 6 game developers from both WPI and Clark university in a 48 hour game jam
Built a unique game about protecting overly curious sentient forks from dangerous kitchen appliances
Designed and programmed a complex finite state machine for fork AI, adhering to the State design pattern and supporting collaboration and communication between AI agents.
Built several core gameplay systems such as fork movement and the toaster.
6 people is the largest team I've worked on for a game jam, and I was amazed at how much we could get done. I especially appreciated the excellent work of our dedicated artists, who produced a great selection of 2D sprites and 3D models, which gives the game a unique 2D/3D blended aesthetic. Working with 2 other programmers on the same project was somewhat difficult, but it allowed me to learn a lot about how to use version control for game development. Having so many people to design core gameplay systems allowed us to organize our code really effectively - this is definitely the highest quality code I've ever written for a game jam. I'm especially proud of the Fork AI system, which was built on a finite state machine and rigorously designed and outlined beforehand. I extended the system to allow forks to 'collaborate' by requesting that nearby forks join them for a group activity (like pushing the toaster). Forks that receive these requests can choose to deny or accept them based on various aspects of their current state. The system is elegant, clean, and works very well. It's definitely my favorite part of this project.
Worked on a team of two game developers at WPI in a week long game jam to construct a four-player local multiplayer game about penguins breaking ice on a frozen lake with hammers.
Primarily worked on setting up art assets, audio, animations, and juice effects such as particles, sounds, and basic water. Also implemented some core gameplay systems, such as the hammer swing.
Music by James Prendergast.
This was a really fun game jam. I've always wanted to make a local multiplayer game and scaling up game systems to account for four players was brought up some interesting development challenges. I'm very happy with the final product - I think it's a really fun game and looks pretty good for the limited time it was developed in.
Worked on a team of three game development students at WPI in a series of week long development sprints to develop a highly polished Minesweeper clone.
The original game was created in the first sprint based on a simple tutorial for building Minesweeper in Unity. Improvements were added progressively throughout the next sprints.
Produced a polished, bug free game within a set deadline.
Acted as lead programmer, implementing core systems such as UI and complex layering behavior for 2D tiles. Also developed numerous juice effects such as particles, animations, and screenshake.
Developed over 7 weeks as final project for an introductory game development class.
Because of the very simple core gameplay systems, my development work in this game had a strong focus on polish. This is also the first game in which I've been able to collaborate with a 2D artist, and I think both of these factors combine to make this the best looking game I've made. Focusing on polish also helped me learn more about aspects of game development I typically don't interact with in less polished game jam projects.
Independently developed a lemmings-style real time strategy game about leading ants back to their anthill with pheromone trails using the Unity game engine.
Rigorously planned development with game design document, Gantt chart, and project timeline.
Produced a largely bug-free prototype featuring unique pheromone-based gameplay, 4 unique enemy types, a level select, an in-depth tutorial, a currency system, persistent player save data, and roughly 30 minutes of playtime.
Game design, placeholder art, and all programming done by me.
Developed over roughly 100 hours during one high school semester.
Delivered a game launch speech, which can be found here: https://youtu.be/JFn4npqTsFc
Antline is the first game I’ve developed that is both self-directed and thoroughly planned. I spent several weeks simply finalizing a game design document and planning out achievable deadlines. Because of this, Antline boasts a tightly focused design and clean, bug-free code. My development of Antline has been heavily focused on the ‘background mechanics’ of the game (UI, currency system, persistent player data, etc), which I had mostly neglected in my past projects. As a result of this focus, the game feels much more like a full release. I see Antline as an enormous success in that I was able to make a realistic plan and stick to it, and also in that the final product is both fleshed out and genuinely enjoyable to play.
Worked on an international team of three high school students to develop a reverse tower-defense game about pirates attacking a merchant ship for the 48 hour GMTK game jam using the Unity game engine.
Acted as lead game designer.
Wrote many scripts, including scripts for the path-following behavior of boats and the path-laying system for the player.
Made during 48 hours, outside of class.
This was the first game I worked on with a team outside of school. I organized and led a team of students I met in my online game design class. I made the majority of design decisions and developed the core mechanic of autonomous agents following paths drawn by the player, which would eventually become the core mechanic of my next game, Antline. This was the largest game I’ve attempted in a 48-hour game jam, with complex mechanics, multiple levels, and numerous types of game entities with unique behavior. As a result of this, the final game has some balance issues and is relatively buggy. However, given the 48 hour time limit, I’m still proud of what my team and I were able to accomplish here.
Worked on an international team of three high schoolers to develop a 2D puzzle game about two robots who must work together to fix a spaceship using the Unity game engine.
Collaborated with team members to design game idea, story, and mechanics.
Created tilesets for the levels and helped develop art for the characters using Aseprite.
Acted as lead level designer and designed all levels in the game.
Made during 3 weeks for a game jam run by my Global Online Academy game design class.
This was the first game I ever made on a team, and collaborating with others ended up being really challenging, especially as we were in different countries and time zones. Making this game was rather emotional for me, as for the first time I was working on a team with people who were better at coding and more experienced at game development than me—though this also meant I had the chance to learn a lot of new techniques, which lead to lasting improvements in my later games.
Independently developed a 3D arcade platformer about a tiny chef trying to survive in a bowl of scalding hot soup for the 48-hour GMTK game jam 2021 using the Unity game engine.
Created all art assets in MagicaVoxel and Aseprite.
Wrote all scripts in Visual Studio using C#.
Music by Kevin Macleod.
Made in 48 hours, outside of class.
This was my second submission to the GMTK game jam, and my first submission in 3D. I made my own 3D voxel art for all assets in the game, which ended up looking pretty good. While making this game in only 48 hours was definitely a challenge, the final product works pretty well and can be decently fun, so I’m proud of it.
Independently developed a 2D pixel art platformer about a cat trying to find their family in the Unity game engine when I was thirteen.
Created all art assets in Photoshop and Aseprite.
Wrote all scripts in Visual Studio using C#.
Music by Kevin Macleod.
Several months of work, all out of class.
This is the first game that I ever got to a finished state in Unity. I spent months drawing out unique sprites for each piece of level geometry and animating a pixel-art cat according to reference videos of cats running. The final result looks quite good, but as I lacked experience in Unity and coding in general while making this project, it ended up being a little buggy.