My Logo

Work Projects

Picture of a project

8128: A Perfect Year

An non-traditional rpg created in Unreal 4. more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

8128: A Perfect Year is a game in developement by Hypostatic Studios, a small Rochester-based studio created by myself and fellow RIT students. The game is a non-traditional RPG that transitions between different gameplay genres, alternating between an endless runner/rail-shooter to a puzzle section to an RPG/bullet-hell boss battle. It is being developed in Unreal Engine 4 using both Unreal's blueprint system and C++. My role specifically was to lead the conceptualazation, developement, and testing of the endless runner portion of the game. Additionally, I helped setup and mentored the team on the use and managment of git and github.

Visit the game's website

less...


Individual Projects


Picture of a project

GymJam (Web API Project)

A web app built using the Wger and Jamendo REST API's and a custom Node.js server.
more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

GymJam is a web app that allows the user to search for exercises using the Wger API and select the desired ones to form a custom built workout. Due to the high frequency of people listening to music during their workout, the decision was made to incorporate a playlist feature into the app. Users can select music preferences by genre while on the search screne, and when the user starts the workout the server will pull music from the Jamendo API that matches the user's preferences. Once the workout has started the app will walk the user through each exercise one at a time until they have completed their custom workout. The web app sends requests to the Node server, which is hosted on Heroku, which handles all communications with both API's using the "request" module and pipes a JSON object back to the page upon request. The web page itself is a single page application which auto populates the content with information that it requests from the server as needed. The first part of the

See it live now!

less...



Picture of a project

WebGL Audio Visualizer

An audio visualizer made using WebGL and Javascript.
more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

The audio visualizer uses WebGL's hardware accelerated rendering to visualize audio levels across varying frequencies into a 3D scene. With the help of a wrapper I wrote for the WebGL the options tab allows the user to control various post-proccessing, and audio effects. Some of the biggest problems I encountered working on this project was abstracting away some of the repetitive WebGL code to streamline my workflow. As well as having to create my own 3D math library to use with my project.
In addition to the WebGL, I also created a custom interface for the audio element using Javascript.

See it live now!

less...



Picture of a project

2D Collision Detection Library

A collision detection and resolution library written in C# for MonoGame.
more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

The algorithm I used to detect the collisions in this project involves multiple checks to see if any of the vertices of the shape (denoted by the green dots) are in a negative direction to all of the face normals of the shape being checked against. If this condition is true then it is known that the vertice is inside the other shape and collision has occured.
Once it has been determined that collision has occured a collision normal is calculated as a directional unit vector and an impulse for the collision is calculated using both shapes speed and mass. The impulse vector is then multiplied by the collision normal and that force is applied to both shapes to resolve the collision. I am the sole contributer for this project.

See it on Github

less...



Picture of a project

Boxing on a Stick

A web game built on HTML Canvas in Javascript.
more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

A Punch Out-like game made in Javascript using HTML Canvas2D. It features hand-done art and animations, as well as incorporating background audio and foley. The Javascript uses a modular design pattern to break up the code into related chucks and uses a singleton for the main game logic that includes all of the other modules.

See it live now!

less...



Picture of a project

CH Engine

A game engine witten in C++ and OpenGL.
more...

Sunday, 04-Jun-2017 19:51:01 EDT

This project is my first go at creating a game engine. It is done in C++ and OpenGL. Currently it is capicle of rendering 3D models to the screen and applying textures through GLSL shaders, as well as recieving player input. In the works currently is fluid mechanics and instancing of game objects. Apart from the example art (which was obtained online), I am the sole contributer to this project.

See it on Github

less...



Picture of a project

3D Swarm Behavior

A swarm behavioral program written in C# in Unity.
more...

Sunday, 04-Jun-2017 19:51:01 EDT

This project creates various autonomous agents that implement a number of steering behaviors and flocking algorithms such as cohesion, pursuit, and avoidance. Also included are vector fields to simulate ocean currents. I am the sole contributer for this project.

See it on Github

less...



Picture of a project

Bomb Ball

An online multiplayer game done in Unreal 4.
more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

Bomb Ball is a soccer game where the ball is hit around using explosives instead of boring feet. This game was my first attempt at networking in a game. It was made using a combination of C++ and Blueprints.

See it on Github

less...

Group Projects


Picture of a project

DirectX 11 Graphics Engine

A graphics engine built from the ground up in C++ and DirectX 11.
more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

My contribution on this project included the lighting and post-proccessing systems, as well as being responsible for the more in-depth memory managment for the engine. This projet was done for a Foundation of Game Graphics class where the goal was for individuals to develope the basics of a graphics engine (model loading, object and material systems, etc.) individually and then halfway through form a team with 2 other people. Once a team was formed everyone would have to merge their engines together to create the engine that the group would use. After that the group would add in more intensive graphics systems (post-proccessing, particles, shadows, etc.) together, before finally creating a game in the engine.

See it on Github!

less...



Picture of a project

Cosmic Clash

A networked FPS in a zero-gravity setting made with Unity3d.
more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

My role here was to create the games weapons, as well as a pickup system for the player to aquire new weapons mid-round. The weapons had to be made to preform hit tests against the opposing player across the network. This was done by having the players share their colliders to the network. Then when a weapon is fired it creates a raycast and shares that with the network. The network then preforms the hit test itself and sends the result to all of the players, who react accordingly. I also created the design doc pictured above.

Download and play it now!

less...



Picture of a project

Zoom Cars

A racing game with procedurally generated tracks and realistic car physics, made with Unity3d.
more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

My role in this project involved creating a car controller based in real world physics. This was done by creating an Engine class that holds a look-up table for converting rotations per minute (RPM) to horse power (HP) as well as a function that converts HP to torque along the drive shaft when the car is in a given gear. An Axle class then takes the torque and uses more look-up tables to get both longitudinal and latitudinal friction forces created by the tire. The main Car class then collects this information and applys it to each axle according to their orientation, which moves and turns the car. I also created the design doc pictured above.

Download and play it now!

less...



Picture of a project

Galactic Attrition

A 1v1 card game designed for quick, unforgiving play.
more...

Last Edited: Sunday, 04-Jun-2017 19:51:01 EDT

My role in this game was balancing and playtesting. I did this by creating a spreadsheet in Excel with all of the cards. The cards power and cost were balanced against each other, with values assigned to card's special effects and even the chance of the player having the card in their hand being included in the calculation. I also created the design doc pictured above.

less...

s