Inform 7 Home Page / Documentation
Part I. Writing with Inform
|Chapter 1: Welcome to Inform||Chapter 15: Numbers and Equations|
|Chapter 2: The Source Text||Chapter 16: Tables|
|Chapter 3: Things||Chapter 17: Understanding|
|Chapter 4: Kinds||Chapter 18: Activities|
|Chapter 5: Text||Chapter 19: Rulebooks|
|Chapter 6: Descriptions||Chapter 20: Advanced Text|
|Chapter 7: Basic Actions||Chapter 21: Lists|
|Chapter 8: Change||Chapter 22: Advanced Phrases|
|Chapter 9: Time||Chapter 23: Figures, Sounds and Files|
|Chapter 10: Scenes||Chapter 24: Testing and Debugging|
|Chapter 11: Phrases||Chapter 25: Releasing|
|Chapter 12: Advanced Actions||Chapter 26: Publishing|
|Chapter 13: Relations||Chapter 27: Extensions|
|Chapter 14: Adaptive Text and Responses|
|Start reading here: §1.1. Preface|
|Part II. The Inform Recipe Book|
|Indexes of the examples and definitions|
Chapter 1: Welcome to Inform
§1.1. Preface; §1.2. Acknowledgements; §1.3. The facing pages; §1.4. The Go! button; §1.5. The Replay button; §1.6. The Index and Results panels; §1.7. The Skein
|Contents of Writing with Inform|
|Chapter 2: The Source Text|
|Indexes of the examples|
Welcome to Inform, a design system for interactive fiction based on natural language.
Interactive fiction is a literary form which involves programming a computer so that it presents a reader with a text which can be explored. Inform aims to make the burden of learning to program such texts as light as possible. It is a tool for writers intrigued by computing, and computer programmers intrigued by writing. Perhaps these are not so very different pursuits, in their rewards and pleasures.
The sheer joy of making things... the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles... the delight of working in such a tractable medium. The programmer, like the poet, works only slightly removed from pure thought-stuff. He builds his castles in the air, from air, creating by exertion of the imagination. (Frederick P. Brooks, "The Mythical Man-Month", 1972)
Writing with Inform is one of two interlinked books included with Inform: a concise but complete guide to the system. The other book is The Inform Recipe Book, a comprehensive collection of examples, showing its practical use. If you are reading this within the Inform application, you will see that the Writing with Inform pages are on "white paper", while the Recipe Book is on "yellow paper".
These notes are arranged so that the reader can, in principle, write whole works of fiction as early as the end of Chapter 3. Each subsequent chapter then extends the range of techniques available to make livelier and more intriguing situations.
Today's Inform language (sometimes called "Inform 7") is very different from its 20th-century predecessor, which was called Inform 6. A few advanced sections of this book show how unusual effects can be achieved by mixing low-level coding in Inform 6 notation with more usual Inform text. However, most users will never need this. For information about Inform 6, see www.inform-fiction.org.
This book is also a guide to the Inform language, rather than a manual on how to use its supporting tools. Those tools, when used at the command line rather than inside the Inform app, have numerous features not covered here. Manuals for them are all available online: see github.com/ganelson/inform.
Programming is best regarded as the process of creating works of literature, which are meant to be read... so we ought to address them to people, not to machines. (Donald Knuth, "Literate Programming", 1981)
About the examples
This is the first of about 400 numbered examples. In a few cases, such as this one, they provide a little background information, but almost all demonstrate Inform source text. The techniques demonstrated tend to be included either because they are frequently asked for, or because they show how to achieve some interesting effect.
The same examples are included in both of the books of documentation, but in a different order: in Writing with Inform, they appear near the techniques used to make them work; in The Inform Recipe Book, they are grouped by the effects they provide. For instance, an example called "Do Pass Go", about the throwing of a pair of dice, appears in the "Randomness" section of Writing with Inform and also in the "Dice and Playing Cards" section of The Inform Recipe Book. Clicking the italicised WI and RB buttons at the right-hand side of an example's heading switches between its position in each book.
Many computing books quote excerpts from programs, but readers have grown wary of them: they are tiresome to type in, and may only be fragments, or may not ever have been tested. The authors of Inform have tried to avoid this. All but two dozen examples contain entire source texts. A single click on the paste icon (always placed just left of the double-quoted title) will write the complete source text into the Source panel. All that is then required is to click the Go button, and the example should translate into a working game.
In most cases, typing the single command TEST ME will play through a few moves to show off the effect being demonstrated. (You may find it convenient to create a "scratch" project file for temporary trials like this, clearing all its text and starting again with each new test.)
As part of the testing process which verifies a new build of Inform, each example in turn is extracted from this documentation, translated, played through, and the resulting transcript mechanically checked. So the examples may even work as claimed. But the flesh is weak, and there are bound to be glitches. We would welcome reports, so that future editions can be corrected.
Each example is loosely graded by difficulty: if they were exercises in a textbook, the asterisks would indicate how many marks each question scores. As a general rule:
- A simple example, fairly easily guessed.
- A complicated or surprising example.
- An example needing detailed knowledge of many aspects of the system.
- A complete scenario, containing material not necessarily relevant to the topic being demonstrated.
In general, the main text of Writing with Inform tries never to assume knowledge of material which has not yet appeared, but the trickier examples almost always need to break this rule.