Making a Game 24: “Deck the Halls, Gieves” Postmortem

Yes, I know that it’s Saturday, but I have good reasons for such a delayed post this week, honestly!

I was beavering away on my game jam entry last Sunday, and sweating bullets that I wouldn’t be able to make the deadline. Early in the afternoon I took a short break and checked my e-mails. The game jam deadline was extended to 5am Wednesday morning (my local time), which gave me two more evenings (and whatever other time I could spare) to work on my entry, and you’d better believe that I used them! After that, the rules explicitly stated that we could continue working on our entries, but that people were free to leave ratings at any time after the deadline. So, I’ve spent my spare moments since then continuing to patch holes and polish up my entry, in the hopes of getting the work done before too many people got around to playing my game. But now that I’ve finished the lion’s share of what I wanted to achieve, and Christmas Day has rolled around, I think that it’s time for me to hang up my keyboard and resign myself to my fate. My game only has two ratings at the moment, but that’s (hopefully) going to increase now that most people are going to have at least a few days off for the season. And that means that I have a little time, now, to write up a postmortem of my game jam development experience. I was planning to do something like this anyway, but since the organiser of the game jam has also asked for people to do this (if they feel like it), I’ll write a bit more of a self-contained article than my usual ‘blog entry style.

(Spoiler alert: If you haven’t played “Deck the Halls, Gieves” yet, and you think that you might want to, you should know that this post contains spoilers for a couple of the puzzles in the game. Since this post is about my thought processes while making my game, there’s no real way to remove these spoilers without taking away too much other discussion.)

I first heard about the Adventuron Christmas Jam when I received an e-mail on the 12th of November, five days before the official start of the game jam. Back in March, I had written a short text adventure game with Adventuron for the Treasure Hunt Jam, and I’d really enjoyed the experience. So much so that I went on to enter another game jam (the Bitter Jam) in April, and afterwards to start work on a “proper” game, which is what most of this ‘blog has been about. The Adventuron developers had staged another game jam since then, but I was really involved with my long-term game project just then, and decided to skip it. When the Christmas jam came up, though, I was having some trouble with my project, and with the cheery theme, I thought that it might be a good distraction/refresher.

I made my first mistake immediately. In the description of the game jam, the organisers had outlined a handful of helpful starting points for settings and puzzle ideas. Of course, I decided that I would have to do something unusual and definitely not on this list, which was pig-headed to say the least. It was a wonderful bundle of suggestions, and plenty of the other entries in the game jam are excellent games based around one or more of the concepts on the list. In fact, I frittered away the next two-and-a-half weeks just trying to think of a setting/theme for my game, outside of the basic “Christmas” requirement.

The first concept that I became stuck on was a weird meta-narrative where the player character (PC) was one of the main characters in an American sitcom from the 80s or 90s. The PC would not be a delusional person imagining that they were in a sitcom, but neither would things be played entirely straight: There was to be a framing story of a brainstorming session with writers, directors, and producers coming up with a script for the upcoming Christmas special. The PC would be the middle child of the standard nuclear family, having been pushed out of their original niche in the ensemble by the younger sibling, but prevented from maturing along the most obvious path as this would just be retreading their older sibling’s journey. I had an idea that within the game’s world there would be a number of “scenes”; pivotal events which the PC could revisit and replay as often as the player wished until they got it “right”, “right” here being causing the sitcom’s plot to advance in a way that allowed the PC to grow and carve out a new niche for themselves, and so “live” to appear for another season, rather than getting “put on a bus” by the producers.

I was so pleased with how unusual and intriguing this idea was that I kept turning it over in my mind for almost a week, without gaining any real insight of just how the game would actually play, turn-to-turn. I couldn’t come up with a single solid puzzle idea, or even really decide how the player would navigate between “scenes” (my subconscious solved this particular problem later, after I gave up on it consciously, so perhaps this idea will pop up again in some other game of mine in the future). Eventually, I forced myself away from the sitcom concept, and as a way of getting my creative juices pumping again, I started a list of other potential concepts. A few of the better ones were (boiled down) “MacGyver in an office Christmas party”, “future/alien anthropologists analysing an early 21st century Christmas”, and “trying to stage a Christmas celebration in a remote outpost or vessel”.

The next concept that I spent several days with was having the player control a film producer who has one last day of reshoots to save a schlocky Christmas-themed movie and get it out in time for the holidays. Problems would have included dealing with missing props, difficult actors, and a petulant screenwriter, all while trying to create and sneak footage for an alternate ending past the executive producer and into the editing suite, hopefully saving the film from the worst excesses of executive meddling and turning out a minor classic. After a few days with this idea, I had plotted out how the various problems and their solutions could actually chain into/support each other, becoming a fairly coherent plot. I had concrete ideas for how some of the puzzles would work, a basic idea of the world layout, and I had even realised that with a little tweaking, the whole thing could become a pale reflection of “A Christmas Carol“, with the central antagonists for each problem becoming proxies for the ghosts, and a moral about balancing creative integrity with productivity (Unintentionally relevant, no?). But after a couple of days of not getting any further with the idea, and the game jam deadline growing ever closer, I forced myself away from this idea, too.

I had one more idea that got a hold of me before I arrived at my final concept: Trying to make a “traditional” Christmas dinner (well, as traditional as possible) for a love interest, while living in a foreign country. This was inspired by and very loosely based on some of my own experiences, as well as both some stories from personal friends, and a few probably apocryphal tales that get passed around expat communities. I came up with some mechanisms that simulate blundering through interpersonal communication when you have only a rudimentary grasp of the language, and even though you have an electronic dictionary, you don’t want to force people to sit and wait while you look up multiple words so you can construct a sentence. I feel like navigating the game world in this way actually would have been somewhat entertaining in itself, but the problem was that the “proper” obstacles that I had in mind all had virtually identical solutions, and offered very little opportunity for interesting storytelling. So once again, while some of those ideas may turn up in another game, I had to give up on the overall concept for this game jam, at least.

In the end, I have no idea where the inspiration to borrow Jeeves and Wooster came from. I hadn’t been reading any Wodehouse at the time, or thinking about the characters in particular, but somehow, suddenly, there it was. Wodehouse’s world seemed to be ideal fodder for a text adventure: the stories feature lots of clear-cut dilemmas with solutions that often rely on odd gambits, strange props, and keeping things hidden. My mind raced ahead with all sorts of disparate plots threading through and around each other, weaving together toward the end into an apparently inescapable knot, only to be dissolved at the last moment by Jeeves, the wonder-brain. The outline in my first set of notes has more than twice the number of characters that appear in the finished game, all of whom have their own problems, and none of which look like their stories have much chance of actually intersecting with each other. I quickly realised that I’d never get such a massive project completed in time, and pared things down considerably. It was about the first of December at this point, just three weeks out from the deadline. I also wanted to have a mostly-complete version done about a week ahead of the deadline, to give it to my friends to test and get some valuable feedback.

(Last chance to avoid spoilers! If you don’t want the game spoiled, close this window and go play it now.)

After a couple more days I had written up a list of puzzles with concrete, actionable definitions, and I started doing a bit of coding in Adventuron, as well as writing the introductory text. About five paragraphs in, and after a few conversations with friends, I realised two things. First, this introduction was already too long, and I still had to introduce multiple major characters and plot points. Second, the “Wodehousian” language that I was using, while being central to the theme (and to the potential enjoyment of the player), was also highly obscure–to the point of being unintelligible in places–to anyone who didn’t read hundred-year-old British literature. There are still a lot of Wodehouse fans out there, and probably more than the average percentage among text adventure and interactive fiction aficionados, but I still worried about shutting out a significant part of my (already small) potential audience.

The first problem was solved by applying the game design equivalent of the old storytelling wisdom: “Is this the most interesting part of this character’s life? If it’s not, why aren’t you showing us that?” I guess that for game design you could invert and recast it as: “Is this part of the experience exciting for the player? If not, why aren’t you doing whatever it is impactfully through gameplay rather than in a passive cutscene or scripted conversation?” I decided that rather than introducing everyone and everything in the story in one huge lump of an introduction, I would only start with enough material to get the PC to board the train and head to the main setting. It seemed logical that Bartie could run into Checkers at the village train station, although at first I didn’t know why he was going to be there, or why he wouldn’t simply walk up to Bartie and say, “What ho!” I thought about events from the original stories. Would Bartie need to be travelling incognito for some reason? Would Checkers be hiding from someone? And what puzzle could result in the introduction of these two fellows to each other, and the movement of the action to Penrose Hall? Perhaps there would be a charity collector at the station, and Bartie felt honour-bound to make a donation. Why wouldn’t he? Ah, perhaps he didn’t have any small change. A quick web search into British money of the 1920s gave me the details that I needed to see that it could work. And how did Checkers fit into all of this? Why did meeting Checkers hinge on this donation? Suddenly, the episode of Bingo Little dressing up as a communist agitator to gain the love of a young lady came to mind. Given the Christmas theme of the game jam, the solution became obvious: Checkers would be the charity collector, with his features obscured by a fake Santa beard! I could easily imagine how aggressive he could be to Bartie, at first just messing about, and then really getting annoyed as Bartie failed to recognise him. And that’s how the entire first area of my game and accompanying set of puzzles came into being, having its origin as just being a way to split up my huge introductory info-dump.

The second problem, that of old and obscure language, was harder to deal with. In the end, I decided to arrange the code so that every piece of text which contained “Wodehousian” expressions could be swapped out dynamically for a slightly more modern phrasing. This was a much larger undertaking than I originally thought it would be (“Oh, I’ll just write it all in Wodehouse’s style first, then copy-paste and edit the worst of it; easy!”), but because I was fortunate enough to think of it early on in the coding, I was able to create the necessary systems upfront, rather than getting stuck trying to retrofit them to an already mostly-finished codebase. I must admit, though, that the closer I got to the deadline, the less inclined I was to add those amusing turns of archaic slang and antique allusions, in favour of not having to make a second pass at writing the same content. Because of the out-of-game-order in which I wrote the prose, it may not be obvious to the outside observer, but as time went on, I began to leave out the “Wodehousian” witticisms unless something jumped straight to the front of my mind too strongly to resist. At the beginning, I had been carefully writing and rewriting the text to incorporate as much of it as possible.

After that, the rest of the story flowed pretty naturally, although I did have a few hiccups. One was having Bartie and Checkers fight over Julia. Without the luxury of a long cutscene in which to reasonably develop Bartie’s interest in Julia, how could I bring her between him and Checkers? Checkers’ natural jealousy and a small bit of hand-waving solved that (I think, fingers crossed). Another hiccup was the fact that Aunt Allison seemed to be running things with an iron fist in someone else’s house. I just imagined that she was a very old friend of the Penrose family, and had carte blanche to supervise the Christmas lunch. But rather than trying to explain this within the game, I just left the issue unaddressed; I feel like it’s something that most people won’t even question.

I did make one more change to my original plan, and that was the addition of the oil under the car in the stables. When I came up with the hand-dirtying puzzle, I only thought in terms of figuring out how to get that lump of coal inside without getting caught by Auntie Al. I had worried about players trying to get their hands dirty in other places, specifically in the fireplaces within the Hall, and I was originally going to carefully describe the fireplace in each room and either how hot the fire was, or how amazingly clean the empty grate was. In the end, due to running low on time and a lack of this problem coming up in feedback, I decided only to describe a fire in one room, and to make sure to point out that it was both too hot to touch, and too clean to make the PC’s hands dirty. My hope was that players would extrapolate that the same was true of all the other fireplaces that must be present in a home of this type and period, even though my game didn’t say so explicitly. The stables came about as a place to leave the screwdriver. I had originally planned to make the rabbit hutches a separate location, and to leave the screwdriver there. But I realised that a large country house would likely have stables, and that the hutches would probably be built nearby. Then I began scaling back the number of locations, and paired with the realisation that the motor car had already well and truly overtaken horses as the main mode of transport (at least for the wealthy) by the time of the game’s setting, I turned the stables into a garage, lumped the hutches in with it, and had the screwdriver in a toolbox next to a car. Then I realised that a car–especially one in a state of disassembly–is a prime place to get one’s hands dirty. Rather than try to come up with some rationale for why the PC wouldn’t take advantage of this, I coded it as an alternate solution to the puzzle. In the end, it works very similarly to using the lump of coal.

But all of this took time. I put in a major effort on the weekend of the 12th/13th, trying to get a “functionally complete” version done, so that I could distribute it for playtesting. I got a lot done by the Sunday night, but not enough. Every night I worked on the game for a few hours, but still didn’t feel like it was ready enough. Every extra day spent writing and coding was one day less that my friends would be able to try my game, and also one day less that I would have to draw the graphics required for the game jam. I was very aware of the fact that, by emulating the look of PC EGA displays, I had let myself in for a great deal of work. Pixel art at that resolution is just as tricky to get right, but there’s a lot more real estate to cover. Right up until about midday on the 19th, I was actually still hoping to get graphics done for the full 19 locations now remaining in my game. Spending half the morning continuing to work on the code and writing, as well as the time it took me to make a very basic version of the title screen, finally caused me to face up to the fact that I did not have enough time to produce a full set of location graphics. Fortunately, I already had a half-formed plan to use just three images to represent the three “areas” of the game: the village, the Hall exterior, and the Hall interior. In fact, the three views are more or less the views that I would have used for three specific locations: the “village” graphic is the view near the village fountain, the “exterior” graphic is the view near the front steps looking south, and the “interior” graphic is a view of the entrance hall, looking toward the sitting room. Actually, I have just this moment realised that the “exterior” graphic is incorrect. Originally, I laid out the map for the Hall and grounds with north and south the other way around, but east and west unchanged; i.e. I flipped the map around its horizontal axis. I had various reasons for doing this, but one result of the change is that in my head, I had a tendency to keep putting the rooms back into the old positions. It looks like this continued over into the graphics, as the stables ought to be on the left-hand side of the image, not the right, to be true to the game’s map. Ah well. Would anyone have noticed if I hadn’t mentioned it?

On the morning of the 20th, I packed up my laptop and drawing tablet, and went to the public library with the intention of working solidly without distraction for the entire day, to get my graphics done. I took a break in the early afternoon and checked my e-mails, only to find that the deadline had been extended. Now, while that gave me some breathing room, the logical thing would have been to continue working for the rest of the day, and use the extra time to polish my game even further. But I was so burned out from keeping up the pace for the previous week that I just went home and relaxed. I did tell myself that I would just take an extended break and then get back to it in the evening, but I didn’t. I had spent almost the entire previous weekend working on the game, and not just my weekday evenings, but also my lunch breaks and even my morning and evening commutes on the train were used to work on my game jam entry with my laptop. I was worn out.

Fortunately for me, I was still able to get all of my graphics and some more polishing done before the revised deadline. I got my submission in on time, but since the rules explicitly allowed for continuing to work on an entry during the judging period, I did just that. I squashed a couple of bugs, fixed some typos, added some more descriptions, edited some prose to flow more smoothly, and implemented a hint system to help players who get stuck. I may do a little more work on my game after the judging period has closed, but I don’t think that I’ll go back and create any more location graphics; it was a lot of work for what I feel isn’t much payoff. Each graphic took me around three hours to complete. Despite perhaps looking the simplest, the “entry hall/interior” graphic was the one that took the longest, due to the rotated perspective. If I open the source file for that image and make all of the layers with perspective guide lines visible at once, it becomes an indecipherable bird’s nest!

I had wanted to create a tutorial mode in my game (as suggested in the game jam outline), but it was one of the first features to be cut in order to make the deadline. Some of the code for a tutorial mode is still in there, so I might implement it fully after the judging period. But the lack of both a tutorial and a hint system (at first) may have contributed to an observation made by more than one person, which intrigues me. I was told that this game has an “old school” feel, or that it’s “80s hard” which surprised me. I enjoyed some text adventures as a child, although I grew up in a period when they were already well past their golden years. But most of my experience has come from playing those older games in more recent years, as an adult. And in fact, I don’t play all that many parser-based games, but I have read discussion about them, as I’m very interested in interactive storytelling and people in this community tend to have some interesting thoughts on the subject. I lurk a lot, but I barely comment or participate at all. Anyway, I’m not sure what makes my game “old school”. Is it simply the lack of a built-in hint system, or is it something more? I felt like I tried to write my game so that as many reasonable actions as I could think of would be accepted, and if not relevant to the intended solution, would give the player a hint toward the “correct” path, or at least confirm that the path they are on isn’t it. To be sure, despite all the work that I put into it, it’s still a very skeleton-like game; there are even plenty of objects mentioned in location descriptions which aren’t present at all in the code! But perhaps I need to play more of the recent crop of games. Just doing a quick search, it looks like the most recently-released game that I remember playing is still a little over 20 years old at this point, although I myself played it much more recently than that. Well, it might be something for me to do over this holiday season.

I hope that you have fun decking the halls with “Gieves”, and that you enjoyed this post. I’ll skip posting anything this coming Monday, so my next post will hopefully be up just after the New Year. Happy holidays!

One thought on “Making a Game 24: “Deck the Halls, Gieves” Postmortem

Leave a comment

Design a site like this with WordPress.com
Get started