Inform 7: Day 1

“It is a radical reinvention of the way interactive fiction is designed, guided by contemporary work in semantics and by the practical experience of some of the world’s best-known writers of interactive fiction.”

A little while ago I posted my first experience with some software called Twine, an interactive fiction engine. It’s a great tool, one where you can explore a lot of space in a very aesthetically pleasing way. Since then, however, I’ve come across a program called Inform 7 (thanks to the new “Clash of the Type-Ins” podcast starring Video Game Taco’s Jenni Polodna). This program outputs something a lot less pretty than Twine does, but I’m finding that the options are a lot more diverse.

For example, in Twine, you can basically create links between pages that all connect in a big mesh in your UI. This can be confusing, sure, but it’s ultimately a pretty simple flow-chart-style layout that you can follow with your finger to reach the end. Inform is a lot different. Inform’s coding is more akin to actual coding, with a few major exceptions that we’ll get into in a minute. The code shows up in a standard line-to-line format and it’s up to you to figure out where the story leads to. This might sound confusing, but it’s really not, especially when you take advantage of the different tools it gives you. For example, in Inform you can actually create a “map” of your area that the player can move through, showing you where each area you’ve programmed exists in relation to the others. This is incredibly useful when trying to carve out more of an “adventure” feel to your game, whereas Twine is more of a “story-with-hyperlinks” feel. What I mean is that, in Twine, you basically always move forward, travelling through what feels like an inevitable end to the story. This isn’t necessarily true for the very complex games that have been made, but I feel like that’s where it points a lot of beginners.

This “adventure” feel I’m talking about is due largely to the fact that you can move wherever you want in the game simply by typing in commands, much like the old DOS games with the bright green text and flashing cursor. Based on your commands, the game outputs some text: simple. Sort of. There are so many more things you can do with the program, things I haven’t even had time to experiment with. Picking up items, counting points, attacking enemies, losing HP based on how many skills you’ve acquired. The level of complexity you can achieve is quite high and, once you’ve gotten a grip on the language it uses, it’s not hard to get there.


One of the many tools Inform 7 provides

I should warn you, the language Inform 7 uses is not very traditional (or maybe it’s incredibly traditional?). Rather than jumping into things like square brackets like Twine does, Inform has you define objects through plain text which it interprets through a very sophisticated system of logic programmed into the software (so it claims numerous times in the instruction manual). For example, to create a room, you need to use code that looks like this:

The Bank is a room. The description of the bank is “This bank is pretty damn cool.”

At first, I thought this was the output of the game, not the source code! The language is almost entirely plain English, which can be nice and can be terrible. In this case, when you enter the room called “Bank,” the description of “Bank” will be returned as output. This can be frustrating at times because, even though it is plain English on the surface, you really need to watch your wording, much like pretty much all the other programming languages I’ve seen so far. I’ve caught myself too many times now typing things a little too colloquially and the software spitting it back at me telling me it doesn’t understand. That being said, it has a pretty sophisticated bug reporting system that has helped me fix almost all my mistakes pretty much right away.

I definitely recommend trying out Inform 7. It comes with two help files: one is a straight manual (the one I’ve been following) that outlines the language and rules of the engine, the other is a “recipe book,” as they call it. The recipe book contains, from what I can tell, a bunch of projects you can follow according to the book’s instructions. However, the recipe book says immediately that you should familiarize yourself with the first three chapters of the manual before starting anything, which I totally agree with. I jumped into the recipe book then jumped right out, not knowing even a little about what they’re talking about. Still, a great resource! I should warn you, the first two chapters of the manual are kind of dense and referential so I sort of glazed over a bit. Chapter 3 is where the fun starts!

You can download the software here for free:

The website is great for finding resources, too! They even have some completed projects you can try out. Have fun and don’t be discouraged: this seems like a very powerful tool for writing interactive fiction and getting a sense for developing game levels and character development!

Also, check out Clash of the Type-Ins, a new podcast where interactive fictions and their creators actually play their games with others! 

  1. A friend introduced me to Inform 7 a few weeks ago, and I’ve been meaning to try it ever since. I’ve even got an idea that I think could be better suited to this than Twine, but the prospect of getting my head around new software to do it had really been putting me off. Based on what you’ve said, however, I think I’ll give it a go. I’ve been meaning to try writing an “adventure” style Twine story (where you can move freely around an area without necessarily working towards an end), but it sounds as though Inform 7 would make better use of that freedom. Also, the option to take input directly from the player without handing them a shopping list of choices would be a real bonus when writing mysteries. Offering “Mr. Black committed the crime: he isn’t really dead” as an option on-screen would pretty much ruin that sort of puzzle/plot.

    By the way, I find that Twine’s flowcharts can usually be arranged into something easily navigable if you spend some time fiddling. It also helps to break them into chunks, if you can, with a good deal of empty space between each one, though while working one one fairly large story (17,000 words) I found that my computer was struggling to cope.


    • Exactly! The “openness” Inform is what’s probably going to make it my go-to engine for now. Being able to make the user think of their own actions/verbs (even though there are a number of verbs already embedded in Inform) is so much more appealing to me than telling story the Twine way. I think Twine would be a good, quick way of testing out a narrative in terms of “would this even be fun to play if it were a giant game” but as far as diversity goes, I think there’s a bit of a roadblock there.

      Again, thanks for reading!


      • Having tinkered around with Inform 7 for a couple of hours, I’m definitely finding it a lot harder to pick up than Twin. Still, that could probably be remedied by having another read through the manual(s). Also, starting with a smaller/simpler project than the one I originally had in mind. Some of the built-in responses seem to lend themselves to simple, funny works anyway: I notice that if you type “look me/player,” Inform 7 responds “As good-looking as ever!” which is kind of cute.


say something

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: