Projects

Tack & Trim

Tack & Trim

A top-down sailing sim. You move around the deck between the helm, mast, and bow to steer, hoist, and trim, and the sails are simulated as cloth, with lift and drag worked out across the sail from the wind actually hitting it. Waves bend, slow down, and break as they reach shallow water around islands, and the weather and light change through the day.

Between ports you take delivery jobs, earn money, and trade up through a shipyard's worth of boats from three different builders.

Woodworking Tycoon

Woodworking Tycoon

An idle/simulation game about running a woodworking shop: buy machines, arrange your workshop, turn raw lumber into finished pieces, and sell them from a roadside stand. The long arc goes from building shelves out of scavenged pallet wood to building a sailboat for retirement.

HandmakerHandmaker

Handmaker

Turn photos of your handwriting into a real font. It finds each letter on the page, traces it, works out the spacing from how you actually write, and builds a TrueType font, all locally in your browser.

Utopia Must Dance

Utopia Must Dance

Aliens have invaded Earth with one mission: to stop humanity from dancing. You're a stationary turret defending against waves of anti-dance enemies, building up your upgrades to keep the music playing. A knockoff of Utopia Must Fall, but with funkier music.

Speed Shopper

Speed Shopper

A game about shopping quickly. Grab a cart, find everything on your list, and get out.

Pachinko

Pachinko

A pachinko bagbuilder roguelite: drop balls, score points, and build up a bag of increasingly weird balls.

Mariana

Mariana

A deep-sea diving game: jump off the boat, catch fish, and keep an eye on your air and depth gauges. It grew out of our Ludum Dare 55 entry.

Bounce Bots

Bounce Bots

At a boardgame convention I played a game called "Ricochet Robots" that I immediately fell in love with. It turns out this game is long out of print and somewhat hard to get a copy of, so I made my own web clone of it.

Highrise

Highrise

A top-down zombie shooter, built on my own engine.

Pinball

Pinball

I started making this during the pandemic, before I'd played much real pinball. The table is rendered in 3D with reflections on the ball, and keeping the physics fast as the table filled up turned into a three-part series about profiling and rewriting parts of the physics engine.

Writing

Web Audio Organ

Web Audio Organ

A pipe organ simulation built with the Web Audio API, complete with ranks you can toggle, reverb, and a tremulant.

SaladBowl

SaladBowl

In high school and college I frequently played a game with my friends that we called SaladBowl. It started with everyone getting five slips of paper, writing down a short noun-phrase on each slip, then putting all the slips into a container in the middle (traditionally a salad bowl). The game then played similarly to taboo and charades, but while using clues drawn from the salad bowl. I made this website to facilitate playing the game without needing pens or paper or a bowl or a person in charge of a timer.

Pod Racer

Pod Racer

I wanted to make a racing game where instead of the controls being throttle and direction, you just have two throttles for two engines out in front of you. I got to write some fun aerodynamics code for this (I had an aerospace engineer for a roommate to help me out with the physics).

Commander Periscope

Commander Periscope

I really enjoy the boardgame Captain Sonar, but it's not that often that I have 8 friends together to play it, so I wanted a way to play it online.

It got to a playable state, except the radio operator probably needed pencil and paper to draw their path by hand. It's no longer hosted, but the code is on GitHub.

Game Engine

The TypeScript engine I build my games on, including Tack & Trim, Highrise, Utopia Must Dance, Speed Shopper, and Pachinko.