Blog, Digital Academics

The Cage Match to Remember: TWINE vs Inform

Follow Jake Carlsen’s Blog on

Well it’s time for me to start trying to decide which route I am going to go with my interactive story project for my Digital Humanities + New Media class. I have picked the story that I am going to hang the project on. It is a short short work that I wrote last term for a class taught by Jay Ponteri at Marylhurst University. Unlike the last time I wrote an interactive story, this bit, picking the story, came to me easily. Now I am faced with the challenge of deciding which program to use to tell the story.

Initially, Trevor Dodge (the instructor) told us that we would be using a program called Inform. In a lot of ways, it is similar to TWINE, but there are some pretty large differences. The first thing I noticed about the interface for creating the story in Inform is that there is a bit more “coding” involved than I expected. There is a basic “if, else, else if” syntax that is reminiscent of more complex languages, but Inform purports that their syntax reads more like prose. I am not so sure I agree. Actually, I would say that the context could be a little alienating for anyone that does have a background in writing in any other programming language, and really it is not as simple as it claims for the user that has no experience with other programming languages. The requirement to code was the first thing that stood out to me with Inform. After a bit of hunting around, I decided that it would be manageable but that it would take a bit more study time than I was expecting going into this project.

Next, I dove into the end user interface. This is where I was overcome with nostalgia and confusion. The interface is more or less like an old Mudd text adventure game that I used to play as a kid, but it did not have the color coded text or help guides that had all become part of the norm before the end of the general popularity of the game format. I typed “map” into the user interface hoping to be shown the possible directions I could travel in the story, but was given an error message instead. It turns out you have to use “test me” to find the possible options to explore in the current room you find yourself. I found this a little disappointing because while it showed me the options to explore, it also shared the information that would be gathered by exploring those options as well. Basically, you either guess which way to go blindly, or you get a giant spoiler by asking for simple directions.

Being bit confused by the idea of Inform, I decided that I would fire up my old copy of TWINE and explore the last story that I had written. Fortunately, over the last few months, and after a restore of my hard drive, something had gone missing from the application folder for TWINE and it looked like I would need to re-install again. I went to and found out that there was a new version available. My memory of TWINE 1.4 was that it was workable but a little clunky. The new version is no longer a native application, instead, it is a web app. Right there, I was intrigued. The new user interface is fantastic. Much cleaner in appearance and much better in usability. Almost all of the old short comings are gone. Getting started with the program is a snap.

After playing around with the new TWINE 2 for a bit, I started thinking that because it is a web app, I should be able to run this on other devices. The TWINE site offers access to TWINE online rather than locally for any user that comes to the site, but I am always a fan of hosting these sorts of things myself and decided to install it on my webserver so I could feel like I was still using a bit of software that was mine alone and that would also give me better control over whether I want to go along with upgrade cycles as they are offered on the TWINE site or stay with an older version that I am comfortable with. I moved the files needed for TWINE 2 onto my webserver and then navigated to them through my browser. Everything worked nearly perfectly.

The first problem I found was that the record of the stories you are creating are stored on your browser, not on the server, so this meant that if I wanted to work on my story from my tablet, phone, and laptop, that I would need to find a way to share the output files from TWINE 2. That was simple, I decided that I would save the files I created to my Google Drive. If I moved to a new device, all I would have to do is upload the archive file from my Drive account, and then I would be able to keep working from anywhere I went that has an internet connection.

All this stuff about the transformation of TWINE to a web app is great, but I should also point out that the other advantage of TWINE is that the end user experience is nicer. Navigation is generally done with links between segments of the story and thus requires a smaller learning curve from the audience. If they want to move on to a specific part of the story, they simply click the link. They don’t have to memorize a series of commands and beg for directions that may or may not ruin their experience of the story.

The next advantage is that basically no programming is needed to create a story in TWINE. Other than creating the links between passages, which is done very simply, a story teller could write a story with no need to code. If the story teller does want to get into more complex functions and is comfortable with using or learning coding, they are going to be able to use languages that are broadly supported (html, css, javascript, jquery, and so on). If you do not know these languages already but want to learn, you will not be learning a one-off language like the one in Inform and instead will be learning a language that will be useful in many other situations outside of TWINE.

Both of these programs are going to require a learning process for the story teller, and honestly I think both are good bits of software, but I find myself really leaning toward TWINE 2 because of the flexibility it offers me in regards to where I can work with it and also because I know that I can create a user interface for my readers that will be easier to engage with.

Let me know if your experience is different or the same. Also, if you have any tips for places to find information on how to use these bits of software for new users, that would be great too.



One thought on “The Cage Match to Remember: TWINE vs Inform

  1. Joe says:

    The “Test me” command is for the programmer, not the user. It’s part of the debugging tools in Inform 7 and is removed automatically from the release version of created stories, and so it can’t spoil anything. The end user will never be able to access it unless you change the default functionality.

    Twine is more for CYOA or hypertext games, and not for the type of IF that Inform can do.

Leave a Reply

Your email address will not be published. Required fields are marked *