The 16th Bit – Postmortem

Posted by
December 19th, 2016 1:44 am

My entry is The 16th Bit. You’ve been mysteriously invited to a LAN party, and upon arrival you find out that the host has gone missing! There is a computer in the room that serves up two types of puzzles. Firstly you get cryptic clues, which you solve by picking the right computer game from around the room.
The 16th Bit

The second is a tile-based puzzle where you have to fill all the tiles with blood or water according to some constraints.The 16th Bit

I am a fan of cryptic crosswords and enjoyed The 11th Hour as a kid. The theme “One Room” seemed perfect for making something along those lines so I took a shot.

The game is fully voiced (I got my wife to voice the character who gives you hints – I did the others). One interesting problem I had to solve was how to have clickable objects placed around the room, without hard-coding the clickable regions. Probably some game engines provide a feature to do this but I had to implement it myself. Turned out not too hard: I used Krita to draw the graphics then opened the images in GIMP to create image maps for them. Then I wrote code to open up the image map files and extract all the polygons from them.

My big mistake: not playing to my strengths.

Originally my plan was only to make a cryptic clue-based game. It quickly became apparent that I wouldn’t be able to write a lot of satisfactory clues quickly enough. Furthermore, my plan to draw cheesy versions of the game art for each game would restrict how many games I could include (both as solutions to the puzzles and as red herrings). With not too many games to pick from, the gameplay was not going to last very long. I realised I had to supplement this gameplay with something a bit longer lasting. So the game alternates between cryptic clues and a new kind of tile-based puzzle. Fortunately I came up with some interesting rules and six nice puzzles using the rules.

The result, though, was that I basically had to make two games in one. The tile-based puzzle has simple rules and was easy to code up. But making a room that you can navigate and pick games out of, and drawing the room and the games, took a lot of work. Even though the art is very simple, it is not my strength, so it took a long time to make each graphic. It also took a lot of (thankfully not difficult) code to handle navigating the room and reacting to the player’s actions. So I was really pressed for time. I only slept about 3 hours out of the entire 48, and only had a couple of decent breaks. There was little time for polish and gameplay balancing, and I think the blood and water puzzles get too hard too quickly. If there was more time to polish and perhaps test the gameplay on people, I would have thought to make the puzzles a little easier and add more visual feedback/hints. Due to my tiredness I frequently had to deal with audio-related bugs. (And I forgot some other details, like an indicator of how far through the game you are.)

All of this spells out a lesson that I thought I had already learned. Between LD events, focus on weaknesses (for me: art, writing). During LD events focus on strengths (for me: puzzle design, programming). I’m happy that I stretched my limits a bit, but it’s better if most of the stretching is done before the event so that I’m comfortable and fluent with whatever skills I’m using during the 48 hours.

A second lesson is maybe not to try to make two games in one. The blood and water puzzle turned out interesting and if I’d spent the whole time focused on that (and got more sleep) I could have made a much more polished and balanced experience.

Well, that’s all I can think of to say right now! I think there are some things to enjoy about this game even if it is a bit under-polished. If you try the game out then I’d really appreciate your feedback because I’m always trying to improve and I’m sure there are things I’m just not aware of (or things I am aware of but don’t know how much they matter to the player).


Leave a Reply

You must be logged in to post a comment.

[cache: storing page]