[I6] The list of Inform 6 documentation

Since there’s a great sticky post about sources for documentation on Inform 7, I thought that something similar for Inform 6 would be useful.

The standard introductory text is The Inform Designer’s Manual, fourth edition (colloquially known as “DM4”), which describes the language as it was circa the year 2000 (Inform 6.21 with Standard Library 6/9):

There is also a (partial) list of known DM4 errata (i.e. errors in the published document):

The current Inform 6 release notes briefly describe the changes to the language since publication of DM4:

The Inform 6 Reference Addendum clarifies (or supersedes) DM4 documentation based on changes and discoveries since DM4’s publication:

The Inform 6.3 “what’s new” page contains a quick reference summary of changes since the publication of DM4, though it does not seem to be 100% accurate in every detail.

Roger Firth’s Inform 6 Frequently Asked Questions is a FAQ that is theoretically geared for beginners to I6 and/or programming, but it also contains many valuable clarifications, comparison charts and code examples concerning various subtleties of the language and features of the Standard Library that are treated lightly or elided in DM4:

Roger Firth and Sonja Kesserich together wrote The Inform Beginner’s Guide , which is designed as a gentler introduction to Inform 6, suitable for non-programmers. It is organized around a series of increasingly complex example games, which are developed in layers as the relevant parts of the language are introduced. While it was written in an earlier version of the language and does not make use of niceties that are now available, the code is still functional:

Roger Firth also produced some handy and concise reference documents (slightly outdated) covering the range of I6 functionality:

Roger Firth also published a series of focused tutorials/overviews centered on various functional themes. All are online:

Roger Firth wrote a brief tutorial on print rules for I6:

Sonja Kesserich wrote a short tutorial comparing and contrasting the various kinds of arrays in I6, potentially useful even though it omits the newer buffer arrays introduced in Inform 6.30:

Sonja Kesserich also wrote a short tutorial on bitwise and logical operators in I6:

Andrew Plotkin has published some helpful tips, tricks and advice for avoiding common beginner errors:

Marnie Parker has also published some helpful tips, tricks and advice. (Note that, regrettably, this domain has gone offline sometime since its addition here in September 2020, and the Wayback Machine has captured only a part of the content that was previously available.):

Adam Cadre set up a website with Glulx-specific coding advice concerning use of its multimedia capabilities, supplemented by downloadable sample programs:

The intrepid may want to check out The Inform Technical Manual, a more fundamental technical description of I6 provided by Graham Nelson. (Note that this document assumes knowledge of the Z-Machine Standards Document, listed next.):

The intrepid may also be interested in The Z-Machine Standards Document, the reverse-engineered documentation of the Infocom Z-machine:

Note that the PDF version of the Z-Machine Standards above (from the official website) is for version 1.0, not the currently-accepted version 1.1. Henrik Åsman has transcribed the existing HTML version of ZMS 1.1 to both PDF and editable ODT formats:

Those compiling to Andrew Plotkin’s Glulx virtual machine may be interested in the comparable standards document for Glulx:

For details about the way that Inform 6 compiles to Glulx, such as the structure of various data tables used by the Standard Library’s parser, Andrew Plotkin has also published the Glulx Inform Technical Reference:

Jesse McGrew published an extremely informative chart comparing the features, limits and instruction sets of the various versions of the Z-Machine (v1 through v8). It is very convenient for quick comparisons between the versions that can be compiled by Inform 6 (Z5, Z6 and Z8).


(Here are some additional items that might be of interest to the same audience.)

All of the library extensions listed in the references sections of the DM4 are available at the IF Archive. Note that most of them were produced prior to the invention of Glulx, so they are targeted to the Z-machine (but can usually be adapted with a little work):

Those working in languages other than English (or who wish to include special Unicode characters in their game/story) may particularly appreciate Roger Firth’s primer on using the -C compiler switch and the Zcharacter directive, which has illustrative tables of the various character sets. While out-of-date with respect to Glulx, it covers the core concepts well:

Roger Firth also published a table about Inform character sets that seems useful but is not easy to find from the main FAQ. It cross-indexes escape codes, Unicode values, Z-machine (ZSCII) and Glulx (ASCII) character set values for many accented and special characters.

Emily Short published a handy list of well-considered generic abbreviations for use in saving memory in a large game written in English. (I couldn’t find any current version of this page, but if you know of one, please pass the word.)

Some alternative libraries (i.e. replacements for the Standard Library) have been developed that offer interesting modifications to (and expansions of) the default functionality. These don’t strictly qualify as documentation, but they are of potentially significant educational value and may be well-suited to use in specific types of projects:

Andrew Plotkin has put together a testing architecture for use in development of Inform 6’s Standard Library, but it may also be useful for automated testing of one’s own libraries. (Note that setting this up requires compilation from source, with multiple dependencies.)

Those who install the above may be inclined to assist in Andrew Plotkin’s project to build a proper test suite for I6 Standard Library development:

Andrew Plotkin published a tool called PlotEx, which is intended for use during the puzzle design phase of development. It requires crafting of a special file holding a description of puzzle dependencies, but for planning of complex games it can be used to automatically identify problematic play states that are unlikely to be reached in normal alpha or beta testing:

Andrew Plotkin has also developed RegTest, a tool for regression testing of interactive fiction during the development phase, which uses a test file syntax much like that used by inform6-test. Its big advantages are the ability to use regular expressions for evaluating output and (if using a RemGlk-enabled interpreter) the ability to emulate keypress interaction such as that found in a built-in help menu. RegTest is included as part of the same distribution as PlotEx, and it can can use the same RemGlk-enabled interpreters (for both Glulx and Z-machine) that are required to make use of inform6-test.


Nice! The paltry mention of I6 documentation in the I7 documentation list has now mostly been replaced by a link to this. :smile:

1 Like