Year In Review 2018

For my job I released a big game - I did mostly ui programming, but that overlapped pretty heavily with design work. I also did a bunch of little bits and bobs, shipping a game is seldom a straight path, and my role has always been fluid. I am glad that I have managed to keep fluidity in my role even though I am now working with a larger group. It came out in august, which is why I think I was a little light on personal projects in the middle of the year.

mglue is a tiny game engine. I based it on an older project I was working on, mgled, but this time I rewrote it in typescript, and started cleaning up the api so that other people might be able to understand it. It clearly still needs work before other people can use it, I feel like the largest stumbling block right now is the overhead of downloading and setting up the tool chain. I find myself bailing on other javascript projects unless they have a nice neat npm package, and even then, it tend to be too much work to make that function. That said, this project is in a place where when I go back to it, I can get back into making a game pretty quick.

I made three games with mglue:

  • worm drive - a strange take on nibbles / snake. I spent a reasonable amount of time tuning this and playtesting it. I think it is pretty good.
  • juggle ship - playing with the ideas that I had for snuggle ship but attempting to make them into a more interesting play space. This is looser than the above game.
  • lode tend - I made this on a coast to coast flight. It didn’t get much playtesting at all, but I had fun making it. There are much better versions of this game, but this one is mine.

It isn’t something I made this year, but ROFLpillar was curated into the V&A videogames exhibition. I am kinda floored to be in such good company there, and it was a massive boost to me to have a piece in that show. I think my pace on projects in the 4th part of the year can be partially attributed to this. We also took a month long family trip to the uk and germany to see this show and friends, and that put me in a great mood.

I made an ANSI art editor - this was just a quick project to do some setup for 7drl next year, but it is working pretty well with the 3 weeks of work that I have put into it. I have a laundry list of features to add to it based on feedback from the small version I made. I am also having a ton of fun making drawings with it.

I have stopped using twitter for communicating with people, I just post projects up there occasionally. I am now on mastodon, and made this autobooster script to help manage my privacy there.

I have really been enjoying using glitch and made a few prototypes.

  • fever chat a 2d multiplayer chatroom based on a fever dream I had one time. I am almost certainly going to revisit this with my ansi art stuff.
  • rot-js-starterpack If you want to work on a rot-js game on glitch, just remix this project. Hooks you up with webpack so you can use other npm includes.
  • c64 noise While I was trying to get the performance of rot-js display fast enough for my ansi art editor purposes, I made this. I thought it worked well as a standalone.
  • mermaid transport A weird vr game where you get in a mermaid costume and roll around on the floor. I showed a few people this prototype at fantastic arcade, but I don’t know if it is gonna go any further than that.
  • waaves a quick animated ansi art sketch.

I did a few drawings and sounds and things, but they are kinda just scattered around and I can’t be bothered to collect them.

I also spent quite a bit of time playing with lego. My kid really likes great ball contraptions so I made a few of them. I haven’t graduated to making my own designs yet, just building them from plans I find online.

I also ran a 5k. This was the first big exercise thing that I have pushed myself to do as an adult, and I feel really good about it.

Mastodon Autoboost

I am clean and free of twitter for one week, and it feels great! Of course, I have replaced it with something that solves some of the issues, but not all, and that is mastodon. Its got a bunch of nice features, one of which is the ability to make semi-private accounts. You can have some of your posts public, and some private, and only your followers will see your private things. This is great!

However, it means that people you don’t want to see you private things have no mechanism to follow only your public stuff. Most people have been solving this with maintaining two seperate accounts, which is a totally fine approach. I decided to automate it, and give people the ability to follow just my public posts. The way that I am doing that is by using a public account that automatically boosts posts from the private account if they fit a certain set of filters.

I set the whole thing up on, and you can easily!/autoboost if you would like.

additional notes

I think mastodon is great - no ads, no algorythmic remixing of posts to drive engagement, ability to run your own server with you own rules. The api and tools that are set up for making bots on it are great as well. I really want spin up some bots that I took off of twitter on mastodon just because it would be easy.

However, I wonder if the underlying social space that it is creating is fundamentally flawed. Twitter has all of these problems, and it grew into them partially organically, and partially directed by the interests of the platform. Twitter encouraged me to perform on it in a way that I didn’t love, because I had some extremely visible numbers that would go up and down in realtime in response to what I did there. The way that it feel like a chat room (many to many, mostly equal social standing in discussions), but simultanously a blog (one to many, with a section for the public to respond) is a weird way to think about discussions. I am curious to see how this makes me feel, now that I have a partially private account.

I am hoping that it will land for me somewhere like the semi private forums that I was involved with in the late 90s / early 2ks, where I could have drop in conversations with friends. I think it can - just framing it correctly in my own mind is a big part of it.

Play in Process

I have been working on real actual paying client work for the last little bit here, and the blog where I talk about my personal projects is of course getting neglected. Life changes (upcoming human!) mean that financial pressures are a bit more real for the moment, so I have been forced to think about if my side things are going to make me money. And since they tend not to fufill that goal, I think “hey is there a more relaxing way that I could be spending my time”. So I have been falling asleep on the couch while listening to baseball on the radio.

The last project all got a little overwhelming when I started working on animation for it, and realizing that I probably needed an artist to make it look the way I wanted. I haven’t touched those files in a while, but I might get back to it.

I was struggling with the iphone tracker a bit after realizing that the interface was just a total unfun mess. I descoped it down to a drum machine, and have been happily plugging away at that on and off for a few weeks.

One of the funny things that happens to me with making interactive art is that I forget to stand back and just experience it. Code change, Recompile, Check to see if code changed did the thing, Repeat. Or Does this thing now fit the ideal I had in my head for it. And so the changes just revolve around the vision, rather than the vision changing to fit what you actually have in front of you.

I spent probably 20 minutes actually playing with the drum machine, and it was so enjoyable, I tore through like 5 major features that I had been putting off in favor of writing boilerplate, or teeth gnashing about percieved performance problems. In design school, they taught us to make changes, then test, then make more changes. With all the expectations that I am holding for this project, I have weeks of work that I could do. But pulling back is super valuable for my energy on the project, possibly even more so than adding new features.

I suspect that I am not the only person with this problem. I don’t know where it comes from, but I have some ideas. When working with other people, I notice that I defer to them about what needs to change in the feel of the thing. The thing that I percieve as valuable in my contributions is the ability to make changes, or to just grind on the code. And if I am enjoying the object itself, that is somehow a waste of my time. But any time that I actually play with the thing, it becomes worth more than the vision of the thing.

Weekly Dev Log 2/8/16

Changing formats this week, because hours wise, it was primarily client work.


The two major things I did on the game this week were tooling things. The first one was a clone of the pico-8 sprite editor. I don’t know if I will end up using any thing created with this, but the graphics need to go, and having a tool to make the new graphics felt like a good start. Then I didn’t end up using this tool for any game related stuff, I just jumped to the next thing.

I built a opl style synth, and then decided to make a quick tracker for it. This whole process took about 9 hours.

opl tracker

And then I thought to myself, I should revisit the iOS tracker that I have been working on for about 3 years. And then I discovered that not only is the whole thing buggy as hell, but the basic underlying interface concept is terrible. That was the part that I was most excited about. Frustrating, but not the end of the world, I just need to rethink everything.

I notice that when I have one major project going, the other projects become fragmented and difficult to focus on moving the core bits forward. This is something to deal with in the coming week I think.

Weekly Dev Log 2/1/16



Another 50 hour week in the can. These are totally exhausting, and I need to stop doing them.

I start and stop my timer whenever I stand up from my desk, so 50 hours translates to something much higher. Probably 70 or so?

The fun pak poked along this week. I got builds out to testers early in the week, and got some great feedback. I also made a new game and started integrating my synth a bit better. Not sure if I am actually going to go with my synth in the end, it all really depends on what the arc of the project is. I did discover that my synth is kinda a processor hog, but hopefully I can work out some solutions to that.

It seems like new games in the current style take about 4-8 hours of development time, but this might change with a newer better art style if I ever get around to that.


I also started in on the overworld for the game. I am pretty happy with this art, and hope that I am able to figure out a way to build out a whole world that looks like this, populated with these little frumpy characters.


Then the bulk of the week was global game jam. I am really happy with what we produced for it. Give it a download and a play if you have 10-15 minutes to spare. It was so nice to work with an artist and have something that looks amazing at the end of the jam. Also working with a writer and voice over person was excellent, and she did a great job with our super vague input.

I was really happy with the new unity tools for audio, if people haven’t checked them out, they really should. It makes it easy to do complicated sets of ducked audio and soundtracks and such. I am sure I didn’t do a perfect job on the mixing, but hopefully good enough.

The inscriber ritual is the one bit of the game that I am sure I am going to revisit, and maybe release as a little iOS separate toy. We will see if I have time or not.

  • global game jam 25:23:00
  • fun pak 19:50:19
    • checking build on iPhone 4 0:38:34
    • content - arcade games 4:12:11
    • dynamic sound library 4:09:25
    • getting the web server running 1:13:00
    • overworld 6:10:48
    • setting up testflight 3:07:36
    • texture packer 0:18:45
  • dev log + project management 0:24:24
  • contract work 2:09:40
older posts
This work is licensed under a Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.
powered by Jekyll with Barecity