TWIFcomp: Lessons Learned, part I

I have never run an IF comp before, and in the aftermath of TWIFcomp, I thought it would be a good idea to write down what worked and what didn’t in case the urge to run another comp ever returns.  I’ve divided this into what I would do differently, and what I would do the same.


  • Lead time. TWIFcomp was organized at the drop of a hat. Spontaneity is nice, but people had little notice that it was coming. Despite that, turn out was good in terms of the number of game submitted and even in the number of authors submitting games. The small size of the games and the limited effort required to write a game likely mitigated the short deadline, but this would not be expected in other comps requiring greater effort on the part of the participants.
  • Website. Luckily, I had a dormant website sitting around, waiting to be reconfigured and populated by data from the comp. On day one of the comp, when I wrote the rules, I wasn’t sure how functional the website would be two weeks later, so I asked everyone to mail in their submissions and later their votes. Never again. It all worked out fine, but it would have been a thousand times better to let game submitters and voters create an account on the website, complete with username and password. While this is kind of a pain for the end user, it would have meant that some of the data entry could have been divided among the participants, and that voting could have been performed online rather than by submitting a spreadsheet. I only received votes from about fifteen people, and I assume this was the result of a short voting period, but also the awkwardness of needing to fill out and email a spreadsheet. Commenting would also have been easier with user accounts, and would have obviated the need for a captcha aside from at the time of account creation. I think such a system would have yielded a more vibrant discussion, although I was generally happy with the way commenting went. Since everyone is drowning in usernames and passwords, one thing to consider in the future would be to implement OpenID, or at least allow people to use credentials that they have created for other comps (assuming that we could all agree on a common system).
  • Links. Must check the links on the website before going live. I think the first ten comments were, “Hey — this link doesn’t work.”  Doh.
  • Links to Text. A link was provided to download each game, but because some games were distributed as text files (i.e., to be run through an interpreter or run as a command line script), the default behavior of left clicking on the link opened the text in a new browser window, exposing the source, and potentially spoiling the experience of playing the game. My assumption was that users would know which files were and were not text files, and would right click the link to download. This was not a good decision, and after a couple days, I replaced the plain text files with zipped versions of the files, so that it would be difficult to accidentally reveal their contents.
  • Binaries. On the other hand, I was reluctant to post binaries, particularly windows *.EXE files. Had I been able to compile the games myself in a sandboxed Windows VM, I would have posted binaries for all the URQ and QSP games, and if there were any problem with the EXEs, I would hopefully have seen it myself. In the worst case, if I generated bad *.EXEs, I would be at blame rather than the game authors. Unfortunately, when I attempted to install the software, I ran up against installation screens full of uninterpretable characters.  I’m sure these characters mapped to cyrillic letters, probably on the Windows 1251 code page, but I didn’t see an easy way to get my installation of windows to make them legible. I believe that it’s not a matter of changing region/language settings, but of having a Russian install of Windows, which I don’t. With more time, I might have had more options, but I didn’t see any alternative here.
  • Timing. Since this was such a short competition (three weeks from announcement to awards), I thought I could slip it into the yearly comp rotation without really interfering with the regularly scheduled games. If I were to do this again, I might move it just a bit earlier to put more time between it and IntroComp.


  • Getting the word out. I posted announcements to both RAIF and, and noted that while I saw a lot of page views on the forum, I actually got more feedback (and not all of it flames) from the newsgroup. The old girl still has some kick left in her. I also experimented with posting on Russian and French forums, figuring that language couldn’t matter too much in a 140 character game. Both forums took up the idea, and these communities contributed games in both Inform and other systems. Just as the one-room competition is based in Italy but run globally, in any future comps, I would definitely market internationally. While language is somewhat an issue, some authors can write in more than one language, and non-English speaking IF communities are large enough to provide ratings on games in their native languages.
  • Programming Language. The comp threw the gates open in terms of writing system, and this is something I would do again. Some of the CYOA systems in this competition were quite elaborate, and gave the authors some interesting options in terms of story telling. While I agree that the world would not be a better place if everyone wrote a custom parser, I think the option for experimentation should be open.
  • Show all work. TWIFcomp was more about source code than most IF comps will be, but I like the principle of requiring submission and public display of source code. The game is not the only thing to be admired in a comp — the way it is written is just as important to me. I learned a lot of interesting tricks in reviewing the code in TWIFcomp.
  • Online games. I wasn’t sure that I’d be able to get Parchment working smoothly within the drupal CMS  framework, but it came together in the days before the site went live — many thanks to Andrew Plotkin and the People’s Republic of IF website from which I sucked the majority of the code and layout. It sounds like the new version of Inform will make it even easier to generate web-ready content. Additionally, the JACL and ChoiceScript games could be played directly online. All of this instant gratification made the comp itself more interactive and engaging.

TWIFcomp: Some analysis

TWIFcomp, with its first prize of duct tape, was never meant to be a very serious competition, and I am pleased to say that most people took it at face value. Nonetheless, a number of very clever and even thought-provoking works were submitted. This is a post about the entries. In a couple days I’ll post another one about lessons learned in running a comp. Note: The final scores just went up on the main TWIFcomp page.

I’ve noted a few comments in blogs that the games are not much fun as games, and I don’t think that is much of a surprise given the constraint (with the obvious exception of one game which gleefully found a way around the size limitations). However, I would say that almost all the games are playable in some sense. When I wrote the rules, I had thought that the one that would draw the most debate would be: “The game must be interactive.” I guess everyone is at least intuitively onboard with Crawford at this point, and we all recognize interactivity when we see it. In looking over the voting, I have the sense that there is a strong correlation between interactivity (as I understand it) and score.

For me, what set one game apart from the next in TWIFcomp was wizardry. Every game in the comp accomplished the unlikely feat of coding a game in 140 characters. However, some games went a step further, continuing past “unlikely”, and moving into “improbable”, “impossible”, and “ZOMG, how the hell did they do that?” categories. It wasn’t enough to write a game in TWIFcomp, but to write a game with style. It’s not just a game, it’s an aesthetic. As the games began to drift in during the first week in increasingly exotic and densely written code, I was put in mind of the realm of obscure and obfuscated coding described in a paper by Nick Montfort. A lot of the TWIFcomp games have a similar mixture of playfulness and technical virtuosity.

The game METEOR could have been coded in any language, but it was written in BASIC — in all capital letters. Aside from the nostalgic appeal of BASIC, the capital lettering shouts at you. METEOR! The world is facing fiery annihilation, so this only seems natural. The player’s only option is the one that is required to start every BASIC program. Expression is so limited in 140 characters that the choice of language itself becomes a statement. The medium, or in the case its encoding, is the message.

A number of the games take advantage of the player’s expectation of IF. They print a “>” prompt and await input. However, these games are not backed up by the full weight an IF development language like TADS or Inform, they just look the part. The prompt is a facade, and the game either ignores the input, twists it programmatically, or parses out a narrow set of keywords. My favorite example is Travel, which the author describes a comprehensive travel simulator, allowing travel anywhere. It doesn’t really have much of a sense of what you enter, but it does manage to convey an impression of understanding. A-small-casual-game… also does a good job in keeping the player busy, and includes a termination condition. Neither of these is a sophisticated ELIZA-like conversation simulator, and the Turing Test has nothing to fear from these games, but considering the severe restriction in program length, they do an amazing job. The game I have hands and I’m ready to LOOT! satisfies the typical player’s natural urge to take everything in sight — and it gets super-extra points for implementing the game as a series of MS-DOS batch files.

Early in the comp, Andrew Plotkin had posted that he suspected there would be a limited number of types of story that could be told in 140 characters, and this seems to more or less be the case. I’ve tried to bin the games into categories. Some do not fit these categories, or at least not comforably, while others fit into more than one category. This system is not as classy as Jungian archetypes, nor as comprehensive as TV tropes, but here you go:

1) Life’s a bitch – You do something and then you die. It’s interactive in a fatal kind of way. This game can be written in almost any game system or general language, where there is provision for input and for termination of the program. It may convey meaning, but it’s unlikely to be a fan favorite or have much replayability. The games in this category includes those where you invariably die (predestination, nihilism: Short-Lived, Roulette, Untitled, Raison d’être, raison de ne pas être), those where you have some agency to decide your fate but lack information to make a rationale choice (absurdity: Burning, DecisionsDecisions, The Mourning Do in Pinellas Park, Buttons), and those where you can choose to live or die (free will: 43 and the closely related To be or not to be). I’d venture that the last category isn’t really free will in the sense that players, being curious, will inevitable kill themselves to either see what happens or end the game.

2) Existence – Closely related, there are a number of games, where there is no central choice of living or not. The player’s state is alive, but without meaning. I was a little surprised that no one reworked “Waiting for Godot” in this category. Both Void and the TWIFplus game Space are very much in this vein, though. Dementia an epilogue also fits this category and suggests that meaningless existence leads to madness.

3) The Surreal – IF worlds may be creative, but they usually follow enough of the rules of the real world to allow the player to interact with the story and appreciate causal relationships. Andrew Plotkin throws a monkey wrench in the guts of Inform to produce You see chaos here. Other games used surreal imagery and unusual goals to convey a distorted world view including Dementia: An epilogue, Burning, and COD.

4) Exploration – Location and movement are central concepts in IF. The simplest game in Inform requires that the player be in a room object. A natural extension of location is movement, and a number of games trigger some terminating condition on either the attempt (as in LP0 and Ocn bttm) or the completion of specific movements (SWEDUN, Manifest Destiny). Navigator takes this further, giving the player an infinitely large canvas to explore, although there is understandably little detail in the world model beyond location (in that regard, this game reminded me of my first fifteen minutes playing GATOR-ON, Friend to Wetlands! from the 2009 IFcomp). Tumbleweed Hero is even more free form in its exploration of the world, but provides no feedback about where you are. Considering that the main activity of a tumbleweed is tumbling around, that it has no sensory apparatus to distinguish one location from the next, and that tubmleweeds are not particularly goal-directed, this seems like an uncannily accurate simulation. It also straddles the line between this category and Existence, as it can be argued that the tumbleweed’s life is not particularly meaningful (although perhaps a tumbleweed would argue otherwise).

5) Central Riddle – There’s always been a balance in IF between story and puzzles. In 140 characters, there’s only so much you can say in terms of narrative unless you pull in additional resources. However, it is possible to implement one puzzle of the sort that might appear in a longer work. The puzzle may literally be a riddle, as in Why? or Ring, involve manipulation of an object (or text) as in Make All Sad and Escape, or consist of a classic logic puzzle as in Monty Hall.

Matt Weiner’s Sin seriescould be considered puzzle-oriented in that the reader probably brings the social context of “deadly sins” to the game, and can then try to elicit each one by guessing the corresponding action in each game. The goal of Matt’s game reminds me Jim Aikin’s Heavenly entry in the JiG CGDC#7 earlier this year, where the player is motivated to find a way to sin. I suppose that the player in both cases must be considered an anti-hero given his goal. Games with a central moral decision could be considered a subset of central riddle. The ChoiceScript games (Love, Money) by Dan Fabulich and the Sin series by Matt Weiner comprise this category.

6) Redux of a larger work (and testing the boundaries of the competition) – The most notable entry in this category was Mentula Macanus: Apocolocyntosis, which managed to pack not only a full game into characters, but also the entire Inform development system. The entry that was submitted was actually a perl script which decompressed white space characters in the perl script itself to yield scripts, folders, to install and execute the game. In my opinion, this was damn clever, and within the rules. Yes, it was something of a perversion, but I think the author would be proud of that designation. Adventwiture also plays with the rules a bit, effectively including the entire original adventure game as a library by the TWIFcomp game. It’s a bit of the tail wagging the dog, but again entirely legal by TWIFcomp rules.Duel in the Snow: Abridged Version vaguely fits into the category as a reworking of the earlier IFcomp game.  The game does capture some of the atmosphere of the original, but I’m more inclined to put this game into the Existence category. LP0 riffs on the the current Hollywood trend of making prequels, and is presumably the (very short) story leading up to Lost Pig! Finally, a number of works draw on either external works (Daigoro, Ramirez, Zed)  or real world events (The Mourning Do in Pinellas Park) for context.

7) Pure symbolism – Language itself is bulky and full of fat. Boiling interactive games all the way down yields a few lumps of blacked, charred and (hopefully) meaningful symbols. These games are like the engravings on the Voyager space probe — the author hopes that whoever finds them can figure out their meaning from first principles. Well, in the comp the player gets a little help from the title and the description on the website. My entry “😐” was a deliberate attempt at a purely symbolic game, but the clear winner in this category was “> by @” by Aaron Reed. While I think Aaron’s description was a little tongue-in-cheek, he does manage to tell a nuanced story in pure symbols. In OOP-speak, his game is full of very overloaded operators.

Announcing TWIFcomp

I’m not sure this is a good idea, and I’m not sure what kind of response it will get, but I’ve decided to create a new IF competition — TWIFcomp.

TWIFcomp is the result of a collision between interactive fiction and today’s fast-paced thumb-typing lifestyle: all games must be 140 characters or less.

How much interactivity, character development, narrative and theme can be communicated in 140 characters? I’m not sure, but I think it would be fun to find out.  It will be a challenge to crunch games down to that density, but I assume the community is up to it.

The full details of the competition are posted on the TWIFcomp page. In two weeks, when games are posted, I will list them all on that page, and also create a blog entry for each game.

I hope this works and I get at least a few submissions. I have optimistically tagged this as “TWIFcomp2010”, but this may well be a one-shot competition.  We’ll see.

Good luck, entrants!

– Jack

p.s. If anyone has any kind of graphic arts talent, it would be spiffy to have some kind of logo for TWIFcomp.