I have to say, this chapter has really helped my game so much more than I thought it would. I’m enjoying messing with listing descriptions.
Something from earlier chapters that I’ve started doing is when I want scenery to be hidden until the player finds it, I put it in like usual but then say something like this:
`The desk-drawer is part of the oak-desk.
Understand “drawer” as the desk-drawer when the oak-desk is examined.`
This basically makes the drawer very hard to find until the player has looked at the desk. It’s much easier to code and less liable to failure than moving stuff from off-stage. On the other hand, it does run the risk of somehow getting caught in disambiguations in weird situations (as people have discussed in other threads about privately-named things).
I’ve also been using this method for details of paintings and things, since it’s weird to walk in a room and say ‘x man’ and say ‘do you mean Fred or the painting of the Champs-Elysee?’ when there’s a man in the painting.
Anyway, on to:
Chapter 18, cont.
18.29 is Deciding the scope of something.
You can only refer to an object if it is ‘in scope’. In the standard rules, something is in scope if it is in the location of the player and it is not dark.
You can mess with scope like this:
After deciding the scope of the player while the location is the Shrine:
place the holy grail in scope.
The reason I always feared this is because whenever I tried to put something in scope, I always got the error that said ‘You can’t reach into ___room name’.
But that’s because I hadn’t read section 12.18! In that section we learned rules like:
A rule for reaching inside the flask: say "Your hand passes through the glass as if it were not there, chilling you to the bone."; allow access.
and
A rule for reaching inside open containers:
if the person reaching is the player:
say "Your hands seem enigmatically too large for [the container in question].";
deny access.
So if you add an item in another room in scope, you just need to write a rule for reaching inside its location! Pretty neat. That solves my main problem I had with scope, so maybe I’ll use it more.
To put something in scope:
place the distant volcano in scope;
place the lacquered box in scope, but not its contents;
(usually contents are automatically placed in scope if it is transparent or open or not a container).
To place just the contents of something in scope (including a room):
place the contents of the lacquered box in scope;
place the contents of the Marbled Steps in scope;
To be able to look into another room:
The Cloakroom is a room. "This is just a cloakroom, but through a vague, misty mirror-window you can make out the Beyond." After looking in the Cloakroom, say "In the mirror you can see [list of things in the Beyond]."
After deciding the scope of the player while the location is the Cloakroom: place the Beyond in scope.
The Beyond is a room. Johnny Depp is a man in the Beyond.
To allow someone to refer to things in a dark room by name:
After deciding the scope of the player while in darkness: place the location in scope.
Hmm, maybe I can use darkness now more often!
This activity happens before a command is fully processed, so you can’t say ‘while taking a ___’, since Inform doesn’t know what the noun or second noun is yet. But it does know the action, so ‘while taking’ would be okay.
This is really exciting!
Example 363 is Peeled.
A thing can be large or small.
Before touching a large thing when in darkness: say "You grope for [the noun]..."
After deciding the scope of the player:
repeat with item running through large things in the location:
place item in scope.
If instead you want to put a whole kind of thing in scope for an action, say ‘any’, like this:
Understand "ask about [any subject]" as inquiring about. A subject is a kind of thing. The skintight catsuit is a subject. Inquiring about is an action applying to one visible thing.
Carry out inquiring about something:
say "'What can you tell me about [the noun]?' you demand. Mr Steed raises his eyebrows, but does not reply."
We say ‘visible thing’ because otherwise we get a ‘can’t reach into’ error.
(note that ‘subject’ is a kind here, sneakily defined in the middle of the paragraph, which really confused me for a while).
Example 364 is Four Stars 2:
After deciding the scope of the player while listening or sleeping or looking:
if in darkness:
repeat with locale running through adjacent rooms:
place locale in scope.
A reaching inside rule while listening or sleeping or looking:
rule succeeds.
The report listening rule is not listed in the report listening to rules.
Carry out listening to something:
say "From [the noun] you hear [the sound of the noun]."
Instead of listening to a room:
if an audible thing can be touched by the player, say "You hear [the list of audible things which can be touched by the player].";
otherwise say "A merciful peace prevails."
Definition: a thing is audible if the sound of it is not "silence".
Before printing the name of something audible while listening to a room:
say "[sound] from the "
A thing has some text called scent. The scent of a thing is usually "nothing".
The report smelling rule is not listed in the report smelling rulebook.
Carry out smelling something:
say "From [the noun] you smell [scent of the noun]."
Instead of smelling a room:
if a scented thing can be touched by the player, say "You smell [the list of scented things which can be touched by the player].";
otherwise say "The place is blissfully odorless."
Instead of sleeping when the player can touch an audible thing (called the irritant):
say "The steady [sound of the irritant] from [the irritant] prevents your slumber."
Section 18.30 is Clarifying the parser’s choice of something.
This only runs where the player types a verb and a noun (the first noun specifically) and the noun is the name of an object (not a kind), and there are multiple options and Inform picks one.
If that happens, then this activity runs, which prints which one you picked in parentheses, like:
> Take box
(the laminated mahogany box)
Taken.
An example on how to change it:
The Champs du Mars is a room. The great Eiffel Tower is here. "The great Tower stands high over you." The souvenir model Eiffel Tower is here. "Comparatively tiny is the souvenir version." The great Eiffel Tower is fixed in place. Does the player mean taking the great Eiffel Tower: it is very unlikely.
Rule for clarifying the parser's choice of the model tower: say "(The little one, obviously.)"
Section 18.31 is Asking which do you mean. This is like the previous section, but when Inform isn’t confident which of the objects to choose. It is a complicated rule since it also has to deal with multiple indistinguishable objects.
You can put an explanation before hand if doing a tutorial:
Before asking which do you mean: say "Okay, so I'm going to have to ask a question now: you've typed something ambiguous, and I don't know which noun you're referring to."
After asking which do you mean: say "(Just type a word or two to give me more information.)"
or just use this activity in a ‘while’ clause:
The Champs du Mars is a room. The great Eiffel Tower is here. "The great Tower stands high over you." The souvenir model Eiffel Tower is here. "Comparatively tiny is the souvenir version." The great Eiffel Tower is fixed in place. Understand "actual" as the great Tower.
Rule for printing the name of the great Tower while asking which do you mean: say "actual Tower". Rule for printing the name of the souvenir tower while asking which do you mean: say "souvenir".
Example 368 is Apples:
An apple is a kind of thing. Consumption is a kind of value. The consumptions are pristine and bitten. An apple has a consumption. The description of an apple is "It is [consumption]."
Understand the consumption property as describing an apple.
Before printing the name of an apple while asking which do you mean: say "[consumption] ". Before printing the plural name of an apple while asking which do you mean: say "[consumption] ".
Example 369 is Originals:
This has an elaborate scheme for having a thing and a model of a thing. We want to print the word ‘actual’ before the original thing, but not when printing the name of the model.
The virtual-context is a truth state that varies. The virtual-context is false.
Before printing the name of a model:
now virtual-context is true.
After printing the name of a model:
now virtual-context is false.
Before printing the name of something (called target) while asking which do you mean:
if the target is not a model and virtual-context is false:
say "actual ".
Example 370 is Walls and Noses:
In this example we use Inform 6 code (which I think is our first time?) to tell if something is in the parse list (which we also haven’t learned of previously):
Definition: a direction is matched if it fits the parse list.
Definition: a room is matched if it fits the parse list.
Definition: a thing is matched if it fits the parse list.
To decide whether (N - an object) fits the parse list:
(- (FindInParseList({N})) -)
Include (-
[ FindInParseList obj i k marker;
marker = 0;
for (i=1 : i<=number_of_classes : i++) {
while (((match_classes-->marker) ~= i) && ((match_classes-->marker) ~= -i)) marker++;
k = match_list-->marker;
if (k==obj) rtrue;
}
rfalse;
];
-)
My motivation to learn Inform 6 has gone down a lot since I learned it was just like modded C++ (maybe that’s not true?), since many of my education and career choices were centered around avoiding jobs that use C++ heavily.
Include Complex Listing by Emily Short.
Rule for asking which do you mean when everything matched is a nose:
prepare a list of matched things;
if your nose is an output listed in the Table of Scored Listing:
choose row with an output of your nose in the Table of Scored Listing;
now the assigned score entry is -1;
say "Whose nose do you mean, [the prepared list delimited in disjunctive style]?"
So this example also has an undocumented extension used in it (I mean undocumented in the manual). Basically, this example is like ‘Why not rewrite the whole parsing system from scratch?’
I wonder if this would be of use to @Lancelot, who was recently asking about how to make Inform disambiguate when writing only half of an action applying to one thing and one specific kind of value.
Section 18.32 is Supplying a missing noun/second noun
These two activities are for when you type a command that takes a certain number of object parameters, but forget to type that parameter. (Edit: that’s what I thought at first, but after experimentation and rereading, I realized it’s not that at all! This action is only for when you write an ‘Understand’ rule for an action that has one or more missing parameters.)
This rule can’t be used to give hints to inform on which object to guess it should select; that’s what ‘does the player mean’ is for.
But it can be used to pick a specific noun, or to make no choice and have the command rejected. If the activity prints nothing, Inform says, ‘You must supply a noun’.
(Hmm, I was summarizing text, but it seems confusing, so I don’t think I fully grasped it). (edit: I think I get it after my notes above)
Inform automatically does this rule for ‘going’ with no direction (which prints a refusal), and listening and smelling ‘which supplies the noun of the location itself’.
So if you type ‘smell’, the actual action that is performed is ‘smelling the location’.
The rule for listening is explicitly:
Rule for supplying a missing noun while listening (this is the ambient sound rule):
now the noun is the location.
You can use this rule to allow people to use the best item as the second noun seamlessly:
Understand "unlock [something]" as unlocking it with.
Rule for supplying a missing second noun while unlocking:
if the skeleton key is carried, now the second noun is the skeleton key;
otherwise say "You will have to specify what to unlock [the noun] with."
In an effort to help out a friend, I tried doing this to a verb applying to a noun and a kind of value, but I got the bizarre error ‘you may not supply a second subject’, which doesn’t even show up on google searches. I think though that it only shows up when trying to put two ‘things’ into an action that only accepts one ‘thing’.
Example 371 is Latin Lessons:
A dance-name is a kind of thing. Argentine tango, samba, merengue, cha-cha, street salsa are dance-names.
Dancing is an action applying to one visible thing. Understand "dance [any dance-name]" as dancing. Understand "dance" as dancing.
Rule for supplying a missing noun while an actor dancing:
now the noun is street salsa.
Man, this means I should update my extension, which currently has an action called ‘singleuttering’ for using ‘say’ with only one topic and no people to say it to.
Example 235 is “The Problem of Edith”:
Suggestion relates things to each other. The verb to suggest means the suggestion relation.
A subject is a kind of thing. The current subject is a thing that varies. greeting is a subject.
Understand "ask [someone] about [any subject]" as asking it about the subject. Understand "tell [someone] about [any subject]" as asking it about the subject.
Asking it about the subject is an action applying to one thing and one visible thing.
Carry out asking it about the subject:
say "'Hmm, [the second noun],' says [the noun]. ";
relate the current subject with the second noun;
now the current subject is the second noun.
This example doesn’t really use the activity in this section.
Section 18.33 is Reading a command. This one sure gets used a lot, though not by me! It prints the prompt text, waits for the player to type and press return, rejects blank lines and treats commands starting with ‘oops’ as correcting the last one.
They suggest not changing ‘for’ rules for this one.
But the other rules are okay:
Before reading a command while the turn count is 1, say "(This is your chance to say what the protagonist should do next. After the '>', try typing 'take inventory'.)"
(This changes the prompt, like Austin Auclair did in his recent Seedcomp game, which replaced it with an anchor).
More powerful is ‘after reading a command’, which lets you access the variable called ‘the player’s command’, giving you ultimate power:
After reading a command:
if the player's command includes "please":
say "Please do not say please.";
reject the player's command.
If you ever want to hijack the parser entirely at the source, this is really the place to hit it up.
if the player's command matches "room [number]", ...will be true if the command is ROOM 101, but not if it’s EXPLORE ROOM 7.
We can also say ‘if ____ does not match ____’.
The player’s command has the type ‘snippet’, which is what all these statements accept.
if the player's command includes "room [number]", ...will be true if the command is ROOM 101, EXPLORE ROOM 7, or ROOM 22 AHOY, but not if it’s VISIT ROOM GAMMA 7.
We can also check if a snippet does not include a topic.
Finally, you can just say
reject the player's command, which ignores the text entirely and goes back to the keyboard with no ‘every turn’ machinery running.
So you can use this to force a limited parser. Which, I had a limited parser area of my mega-game coming up to work on, so maybe I’ll try this out!
We can manipulate text all we want:
if the player's command includes "please":
say "(Quelle politesse! But no need to say please.)";
cut the matched text.
if the player's command includes "room [number]":
replace the matched text with "office".
if the player's command includes "or else":
cut the matched text.
Some sample uses:
After reading a command:
if the player's command matches "grab", replace the player's command with "take all".
The only three snippets we will really use are the player’s command, the matched text, and the topic understood (which is only used in processing actions containing the ‘[text]’ token).
After reading a command:
let T be "[the player's command]";
replace the regular expression "\p" in T with "";
change the text of the player's command to T.
Example 373 is cloves:
Manner is a kind of value. The manners are insouciantly, sheepishly, and defiantly.
After reading a command:
if the player's command includes "[manner]":
cut the matched text;
otherwise:
say "But how, my dear boy, how? You simply can't do something without a pose. Thus far you have mastered doing things [list of manners].";
reject the player's command.
When play begins:
now the left hand status line is "Behaving [manner understood]";
now the right hand status line is "[location]";
now the manner understood is insouciantly.
Interestingly, the variable ‘the manner understood’ is set even though we removed it from the player’s command, I think because in the parsing stage (after reading a command) we had it check for the token ‘manner’.
Example 374 is Fragment of a Greek Tragedy:
Understand “restart/restore/save/quit” as “[meta-command]”.
After reading a command:
if the player’s command matches “[meta-command]”, make no decision;
say line break;
repeat through Table of Current Topics:
if the player’s command includes topic entry:
say “CHORUS: [reply entry][paragraph break]”;
follow the advance time rule;
rule succeeds;
say “[italic type] Pause.[roman type][line break]”;
follow the advance time rule;
rule succeeds.Table of Current Topics
topicreply
“journey/trip/travel/came/arrived”
“Sailing on horseback, or with feet for oars?”
“horseback/legs/feet/oars”
“Beneath a shining or a rainy Zeus?”
“shining/rainy/weather/zeus”
“Mud’s sister, not herself, adorns thy boots.”
I think the ‘make no decision’ just exits out of our current after rule and lets it go on to processing. I think ‘rule succeeds’ does the opposite. I haven’t reached the rules chapter yet though.
Example 375 (wow, we’ve gotten far!) is North by Northwest:
This is a way to truncate very long commands like north-northeast:
After reading a command:
let N be "[the player's command]";
replace the text "north" in N with "n";
replace the text "east" in N with "e";
replace the text "south" in N with "s";
replace the text "west" in N with "w";
change the text of the player's command to N.
I should have done this in my game Ether but that was my first game and I wrote it 8 years ago and I literally just learned this concept today.
Example 376 is Complimentary Peanuts:
Instead of asking Aunt Martha to try doing something:
repeat through Table of Aunt Martha's Commentary:
if player's command includes topic entry:
say "[commentary entry][paragraph break]";
rule succeeds;
say "'Hmmf,' says Aunt Martha."
Asking someone about something is speech.
Telling someone about something is speech.
Answering someone that something is speech.
Asking someone for something is speech.
Instead of speech when the noun is Aunt Martha:
repeat through Table of Aunt Martha's commentary:
if the topic understood includes topic entry:
say "[commentary entry][paragraph break]";
rule succeeds;
say "'Hmmf,' says Aunt Martha."
Section 18.34 is Implicitly taking something.
This happens when you try to do an action with an item that is present but not carried. By default, inform prints (first taking the ___) and then silently tries taking it.
No matter what rules are written for this activity, it is impossible to use it to allow the action to go ahead even without the item. The activity allows us to change how, or if, an implicit take will happen, but not to change the consequences of failure.
(you can change this behavior by unlisting rules, though).
Here’s what we can do with this activity:
Rule for implicitly taking the curare:
say "Ordinarily you'd pick up the curare in order to be able to do that, but this seems like a good moment for caution." instead.
Rule for implicitly taking something (called target):
try silently taking the target;
if the player carries the target, say "You appropriate [the target] first, of course. [run paragraph on]"
Rule for implicitly taking the noun when the second noun is a thing and the second noun is not carried by the player:
try silently taking the noun;
try silently taking the second noun;
say "(first taking both [the noun] and [the second noun])[line break]"
Rule for implicitly taking something which is carried by the player when the person asked is Clark:
say "'I don't see how I'm supposed to do that when you're holding [the noun],' remarks Clark sulkily." instead.
Check an actor photographing a flower:
if the actor is not carrying the noun:
carry out the implicitly taking activity with the noun;
if the actor is not carrying the noun, stop the action.
Example 377 is The Big Sainsbury’s
This is a way to make implicit actions take up time:
Rule for implicitly taking something:
follow the advance time rule;
continue the activity.
Example 378 is Pizza Prince:
A pizza slice is a kind of thing. 10 pizza slices are in Pizza Limbo. A pizza slice is always edible.
Rule for implicitly taking the pizza selection:
let chosen slice be a random pizza slice in Pizza Limbo;
if chosen slice is nothing: [That is, there were no slices remaining]
say "[manager refusal]";
otherwise:
move the chosen slice to the player;
say "(helping yourself from the selection)";
now the noun is the chosen slice.
Rule for clarifying the parser's choice of the pizza selection while taking:
say "(from the magnificent selection before you)[line break]"
That example had more nuance to it, so if you plan on copying it, I’d read the whole thing.
Example 379 is Lollipop guild:
This example skips some implicit takes altogether.
The carrying requirements rule does nothing when showing something to the guardian.
The can't show what you haven't got rule does nothing when showing something to the guardian.
The block showing rule does nothing.
This lets you show whatever you want to the guard without taking it.
Section 18.35 is Printing a parser error.
This happens when the parser tries to match a command but can’t.
These are the possible parser errors:
didn't understand error
only understood as far as error
didn't understand that number error
can't see any such thing error
said too little error
aren't holding that error
can't use multiple objects error
can only use multiple objects error
not sure what it refers to error
excepted something not included error
can only do that to something animate error
not a verb I recognise error
not something you need to refer to error
can't see it at the moment error
didn't understand the way that finished error
not enough of those available error
nothing to do error
referred to a determination of scope error
I beg your pardon error
noun did not make sense in that context error
can't again the addressee error
comma can't begin error
can't see whom to talk to error
can't talk to inanimate things error
didn't understand addressee's last name error
You can add little notes to this or alter them or print the name of the report:
After printing a parser error:
say "If you are new to interactive fiction, you may like to try typing HELP."
Rule for printing a parser error when the latest parser error is the I beg your pardon error:
say "What's that? Speak up, speak up." instead.
Rule for printing a parser error:
say "That's a rum thing to say, and no mistake." instead.
Rule for printing a parser error:
say "The [latest parser error] happened.";
continue the activity.
(I often change these errors with the format of The error name rule response (whatever) is “”).
Example 380 is WXPQ:
Rule for printing a parser error when the latest parser error is the noun did not make sense in that context error:
say "For once, you're at a loss for anything to say."
The parser error “That noun did not make sense in this context” arises instead of “You can’t see any such thing” when the player uses a command that could apply to any item in the game.
It goes on to explain how to handle two separate error messages for two different functions with that token.
Example 381 is Xot:
The last error is a text that varies. The last error is "xot".
Before printing a parser error:
now the last error is the player's command.
Every turn when a random chance of 1 in 2 succeeds:
say "Over the loudspeaker comes some distorted nonsense. If you listen carefully, it sounds as though some fool is saying '[last error], [last error], [last error]!'"
Section 18.36 is Deciding whether all includes.
This runs when the player types a command using ‘all’. We generally exclude things like the player’s body, scenery, and fixed things.
Some examples:
Rule for deciding whether all includes scenery: it does not.
The above rule is already in the standard rules.
Rule for deciding whether all includes the oval roof: it does.
Section 18.37 is Printing the Banner text.
When a game starts, it prints some generic banner text:
Relations
An Interactive Fiction by Emily Short
Release 1 / Serial number 050630 / Inform 7 build 2U98 (I6/v6.30 lib 6/10N) SD
To say this at any time, type
say "[the banner text]"
You can alter it like:
After printing the banner text, say "DRM authentication code: 13S-451-2034u75y65u%%a1248."
or:
Rule for printing the banner text: say "Welcome." instead
Example 382 is Bikini Atoll, an example I’ve copied in quite a few of my games:
The Hut and the Tropical Beach are rooms.
The conch shell is in the Hut. After taking the shell for the first time: say "As you gather the oddly-warm conch shell into your arms, you experience a sudden flash of deja-vu...[banner text]"; move the player to the Tropical Beach.
Rule for printing the banner text when the player is not carrying the shell: do nothing.
I like to have ‘cold opens’ in my games, with the banner text only showing up at some dramatic moment like a film title. I did that in Color the Truth, and in the seed I entered into seedcomp that Charm Cochran used for Red Door Yellow Door.
I do follow this note in the text, though:
(By tradition, and as a courtesy to all the people who have worked on Inform, authors ensure that the banner is printed some time near the beginning of each game played. So please only defer it, rather than suppress it altogether.)
Section 18.38 is Printing the player’s obituary
This prints the asterisk and ‘you have died’ message, along with printing the final score and blanking the status line.
After printing the player's obituary: say "And you visited [number of visited rooms] place[s]."
Example 383 is Battle of Ridgefield:
This removes the option to do anything but quite the game after dying (and dying is triggered by ‘end the story’).
Rule for printing the player's obituary:
say paragraph break;
center "In defense of American Independence";
center "at the Battle of Ridgefield, April 27, 1777,";
center "died Eight Patriots who were laid in this ground,";
center "Companioned by Sixteen British Soldiers,";
center "Living, their enemies,";
center "Dying, their guests";
say paragraph break;
wait for any key;
stop game abruptly;
rule succeeds.
Example 384 is Finality, which removes Undo from the final options table:
When play begins:
choose row with a final response rule of immediately undo rule in the Table of Final Question Options;
blank out the final question wording entry.
Instead of jumping:
say "If you insist.";
end the story.
This just doesn’t remind them about undo, but you can fully remove it (unless they have one of the cool interpreters that has built-in UNDO):
Use undo prevention.
Example 385 is Jamaica 1688:
Table of Final Question Options (continued)
| final question wording | only if victorious | topic | final response rule | final response activity |
|---|---|---|---|---|
| “REVEAL the inspiration for something or somewhere” | true | “reveal [any thing]” | investigate something rule | – |
| – | true | “reveal [any room]” | investigate something rule | – |
This is the investigate something rule:
repeat through the Table of Footnotey Stuff:
if the player's command matches the topic entry:
say "[revelation entry][paragraph break]";
rule succeeds;
say "I'm afraid I have no revelation to vouchsafe there."
I’ve copied this one before, but I notice this example and the last one aren’t directly related to the section text itself.
Section 18.39 is Amusing a victorious player.
If there are no player-made rules for this, it does nothing. If the player adds a ‘Rule for amusing a victorious player’, then AMUSING becomes an option at the end of the game.
Rule for amusing a victorious player: say "Hmm. You're easily amused."
Example 386 is Xerxes:
Table of Amusing Matter
| title | subtable | description | toggle |
|---|---|---|---|
| “Cult Revisions” | – | “Did you try… [paragraph break] banning the worship of Seth? [line break] of Dionysus? [line break] assigning all your priests to Re? [line break] assigning male priests to Cybele? [line break] assigning married priestesses to Hestia? [line break] identifying one god as another (e.g., Isis and Hecate)? [line break] identifying a mortal as a god (e.g., Alexander as Helios-Apollo)?” | – |
| “Military Revisions” | – | “Did you try… [paragraph break] allying a Greek city-state with the Persians? (try >MEDIZE) [line break] playing Athens as a land-based power?” | – |
Rule for amusing a victorious player:
now the current menu is the Table of Amusing Matter;
now the current menu title is "Things to Try";
carry out the displaying activity;
clear the screen.
And finally…
Section 18.40 is Starting the Virtual machine.
This is just a ‘hook’ for running a command at the very beginning, way before ‘when play begins’. It may even run before any windows are created, so don’t use it to print text!
Examples 387 is Blankness:
Include Basic Screen Effects by Emily Short.
When play begins:
say "take me home";
wait for any key;
say " yeah";
wait for any key;
say " yeah";
pause the game;
now the left hand status line is "[location]";
now the right hand status line is "[turn count]".
Before starting the virtual machine:
now the left hand status line is "";
now the right hand status line is "".
Paradise City is a room. The description of Paradise City is "The grass is green and the girls are pretty."
Whew! What a chapter! Four days worth of material, and I went from utter fear and terror to joy. I still don’t understand making new activities at all, but the sections on old activities have been so fruitful that I’ve restructured many parts of my games based on the inspiration I’ve gathered from this chapter. What fun!
Next chapter is Rulebooks, another thing I’ve been afraid of for a long time but much less frightening than ‘activities’.