![]() | Chapter 22: Releasing | ![]() ![]() |
22.14. Walkthrough solutions |
Since the earliest days of IF, players have distributed solutions to well-known games, to help out other players at their wits' ends. The commonest format for these is a list of commands to type, sometimes with notes in the margin, and such a solution is called a "walkthrough", since it walks a player through the game.
Few authors publish solutions of their own works, but many supply their testers with solutions, especially towards the end of testing, or submit a solution as part of a competition entry. To help with this, Inform can generate such a walkthrough solution automatically:
Release along with a solution.
Once again, Inform requires us to create a Materials folder if we are going to do this. For instance, if we have a game called "Memoirs of India", then we must have created a folder called "Memoirs of India Materials" alongside it. Inform will then place a file called "solution.txt" inside this folder. The solution might look like so (although probably much longer):
Solution to "Memoirs of India" by Graham Nelson
Choice:
INVENTORY -> go to branch (1)
EAST -> go to branch (2)
Branch (1)
DROP MANUSCRIPT
SOUTH
Branch (2)
INVENTORY ... Always a good idea
GIVE MANUSCRIPT TO THOMAS
Inform does not, of course, know how to solve IF all by itself, but derives the solution from the project's Skein. Since the Skein will have been used in testing the game, it will very likely contain a perfect solution - or several different ones, taking the game to a variety of possible endings. In the example above, there are two possible winning lines, which diverge right from the first move. (There can be further divergences: for instance, if branch (2) splits, it will split into branches called (2.1), (2.2), (2.3) and so on.)
But the Skein will also contain plenty of unwanted diversions, so Inform does not rewrite the entire Skein as a solution. Instead, it looks for knots in the Skein which have been annotated. Any knot whose annotation begins "***" (three asterisks) is considered to be a final, winning move. (It is probably a good idea to lock such a knot once it has been annotated thus, too.) We can mark any number of knots "***" since, after all, we can declare any number of lines of play as possible solutions. Inform then constructs the solution out of all lines of play in the Skein which lead to "***" endings, and ignores other threads.
Annotations other than "***" in the Skein are turned automatically into comments in the solution text. For instance, the knot for the INVENTORY command in the second branch above was annotated "Always a good idea", and this was transcribed into the solution. (If an ending knot is annotated with, say, "*** Happy ending!" then the "***" marks it as an ending, and "Happy ending!" is added as an annotation to that ending.)
Previous | Contents | Next |