Works in Progress

Please see my portfolio for videos and published demos.

I focus mainly on the core logic of the game engine, since that’s my primary area of interest/experience.

These are my works in progress. I would consider Centipede feature complete, but there are open issues (both enhancements and bugs) that I plan to continue to work on. Resource Quest in Unity is nearly feature complete, and needs polish, but you can view the source code from the link on my portfolio.

For each project, I keep a journal, and intend to publish a post-mortem on completion.

I use game development as a vehicle to learn new technologies. For example, making Resource Quest in Unity was a lot easier than making it in React, so if the goal was simply to produce the game, Unity would be the obvious choice. Typically, I want to see how the logic works differently in different languages and compare different approaches to the same problem. I find it also helps to have interesting problems when breaking through the barriers while learning a new technology.

HTML5 Canvas - Atari Game clones

This is probably my largest undertaking, and is the most complete. I’ve written fairly extensively about the project here.

Playable demos:

  • Centipede
  • Space Invaders (first game built with custom canvas library, using centipede assets)
  • Joust (still in concepting, does not use the library)
  • Robotron (still in concepting, does not use the library)
  • Dig Dug (not hosted, concept still in development; you could download it and load index.html to see the very rough work in progress, if you’re so inclined)
  • Custom library/engine (coverage is not updated since extracting logic from Centipede)

Further plans:

  • Gunsmoke
  • Asteroids

I saw pretty quickly that large portions of each game were the same, so I created a library with common logic. I spent about a month of personal time working on the library. The library includes things like:

  • Controls, both keyboard and gamepad
  • Sound management
  • Common game loop functions
  • Supporting functions to perform common operations like random
  • Base components for the game sprites
  • A configurable menu
  • A leaderboard that saves to Google Chrome’s local storage

I then used the library to remake Space Invaders with only about 10 hours of effort.

MUD Prototype: Knights of Something Notable

I experimented with some base concepts for a MUD in Java (to sharpen the Java saw), and wrote a series of blog posts about it.

It’s not very accessible demo-wise, but there are instructions in the README for getting it running.

My favorite piece is the creature manager, which runs in a thread.


Further plans: I’m working on the architecture design of a MUD using a web-service layer as the input.

Text-based ReactJS Games

Here is a framework app (playable demo) written in ReactJS for a web-based text adventure. It’s a rough work in progress, but the map layout is designed in a google spreadsheet using conditional formatting and room type flags, exported as JSON via a google script, and imported into the game as a javascript object.

To generate maps:

  • Set cells to a room type using the letters from the legend tab
  • Use menu Things > Output the Castle JSONs

Next up is a resource management simulator:

The UI and simplicity of both of these games draws heavily from the very excellently done A Dark Room.

Unity 2D

My most recent project is in Unity, and is a re-design of the Resource Quest game I wrote previously in React. It’s completely UI-based, with minimal sprites and animations. Currently it’s on the Google Play store in closed test. I would gladly share an APK on request. Let me know if you’re interested in being a tester :).

You can find the repo here.

What’s next

I have several ideas in the pipeline:

  • Tavern/Inn Business simulator, 2D, played from a cutaway perspective, a-la Tower Sim
  • Wizard school management sim
  • Post-apocalyptic Open-Prairie farm development simulator
  • Web-based MUD

Other Projects

I’ve also dabbled with non-game projects. More info on those can be found on my deprecated blog (support ending in 2020, just like Python2).

Included are: