Ten Commandments of Interactive Fiction

If you only had ten rules to give to a new IF author, what would they be?

NOTE: Please do not ‘call out’ someone else’s game. If you think that one particular game obeys a rule very well, by all means mention it. If you think that a particular game is lousy, please do not mention it. This way, even bad authors can post and learn here without fear of being ridiculed.

Here are mine:

  1. Thy game shall respond to the command HINT by giving me a hint.
    ‘Look at this URL for hints’ is not a good excuse when it is very easy to implement an in-game help system. I’m not looking for ingeniously coded situation-aware help, just a hint when I ask for one.
  2. Thy game shall not contain unnecessary rooms.
    Every room or area should serve a purpose. I do not want to have to type three different ‘direction’ commands to get through a winding path. This is just dull, unless something interesting and different, deserving of its own place, happens in each third of the path. Speaking of which,
  3. Thy game shall use the four cardinal points of the compass as much as possible.
    It’s already a huge suspension of disbelief to say that the world is laid out in such a way that you can go due southeast and get from one area to the next. If I tried to navigate my house using nothing but the eight points of a standard IF compass, I would walk into things. Would it be so much to ask that people only use the four cardinal points? It’s a lot easier to build a mental map of a game if you can only go north, south, east, and west. It’s exponentially more difficult if you then have to differentiate between, say, northeast and southeast.
  4. Thou shalt not write thine own parser, unless thou thinkest that thou is better than the thrice-blessed angels who brought us TADS and Inform.
    I have played games written in standard parsers, and games written in custom parsers. Without exception, custom parsers are slower, clunkier, and often useless. Note that this does not apply to standard parsers with ‘a bit extra’. Vorple is above reproach under this rule.
  5. Thy game shall not offer choice without some way of me telling where it will take me.
    In real life, if I write a letter, I generally know, somewhat, what the effect on the recipient will be. I don’t want to have to choose between different versions of ‘I love you’ without knowing which one my love interest prefers.
  6. Thy game shall not decieve me into thinking that there is a better ending.
    If the ending is bad, I want to replay the game and get a good one. Unless there are multiple endings or some in-game commentary on how sometimes the only ending is a bad one, the ending should be at least fairly satisfactory. Again, speaking of which,
  7. Thy walkthroughs shall tell me how to get each of the endings.
    If I’m looking at a walkthrough, it’s a fair bet that I’m no longer interested in the puzzles. I just want to get to the end and see what happens. In that case, just being told ‘there’s a different ending as well, but you’ll have to find it for yourself’ is not helpful. Walkthroughs, it seems, are sometimes a difficult issue:
  8. Thy walkthroughs shall be as sparse and bare-bones as possible.
    Again, if I am looking at a walkthrough, I do not want to be led down a path that fails just so that I can see the hint that tells me how to succeed. I do not want to be told to EXAMINE LOCK if all that I learn from that is that the lock needs a key. Just tell me, straight-up, how to get the key. This way, the walkthrough is a lot easier to read, and it is far faster to get to the exact part with which I need help.
  9. Thou shalt not make me type long and difficult to spell names without explicitly giving me a shortened version.
    If I need to pull the flibbertigibit-o-meter, I should be able to just PULL METER. Please, can we put an end to this curse? The malevolent spell seems to have been traced to the Welsh town of Llanfair­pwllgwyngyll­gogery­chwyrn­drobwll­llan­tysilio­gogo­goch.
  10. Thou shalt not go overboard.
    Just because it is possible, for example, to create an extravagant maze, does not mean that it should be done. The best puzzles and stories are the simplest ones. (Note that stripping back a parser to the point where it is almost unuseable also counts as going overboard: it is too minimalist.) Please do not write games where the puzzle lies in learning to operate a fantastically complicated machine, instead of using it in clever ways. These provide no opportunity for intelligent thought, just “I wish that there were a manual here somewhere.”
1 Like

This is the second unsubtle comment about me and others who have been doing good and purposeful work with reduced parsers (so much for not calling out other people), and it’s growing very old. This is a deliberate design choice, almost always done for a reason. In my case, the reason is that I am primarily interested in parser storytelling – which has a long history in IF, dating back to the IF Art Show – and thus do not want the reader to experience a “story” that consists of 50 turns of “You jump on the spot, fruitlessly.” That would be an awful story. It does not move the plot forward, nor does it provide any interesting writing. Writing a new default response would not result in a significantly better story. Therefore, it goes.

More generally: This advice contradicts your previous advice. If every room or area serves a purpose, every potential action must also serve a purpose. And if it doesn’t serve a purpose, cut it out. Most of the standard Inform verb set does not serve most stories’ purposes. “But it was in Zork!” is not a reason to include an action that does not add to the story.

So my rule would be: 1. Thou shalt not make prescriptive rules without considering that maybe, just maybe, authors know what they’re doing.

I’d amend number 10 to “tune thy program to its purpose”. I’ve seen horrible mazes, but also brilliantly beautiful ones. Zarf’s Hoist Sail for the Heliopause and Home would probably qualify as “stripping down the parser”, and one part veers into “learning to operate a fantastically complicated machine” but uses the reduced instruction set to great effect. For number 4, similarly, there are some tasks which are better suited for a custom parser.

Graham Nelson provided ten commandments in the seminal Craft of Adventure. Some are showing their age, but they are still valuable advice:

  1. Thou shalt not kill the player without warning
  2. Thou shalt not give horribly unclear hints; they can be worse than no hints at all
  3. Thou shalt not require knowledge from past lives (the player shouldn’t need to die to learn something important, then restore and use it)
  4. Thou shalt not require knowledge of the future
  5. Thou shalt not create walking ghosts (states where the player can no longer finish, but doesn’t know it until much later)
  6. Thou shalt not require unlikely actions (>ASK POLICEMAN ABOUT PIPE CLEANERS should be clued somehow)
  7. Thou shalt not bore the player for boredom’s sake (eight-disk Tower of Hanoi puzzle, requiring the player to traverse the same maze over and over)
  8. Thou shalt include reasonable verbs and parsing
  9. Thou shalt provide reasonable noun synonyms
  10. Thou shalt have a usable interface

He also included seven more opinion-based ones:

  1. Thou shalt allow some freedom of action (don’t take away the “interactive” part)
  2. Thou shalt not rely too much on random chance
  3. Thou shalt make your puzzles understandable once they’re solved
  4. Thou shalt not use excessive red herrings
  5. Thou shalt provide a good reason if a sensible action is forbidden
  6. Thou shalt not rely on specific cultural knowledge (such as knowing which way a baseball diamond points coughZORKcough)
  7. Thou shalt provide some indication of progress
1 Like

I disagree. There’s nothing more dispiriting for me than looking for a walkthrough and finding a bare list of commands that give me the solution without providing any of the clues that would tell me why the solution works, or that help me orient myself if I’ve actually tried to play the game and have gotten slightly off the path the walkthrough prescribes. These walkthroughs take away all my agency; when I consult one of these walkthroughs there’s nothing I can do with it other than mechanically enter the commands, with no understanding of why I’m doing it. At that point I might as well just see a transcript of the game from that point so I don’t have to go through the trouble of typing.

But if I hit a walkthrough that tells me to EXAMINE LOCK If all I learn from that is that the lock needs a key, and the reason I was stuck was that I didn’t realize that the lock needs a key… well, then I may be able to start playing and enjoying the game again.

In general, having the player looking at the walkthrough is a failure state. A walkthrough that helps the player stop looking at the walkthrough is a good walkthrough.

My initial response to this was not repeatable. Instead I offer mine.

  1. Tell a good story.
  2. Spell-check your text.
  3. Test as much as possible.
  4. Implement non-default responses as much as possible.
  5. If you use well-known puzzles (mazes, hunger, time) please try to make it interesting.
  6. Design a cohesive setting.
  7. Avoid “guess the verb” and try to offer subtle (or obvious) tells for what verbs will work.
  8. Make sure you can interact with NPC’s in a story-appropriate manner.
  9. Make sure all scenery has non-default interaction responses.
  10. Test some more.
1 Like

There are a few use cases for walkthroughs that we don’t distinguish very well, including

  • Players who are stuck at a particular point in the game and want a nudge
  • Players who are stuck at a particular point in the game, have given up and want handholding to the end
  • Players who have not played the game and want to see a complete play-through
  • An author who wants to regression-test a path through the game to make sure it’s winnable

(I could subdivide farther, really.)

1 Like

I agree that a limited command set can work well, but not for this reason. If a player wants to try jumping to see if there is an interesting/useful response, he won’t be jarred out of the story if nothing special happens. (Someone reading the resulting transcript might find it irrelevant, but that’s not the player’s experience. The player is exploring the game and getting feedback).

There are advantages to having both a limited and an “unlimited” set of actions.

The positive effect of not implementing something in a game is that it can direct the player away from things that are irrelevant, e.g. “The cat isn’t important.” In the case of limited actions, it can focus the player on what the game is actually about. There is some potential player frustration in receiving a lot of “I don’t know that verb” responses, but this can be avoided by making it clear at the beginning of the game what the range of possible actions is. A related article:

heterogenoustasks.wordpress.com … ow-parsers

On the other hand, providing responses to a large number of commands can add a lot of depth to a game. It can be a lot of fun for a player to try an unlikely-to-be-handled command to find that the author thought of it after all:


So I don’t think there can be a single rule about this one. Maybe:

(1) If the range of actions is limited, list them explicitly. If additional actions are introduced during the game, be explicit about them as well.

(2) If the range of actions is not limited:
(a) Handle all reasonable synonyms for verbs (don’t require obscure wording).
(b) Customise default responses.
© Give believable reasons for disallowing actions.
(d) Remember to implement actions that are suggested by the text.

On the topic of things for new IF authors to know:


I think ideally an author wants to avoid a parser denial: “You can’t see any such thing” being the worst. Especially if mentioned in the description.
Less bad is a random unimplemented verb, like SING. It’s fun to write responses for random idle experimentation, but if there’s no reason for the player to examine walls, you don’t want to lead them down a path that it might be necessary somewhere.

However, you need to think implicitly about experimental verbs. In a game set during a talent competition where some NPCs might be singing, it’s perfectly reasonable for the player to try SING. That’s almost like an unimplemented noun clearly mentioned as existing in the description.

The key difference is that I am setting out to make stories, not games. An author obviously cannot control every aspect of someone’s experience nor, it can be argued, should even try. But generally authors who know what they’re doing will ensure that their resultant stories are at least on passing acquaintances with the ones they want to tell. IF is shorter-form than a novel, sometimes even a short story; this means that every word and every detail counts. I wouldn’t read a book that interrupted its plot and prose every two paragraphs for a bunch of pointless thrashing around and repeated text. So why would I write one?

As it stands, I know exactly the effect I am going for, and it is far more easily replicable in parser than in choice. In practice, this still requires a lot of hacking of the parser, at least in Inform. But again, it is something with roots almost two decades ago.

I’m sorry if I offended anybody with my comments; I was just trying to share my opinion on what did and didn’t work, and spark general debate about what other people thought. Reduced parser commands can be very elegant, I agree. What I meant by going overboard was stripping back the parser too far. This is just my personal opinion, but ‘small kindnesses’ such as SAVE, RESTORE, and (possibly limited) UNDO are often handy, and sometimes removed by reduced-parser authors. I have played games with a very reduced parser set and greatly enjoyed them, and I have played other games which strip back the parser in ways that annoy me. Stripping back a parser to one or two verbs doesn’t count as going overboard when it’s done right. When it’s done wrong, I personally would prefer jumping on the spot, fruitlessly, to being continually told that this, that, or the other verb doesn’t work. Badly stripped-back parsers can turn into guess-the-verb puzzles.

Maybe we should add a commandment 11: break any of these rules when it is necessary to create a better game; do so only if you are sure that the end result will indeed be a better game.

Or more simply “Thou shalt understand a commandment before thou breakest it.”

My comments earlier in this thread seem to have sparked some controversy, albeit not here. As much as I despise this game of ersatz telephone, it’s the option given to me, so it’s the option I’m taking. (And sorry, you dropped all pretense of “oh, I hope they don’t have to defend themselves!” when you said “And let’s be fair. If Jon Ingold said something like this he’d probably be better received.” I can only apologize for my catastrophic mistake of failing to be Jon Ingold. I will bring it to the attention of my mother’s obstetrician at once.)

There are two design principles behind my argument:

  1. A well-crafted story – or anything, really – is uncluttered. Every element adds to the whole. Nothing is there just for the sake of being there. Nothing is there that actively makes it worse, or makes it worse via distracting from the elements that contribute to the whole. If any such elements are present, cut them out. This is a basic design principle, not just in IF. If I’m manufacturing a bookshelf and intend people to use it as a bookshelf, then it would be a terrible decision to also attach rock-climbing implements to either side. If I’m designing a municipal building, it would be a terrible decision to include gloryholes. This isn’t just for new designs, either. If I’m renovating an adult bookstore to be used as a bank, then I should probably take out the gloryholes.

  2. At some level, a user cannot be blamed for making use of the options provided to them. If I were to buy the aforementioned bookshelf, try to use it as a rock-climbing wall, fall off and bruise my arms, who’s to blame there? Well, sure, me, for doing it – but the bookshelf had wall holds up the side. Why would they be there, if not to use them? What was the point of them being there in the first place?

In IF, most people accept this principle when it apples to adding content. For example, if I’m writing an IF story intended to be somewhat serious, it would be a bad idea to implement FART. It would add nothing to the story; in fact, it would detract from it. But for some reason, when the principle is taken to its logical conclusion, people flip out.

These discussions, incidentally, also ignore the fact that the verbset, like any other set of conventions, is mutable. (Recent builds of Inform 7 dropped curse words from the standard verb set, reasoning that they are useless in most works, actively detract from some [works for children, for instance], and seldom add anything. I have yet to find anyone who misses them.) They also are focused entirely on verbs in a self-limiting way. You can remove every single verb and still produce something like Mirror and Queen, which I consider a success.

(mods, please don’t approve my pending post, the one from my peaceful lurking account)

Right. I have to be the adult one and provide context for the people who have to listen to you around here. FWIW, when I said “Jon Ingold would be better received”, I meant “we’re being unfair; if someone who was of higher standing in the community was saying these things we’d probably sit up and listen and think, rather than being antagonistic”. I guess if you WANT to be a victim then there’s nothing anyone else can say. I was actually on your side through most of the post and subsequent discussion. How sad that you couldn’t see that.

This is a Christmas gift come early: I am providing here the post which made you feel so attacked. You will be able to twist it however you like, and be as vindictive as you wish, because I’m not replying to it any more. Enjoy. I’m sure you will - because you’re the one who has kept this “ersatz telephone” game, which you so “despise”, alive.

But please, once you’re done here, let us discuss IF, will you? Our discussion had progressed beyond your navel, amazing as it may seem to you.

Just a word of advice - it would behoove you to learn the difference between “controversy” and “discussion”. You have access to dictionaries, I hope. I can link you to some, if you like.

Ah, that’s the eternal struggle, isn’t it? It’s there even in roleplaying DnD. The party is free to completely ignore the meticulous game the DM prepared for them. The DM is free to retaliate by killing them instantly somehow.

I think I know which author and quote you mean. I’m going to reproduce the quote, without ill intent, because I’d like to comment on it (but not in a way, I hope, that the author feels they have to defend themselves).

In my case, the reason is that I am primarily interested in parser
storytelling -- which has a long history in IF, dating back to the IF
Art Show -- and thus do not want the reader to experience a "story" that
consists of 50 turns of "You jump on the spot, fruitlessly." That would
be an awful story. 

This is really interesting, because it assumes that a player who types JUMP 50 times in a row is not to be blamed to making a boring and uninteresting story. It even assumes that it detracts from the story, which I daresay most people won’t even bat an eyelid at. However, people WILL notice if you give a non-standard response to a command like that.

I appreciate the sentiment here - trying to make interactive stories, not games. I’m not sure I follow that the parser is the best venue for it, the author’s arguments certainly failed to convince me, but if it’s what the author wants to do, I’m not sure it’s in our place to browbeat them. We are free to play their games or not (I prefer to play them, so I can at least experience something new).

The really fascinating thing about that quote is what a different mindset it has to the one that, for instance, I have. I think Jon Ingold would have a similar mindset to this author’s, because he’s also tried a lot to inovate in order to tell stories (My Angel), immerse the player (Fail-Safe), retain mimesis at all costs (Insight) and, in the end, do away with the parser (Colder Light and, of course, everything from Inkle).

And let’s be fair. If Jon Ingold said something like this he’d probably be better received. (EDIT - “Fair” works both ways - he’d have said it differently)

So I appreciate your annoyance, and I share a lot of it. I’m having a really fun time right now with Speculative Fiction. I am really not interested in fancy high-falutin’ avant-gardisms; not as much as I am interested in something well written, well implemented and with heart behind it. But, authors should be free to do what they want to do. All we can do is provide constructive feedback, based on our opinion, and accept that they may take it or leave it depending on a number of things, including - but not limited to - what they had for lunch, whether they had their favourite dessert, and whether it’s raining outside.

EDIT - I knew I’d forgotten to say something else. It’s all about implementation - if a player keeps trying verbs and they’re rejected, that’s probably worse than trying to do the same command (which works) 50 times in a row. When playing homebrew parsers, as soon as I realise the parser is pretending to understand something it doesn’t I get ready to quit the game at the slightest provocation. You can’t communicate with a game like that, unless the game is not really a game but a story and it’s going to go on regardless of what you type.

Which brings me to Photopia, and Rameses. Both are highly constrained. But they had to be parser games; they needed the illusion of the parser freedom in order to lead the story (Photopia) or downright cut the player’s wings at every corner on purpose (Rameses). Or even to make a bigger point, as in Constraints.

I really think there are enough people making more traditional parser games that we needn’t worry about oddities, which have always existed and thank god for them (isn’t Galatea an oddity? And you brought up Aisle - that was a revelation, it brought something totally new and unheard of, and is integral to IF as we today know it). Whether they’re making the sort of games we favour… isn’t that always the thing? The one we can’t (and shouldn’t!) control, to boot.

EDIT 2 - Another question. Who is writing the story? The author or the player? And does it really matter? What IS a story in parser IF - is it the transcript that includes floundering around? Or is it the story bits that happen during the game? This used to be a non-issue, but suddenly we have stories and we have games and authors and players with strong preferences on both sides.

Should authors take offense for being called out by someone who doesn’t like what they’re doing? They can’t - every author in every medium has to put up with that. Should players bully authors into making the games they want to play? Absolutely not, I don’t think, especially since there ARE other games that they want to play, so it’s not like a barren field.

Pffff. I was trying to reach a grand conclusion and all I can think of is “cut out the drama, people, let’s play the games”. It’s lacking a certain something. But it’s kinda true. It tends to cut discussions short, though. :stuck_out_tongue:

This is interesting, I feel exactly the opposite way. I don’t want hints in the game and I’d rather have it be mildly inconvenient to get them. If they’re constantly only a single command away, it’s too tempting to ask for hints anytime you get the least bit stuck, instead of only when you’re really stumped.

Sort of disagree? It’s totally possible to go overboard with this and have labyrinths of rooms with nothing in them, but the odd useless room can make the game’s location feel more ‘real’.

This is another one where you can go overboard, but having a few ordinal directions is good for giving your world a more organic feeling. In general, I’d say cardinal directions work well when your rooms are literal rooms. If they’re outdoor locations, caves, etc, then mixing in some ordinals makes them feel a little looser and more natural.

If I was making a rule, I might say “going back should always be the reverse direction of the way you came, unless you have a very good reason why it isn’t.”

It’s already been said above, but yikes, there’s nothing more frustrating than a barebones walkthrough, the worst being ones where the solution is a long, context-free chain of commands that’s useless unless you’re playing straight from the walkthrough from the get-go.

I don’t care for super complicated machine puzzles myself, but they have their fans (Fifteen Minutes took sixth place in 2014, and it was essentially just one giant, immensely complex puzzle). So a better rule might be ‘if you make a complex puzzle, make it a fair and fun to solve, and test rigorously for bugs.’

Complicated environmental puzzles get a bad rap because there were so many terrible ones (like the infamous cat hair mustache puzzle) but done well and fairly they can be among the most satisfying to work through.