Lacuna • July 15, 2022

I've had in mind a little side project for a while; in fact it's something that has been knocking around my head for many years. I suspect that it may well knock around for a few more unless I solve all the interesting problems.

Rather than explain what it is I thought I may write up the process of creating it from scratch; and try to explain the reasoning behind the relevant components.

It is potentially a long-winded process for some, but I reckon having a working, documented plan as well as a full test suite; using unit, feature and acceptance testing as well as a decent level of static analysis in place, I think the code can be something to be proud of, and something that can be shared with people further down the line.

I would like to have the code peer-reviewed as well, so I'll be asking a couple of friends to look into the code, see if I've missed anything important.

As for the code itself, yes, I will be making it available, and better yet, it will be open-source. I've seen a lot of smaller browser-based games fail badly because they have not opened themselves up to other people, and in fact those games have rapidly become stale, often badly managed and sometimes very toxic environments. Github, or Bitbucket? Not sure; I'll probably just host it myself using gitweb as it's an easy option.

There's a tremendous amount of stuff to get through before a game can be launched, and a fair bit of maths to create and check formulas, nothing overly difficult but time-consuming. Some processes, I'll probably skip for brevity, and in order to make things easier for people following along, I will release code at key stages and try to move reusable features out to modules or components where possible.

Wrapping up

As a side-project, it is not a small thing, but equally it's unlikely to permit me to retire early; money may be possible to make from it, but that's not why I'm doing this. It's a bit of fun, a chance to learn some new concepts, and broaden my skills. After all, why else do we write programs?