Instruction Set Postmortem

I don’t know if writing these are a tradition, as this is my first IF Comp, but I have enjoyed reading what the other authors have written here, so I thought I would do one myself.


I started Instruction Set for my 12 year old daughter. Her older sister was interested in programming and I had done some projects in MIT’s Scratch language to help her learn programming concepts (I work on games professionally as a programmer). My second daughter is more interested in art than programming and I wanted to build something with her. So I came up with a little puzzle game idea with dialog based cut scenes in between the puzzles. My daughter could create the drawings of the characters talking in the cut scenes. The game was designed originally only to be played by her and her friends.

I gave myself a little challenge in the concept as well. I wanted the game to have a text interface and to have a mid-80s terminal look to it. Scratch doesn’t support keyboard text input like that, nor does it allow you to print text to the screen. I thought it would be fun to try and get around that. It’s a bit complicated how I was able to do that, but in the case of printing the text, I had to draw each letter by hand in an image then stamp that image into the background one at a time.

I first heard about IF Comp through the podcast Short Game, when they covered the 2017 competition. As my daughter and I got through the first few levels, I thought, you know this might work for that competition. It is in essence a parser game. So over the summer break from school, we got a bit more serious about adding unique elements to the game and flushing out the story a bit more.

The feedback from the Comp reviewers was all over the place. It ranged from ‘literally unplayable’ (which it turns out was in fact literally true for some) to ‘very smooth experience’ and ‘the puzzles were just so boring’ to ‘creative and interesting puzzle crafting’. My first public review came with a rating of 2 out of 10. I certainly was in this just for fun, not to place highly, but that low number surprised me.

There were three main points of critical feedback:

  1. The game was extremely laggy for a subset of players. Every key press would take several seconds to process. Amazingly, some of the reviewers actually finished the game even with these conditions.
  2. Some of the entry level puzzles were unoriginal and not very interesting.
  3. The story didn’t really develop to fit the puzzles until late into the game.

The first point of feedback took me entirely by surprise. I had tested this game on all the major web browsers and it worked in all of them. It took some digging with the help of some of the other authors, but the root cause of the problem was found to be Flash plug-ins that were either out of date or not fully supported, especially people using older OSes or OSes that don’t get a lot of support for web plug-ins (think Linux). The tricky stuff I had to do in order to read keyboard input in Scratch did not play well with these older Flash plug-ins. This was a problem with the platform, and there was basically nothing I could do in code to make it better. Instead, I added a little blurb on the IFComp site next to the game about the problem. I later received more reviews dinging the fact that I added that text or that I used Flash at all.

The second and third point are ones I agree with. They result from the process I took writing this game. The first few puzzles are meant to introduce mechanics and were written when I had no intention of sharing this project with the outside world. The later levels have puzzles that I designed, and I was pleased to hear that most players that made it into those levels enjoyed them. I got the most positive feedback on the maze puzzle in level 9 - which I originally considered not adding as it is the only puzzle I didn’t have the patience to fully represent using text characters. The musings you get in text early on in the game are actually biographic - they are experiences from my own childhood. The cut scenes were more about cute interactions with a flustered and excitable intern working with a grizzled and frazzled researcher (and a broken coffee machine). The story gets a bit more serious later on and explains why the puzzles are present, while still trying to keep some of the original levity and keep it relevant for ‘tweens’.

Things I learned

  1. Scratch really isn’t a good programming language for IF. I really knew that to begin with. It was something of a challenge for me as a programmer to be able to create something like this with what amounts to the equivalent of the plastic construction tools you buy for your toddler. I did not know just how bad the experience would be for some of the players, and I do regret providing them that experience. The upside to all of this though is that this game is actually a pretty good education tool for learning some programming and game programming concepts - the source code is all available. If I were to do this over again, I would still use Scratch, but that’s because my primary purpose was to write something with my daughter and the comp came second. If that order were to be reversed, I would use Unity for a project like this.

  2. The quality of the IF entries were just a lot higher than I anticipated. I originally thought of the competition as the submission of a bunch of hobbyists putting in their cobbled together ideas. While this is not entirely untrue, the love and effort put into most all of these games was something I hadn’t anticipated. I think that if I understood the quality bar in the way I do now, I would have gone back and reworked the original levels to present some more puzzles of my own design rather than reusing puzzle concepts widely available on the web.

  3. The author community is just awesome. Behind the scenes, there is a forum for the authors that is very active and full of some amazing people. There are some incredible reviews of all the games sitting in that forum that I hope are at some point exposed to everyone else. It is that community that has me thinking of participating again next year with a little better understanding of what people are looking for. A corollary to the insight here is that I will never, ever be able to write as well as some of the other authors here. So I believe even my future entries will have to lean a bit more on what I can bring to the table - an ability to work in this genre without being limited to using the available IF tools.

  4. Players really appreciate having a walk through. I had a pretty thorough one, and several people commented to me on how it helped them if they became stuck on a puzzle. Getting stuck was often a function of not understanding exactly the commands available (or rather understanding them differently than I did, even with the help text). I went out of my way to make the parser very, very limited and always have on-screen the only available ‘Instructions’. Having a walk through allowed people to still experience the full game if they ran into a problem.