Twine is Rolled Out


Chris Klimas, the hypertext and IF author who runs Gimcrack’d, has just released free versions of Twine for Mac and Windows, along with documentation and several screencasts that explain how the system works and a command-line tool, called “twee,” for working with stories in Twine’s format. Twine is a system for constructing interactive stories using a visual map, not unlike Eastgate Systems’ Storyspace. While it lacks the august heritage of that piece of software, Twine is freely available and free to use for any purpose, even commercially.

When Twine build a story for publication or for the author’s examination, it does this in HTML/CSS. That means that readers won’t need any special software to explore stories written in Twine. Lots of text formatting can be done without getting into HTML and CSS, although authors are welcome to get into it as deeply as they like. The system supports some sophisticated presentation capabilities, including a stretchtext mode. It’s not quite a guard field, but the “choice” macro locks off certain options when others have been taken. Under the hood of Twine is TiddlyWiki, a personal Wiki took for the Web. This handy personal notebook system has been reshaped for interactive narrative rather than productivity, though, and pretty thoughtfully.

Having just started up Twine and fiddled with it a bit, I’m impressed at how easy it is to use, even if one doesn’t read the documentation or watch the screencasts first. It seemed at first that there would be no way link two different occurrences of a word to two different texts, but after a quick bit of reading I was able to figure out how to change [[word]] to [[word|word2]] in one place and give one of the links a different internal name. I’m looking forward to using Twine (and probably twee) further. It could be useful for doing a small project – perhaps a collaboration? – and it might work well as an option for students, too.

7 Replies to “Twine is Rolled Out”

  1. I’m not superfamiliar with guard fields though I’ve read some descriptions of how they work, and I think Twine/twee can do something similar with conditional display. A short, IF-ish example: in one passage you could write,

    You pick up the lantern. <>

    And then in another, you could write:

    You stand in front of the cave mouth.
    <>* [[Press forward]]<>
    * [[Turn back]]

    … so that only if the reader had previously picked up a lantern, would they see a link to enter the cave. Behind the scenes, it’s JavaScript so you can write more complex expressions …

  2. Chris, I fixed your original comment … I think?

    Yes, the conditional appearance of links is the essence of guard fields, as I understand them.

  3. I’ll try this out for a project I have been outlining lately. Wish it was available for Linux, but I duel boot Ubuntu/XP so that isn’t too big of a problem. I’ll definitely write on my weblog about how things go with Twine.

  4. William — if you can install wxPython and a Subversion client on your box, you should be able to run Twine on Linux by checking out the source code. Here’s the command line to do this with the standard Subversion client:

    svn checkout twee-read-only

    From the downloaded folder, run Feel free to drop me a line if you run into problems.

  5. Regarding — In IE6, only the left portion of the page is shown (none of the note blocks on the right — it’s just an empty tan area). I visited twice previously and couldn’t see anything about downloading the game. Thought maybe it wasn’t actually available, or had been taken down or something.

    After a third disappointment today, I tried again in FireFox and saw the extra links at the right.

    I realize it’s easy to dismiss this as a “bug” in IE6, but it might be worth checking into. I’ve found that most display problems can be solved on the page with minimal effort, and if it’s broken in IE6, the same thing could be happening in older versions of other browsers as well.

Leave a Reply

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

To create code blocks or other preformatted text, indent by four spaces:

    This will be displayed in a monospaced font. The first four 
    spaces will be stripped off, but all other whitespace
    will be preserved.
    Markdown is turned off in code blocks:
     [This is not a link](

To create not a block, but an inline code span, use backticks:

Here is some inline `code`.

For more help see