A while back I wrote about InkleWriter, which is a web-based editor for Choose-Your-Own-Adventure stories. Since then I have tried out some other software such as Undum, Twine, and some IF languages such as Inform 7. I would like to just give a brief overview of the different options for writers interested in interactive storytelling, taking into account the ease-of-use and feature set.
There are quite a few games that have been made with Twine, so I encourage you to check them out.
Inform 7 is a programming language specifically for writing Interactive Fiction (IF, aka text adventures). But it isn’t like your daddy’s programming languages; Inform 7 uses natural language to define how your game works. It is almost ludicrous how easy it is to get started with Inform 7; however, mastering it is another matter. Inform 7 may be easy to start with, but using it for something even remotely complicated takes some willpower.
I have to say, in the time I’ve spent using Inform 7, most of it was spent just writing. Whenever you want Inform to do something, most of the time you can just write what you want it to do, and it works! Magic! But when it doesn’t work, it can be…frustrating to figure out why. The IDE that comes with Inform is pretty nice, but debugging is a thing of the past. If there’s an error in your source, Inform will inform you of where it is, but you still have to figure out how to fix it.
Despite the (few) downsides of Inform 7, it is currently the most popular IF programming language, and has been used by many authors to write many games. The documentation is very detailed, and there is no shortage of tutorials for getting started. There are also forums where you can ask any n00b questions.
If you’re interested in interactive fiction, but don’t fancy the natural language syntax of Inform 7, there are other options. Inform 6, for example, is an entirely different beast than Inform 7. 6 has syntax similar (or so they say) to C/C++, with all the fun brackets and semicolons. It gives you more control than I7, which can make debugging easier. Since it is older, you’ll have to do a little digging to find all the software you might need to develop in Inform 6. Start with the old Inform 6 website, then use Google if you need anything else.
TADS 3 and Hugo are other options. I’ve used Hugo a little bit, and from what I’ve seen, it’s incredibly easy to learn and it also has a pretty nice syntax. I haven’t used TADS 3 at all, so I will hold any comments, but I have heard that it’s nice too.
To me, the advantage interactive fiction has over CYOAs is the simulation aspect. Interactive fiction games create a whole world model, which includes not only the location of objects, but how they interact with each other, and how the player can interact with the world. CYOAs have basically no world model; they are simply text. In this scenario, print this text; in this other scenario, print this different text. There are no characters, no rooms, no objects; just text and links between text. The advantage of CYOAs is that they are usually easier to write, and easier to play/read. The user just clicks on a link and the next part of the story appears, whereas with IF the player has to actually use their brain and type something. I think a lot of the decision between IF and CYOAs is the intended audience. If you want your story to be accessible to pretty much everyone, then a CYOA tech such as InkleWriter is probably a better choice than an IF system.
In the end, the decision is up to you. I wrote this in the hopes of exposing some systems that otherwise might have gone unnoticed. If you are really interested in creating some type of interactive story, then check out each of the programs I talked about and see which one strikes your fancy. You can always start with something simple like Twine, and move on to more complicated things later.