version 5 by Aaron Reed
Chapter: Gotchas and Snafus
*Glulx probably necessary*. Other than for shorter games, Intelligent Hinting might require the use of Glulx rather than z-code, as the objects, tables and lists it uses quickly eat up the limited space in a z5 or z8 story. "Adventure," not that huge a game by today's standards, is large enough to require Glulx when compiled with Intelligent Hinting.
*"Something other than" clauses*. If any rules like "Instead of doing something other than opening the door" are defined, code will need to be rewritten to add "or solving", or the "solve" action will be blocked as well. ("Solve" can't be an action out of world like "suggest", since then any actions it generates are in turn out of world, and no time would pass or rules would fire upon their execution.)
*Puzzles with multiple solutions*. If there are multiple ways to solve a single puzzle, either one or all of them can be encoded as puzzle and task objects. Only one is strictly necessary, but adding both makes for more intelligent hints if the player is working on the other solution. If multiple solutions are used, ensure that both define each other as complete when either is solved.
*Puzzles with uncertain timing*. If there are random events that aren't predictable (basically anything that would prevent a printed walkthrough of commands from working 100% of the time), a reversible task can be created to deal with the situation at the start of the earliest puzzle which that situation could occur in. The definition of the task should specify that it is not complete whenever the situation arises. (For an example, see "Killing-A-Dwarf" in Adventure, which is triggered whenever a dwarf appears; it's placed early on in "Winning-The-Game," as it can occur at almost any time.)
*Puzzles with uncertain venue*. The venue field is optional in a task. If omitted, the game will try to move to the location of any people, scenery or fixed-in-place objects mentioned in the action-sequence. If none are present, it will just perform the actions wherever the player happens to be. If a specific but variable location is required, code could always manually change the value of "venue" for that task during play.
*Light and dark*. Since the world model has no way of knowing whether something is capable of being lit-- just whether it currently emits light or not-- Intelligent Hinting does not attempt to automatically find portable light sources to take into dark areas. Include the finding and activating of any such items in puzzle definitions, if necessary.
*Non-standard input*. Intelligent Hinting can not currently deal with any non-standard input, such as conversation menus or "if the player consents" questions. The player can still answer them, but the extension can not do it for them.
*Compatibility with other auto-action extensions*. Intelligent Hinting is compatible with Implicit Actions by Eric Eve, or Locksmith by Emily Short, both of which automatically try to unlock and open things for the player. The "suggest" commands will not make use of this functionality, but the player is still free to.
*But isn't this cheating?* The astute will note that a lazy player could just continually type "solve" until the game finished itself. The more astute will note that this is no more a problem than the fact that the reader of a novel is free to flip forward through the pages at any time, or for crossword puzzlers to have the answers at the back of the newspaper. The even more astute will realize that a skein full of "solve" commands provides an auto-updating, adaptable, and maintenance-free method of testing whether a game is winnable.