§2 The state of play
§4 ‘Ruins’ begun
Beginning to lay ‘Ruins’; including library files; the
some properties of mushrooms;
after rules; the stone steps.
§5 Introducing messages and classes
Recap of message-sending: a parrot; classes for treasure artifacts: the pygmy statuette, the honeycomb; how clashes are sorted out in class inheritance, additivity.
§6 Actions and reactions
Actions are attempts; generating them with
second noun; the
## notation; actions fall into three groups; fake actions
ThrownAt; creating new actions, the
Blorple example; how actions are
processed, over ‘Before’, ‘During’ and ‘After’ stages.
§7 Infix and the debugging verbs
Three levels; general strategies; command lists and “recording”, “replay” and “random” debugging verbs; “showobj”, “tree”, “showverb”, “scope”; keeping watch of “actions”, “changes”, “messages”, “timers”; tracing the parser with “trace”; supernatural ability to “purloin”, “abstract”, “goto”, “gonear”; the Infix “; ”, “;give”, “;move”, “;remove”, “;examine”, “;watch”, “;inventory”; marking routines with a * to be watched.
§8 Places and scenery
The Square Chamber of ‘Ruins’; what “you don't need to refer to”;
scenery objects; spreading mist with
found_in; α Canis Minoris; the
five senses and reaction rules; rooms have
§9 Directions and the map
Giving ‘Ruins’ a small map;
d_to, etc.; when you
objects in the
compass; not the same as direction properties.
§10 Food and drink
edible foodstuffs; the
Drink action; difficulties with liquids.
wearable items of clothing; a jade face mask.
§12 Containers, supporters and sub-objects
openable; locks and
Receive to trap use of a
container: a chasm; transparency and component parts.
How to create a
when_closed; a stone door for ‘Ruins’; a
two-way door, the ‘Advent’ grate; why
needed and how to trap every attempt to go through.
§14 Switchable objects
when_off; the Gotham City searchlight;
a sodium lamp;
describe taking precedence.
§15 Things to enter, travel in and push around
enterable objects: a slab altar;
vehicles: KAR 1; special rule about the
Go action when
action: a huge pumice-stone ball; pushing up and down.
§16 Reading matter and consultation
Consult action, “look
a dictionary of glyphs, Tyndale's Bible; making “read”
and “examine” different.
§17 People and animals
animate objects and the
rule; a coiled snake and a mummified priest; Blofeld's reactions;
talkable objects; some people are
§18 Making conversation
Orders are actions for other people; giving people their own grammars; untypeable verbs; several voice-activated machines; fake fake actions; telephony.
§19 The light and the dark
Light versus darkness is automatic; modifying
the darkness; going from dark into dark and the
entry point; rules on ‘when there is light’.
§20 Daemons and the passing of time
Daemons and the
starting and stopping them; background daemons; timers (fuses);
events for places and nearby objects; the time of day; changing it
SetTime; on the status line; midnight, sunrise, sunset;
the exact sequence of events at end-of-turn.
§21 Starting, moving, changing and killing the player
Initialise should do;
teleportation and the
PlayerTo routine; what happens
when the room changes:
for a room,
visited; giving the player his own
ChangePlayer to transform him into any object;
DeathMessage routine; resurrection and the
§22 Miscellaneous constants, scoring, quotations
MAX_CARRIED; the automatic “sack object”;
‘amusing’ rewards for the victorious; two scoring systems:
for places and items, or for completing tasks; rankings and
automatic score notification and
and “places” verbs, removable with
§23 ‘Ruins’ revisited
Further examples to complete ‘Ruins’; a map and a step by step solution of the final game.
§24 The world model described
¶1. Substance – ¶2. Containment – ¶3. Space – ¶4. Sense – ¶5. Time – ¶6. Action.
§25 Extending and redefining the world model
Enriching the model; Egyptian amulets and
their spells; making a new library file; the
system for changing messages like “Dropped.”; changing
the prompt; the last resort of
Replace directives; using
the world model description; fire and flammability.
§26 Describing objects and rooms
print (The) obj, ... (the) obj and
so on; indefinite and definite
short_name of an object;
strings and routines; exactly how inventory lines are printed; a matchbook;
describe routines; exactly how rooms
§27 Listing and grouping objects
WriteListFrom; its style
bitmap; examples: tall and wide inventories; grouping similar items
together in lists: foodstuffs, Scrabble pieces and denominations
§28 How nouns are parsed
name is used; a fried green tomato
turning red; the parser breaks text into a stream of words;
NextWord; reading words as numbers or from their
raw text; a
parse_name routine is much more flexible than
ParseNoun entry point; distinguishing adjectives from nouns.
§29 Plural names for duplicated objects
Collections of indistinguishable objects;
a bag of six coins; the
plural property for printing out plurals;
definition of ‘indistinguishable’; writing
routines to allow plurals to be understood; class of crowns.
§30 How verbs are parsed
The parser's fundamental method;
entry point; the actor and verb word; synonyms for verbs; definitions
of grammar, line and token;
Verb directive: a
simplified “take” grammar;
meta verbs; grammar creates
actions; creating an “xyzzy” verb; how to
for an existing verb: pushing numbered buttons; priority:
last; splitting synonymous verbs apart with
PrintVerb entry points.
§31 Tokens of grammar
Full list of grammar tokens; prepositions;
held; implicit taking; tokens allowing multiple objects
like “all”; filtering out nouns by attribute:
“use” verb; and by general routine: “free”
verb; parsing numbers: “type” verb,
general parsing routines; reading from the parser's raw text
parse table; exercises, including French, telephone
and floating-point numbers, times of day, adding a
to a grammar line.
§32 Scope and what you can see
The definition of ‘in scope’;
touchability is stricter than scope; answering questions:
“what is a grue”;
scope=... tokens with programmable
the global definition of ‘in scope’ using
scope_reason; looping over and testing scope; making the rules
more sensitive to darkness; a long room divided by a glass
add_to_scope property for component parts of containers.
§33 Helping the parser out of trouble
Parser error messages and
ambiguity-resolution and influencing it with
edible objects; redefining “all”;
exactly how ambiguities are resolved.
§34 Linguistics and the Inform parser
¡Bienvenido a Aventura!; Informese; commands, verb phrases, prepositions, noun phrases, gender-number-animation (GNA), descriptors, nouns, pronouns; example of parsing; grammatical features not present in Informese.
§35 Case and parsing noun phrases
Flexion and cases; parsing inflected noun phrases; for example, Old English dative word-endings.
§36 Parsing non-English languages
Compromises; accented characters at the
keyboard?; dialects; language definition files;
the customisation of ZSCII; specifying pronouns and descriptors;
translating natural languages to Informese.
§37 Names and messages in non-English languages
Gender-number-animation of short names; agreement with articles and cases; contraction forms and articles; library messages of all kinds.
§38 Controlling compilation from within
Include; conditional compilation:
Message; linking in the library; writing new modules
to link in; serial and release numbers.
§39 Controlling compilation from without
Switches; memory settings; pathname variables; Inform Control Language (ICL).
§40 All the Inform error messages
Fatal errors; errors, including linker and assembler errors; warnings, including obsolete usage warnings.
§41 Architecture and assembly
ZIL, Inform and the Z-machine; its Versions; assembly language; store and branch opcodes, labels; memory map and stack.
§42 Devices and opcodes
The Standard for interpreters; input and output streams; the Version 5 and Version 6 screen models; colours, windows and status lines; interrupt countdowns; pictures; sounds; keyboard reading with timed interrupts; terminating characters; the mouse; menus; loading and saving auxiliary files; throwing and catching stack frames.
§43 Pictures, sounds, blurbs and Blorb
What a Blorb file is; the perlBlorb utility program; blurb files; palette, resolution, scaling; specifying what sounds and pictures belong to a story file.
§44 Case study: a library file for menus
Invisiclues; basic design; the
Menu class; the
§45 Limitations and getting around them
Story file size; readable memory size; grammar; vocabulary; dictionary resolution; objects, attributes, properties, names; function and message arguments; recursion and stack usage; abbreviations in text.
§46 A brief history of interactive fiction
§47 Realities and origins
Fictional backgrounds; crimes against mimesis; historical research; book adaptations.
§48 A triangle of identities
Player, protagonist and narrator; participatory magic; the overture and other narrated text.
Size and density; the prologue, middle game and end game; wide versus narrow; lattice diagrams, including one for ‘Ruins’.
§50 The design of puzzles
General remarks on good and bad puzzles; mazes, light sources, capacity and exhaustion, timed puzzles, utility objects, keys and doors, machinery and vehicles, fire, water, air, earth, plants, animals, monsters, people, ropes and chains, riddles, decipherment puzzles; clues, luck and accidental solutions; optional and multiple solutions; rewards.
§51 The room description
Examples of good, mediocre and poor description; how much space is one location?; variable descriptions; outdoor games; differing perspectives.
Scoring systems; responding to wrong guesses; examples of typical bugs; play-testing and editing; concluding homily.