Playing Interactive Fiction

A work of interactive fiction is more dynamic than a text file, or an image. To play it, you need an "interpreter".

The Zoom interpreter in use on Mac OS X

Interactive fiction can be played on a wide variety of platforms, many of which did not exist when the medium was invented.

Interpreters and virtual machines

The "story files" created by Inform are not like text, or music files: since they need to interact with the player, they are programs. Rather than running directly on any one computer, they are programs for a virtual machine (eiher the "Z-machine" or "Glulx") designed specially for IF. The advantage of this is that the same story file can be used on any number of very different systems (Macs, PCs, Linux boxes), and that a story file is so isolated from the host computer that it is impossible for it to alter other files or do any damage, malicious or accidental. The disadvantage is that a story file can only be used with a program called an "interpreter". Andrew Hunter's Zoom interpreter for Mac OS X is one example, pictured above.

So a player of IF will download one interpreter program - a typical-sized application, say a 10 MB download - and then as many story files as he likes, which will be much smaller: usually 256 KB up to 1 MB.

Some formats

The Z-machine was designed by the founders of Infocom, Inc., in 1979. They were influenced by the then-new idea of a virtual Pascal computer, but replaced P with Z for Zork, the celebrated MIT adventure game of 1977-79 which later become a bestseller for personal computers. The Z-machine was a superb design: it evolved during the 1980s but, 30 years later, it remains in use essentially unchanged. It's best for (relatively!) small, purely textual works of IF which don't need to do much numerical calculation or dynamic string manipulation. That may sound like faint praise, but actually most IF can run very happily on the Z-machine, and it has the great virtue of being very portable.

Glulx was designed by Andrew Plotkin in the late 1990s as a next-generation IF virtual machine. It overcomes the biggest technical constraint on the Z-machine by being a 32-bit rather than 16-bit processor, but also lifts numerous other limits and provides a more modern memory environment.

Inform can produce IF in either format, and switching from one to the other is as easy as clicking one radio button on the Settings panel of a project.

Blorb The story files normally produced by Inform are wrapped in a format called "blorb". All of the interpreters we recommend can read blorb files. Blorbs are good because they bind up the file with cover art, a back-cover blurb and such.

How to spot an IF file

Although a work of IF is often supplied with a manual or some other bits and pieces, the thing itself is always a single file.

A filename ending .zblorb is a Z-machine story file in a Blorb wrapper.

A filename ending .gblorb is a Glulx story file in a Blorb wrapper.

IF files are sometimes also seen outside of any Blorb wrapping, though this usually means cover art and so forth are missing - like a book with the covers torn off. Z-machine story files usually have names ending .z5 or .z8, the 5 or 8 being a version number, and Glulx story files usually end .ulx.

What to get

To play IF, you need an interpreter. Quite a number are available. Many Z-machine interpreters are ultimately derived from one by Stefan Jokisch called "Frotz"; on the Glulx side there's essentially a choice between "Glulxe", the Glulx engine, by Andrew Plotkin, and "Git", a threaded Glulx interpreter by Iain Merrick. (Glulxe is definitive, but Git is faster.) Some modern interpreters include multiple cores and take care of all this for you - "Zoom", for instance.

Popular choices include:

Zoom for Mac OS X, maintained by Andrew Hunter.

Zoom for Unix or Linux, maintained by Andrew Hunter.

Spatterlight for Mac OS X, maintained by Tor Andersson.

Windows Frotz, maintained by David Kinder.

Windows Glulxe or Git, maintained by David Kinder.

Gargoyle for Windows, maintained by Ben Cressey.

iPhone Frotz, maintained by Craig Smith; a free app at the iTunes Music Store, for use with the iPhone and iPod Touch. (This comes with a nice collection of Z-machine story files already built in, but - being basically Frotz - won't play Glulx titles.)

Once you have an interpreter, you'll want some story files to try out: see our Anthology page to get started.

Possible developments

People who are interested in emulating virtual machines often write new interpreters for these formats, especially the Z-machine. If you're tempted, please look around for a gap in coverage - ask what you can provide that isn't there already. Or contribute to a work in progress: many of the following projects would welcome volunteers.

There are several variant interpreters aimed at particular needs: strict error-checking (nitfol), dumb-terminal only interfacing (dumb-frotz and cheapglk).

The Parchment project is for web browser-based IF, again for the Z-machine. At present there's no equivalent for Glulx, which is a pity. (Andrew Plotkin is in the early stages of work on a Javascript implementation of Glulx.)

We know of no Glulx interpreter for the iPhone or iPod Touch. Apple's terms and conditions for iPhone applications could be read as forbidding all virtual machines capable of executing code which comes from off the phone; but our belief is that the limited worlds of Z and Glulx, which are very heavily "sandboxed" and have no network or file system access, are not true virtual machines in Apple's sense. (Apple seems happy with iPhone Frotz, at any rate.) We would like nothing better than for Inform to be able to export a project direct to an iPhone application, but Apple's developer programme requires a paid membership, so it isn't for casual use, and integrating with rapidly changing SDKs subject to non-disclosure agreements is just too hard for us.

The Gargoyle/garglk project for Windows interpreters is intended to offer a Treaty of Babel compliant interpreter which would act as an iTunes-like collector and manager of story files, playing them regardless of format - Z-machine, Glulx, T3, and so on.

Several projects to take IF to Google's Android platform have been started, but it's unclear how far they have got. When the platform itself takes off, these are likely to get somewhere.