Let's Play/Read: Inform 7 manuals (Done for now)

Chapter 1: Welcome to Inform

Boy, this is one I’ve never seen at all. I thought I had tried reading through this before, but it must have been the other book that I tried to consume all at once.

Right away I see things I’m not sure are accurate:

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”. [emphasis mine]

Really?? I go to look. Sure enough:
image
image

It is hard to see, but there is in fact a subtle difference between the two when viewed from inside the IDE. Subtle, but neat.

The rest of section 1.1 is pretty standard stuff, the kind of text you see at the beginning of most textbooks. Most notable are this quote:

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)

And our very first Example game (I’ve never seen the first one in the wild; I always see examples with high numbers, so this is kind of exciting).

Rather than code itself, this has an explanation of the examples:

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.

I never realized that RB and WI stood for Recipe Book and Writing with Inform!

I did know that the little blue icon meant it would copy your code in (as is mentioned in this section). The star system is also explained:

asterisk.png - A simple example, fairly easily guessed.
asterisk.png asterisk.png - A complicated or surprising example.
asterisk.png asterisk.png asterisk.png - An example needing detailed knowledge of many aspects of the system.
asterisk.png asterisk.png asterisk.png asterisk.png - A complete scenario, containing material not necessarily relevant to the topic being demonstrated.

This example, example 1, is itself a 1-star example.

Section 1.2, Acknowledgments, brings a lot of familiar faces. I think this has been updated quite recently, as the Github version is different from the version in my downloaded IDE. This newer version contains references to the IFTF, for instance, and even one for me, which I found disconcerting (but I think it’s because I helped [very ineptly] with bugs last year).

The main attributions are right at the top for Emily Short and Zarf:

Inform 7 is dedicated to Emily Short and Andrew Plotkin, whose shrewd and sceptical suggestions made a contribution which can hardly be overstated. A long email correspondence with Andrew entirely subverted my original thoughts about natural-language IF, as he convinced me that the “new model” of rule-based IF was a truer foundation; while Emily’s wry, witty analysis and how-about-this? cheered me at low moments, besides providing the impetus and often the specifics for a lot of the best ideas.

I know Emily Short was involved a lot in the creation of these books, so I looked for sources. Emily Short says in a comment from 2009 on her blog that:

I wrote almost all of the examples themselves, and the bulk of the text in the “Recipe Book.” Graham Nelson wrote the bulk of the text in “Writing with Inform.”

Later, in a 2018 Medium story, she expanded on the interaction:

So I got Inform and I got the designer’s manual [for the older version of Inform] that explained how to use it. I taught myself to program in it and I got involved in the online community around Inform and published a few games. Then Graham Nelson, the creator of Inform, approached me for help with the new version, Inform 7, which was meant to be much easier to use for non-technical people. The result was that I got very involved helping with Inform 7’s design, documentation, and community management and that I also married Graham and moved to the UK.

There are numerous other acknowledgments, but the most striking to me is the acknowledgment of other IF system creators:

Special mentions to[…]my fellow authors of IF design systems - Mike Roberts (of the Text Adventure Development System); Kent Tessman (of Hugo); and Campbell Wild (of ADRIFT).

The next few sections are about making the IDE itself work. Section 1.3 on ‘Facing Pages’ reveals a little about the thought process behind the design:

On most computers, Inform runs in a single main window which is an opened book showing two facing pages.

Interesting that he conceives of the IDE itself as a book.

Section 1.4, the Go! button, includes the snippet that:

The keyboard shortcut Command-R (on Mac OS X), F5 (on Windows), or Ctrl-R (on Linux GNOME) has the same effect as clicking Go.

It also mentions that:

[Inform] needs at least one name of a location where the drama can unfold. For reasons of tradition, such locations are normally called “rooms”, though people have used them to represent anything from grassy fields to states of mind and other metaphorical places.

If I remember right, the term ‘rooms’ comes from Colossal Cave Adventure. That game used ‘rooms’ since that is the phrase that cavers use for a specific location in the cave (feel free to correct me!)

Section 1.5, The Replay button, offers no special insights.

Section 1.6, The Index and Results Panel, offers some helpful interpretation of the icons in the error messages:

The icon Reveal.png always denotes a reference to a particular line in the Source text, that is, to something written in the source: clicking it opens the Source panel and jumps to that position.

The icon Below.png indicates that more detailed information can be read further down the text in the same panel: clicking it jumps down to this more detailed report.

Lastly, the icon help.png hints that there is a relevant page of this manual: clicking this opens the Documentation panel and switches to it.

I’ve used the top icon quite a bit, but have never used the others. The ‘hints’ definitely sounds useful.

It also mentions the Index:

On the other hand, if the text was fully understood then another new panel will become available: the “Index”. This is a cross-referenced index of the source, or rather, of the interactive fiction which has been generated. The Index is only an optional convenience, but becomes more and more helpful as the fiction grows larger. Its exact format does not matter for now.

I didn’t use this much at the beginning, but now it’s invaluable. I use it because it auto-generates a map of the whole game, and because it lists every command that can be interpreted as an action, as well as every object and where they are located, among many other things.

The next section is pretty gnarly: 1.7 The Skein.

Inform’s Skein panel is just such a table, built automatically. If we think of the list of typed commands as a thread, then the skein is (as the name suggests) braided together from all these threads. In the display, time begins at the top, with the start knot, and the threads of different play-throughs hang downwards from it.

Double-clicking on a command translates the source afresh and replays the story from start down to that command, and then stops. We are then free to continue play by typing commands into the Story panel, of course, and these commands will automatically be recorded in the Skein as a new variation of play, diverging from the previous threads.

The skein is something I don’t always use, but it is useful. For a large game, the skein can become so complex as to be totally unmanageable, and I resort to testing commands. For smaller games, though, it works well.

For me, the worst thing about the skein (and replays) is when I save in the middle of it; then every replay opens the save window. Fortunately, in Windows, you can right click it and edit it.

But I suppose I’m not the only one who gets confused. The chapter ends with this note:

The user interface for the Skein looks slightly different on different versions of the Inform apps (that is, the MacOS version is not quite the same as the Windows version, and so on), so this manual is not the best place to describe it. In any case, the best way to find out about it is probably to experiment.

And that’s the end of Chapter 1. Hopefully we’ll get on to the fun programming part next!

12 Likes