[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:

Jim Fisher published a document called “An Inform Developer’s Guide” which combines material collected from himself, Sonja Kesserich, Roger Firth and Zak McKracken. It contains various short tutorials on topics such as print rules, kinds of arrays (pre-introduction of the buffer type), bitwise and logical operators, and use of ASK/TELL:

Jim Fisher also created a large set of extensions called the Onyx Ring Library (not a true replacement library). It implements many commonly-desired types of functionality:

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

Andrew Plotkin also wrote a sizable document called “The Game Author’s Guide to Glulx Inform” with specific advice for using that VM with Inform 6.

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 tutorial makes few assumptions about background knowledge, and can be helpful for even beginning programmers. It specifically discusses how to handle graphics, sound, mouse input, hyperlinks, realtime activity (including pauses), and file input/output within Glulx:

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:

Jared Reisinger reformatted the contents of the Z-Machine Standards 1.1 specification for easier web browsing. Of special note is a version of the opcodes table designed to be easier to read.

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

23 Likes

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

14 Likes

6 posts were split to a new topic: Firthworks.com no longer working?

(The following items may be of interest those who are not native speakers of English. Please send a PM if you know of any other non-English resources that would be of interest. Note that the ordering of languages is the order in which I was first made aware of resources in those languages. More detailed discussion of these resources can be found in the thread at Non-English Inform 6 resources? so please post any questions that you have about them there.)

ITALIANO/ITALIAN

Giovanni Ricardi produced a set of translated libraries for Italian called INFIT, of which version 2.5 is currently available.

Ilario Nardinocchi also produced a translation, called Italian Inform.

Vincenzo Scarpa maintains a website dedicated to using Inform 6 with Glulx in Italian with several resource links.

Marco Falcinelli, Daniele A. Gewurz, Paolo Lucchesi, Paolo Vece, Giulio Veneziani and others produced a translation of the Inform Beginner’s Guide by Roger Firth and Sonja Kesserich.

Vincenzo Scarpa has also produced a book Inform e Glulx that covers how to use Inform 6 and Glulx to produce games in Italian.

Marco Vallarino maintains some introductory materials for learning to design games and use Inform 6 in Italian.

Marco Falcinelli also produced a document called “Guida a Inform–Glulx” which concerns the use of Glulx.

Marco Falcinelli also translated Andrew Plotkin’s “The Game Author’s Guide to Glulx Inform” into Italian.

SVENSKA/SWEDISH (hat tip @fredrik)

Active forum participant fredrik maintains a web page with resources for writing Inform 6 games in Swedish, including the Tidsformer library and a Swedish version of the compiler. This page is part of a wider site geared toward introducing Swedish speakers to interactive fiction.

DEUTSCH/GERMAN (hat tip @StJohnLimbo)

Max Kalus mantains a second version of the Inform library (based on prior work by Tinic Urou, Ralf Herrmann and Toni Arnold) plus documentation in German. German versions of the Inform 6.30 compiler for Windows and Linux are also available.

Max Kalus also created some German-adapted versions of the Inform 6.30 compiler which suppress certain warnings about changing genders.

Toni Arnold’s work on a German library, called Inform auf Deutsch, is still available. Many details of German grammar and how they are handled using Inform 6 are documented with examples, and both modified libraries and sample source code are provided.

Martin Oehm maintains a site dedicated to Inform 6 resources in German, including the German-translated library called deform and its documentation, annotated example source code using the library, and an online tool for generating minimal object definition statements.

Frank Borger has prepared a comprehensive introduction and reference for writing IF in German using Inform 6, which is called Der Abentheurliche Informissimus Teutsch.

ру́сский/RUSSIAN (hat tip @Oreolek)

A Russian language Inform 6 site is maintained, with kits available for both Glulx and Z-machine that contain a Windows compiler, translated libraries, documentation and example games. In addition, there is a Russian translation of the Inform Beginner’s Guide examples.

ESPAÑOL/SPANISH (hat tip @Jade)

The main system for development in Spanish is called InformATE!. The overview page links numerous additional resources like interpreters, utilities, library extensions, and the like.

The Spanish translation of the Inform 6 libraries is called INFSP. CAAD also maintains some pages of resource links relevant to it.

José Luis Díaz created some documentation in Spanish for InformATE!, which has since been updated by others:

CAAD community member Zak McKraken produced a web-based tutorial for learning to use InformATE! and Inform 6.

CAAD community member Baltasar also produced some tutorial materials in Spanish for learning to use InformATE! and Inform 6.

Club de Aventuras AD (CAAD) maintains a wiki with a large number of resources written in Spanish, including InformATE!.

A Spanish translation of Adam Cadre’s Gull Glulx tutorial is available.

FRANÇAIS/FRENCH (hat tip @mulehollandaise and @auraes)

A website in French covering many interactive fiction development systems has a page dedicated to Inform 6.

A recent French translation of the Inform 6 libraries is available.

Forum member auraes maintain an up-to-date version of the Standard Library 6.12.x in French.

Lionel Ange wrote a version of Standard Library 6.12.4 in French.

An older version of the French libraries was produced by Jean-Luc Pontico and Eric Forgeot.

A “starter kit” for developing Inform 6 games in French is available.

Another site with introductory materials for development in French.

NEDERLANDS/DUTCH

Yuri Robbers produced a Dutch translation of the Inform 6 libraries.

slovenščina/SLOVENIAN

Benjamin Lipovšek produced Slovenian translations of the Inform 6 libraries, along with some documentation in Slovenian.

DANSK/DANISH (hat tip @thomasboevith)

Forum participant thomasboevith has published a beta version of Inform 6 libraries for Danish.

NORSK/NORWEGIAN (hat tip @mulehollandaise)

Eirik Krogstad has developed a version of the Inform 6 libraries for Norwegian.

GENERAL

An old list of non-English resources for many languages is available at the official Inform site. (Many links appear to be outdated, but it may be useful for research purposes.)

If you haven’t found what you’re looking for here, the IF Archive maintains a dedicated directory to translations of Inform 6 libraries in many languages (even Lojban). (Users are encouraged to submit new and/or up-to-date versions for their language of choice.)

5 Likes