[I6] The list of Inform 6 documentation

(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.

In addition, Graham Nelson wrote “The Inform Translator’s Manual,” a guide specifically for use by those trying to create non-English adaptations of Inform 6. Some of the same information is covered in the DM4, but this document is useful in that it attempts to more rigorously define what constitutes “Informese,” i.e. the language as understood by the Standard Library’s parser and provides specific guidance about writing a language definition file.

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.)

Henrik Åsman has created a tool to allow optimized calculation of abbreviations for maximum memory savings within Z-Machine games.

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.