1
<HTML><HEAD><TITLE>Introduction</TITLE></HEAD>
2
<BODY BGCOLOR="#FFFFFF">
3
<TABLE><TR><TD Valign="top"><A HREF="contents.html">Contents</A><BR><A HREF="contents.html">Back</A><BR><A HREF="chapter1.html">Forward</A><TD bgcolor="#F5DEB3"><BLOCKQUOTE><H3>Introduction</H3>
4
</BLOCKQUOTE><TR><TD><TD>
8
<BR>I will build myself a copper tower
9
<BR>With four ways out and no way in
10
<BR>But mine the glory, mine the power...
11
<BR><P>...Louis MacNeice (<B>1907</B>--<B>1963</B>), <I>Flight of the Heart</I></BLOCKQUOTE>
15
Inform is a system for creating adventure games, and this is the book to
19
Infocom format 'story files' (adventure games, that is) can be played on
20
almost any computer, from personal organisers to mainframes, with the aid of
21
'interpreter' programs. The task of the Inform 'compiler' is to translate a
22
textual description of a game into a story file. The result will play
23
identically on any machine of any model.
26
Inform is a suite of software, called the 'library', as well as a compiler.
27
Without the library, it would be a major undertaking to write a description
28
of even the smallest game. The library has two ingredients: the parser, a
29
program for translating written English inputs into a form games can more
30
easily understand, and the "world model'', a complex web of rules common
31
to all adventure games. Given these, the designer only needs to describe
32
things and give any exceptional rules that apply. ("There is a bird here,
33
which is a normal item except that you can't pick it up.'')
36
The library is rich in detail. The parser recognises over 80 distinct verbs
37
and a vocabulary of about 300 words even before any rooms or objects are
38
created, and is programmable and highly flexible. It can handle ambiguities,
39
clarify its input by asking questions ("Which key do you mean...?'') and can
40
cope properly with plurals, vagueness, conversation, pronouns and the player
41
becoming someone else in mid-game. It can be configured to languages other
42
than English. The world-model includes rooms, items, vehicles, duplicates,
43
containers, doors, things on top of other things, light and darkness,
44
switching things on and off, opening, closing and locking things, looking
45
up information in books, entering things, scoring and so forth.
51
Just as Inform has two strands -- compiler and library -- so this manual has
52
two parts: Programming and Designing. In Book One, small computer programs
53
are written to perform simple calculations, never using the library. Subsections
54
listed <I> in slanted text</I> on the detailed contents page become technical
55
but the rest is pitched at newcomers and can be skim-read by anyone with
56
prior experience of a programming language such as C or Pascal. Book Two
57
is entirely about making games.
60
Newcomers are invited to work through <A HREF="section1.html">Section 1</A> and <A HREF="section7.html">Section 7</A>, the "getting started''
61
sections in Books One and Two, before reading much more of either.
65
In trying to be both a tutorial and reference work, this book aims itself
66
in style halfway between the two extremes of manual, Tedium and Gnawfinger's
67
<I> Elements of Batch Processing in COBOL-66</I>, third edition, and Mr Blobby's
68
<I> Blobby Book of Computer Fun</I>. (This makes some sections both leaden
69
<I> and</I> patronising.)
72
<P><TR><TD Valign="top"><IMG SRC="icons/dbend.gif" ALT="/\"><TD bgcolor="#EEEEEE"><SMALL> Passages which divert the main story, usually to
73
tell an unexpurgated truth which may confuse or bore a newcomer, are marked
74
with a warning triangle <IMG SRC="icons/dbend.gif" ALT="/\"> or two, and set in smaller type.
78
Examples of program are set in <TT>typewriter</TT> font.
79
Mundane or irrelevant passages in
80
longer examples are sometimes replaced with a line reading just "<TT>...</TT>''
83
To keep Book Two from clogging up with examples, many are set as
84
"exercises'', with "answers'' given in full at the back of the book.
85
Harder exercises are marked with triangles and some are very hard indeed.
86
I emphasize that the exercises are often intended as a way of presenting answers
87
to deliberately difficult questions, to assist experts: the curse of Adventure
88
design-languages is the feature which is ideal for the simple but too inflexible
89
to cope with the complicated. For a list of exercises with page references to
90
question and answer, see under "exercises'' in the Index.
93
A better tutorial than attempting the exercises, then, is probably to make
94
a simple game, as demonstrated in Chapter III, and then add an example of each
95
new feature as you work through Chapters IV and V.
98
Many sections end with a 'References' paragraph referring to yet
99
more examples which can be found in Inform's demonstration games. All of these
100
have publically available source code (see the Inform home page): those most
101
frequently referred to are 'Advent' (a full version of the original
102
mainframe 'Adventure', which contains a good deal of "everyday Inform''),
103
'Adventureland' (a version of Scott Adams's primitive classic),
104
'Alice Through The Looking-Glass' (a heavily annotated game, developed in
105
the course of Gareth Rees's WWW tutorial for Inform), 'Balances' (a short
106
story consisting of puzzles which stretch the parser's abilities) and
107
'Toyshop' (hardly a game: more an incoherent collection of unusual
108
objects). In addition, the little game 'Ruins' is developed
109
in the course of Chapters III and IV of this manual.
112
Finally, the "game'' called 'Museum of Inform' simulates a museum whose
113
exhibits are solutions to the exercises in this manual.
117
Copyright on Inform, the program and its source code, its example games
118
and documentation (including this book) is retained by Graham Nelson, who
119
asserts the moral right to be identified as the author under the Copyrights,
120
Designs and Patents Act 1988. Having said this, I am happy for it to be freely
121
distributed to anybody who wants a copy, provided that: (a) distributed copies
122
are not substantially different from those archived by the author, (b) this and
123
other copyright messages are always retained in full, and (c) no profit is
124
involved. (Exceptions to these rules must be negotiated directly with the
125
author.) However, a story file produced with the Inform compiler (and
126
libraries) then belongs to its author, and may be sold for profit if desired,
127
provided that its game banner contains the information that it was compiled by
128
Inform, and the Inform version number.
131
The Internet source for Inform material (executables of the compiler for
132
different machines, source code, the library files and example games)
133
is the German National Research Centre for Computer Science, where Volker
134
Blasius maintains an archive at the anonymous FTP site <TT>ftp.gmd.de</TT>.
135
Inform can be found at:
136
<BLOCKQUOTE><A HREF="ftp://ftp.gmd.de/if-archive/infocom/compilers/inform"><TT>ftp://ftp.gmd.de/if-archive/infocom/compilers/inform6</TT></A></BLOCKQUOTE>
138
Another useful resource is the Inform 6 home page on the 'World Wide Web',
139
which includes Gareth Rees's 'Alice' tutorial, located at:
140
<BLOCKQUOTE><A HREF="http://www.gnelson.demon.co.uk/inform.html"><TT>http://www.gnelson.demon.co.uk/inform.html</TT></A></BLOCKQUOTE>
141
This manual describes Inform release 6.13 (or later), using
142
library release 6/5 (or later). Earlier Inform 6 compilers and
143
libraries are very similar but Inform 5.5 and 5/12 are very different.
147
This manual has evolved from seven earlier publications, once rather makeshift
148
and sometimes defensive ("Inform is an easel, not a painting''). There were
149
specifications of the run-time code format and literary critiques of games
150
gone by: like an oven manual padded out with both a cookery book and a
151
detailed plan of the gas mains. This book contains just the instructions
155
So there are four 'companion volumes'. <I> The Craft of Adventure</I> is
156
an essay on the design of adventure games; <I> The Z-Machine Standards
157
Document</I> minutely covers the run-time format and Inform assembly
158
language, its lowest level; and <I> The Inform Technical Manual</I> documents
159
Inform's internal working in great detail, and includes a formal context-free
160
grammar for the Inform language. The <I> Inform Translator's Manual</I>
161
describes how to write a language definition file for games which speak
162
languages other than English.
166
Some of the ideas of Inform came from an incremental multi-player
167
game called Tera, on the Cambridge University mainframe, written by
168
Dilip Sequeira and the author in 1990 (whose compiler was called Teraform);
169
in turn, this stole a little from David Seal and Jonathan Thackray's
170
game assembler; which dates back to the close of the 1970s and was written for
171
'Acheton', perhaps the first worthwhile game written outside America.
172
Still, much of the Inform kernel derives ultimately from the <I> IEEE Computer</I>
173
article 'Zork: A Computerized Fantasy Simulation Game' by P. David Lebling,
174
Marc S. Blank and Timothy A. Anderson; and more was suggested by
175
Richard Tucker and Gareth Rees, among others.
178
The list of those who have helped the project along is legion: I should like
179
to thank them all, porters, users and critics alike, but especially Volker
180
Blasius, Paul David Doherty, Mark Howell, the ever avuncular Bob Newell, Robert
183
Dilip Sequeira, Richard Tucker,
184
Christopher Wichura and John Wood.
187
One final word. I should like to dedicate this book, impertinently perhaps,
188
to our illustrious predecessors: Will Crowther, Don Woods and
189
the authors of Infocom, Inc.
191
<TR><TD><TD align="right"><I>Graham Nelson</I>
192
<TR><TD><TD align="right"><I>Oxford</I>
193
<TR><TD><TD align="right"><I>April 1993 -- May 1997</I>
197
<BR>And if no piece of chronicle we prove,
198
<BR>We'll build in sonnets pretty rooms;
199
<BR>As well a well wrought urn becomes
200
<BR>The greatest ashes, as half-acre tombs.
201
<BR><P>...John Donne (<B>1571</B>?--<B>1631</B>), <I>The Canonization</I></BLOCKQUOTE>
206
<HR><A HREF="contents.html">Contents</A> / <A HREF="contents.html">Back</A> / <A HREF="chapter1.html">Forward</A> <BR>
207
<A HREF="chapter1.html">Chapter I</A> / <A HREF="chapter2.html">Chapter II</A> / <A HREF="chapter3.html">Chapter III</A> / <A HREF="chapter4.html">Chapter IV</A> / <A HREF="chapter5.html">Chapter V</A> / <A HREF="chapter6.html">Chapter VI</A> / <A HREF="chapterA.html">Appendix</A><HR><SMALL><I>Mechanically translated to HTML from third edition as revised 16 May 1997. Copyright © Graham Nelson 1993, 1994, 1995, 1996, 1997: all rights reserved.</I></SMALL></BODY></HTML>