Personal Projects

Slate2D (2016-)

A toy 2D engine written in C++. Supports a drawing command set similar to fantasy consoles, but without designed restrictions. Write your games in C, JavaScript, or any language that can call C library functions.

Discwordle (2022)

A cooperative version of the popular word game, playable over Discord. Guess the secret word in six guesses or less.

Xbox Headset Chat Dial (2021)

Enables use of the Xbox Wireless Headset's chat dial, a hardware dial that adjusts the volume of the voice separately from the game volume.

Jepbotty (2019)

A Discord bot that plays a famous quiz game. Multiple rounds, bidding, and even an optional mode where you buzz in with voice chat!

Hot Air (2018)

A game for the Awful Holiday Jam 2018, Hot Air is an arcade game made in a week, using the theme "Festive Spirits." Avoid awkward family holiday conversations by floating through levels filled with divisive conversation topics.

Battlement Defense (2018)

A game created for Awful Summer Jam 2018, themed "Unnecessary Sequels." Relive the history of fictional British game developer Clive Sturridge through the ages, with his original hit "Battlement Defence" and it's many needless sequels.

ES6 Project Template (2018)

This is my project template for browser-based ES6 projects, lovingly known as "sponge-hates-setting-up-small-js-projects." It is an extremely minimal project template for developing ES6 JavaScript pages in modern browsers.

E-Ink Weather (2018)

An e-ink display powered by an ESP8266 that occasionally connects to Wi-Fi to refresh its display with weather, or any other infrequently updating displays.

Quake Live Duel Stats (2017)

Analysis of 100,000 Quake Live duel matches, in an attempt to determine competitiveness, and the likelihood of winning over time and score gap.

JSWeather (2017)

Generates GIFs of early 90s style Weather Channel displays for use in a Discord bot.

ET:QW Map Viewer (2007)

Zoom and pan maps from Splash Damage's 2007 title, Enemy Territory: Quake Wars.