project 3 project 3

Erebot Screenshots

DateAugust 2017
ToolsUnity 3D, Blender3d

Screenshots of Erebot, an solar powered puzzle game I made in 48 hours for Ludum Dare 39. The game features a distinct low-polygon style with bright colors.

The player controls a solar powered robot tasked with finalizing preparations for the human colony on Mars. Unfortunately the robot has suffered catastrophic damage to its power system and will shut down if not able to recieve constant solar power.

Every asset in the game was developed by me within the 48 hour time frame of the Ludum Dare. I spent a lot of time on the art, and am very happy with how the game looks. The camera system is probably the biggest problem with the game. It is close to being good, but unfortunately there are times in the game where the camera doesn't show key elements of the game. This is the biggest element that I'd like to spend time improving.

I earned the 6th in interpretation of theme, 15th in innovation, and 36th overall out of 990 entries in the 48 hour competition.

The competition version of Erebot is available on here

spz_enemy1 spz_enemy1 spz_enemy1

DateSummer 2016 - Summer 2017
RoleTechnical Director
LanguagesC++, Lua
ToolsVisual Studio 2015
LibrariesOpenGL, FMOD Studio, LuaJIT, FreeType, SDL2, GLEW, Spine

Student game developed by Team Aubergine.

Alatheia is an Ancient-Greek themed exploration-focused platformer where the player uses a grappling hook to traverse the world. It is built in a custom engine implemented in C++ using modern OpenGL.

As Technical Director on the team, I was the principle engine architect. I implemented the entity/component system, the event system, the resource management system, and a job system for multithreading. I was also the primary graphics programmer on the team, which involved implementing mesh, shader, and texture pipelines, as well as custom shaders for several visual effects in the game. I also wrote the gameplay code for the grappling hook mechanic, and wrote some graphics code for drawing the rope on the GPU using a geometry shader to render a bezier curve to minimize the data that needs to be sent to the GPU each frame.

My Resource Management system enabled the engine to load resources in the background, as well as detect changes to assets while the game is running and trigger a reload. This system was referred to as "hot-loading" and enabled all team members to immediately see their work in game, and try out variations quickly. The resource that supported hot-loading included lua scripts, shaders, and textures. This enabled us to reduce iteration time further on these asset types, since there was not even a delay of restarting the game to see the change in effect.

This game is available for download from DigiPen here

All of these images are ©2017 DigiPen Institute of Technology

spz_enemy1 spz_enemy1 spz_enemy1

DateSpring 2016
RoleTechnical Director
ToolsVisual Studio 2015
LibrariesAlpha Engine (Proprietary)

Student game developed by Team Funk++.

Cyberfunk is a top down 2D isometric RPG-like rhythm game where players dance to restore funk to a futuristic dystopian world

As a rhythm/RPG hybrid, the game presented many interesting technical challenges. Our engine had to support multiple gameplay spaces interacting in order to have the dance battles be seperate but have an effect on the 'overworld' space.

The core systems I implemented in Cyberfunk were the level rendering system and the level editor. I also developed a scripting system that enabled dialogue scripts to be written that could include basic control of game objects.

This game is available for download from DigiPen here

All of these images are ©2016 DigiPen Institute of Technology

spz_enemy1 spz_enemy1

Concept Renders of an enemy for Sector Plural Zed

DateOctober 2015
ToolsBlender, Cycles Renderer

High-poly concept renders for the first new enemy type for Sector Plural Zed. Designed to be able to move quickly over varied terrain, and scan for hidden enemies.

The prototype of Sector Plural Zed is available on here

spz1 spz1 spz1 spz1

Sector Plural Zed Levels


Some screenshots showcasing the procedural level generation in Sector Plural Zed. Shown here are the warehouse room types, with some hallway visible as well.

The generator creates abandoned stations with both hallways and large rooms of varying types. Each station is assigned one color to accentuate the mostly grey color scheme of the stations. Because most of the possible colors if generated randomly would not be visually pleasing or stand out, the colors a chosen from a list of pre-approved shades.

After stations have been generated, the rooms are filled with clutter physics objects. These are placed according to predefined patterns, to give the illusion of logical human arrangement for things like shelving. Some of the objects placed will cause an explosion effect, causing the objects around to be scattered. This makes stations far more visually interesting and adds a lot of variety to the levels, increasing the sense of these areas being abandoned in a hurry.

In the control rooms, the consoles are designed to be interactive and display station status. The room was designed to provide cover for intense shootouts, featuring a control pit in the center to provide cover. Future plans for this room type include an alternate version raised platform, instead of the sunken one, to provide another interesting combat area.

All level art and programming is my work. The weapon models visible here were created by Mitch Lydyard.

The prototype of Sector Plural Zed is available on here

project 3 project 3 project 3

Consumption Screenshots

DateAugust 2015
ToolsUnity 3D

Screenshots of Consumption, an ecologically themed survival game I made in 72 hours for Ludum Dare 33. The game features a distinct low-polygon style with bright colors and is currently being polished into a finished version.

The theme of the game is a very small ecosystem. Hunting too many of the wildlife will reduce the rate that they can breed, and possibly drive them to extinction. Cutting down trees and starting fires will warm up the environment and kill more plants. Eventually if unrestricted this damage becomes irreparable and the player will die.

The rework of this game currently in progress features an updated weapon system and inventory, as well as an expanded environment.

The jam version of Consumption is available on here

project 5 project 5 project 5

Frenzy Inc.

DateApril 2015
ToolsUnity 3D

Office-themed deathmatch game built with Eli Wulff and Katrina Kimzey in 72 hours for Ludum Dare 32. Players use improvised weaponry to battle for office supremacy, and use the coffee machine to regain their strength between fierce bouts.

Coworkers appearances are chosen randomly from a set of pieces and colors, and they are each given a unique description of what petty office crime they have committed. This is a concept I want to explore further at some point, but is not currently in progress.

The prototype of Frenzy Inc is available on here

project 6 project 6 project 6

Spaceship Render

DateDecember 2015
SkillsBlender3d, Cycles Renderer

Being away from my primary system for a christmas break prompted me to work on some smaller projects. I took inspiration from many science fiction ships, and built a fighter that has limited firepower, but looks built to go fast. The wings animate to fold or unfold, and the landing gear stows neatly inside the body. The engine nacelles on the sides can also articulate to provide vector thrust.

Currently untextured, this ship is a work in progress.

  • project 9


    Ludum Dare Entry

  • project 7


    Student Project

  • project 8


    Student Project

  • project 1

    Sector Plural Zed Enemy Concept

    Advanced walker robot

  • project 2


    My ecological survival game

  • project 3

    Sector Plural Zed

    Procedurally Generated First Person Shooter

  • project 5

    Frenzy Inc.

    Ludum Dare 32 Entry

  • project 6

    Spaceship Render

    Mini Project

Code Samples

Here are a few examples of my code from various projects

  • JobBot multi-threaded job system for real-time applications
  • Multi-threaded Resource Management System from Alatheia
  • Geometry shader for rendering bezier curves in 2D games
  • My C++ template vector library