Inform 6: Frequently Asked Questions ==================================== By Roger Firth From Copyright Roger Firth. Copying and distribution, with or without modification, are permitted in any medium without royalty provided the copyright notice and this notice are preserved. You're reading a set of answers to Frequently Asked Questions about the Inform 6 programming language, intended especially to help those who are novices in this arena. This FAQ aims to address topics which commonly cause confusion among newcomers. However, you shouldn't set your expectations too high; it isn't an Inform tutorial, it pre-supposes that you've got a little Inform knowledge already and it assumes at least a little knowledge of computer programming. Very rarely will these answers give you the full story. Generally, they're designed as introductory tasters, providing just enough information to illustrate the general principles. I'm deeply grateful to Sonja Kesserich for making this possible, and for her invaluable collaborative enthusiasm in the whole enterprise. Many people helped in the creation of this document, sometimes unwittingly; my thanks for all of the assistance. The Inform FAQ was originally maintained by Roger Firth. 1. Setting the scene -------------------- **These topics are about understanding what Inform does, and how best to learn about it:** ### 1.1 So, what *is* Inform? From the *Introduction to the Inform Designer's Manual*: "Inform is a system for creating adventure games. It translates an author's textual description into a simulated world which can be explored by readers using almost any computer, with the aid of an interpreter program." In its simplest possible form, the "author's textual description" looks rather like this: Constant Story "RUINS"; Constant Headline "^An Interactive Worked Example^ Copyright (c) 2001 by Angela M. Horns.^"; Include "Parser"; Include "VerbLib"; Object Forest "~Great Plaza~" with description "Or so your notes call this low escarpment of limestone, but the rainforest has claimed it back. Dark olive trees crowd in on all sides, the air steams with the mist of a warm recent rain, midges hang in the air. ~Structure 10~ is a shambles of masonry which might once have been a burial pyramid, and little survives except stone-cut steps leading down into darkness below.", has light; [ Initialise; location = Forest; "^^^Days of searching, days of thirsty hacking through the briars of the forest, but at last your patience was rewarded. A discovery!^"; ]; Include "Grammar"; Needless to say, real adventure games are much more exciting -- and much more complex -- than our tiny example. Nevertheless, almost all games look more or less like this, and behave more or less in this manner. ### 1.2 How is Inform related to Infocom? Infocom was the company, formed in 1979 by ex-MIT students to capitalize on the popularity of Adventure and its imitators, which over the following ten years created more than thirty text adventure games; many of those are highly regarded, and still widely played today. Infocom's games were written in a specially-devised Zork Implementation Language (ZIL) and compiled by Zilch into Z-code. A Z-code game could be played using a Z-machine interpreter program, and many interpreters were written to run on the wide range of hobbyist microcomputers then in vogue. Eventually, text adventures fell from public favor, Infocom disappeared into Activision, and the specifications of ZIL and the Z-machine were lost. All that remained in general circulation were the Z-code games themselves. In an astonishing feat of reverse-engineering, a group of enthusiasts known as the Infocom Task Force managed in the early 1990s to deduce the architecture of the Z-machine by inspecting the contents of these binary (non-text) files, and they documented their researches in the [Z-machine Standards Document](http://www.inform-fiction.org/zmachine/standards/). That specification made it possible to create new Z-machine interpreters, and thus to play the original games on computers which hadn't existed when Infocom was around. There was, however, no way to create new games for the Z-machine until Graham devised Inform. Although the Inform language is, at least superficially, nothing like ZIL, and the Inform compiler is quite different from Zilch, nevertheless the outcome of compiling a source game is the same in both cases -- a file of Z-code which can be played on any Z-machine interpreter. Many Inform programmers view this, the commonality of Z-code between their games and the original Infocom masterpieces, as one of the coolest features of the system. ### 1.3 When did Inform appear? The first version of Inform appeared in 1993, and the system has been growing steadily in capability and usage ever since. Version Date Compiler Library ---------- ---------- ---------- --------- Inform 1 Apr 1993 Inform 2 ??? 1993 Inform 3 Nov 1993 Inform 4 Jan 1994 Inform 5 Jun 1994 ... Jun 1995 Inform 6 Apr 1996 6.01 6/1 May 1996 6.02 - May 1996 6.03 - Sep 1996 6.04 6/2 Sep 1996 6.05 - Dec 1996 6.10 6/3 Jan 1997 6.11 6/4 Mar 1997 6.12 - Apr 1997 6.13 6/5 Aug 1997 - 6/6 Sep 1997 6.14 6/7 Mar 1998 6.15 - Dec 1998 6.20 6/8 Apr 1999 6.21 6/9 Nov 1999 - 6/10 Feb 2004 6.30 6/11 Looking at this (slightly simplified) chart, you can see how Inform initially evolved quite rapidly, running through five major versions in its first three years. Some of those early versions were fairly primitive; not until VersionĀ 6 did it settle into a form closely resembling the system that we use today. In fact, although the core system didn't change at all between 1999 and 2004, Inform enthusiasts continue to find ways of extending and enhancing that core using a wide variety of techniques.