Inform 7: Interactive Fiction from Natural Language
The Inform design system for interactive fiction made its first
appearance on this newsgroup with the release of Inform 1 on 30
April 1993. Three years of rapid development followed until, with
a top-to-bottom code rewrite, the release of Inform 6 on 30 April
1996 became definitive. Much useful maintenance has been done,
while glulx support and a range of other minor features have been
added. All the same, the Inform in use now is essentially
unchanged from that released in 1996 and published in the
Designer's Manual of 2001.
The Public Beta of Inform 7 is released today. The outcome of a
three-year project of radical reinvention, this new Inform is not
a compiler alone: it is an application - initially running on Mac
OS X and Windows - which is simple to download, requires no
configuration or fuss to begin in use, and brings together the
editing, testing, indexing and publishing of interactive fiction
within a simple one-window user interface. No knowledge of
computer programming is initially required, and all documentation
is included within the interface. A new project, consisting (say)
of a couple of rooms and items, can be started and working in a
matter of about two minutes, using only the Inform application:
the source text is quickly typed and there is no need to create
folders, access a command-line interface or perform any other
extraneous tasks. At the other end of the writing process, Inform
provides new tools for testing and validating IF, and an
extensive suite of features for publishing.
The Inform user interface is based on a writer's manuscript book,
opened to show facing pages. The author writes on one page,
Inform replies on the other. This dialogue is not carried out in
the traditional form of computer programs, but in natural
language. The author might write, for instance:
"Buttons" by William Wonka
The Confectionary Workshop is a room. The Chocolate
Machine is here. "The Chocolate Machine has pride of
place. A lever and two buttons, one white, the other
brown, seem to be the only controls. On top is a
hopper."
A container called the hopper is part of the Chocolate
Machine. The lever, the white button and the brown
button are parts of the Chocolate Machine.
The Chocolatier's desk is here. "The Chocolatier
evidently works at the imposing green-leather topped
desk facing the Machine. It has three drawers with brass
handles."
The upper drawer, the middle drawer and the lower drawer
are parts of the desk. The upper drawer, the middle
drawer and the lower drawer are openable closed
containers. In the middle drawer is a sugared almond. In
the lower drawer is a Battenburg cake. On the desk is a
liquorice twist.
At any point the author may click "Go", and Inform will translate
the source text into a work of IF which plays on the facing
page, using an interpreter built in to the interface. In the
event of a mistake, Inform replies with descriptive Problem
messages, often tailored to guesses at the most likely cause of
the difficulty, and normally giving examples of correct and
incorrect usage. But if all has gone well, the author can
interact with this new fiction: at any point - for instance,
after opening the middle drawer and finding the almond - the
author can change his mind, perhaps amending "sugared almond" to
"pear drop" in the source text, and click Replay. This translates
the source afresh and replays the whole game to get back to the
same position: but now there is a pear drop, not a sugared
almond, in the drawer. Such a revision typically takes fewer than
ten seconds, and the author needs only to select the source to
change, retype it and make a single click. Moreover, Inform keeps
track not only of the most recent interactions with the project,
but of all previous games as well: these it weaves into a Skein,
graphically drawn by the interface, and which allows the writer
to test any of perhaps dozens of possible lines of play,
comparing them against previous solutions using the Transcript
panel, and so on. The solution(s), generated automatically from
the skein, can even be published as a walk-through as part of the
final work.
Inform is supplied with documentation which contains more than
250 Examples. Some 232 of these are complete source texts,
capable of being translated and played: and not only
theoretically capable of this, since a single click in the
interface will paste them into the editing window to be tried
out. Each Example comes with a short script of commands to put it
through its paces. Like the documentation, the Examples are not
so much a supplement to Inform but a part of the whole. Their
coverage was chosen after research through past postings, on this
newsgroup and elsewhere, by IF authors: we have tried to ensure
that Inform contains solutions to genuine needs found by authors
in the past. The natural language and rule-based approach of
Inform make it exceptionally easy to cut and paste pieces of
source text from one work to another: and the Examples together
make up a recipe book. Examples include not only such
"simulationist" problems as layered clothing, mixing of liquids,
the spreading of fire, and even the preferentially downward
diffusion of gases; but there are also numerous approaches to
conversation, to the interaction of people, and to giving
characters the ability to make plans and achieve goals.
Six "worked examples", too large to fit sensibly within the
Inform application, are posted at the website in full source
text. These include the three samples of Inform's output posted
last month: "Bronze", "Damnatio Memoriae", and the ever-popular
"The Reliques of Tolti-Aph". But there are also three new works
by Emily Short: "Glass", and the first two episodes from a
five-part series called "When in Rome".
The arrival of Inform 7 does not mean the departure of Inform 6.
While outwardly the two languages could hardly be more different,
the Inform 6 compiler is an essential part of the inner workings
of Inform 7: so it will continue to be maintained and supported.
Those presently using Inform 6 may safely choose to continue to
do so, or to use I6 for some projects and I7 for others, just as
they prefer. In particular, a new release of I6 is also out
today: compiler 6.31, which sanctions five patches for bugs found
in 6.30. This is the form of I6 built into the Public Beta of I7.
(I am also pleased to say that the Inform 6 Designer's Manual is
back in print, in both hardback and paperback editions.)
Works of IF written with Inform 7 comply with the Treaty of
Babel, and Inform recommends the use of two Z-machine
interpreters similarly compliant with the Treaty: Windows Frotz,
for Windows, and Zoom, for Mac OS X and Unix.
The new Inform may be found at the long-standing Inform website:
http://www.inform-fiction.org/
In closing, I must thank my co-authors: Emily Short, who wrote
the Examples; Andrew Hunter, who created the Mac OS X user
interface; and David Kinder, who adapted it for Windows, in an
independent feat of coding. Dozens of other people have helped,
too, on what has been a very long road: I am grateful to all of
those I have met along the way.
Graham Nelson
30 April 2006