I write games and design programming languages for fun.
I think that code should be readable and clear and collaborative and that programming languages should make that easy to achieve.
Here are some of my recent projects.
Blue is a platformer designed by my son, where I coded whatever he thought best for the game. The game is drawn on a piece of graph paper, based on the sheet of paper where he first drew his design. Now that he is a little older, we are reworking it into more of a game — the one online right now is barely a proof of concept. (Supports gamepads if your browser does!)
Play with Blue here
Tact is a game based on a globe in ASCII, themed around an alien invasion in the 1980s. It used Luajit (a wonderful just-in-time interpreter for the Lua programming language) and was very clever in how it handled foreign function calls, but this proved to be its undoing, as it turned out to be very difficult to maintain.
Freehold was a roguelike game where the player built up and defended a settlement against nightly raids. It featured simulated water and staves and potions of water that sent tidal waves against the enemy. The heightmap was randomly generated, with mountains and valleys available. It was written in C and Lua.
Trace is a hydra of a programming language project. I noticed that several of my goals dovetailed and that the best way to achieve any of them is to achieve them all.