Mesh Slicing Unity Plugin

  • Notable Accomplishments: Utilized C# and the GPU to create a performant mesh slicing plugin feature for Unity. Developed easy-to-use custom GUI controls for quick designer implementation.

  • Language: C#

  • Engine: Unity

  • Production Time: Ongoing

  • Link to Github: Mesh Slicing on Github

For this project, I created a custom plugin for the Unity engine that allows designers to dynamically slice or explode both static and rigidbody meshes at runtime with the click of a single button. I developed this feature after feeling frustrated by the lack of cheap, easy-to-use mesh splitting tools for Unity.

OpenGL Studies

  • Notable Accomplishments: Used C++ and FreeGLut to implement a cutting-edge multi-scale solution for runtime ambient occlusion in OpenGL.

  • Language: C++, FreeGLUT

  • IDE: Visual Studio 2022

  • Production Time: Ongoing

  • Link to Github: OpenGL on Github

In my quest to better understand each aspect of modern game engineering, I am challenging myself to learn OpenGL one week at a time. Click on the title above to check out my week-by-week progress on Github as I render increasingly beautiful teapots with blinn lighting, render textures, reflections, shadows, and tessellations!

C++ Resource Manager

This is a resource manager system responsible for loading, owning, caching, unloading, and providing access to various game assets for a mock roleplaying game. Additionally, this project features custom buddy and freelist memory allocators, garbage collection, and exceptions.

Animation Source Code Review + Analysis

This is a presentation on animation source code in both Unreal Engine 5 and Godot, which I created and presented for a master’s programming course at the University of Utah. Wanting more experience with large codebases, I hopped into the UE5 and Godot source code to better understand how each engine handles common systems like frame interpolation, animation playback, and skeletal deformation.

UE5 Behavior Tree

  • Notable Accomplishments: Used the UE5 blackboard and behavior tree systems to create efficient maze pathfinding algorithms for NPC characters, considering distance to node and specified node cost

  • Language: C++, Blueprints

  • Production Time: 1 Week

  • Link to Github: Behavior Tree on Github

For this project, I wanted to study behavior trees and efficient NPC pathfinding algorithms. I use the UE5 blackboard to create a pathfinding algorithm for an NPC lost in a maze that must choose between linked nodes to search for an endpoint. My implementation does not use any built-in UE5 pathfinding support, relying entirely on blackboard and blueprint logic.

UE5 Custom Physics Engine

  • Notable Accomplishments: Used C++ and blueprints to create a custom physics engine in UE5.

  • Language: C++, Blueprints

  • Production Time: 1 Week

  • Link to Github: Custom Physics on Github

Wanting to better understand object/character movement in game engines, I decided to roll a custom physics solution for UE5. My implementation utilizes C++ and blueprint children to handle velocity-based movement, gravity, and collision implementation/resolution for a large number of actor objects while maintaining strong performance.

Raymarching Environment

  • Notable Accomplishments: Developed a custom raymarching fog shader using HLSL and visual scripting in UE5.

  • Render Engine: Unreal Engine 5

  • Production Time: 6 Weeks

  • Concept Reference: “Heavy Air” by Vladimiar Motsa

For this project, I dabbled in technical envrionment art in Unreal Engine 5 to create a heavy raymarching fog shader. Using C++, HLSL, and the UE5 material graph, I was able to create develop a tool that allows users to paint volumetric materials by hand,.