§11.3. Helping and Hinting
IF is difficult to play: often harder than the writer ever suspects. Players are held up by what is "obvious", and they stumble into unforeseen combinations, or spend inordinate amounts of time working on the "wrong" problems. Too much of this and they give up, or post questions on online forums. Against this, many IF authors like to include in-game hints.
There are many approaches, which differ on two main issues.
First: do we spontaneously offer help to the player? The difficulty here is detecting the player's need: Y ask Y? tries to spot aimlessness, while Solitude has a novice mode where it is reasonable to assume that help is almost always needed. On the other hand, suppose we require that the initiative come from the player. Will a novice know to type HELP? Query shows how to redirect any attempt to ask a direct question into a HELP request. At the other end of the scale, wearily experienced players may type HELP all the time, out of habit, cheating themselves of the fun of frustration: if so, Real Adventurers Need No Help provides the nicotine patch against this addiction.
Second: how do we decide what help is needed? Normally the player only types HELP, which is unspecific. The simplest approach offers a menu, diagnosing the player's problem by obliging him to make choices: see Food Network Interactive. Listing all the possible problems in the game may give away too much, though, since players may not have reached the puzzles in question yet; so some authors prefer to create menus that adapt to the current state of the game (commonly called "adaptive hints"). None of the examples demonstrate this variation because it can be a bit long-winded to set up, but several adaptive hint extensions are available for Inform.
Failing this, we can also try to parse commands like HELP ABOUT MICRODOT, as in Ish. Trieste takes a similar tack, except that instead of offering hints about puzzles, it offers help on game features (such as how to save), and lists all the available topics if the player types simply HELP.
Finally, and perhaps most stylishly, we can try to deduce what the player is stuck on from his immediate circumstances and from what is not yet solved: this needs a powerful adaptive hints system like the one in The Unexamined Life.
See Getting Started with Conversation for a way to redirect a player using the wrong conversation commands
See Footnotes for another medium by which hints could perhaps be transmitted
| ExampleY ask Y? Noticing when the player seems to be at a loss, and recommending the use of hints.
|
|
"Ish."
Ichiro's Dubious Sushi Hut is a room. "Despite the allure of the dusty plastic sushi models in the window, you're beginning to have second thoughts about the selection of this particular restaurant for your rendezvous with Agent Fowler. There are no other patrons, for one thing. Afternoon sunlight filters lazily through the window and illuminates a number of empty glass-topped tables, at each of which is a chopstick dispenser (in form of cute ceramic cat) and a pitcher of soy sauce (sticky).
The sushi bar itself is what gives the most pause, however. Behind it sits an angry-looking Japanese woman, aggressively eating a Quarter Pounder with Cheese."
We can, when necessary, accept any text at all as a token:
Understand "help [text]" or "help about [text]" as getting help about. Understand the commands "instructions" or "hint" or "hints" or "menu" or "info" or "about" as "help".
Getting help about is an action applying to one topic.
After that, we can use "the topic understood" to refer to the text we read:
Carry out getting help about:
if the topic understood is a topic listed in the Table of Standard Help:
say "[explanation entry][paragraph break]";
otherwise:
say "You're out of ideas."
Table of Standard Help
topic | title | summary | explanation |
"sushi" | "sushi" | "Really it's just vinegary rice" | "Popular misconception says that sushi inevitably entails raw fish, but it is in fact just rice with rice vinegar on it. It's just that the really good kinds have raw fish in." |
"cucumber roll" or "cucumber" | "Cucumber roll" | "Sushi for people who are afraid of sushi" | "It is just rice and slivers of cucumber in the middle, and as long as you don't go too crazy with the wasabi, all should be well." |
"california roll" or "california" | "California roll" | "Travesty of the sushi concept" | "It's. Fake. Crab." |
"monkfish liver" | "monkfish liver" | "Expert eaters only" | "The odds of Ichiro's having this unusual delicacy is near zero." |
"microdot" | "microdot" | "What you came here to deliver" | "There'll be time enough for that later. If Fowler ever turns up. Where is she, anyway?" |
Since the player may not know what all the help options are, we might as well let him get an overview, as well.
Understand "help" as summoning help. Summoning help is an action applying to nothing.
Carry out summoning help:
say "Help is available about the following topics. Typing HELP followed by the name of a topic will give further information.[paragraph break]";
repeat through the Table of Standard Help:
say " [title entry]: [summary entry][line break]".
Test me with "help / help about microdot / help cucumber / help california roll".
| ExampleIsh. A (very) simple HELP command, using tokens to accept and interpret the player's text whatever it might be.
|
"Ish."
Ichiro's Dubious Sushi Hut is a room. "Despite the allure of the dusty plastic sushi models in the window, you're beginning to have second thoughts about the selection of this particular restaurant for your rendezvous with Agent Fowler. There are no other patrons, for one thing. Afternoon sunlight filters lazily through the window and illuminates a number of empty glass-topped tables, at each of which is a chopstick dispenser (in form of cute ceramic cat) and a pitcher of soy sauce (sticky).
The sushi bar itself is what gives the most pause, however. Behind it sits an angry-looking Japanese woman, aggressively eating a Quarter Pounder with Cheese."
We can, when necessary, accept any text at all as a token:
Understand "help [text]" or "help about [text]" as getting help about. Understand the commands "instructions" or "hint" or "hints" or "menu" or "info" or "about" as "help".
Getting help about is an action applying to one topic.
After that, we can use "the topic understood" to refer to the text we read:
Carry out getting help about:
if the topic understood is a topic listed in the Table of Standard Help:
say "[explanation entry][paragraph break]";
otherwise:
say "You're out of ideas."
Table of Standard Help
topic | title | summary | explanation |
"sushi" | "sushi" | "Really it's just vinegary rice" | "Popular misconception says that sushi inevitably entails raw fish, but it is in fact just rice with rice vinegar on it. It's just that the really good kinds have raw fish in." |
"cucumber roll" or "cucumber" | "Cucumber roll" | "Sushi for people who are afraid of sushi" | "It is just rice and slivers of cucumber in the middle, and as long as you don't go too crazy with the wasabi, all should be well." |
"california roll" or "california" | "California roll" | "Travesty of the sushi concept" | "It's. Fake. Crab." |
"monkfish liver" | "monkfish liver" | "Expert eaters only" | "The odds of Ichiro's having this unusual delicacy is near zero." |
"microdot" | "microdot" | "What you came here to deliver" | "There'll be time enough for that later. If Fowler ever turns up. Where is she, anyway?" |
Since the player may not know what all the help options are, we might as well let him get an overview, as well.
Understand "help" as summoning help. Summoning help is an action applying to nothing.
Carry out summoning help:
say "Help is available about the following topics. Typing HELP followed by the name of a topic will give further information.[paragraph break]";
repeat through the Table of Standard Help:
say " [title entry]: [summary entry][line break]".
Test me with "help / help about microdot / help cucumber / help california roll".
|
| ExampleQuery Catching all questions that begin with WHO, WHAT, WHERE, and similar question words, and responding with the instruction to use commands, instead.
|
|
|  ExampleTrieste Table amendment to adjust HELP commands provided for the player.
|
|
|  ExampleSolitude Novice mode that prefaces every prompt with a list of possible commands the player could try, and highlights every important word used, to alert players to interactive items in the scenery.
|
|