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.
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 …
Argh, WordPress ate where I typed <>. …
Chris, I fixed your original comment … I think?
Yes, the conditional appearance of links is the essence of guard fields, as I understand them.
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.
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 http://twee.googlecode.com/svn/twine/tags/1.0 twee-read-only
From the downloaded folder, run app.py. Feel free to drop me a line if you run into problems.
Oh, neat, I will definitely try that out. Thanks, Chris.
Regarding http://gimcrackd.com/etc/src/ — 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.