“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.
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: http://inform7.com/download/
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!