avatar

The EOS demo project is a small coop Vampire Survivor clone. It was made mostly as way to experiment with Epic Online Services in the Godot Engine.

Epic Online Services are a collection of utilities Epic provides for free to facilitate making online games. The services are broken into a series of ‘interfaces’.

This project uses the Peer to Peer Interface to allow players to join games with each other without having to do port forwarding or use dedicated servers.

Windmill Slam

Windmill Slam is a roguelike deckbuilder that lets you execute the dramatic final turn of an intense card game - over and over again.

Your goal is to make it through as many stages as you can. In each stage you draw five cards and use them to clear all the demons off the board. Each card has a power level; if you have enough cards adjacent to a demon to match or exceed its power level, you can destroy it.

I worked primarily on the event system that allows cards to have transactional interactions with each other. I also worked on the card animations, which were driven by the underlying event system.

This game was made for Mini Jam 147 and is a ton of fun!

Sacrosanct

Sacrosanct is a 3d tower defense game built in the godot game engine for a game jam.

In Sacrosanct, the player builds towers that alternate between freezing enemies and breaking ice to upgrade their towers.

I built this project on a team of three, and contributed primarily animations, pathfinding logic, and turret effects.

The “Wizard Game” Game Engine is a simple game engine I wrote for a game I never finished. The game was going to be called “Wizard Game”, so this is the “Wizard Game” Game Engine.

Building this engine turned out to be a great learning exercise. I got a change to dig into CMake, C++, SDL2, and OpenGL. The project includes an entity-component system, as well as rendering and physics subsystems. I’m quite proud of how this slightly unfinished project turned out!

The Elden Ring Lore Explorer is a small website containing all the text in Elden Ring presented in an organized, sortable way.

This is a fan project I made to make it easier to read and understand Elden Ring’s lore. It’s a single page, client side application. It’s built using vanilla javascript and chutzpah.

Tombworld

Tomworld is a 3d, doom-esq metroidvania game where you explore an ancient tomb. The game was developed in a month on a team of four for the metroidvania jam 13.

Tombworld was built in the godot engine, is single player, and has a playtime of roughly one hour.

An extensive youtube video documents my experience working on the game and it’s various systems.

Au Banque

Au Banque is a 2d puzzle platformer developer for the mini jam gold.

You play as a thief engaging in a series of heists. In each level, you must collect a number a gold bars and escape to the exit.

The game was developed on a team of two in 36 hours.

Watercolor Shader

A godot shader that applies a painterly, watercolor effect to any mesh it’s applied to.

Combines a number of effects to produce the illusion of watercolor paint.

A godot shader material that draws a voronoi pattern on a surface using a fragment shader.

The code has two parts - voronoi.shader which runs on the GPU and voronoi_driver.gd, which runs on the CPU.

Each frame, voronoi_driver updates the position of 100 points, encodes them in a texture, and passes that texture the voronoi.shader as a uniform.

Voronoi.shader uses the set of points in a fragment shader to decide what color a given pixel should be. If the pixel is on the edge between two points (within a margin of error), it draws the ’edge’ color. Otherwise, it draws the color of the nearest point to the pixel.

Tagsystem

C

Tagsystem is a command line utility written in C. It lets you organize files using tags instead of directories.

Sometimes directories don’t make a lot of sense. Does a song belong in its artist’s folder or its album’s folder? Does an npc belong in the level 3 folder or the flying enemies folder? Does a javascript file belong in the scripts folder or the login page folder?

Tagsystem provides a simple, performant, cross platform tool to tag and search for documents. Tagsystem tries to play nicely with your existing tool chain. Currently, tagsystem exposes two interfaces, a C library and a command line interface.

Blocker

I made Blocker back in college. It’s a 3d, multiplayer Unity game where you manipulate your own personal gravity to race other players across a map.

It supported 4 player splitscreen, which I think is pretty cool.