Current Projects

Volunteer Programmer & Scrum Master
MS Paint drawing of a pillbug wearing a hardhat in front of a computer screen displaying Unreal Engine 5 Skills: C++, Unreal Engine, Scrum, Python
Team Size: 12


In March 2025, I started volunteering at an indie startup on a project in the early stages of development. I also work as the team's Scrum Master.

Currently I've done work both in-engine as a programmer and in project management software. Recently I've taken back up Python to attempt to connect our task tracking software to a spreadsheet for easier use on the production end.

The project is currently in its prototype stage, where a lot of key features are being designed and implemented for initial testing.

Current Projects

Graphics Engine
MS Paint drawing of a pillbug wearing a hardhat in front of a computer screen displaying a white triangle on a cornflower blue background Skills: C++, DirectX 11, DirectX 12, Sharpmake
Team Size: 2


I have recently started working on a graphics engine in a team of two. We've been working with some new tools and methodolies, mostly in regards to Sharpmake and with an eye on making the engine work across multiple graphics APIs. It's been a great chance to practice old skills and pick up some new ones along the way!

Current Projects

Terminal Glue
MS Paint drawing of a pillbug wearing a hardhat in front of a computer screen displaying Unity 6 Skills: C#, Unity Engine
Team Size: 4


Terminal Glue is the temporary name for a project I'm currently working on with a handful of friends. The goal of the project was to look back on past games we'd worked on together, see what worked and what didn't, and tackle them again with our present skill sets.

With many of our student projects, we were learning new techniques as we were going, with a limited time to get the project done. Now, our limit is more on the time we have to dedicate to the project each week, which provides a new set of circumstances and challenges.

Currently, the project is early in development, but my next goal is to take a look at particle effects to create the desired effect for our enemy!

PS5 Engine & All-Wheel Brawl

Rubberhose style cat and car model in 3D space with basic lighting and green skybox surrounding them
I worked on the graphics part of the engine with another teammate, Silas Mercer. I also ended up working on UI with Megan Schier, however, the UI cannot be seen in the main project.

Skills: PlayStation 5 Development Kit, C++
Team Size: 7 (Game), 6 (Engine)
January - May 2024


The Playstation 5 engine was a basic game engine created using the Sony Playstation 5 Development Kits in a team over the course of a single semester. The goal was to simulatenously develop the engine, game prototypes in Unity or Unreal, and then port those games over into the created engine.

After taking Console Development in Fall 2023, a number of us decided to move on to a Production Studio to continue our exploration of the Sony Dev. Kits. We had experience on the PS4, but had yet to actually try anything practically on the PS5. Due to the number of students interested in the projects, we split into two design teams with one core team for the engine. This core engine team would work together until the needs of the projects differed.

The graphics side has lambertian lighting, texture and model loading, skyboxes, directional and point lights, transparency, and a basic particle system. At one point we had PBR but both design teams later admitted they didn't actually need it, so we scrapped it. We ended up having an issue where all text on textures displayed backwards, but unfortunately we did not have the time to fix it.

DirectX 12

Cube, torus, and sphere lit from one side with a pink light while moving and rotating
Skills: DirectX 12, C++
Team Size: Solo
January - May 2024


The DirectX 12 graphics engine was a continous project in a graphics course at RIT. The main goal of the project was to slowly implement raytracing features, culminating in a project that displayed many of the core capabilities.

In Spring 2024, I continued the Game Graphics Programming sequence. The beginning of the course focused on DirectX 12 with us working within the API and going through the same process we had in GGP1. After the two projects had similar features, we moved on to the basics of ray tracing. As a class, we walked through both ray tracing as a console application and as a part of DX 12.

DirectX 11

Animated image of lit spheres and cubes moving through space with a post-process blur being applied
Skills: DirectX 11, Dear ImGUI, C++
Team Size: Solo
January - May 2023, April - May 2024


The DirectX 11 graphics engine was a continuous project over the course of two classes, Game Graphics Programming I and II. The goal was to implement key features of rendering and graphics engines, ending with a product that displayed those capabilities.

In the Spring 2023 semester, I took Chris Cascioli's Game Graphics Programming I class. The course focused on the basics on graphics engines using DirectX 11. Using Professor Cascioli's code as a base, the final DirectX project can load obj files, create directional and point lights, use multiple different types of texture maps to create materials, and has an adjustable radial blur around the camera.

In Spring 2024, the end of GGP2 allowed us to choose to continue in DX 11 or DX 12. I ended up choosing to work in DX 11 as I was also working on a graphics engine for the PS5 in a production studio. At the end of this course, I implemented basic particle effects and chromatic abberration.

Read More

Changeling

Changeling developer sitting on the ground in Mind Palace level's grass while in VR
The image above is another Changeling developer, Marcelo Faria, whose portfolio can be found here.

Skills: Unreal Engine 4, Lighting & Material Optimization, Art Pipeline, Technical Documentation, Perforce
Team Size: 80
May - August 2023

Changeling is an in-progress project in development at RIT. It's a VR mystery puzzle game where the player interacts with a family's minds to figure out what happened to the youngest child. Each level takes the player through a different character's mind, giving them insight into the family members and what might have happened.

My role as the lead technical artist on the project was to coordinate visual changes to the game in conjunction with the art team and to ensure that the game was ready for early access by the end of the year. That summer was the first time Changeling had dedicated technical artists and we increased the overall frame rates from as low as 6 to as high 200 fps. The visuals had drastically different styles due to the majority of the assets being free or bought assets from various asset stores.

During Summer 2023 I worked on the entrepreneurial co-op project Changeling. Changeling is a VR game where the player explores the mindscapes of members of a family to solve the mystery of what happened to the baby. At the time I joined the project, it had been in development for around 3 years.

Changeling updates can be found here.

Read More

Painted World: Neo-Versailles

Skills: C#, Unity Engine, Perforce, Jira, Confluence, Technical Documentation
Team Size: 30
August 2022 - May 2023


Neo-Versailles is a First-Person Puzzle RPG Horror where the player explores a destroyed palace of Versailles through corrupted paintings. The player utilizes paint to explore the world and defend themself from the Demon of Despair.

Neo-Versailles was designed by capstone students at the ArtCenter of California. As an RIT student, I was part of a team brought on to assist with the programming for the project.

The basis of the inventory code created by both myself and another RIT student, Megan Schier, was used in later ArtCenter projects.

Read More

Game Jams

Hat Bird
Bird behind table with three items on it: a knife, bottlecaps, and a pen Skills: C#, Unity Engine, 2D Art
Team Size: 3
October 2021


Jam: RITGDC Halloween Jam 2021

Hat Bird was my first ever game jam project as a college student. I was a first semester sophomore at the time and had just taken my first official Unity class.

The plan was to keep the project small. No one in the group had really done a jam before and had no idea how fast we could finish a full game loop in a project. My task was to finish as many art assets as I possibly could in the short 2-day jam. That ended up being a variety of objects, hats, the character, and the scene assets.

itch page

Game Jams

Fish
First-person image of a fishing rod over the water next to a monster Skills: C#, Unity Engine, Shader Graph
Team Size: 4
June 2022


Jam: Tomato Jam

Fish was my first project with people outside of RIT. It gave us a broader range of skillsets. It was also my first jam working with a dedicated artist, which allowed me to focus on what I was more interested in.

The Tomato Jam's main focus was to allow its participants to learn something new. I took full advantage of this and started looking at shaders.

itch page

Game Jams

Decaying Orbit
Pink paper cutout of a person next to a torn cutout of a person sitting in a hallway Skills: C#, Unity Engine
Team Size: 4
October 2022


Jam: RITGDC Halloween Jam 2022

Decaying Orbit, on my end, was a failure in time management. While we had a decent team size, some of the group had no experience with Unity, and almost all had only a small amount of time they could dedicate to the project.

Our biggest issue we ran into was a lack of testing of everyone's code in conjunction, which meant nothing really worked. The player character was also physics based, which meant you could tip over and get stuck forever.

I am very pleased that the dialogue functions, but it is certainly not performant.

itch page

Game Jams

Fish-ticuffs
Gameplay image of a squid fighting a mantis shrimp with boxing glove projectiles Skills: C#, Unity Engine, 2D Art
Team Size: 4
June 2023


Jam: Banana Jam

Fish-ticuffs was a game I worked on while working on Changeling. This limited both the time and energy I had to work on the game, but the end result is a bare-bones function of the original plan.

Banana Jam typically provides limitations, with the first jam, we couldn't use any text. I ended up drawing all UI by hand, but due to some time constraints, not all of it made it in.

itch page

Game Jams

Snowbringer
Debug image of a snowy scene with scattered rocks and trees Skills: C#, Unity Engine, 2D Art
Team Size: 11
Fall 2023


Jam: Semester-long Hackajam

The Semester-long Hackajam was an excellent opportunity to work on a larger project. The largest blocker? Time. Most of our team were seniors, with some dual-enrolled in the masters program.

While we made good initial progress, we ended up slowing to a halt after the semester fully kicked off. With a lack of time and energy to work, the project faded to nothingness while academic projects took priority.

Development blog

Game Jams

Desert Town
Sprite sheet of pixel art character in grey hood with green face and scarf Skills: 2D Art
Team Size: 2
January 2024


Jam: Banana Jam 2

My only goal working on this project was to create art assets for a bare-bones version of the game idea. With a limited palette of 4 colors, most of my time was spent making the assets look good whilst still being distinct. The game was never finished during the jam, but the documents and plans for it may be revisited in the future.

Game Jams

Banana Jam 3
Low-resolution room with a doorway, plant, shelf with books, and sofa. The top half of the room is in full color while the bottom half has very low saturation, almost black and white Skills: GameMaker Studio, GLSL, 2D Art
Team Size: 4
September - October 2024


Jam: Banana Jam 3

For Banana Jam 3, the team decided to use GameMaker, something only one of us had ever worked in before. Being more bare-bones than Unity or Unreal, it provided an opportunity to learn something entirely new.

After the design process, I worked on making visual assets that could work for multiple scenes. Some of this was achieved using shaders, allowing us to change the colors of objects to provide a greater variety. I then looked towards creating a simple post-process to achieve the stark difference the team desired for the players home versus the community they worked in.

Sadly, due to unforeseen circumstances, the game was never finished.