Game Development Portfolio


Above is a link to a separate site, where I host a playable branching narrative game I created as part of a job application.


The above video features a prototype Plants vs Zombies that I created in order to learn the Love2D engine, which uses Lua. As may be obvious, I was also taking the opportunity to learn Inkscape for the first time to develop my vector art.


The above video is the trailor for Shrimpwrecked, an independent project released on Steam. It began as a mobile game with the aim of staying programmatically sharp, and to illustrate aspects of programming and game development to a friend. It has since been revisited and flipped into a PC game. Developed using Unity in C#.


The above video showcases a full play-through to scrub through as desired. There are six discrete levels puncuated by boss fights that lead deeper into the ocean, and then to space. The simple controls revolve around only directional keys and clicking the mouse to fire bullets. Originally, the game was played by tilting a smart phone to direct the movement of the shrimp, while tapping to fire. This translated to using the directional keys and mouse. The tracking of your shrimp and the cursor in relation to one another among the chaos is the focus of the game.

The intent of the design was to increase complexity by adding opposing entities abilities, playing with combinations, and altering space and predictability. The journey through to the bottom of the ocean entails the frequent shifting of direction, speed, and surrounding space. These changes work to keep things dynamic and interesting.

The variety of enemies work in several categories to complicate things. Some enemies, such as fish, octopus, and turtle, serve simply to provide collision obstacles to be avoided or shot. The fish moves in a straight line, with the octopus moving linearly with the other axis movement running through a sine function. There are projectile enemies, such as the blowfish, and electric eel. These enemies operate to introduce increasing danger and risk/reward, respectively. The blowfish acts as a time pressure, as it periodically introduces projectiles in all directions. The eel releases an explosion and projectiles only when smitten, thus may be better to avoid.

There are also spacial restraining enemies, such as the whale, jellyfish, and angler fish. These enemies are about placing constraints on freedom of movement. The angler fish is the only of these enemies that may be killed, and actively approaches the shrimp protagonist. The whale takes up a large amount of space, making things more difficult to navigate for a brief period of time. The jellyfish work to illuminate the increasingly dark ocean. Some are difficult to spot in the chaos, and alongside blocking your projectiles, they move in concert with the speed and direction of the stage.

The brief cooldown of the rate you may fire and the brief periods of invulnerability when entities with more than one hit are struck combine to make things slightly more tactical. The bosses provide frequent shake-ups and break up the navigating of the increasingly chaotic ocean delve. The dramatic slow motion deaths of yourself and bosses allow for processing of things while adding impact.


The above video showcases the framework for a roguelike engine, build in Love2D using Lua. It shows the placing and wielding of several light emitting objects around a procedurally generated cavern, showcasing the gradual graphical representation of known/unknown, visible/invisible, and illuminated/dark areas. Also shown is goal-directed and automatic pathing.


The above video is a short clip that illustrates how water tiles function, using a combination of pixel shaders and the referencing of a sine function based on position.