The JACL Author's Guide
Description: Instructions on how to play interactive fiction.
Keywords: JACL,tutorial,programming,programmers,guide,manual,documention,instructions

# Playing Interactive Fiction

Interactive fiction involves the reader in a way that static stories do not. Rather than reading sequentially from beginning to end, you control the actions of the main character by typing commands in the form of simple English sentences. Before setting out on your adventure there are a few concepts that must be explained in order for you to interact successfully with the virtual world created by the author.

## Moving Around

The physical space that you will be exploring is divided up into discrete units called locations. Locations may be travelled between using the following commands:

Command | Direction
--- | ---
n | North
s | South
e | East
w | West
ne | Northeast
nw | Northwest
se | Southeast
sw | Southwest
u | Up
d | Down
in | In
out | Out

The description of each location will tell you the directions in which you can travel from it. Be aware, however, that some exits may only be available under certain circumstances such as while a door is open or a bridge lowered.

## Manipulating Objects

Within these locations you will find many objects that you can interact with. These objects may be referred to by as few or as many of their names as is required to uniquely identify it. For example, if the story informs you that "There is a silver key resting here." Then it may be referred to as either silver, key or silver key. If your reference is ambiguous, such as using key when there is both a silver and a gold key in the current location then you will be prompted to be more specific.

The next thing to learn about interactive fiction is the way in which you interact with these objects.

The basic sentence structures understood by the game are:

Command Structure | Example command
--- | ---
action | scream
action object | take book
action object preposition object | unlock door with key

An action does not necessarily have to be a single word. For instance, "examine rock through magnifying glass", an example of the last syntax, may also be expressed as "look at rock through magnifying glass". Following is a list of some of the other actions that can be used to interact with the objects you find:

turn | read | pull | push | eat | cut
lock | unlock | rub | attack | taste | drink
break | smell | listen | pour | move | light
play | blow | throw | wear | open | close
take | drop | insert | remove

Where an object is expected, the words it, them, him and her can be used to indicate the last appropriate object referred to in one of your commands. With some commands it is possible to supply more than one object. Multiple objects can be specified in a multitude of ways. The words all or everything will tell the interpreter that you wish to perform the action on all the objects in the appropriate scope. For example, with the command drop all, the interpreter will perform the drop action for every object you are currently carrying.

Any object reference can be qualified by using the word from. Although this can be used at any time, it is most useful in conjunction with all to construct commands such as take all from chest. This command will perform the take action for every object that is currrently inside the chest.

The word except can be used once per list of objects, with any object to the right of the word except being removed from list of objects to the left. An example of this is the command take all from chest except the gem. The important thing to be aware of with the word except is that any objects supplied after the word except are objects the action is not to be performed on. With this in mind you can see how the two commands below have very different results.

    >take sword and all from chest except gem
    >take all from chest except gem and sword

With the first command the sword will be taken, with the second command it will not. So in summary, any list of objects may use the word from many times, but except only once at most. Individual objects can be separated by the word and or a comma (,) while the word then or a period (.) is used to separate completely different commands. Below is a legal command that uses all of the forementioned functionality:

    >take sword, shield, all from chest and all from shelf except gem then go north

When playing interactive fiction, it is important to have a general feeling for how much can be achieved with a single command. A task such as defusing a bomb would generally not be performed by typing defuse bomb. The following is a sample transcript to give you a better feel for how a task such as this might be achieved:

    >examine bomb
    The bomb is about a foot square and has a small panel in its upper
    surface. The panel is currently closed.

    >listen to bomb
    The bomb is making an ominous ticking sound.

    >open panel
    You open the panel to reveal a red wire, a green wire, a blue wire,
    a clock and some dynamite.

    >i
    You are carrying a bomb manual, an insurance policy and some wire
    cutters.

    >read manual
    Leafing through the book you come to the page on diffusing. Seems
    straight forward enough, just cut the blue wire then the red one.

    >cut blue wire with cutters
    Reaching carefully in to the bomb's casing you cut the blue wire. So
    far so good.

    >cut red wire with cutters
    Holding your breath you snip the red wire.

    >listen to bomb
    The bomb, thankfully, is now silent.

As you can see, each task you wish to achieve must be broken down into its component actions.

## Interacting with Characters

During the course of the story you may encounter other computer controlled characters. These characters may be interacted with using the following commands:

| talk to character
| give object to character
| show object to character
| ask character for object
| ask character about object
| tell character about object

## Meta Commands

There are also some special commands for interacting with the JACL interpreter rather than the game world it is currently running:

Command | Action
--- | ---
verbose | Always describe locations when visited.
brief | Only describe locations when being visited for the first time.
restart | Restart the game from the beginning.
script | Start recording a complete transcript of your game session.
unscript | Stop recording a started transcript.
score | Display your current score.
look | Display the description for the current location.
save | Save the current game state.
restore | Restore a saved game state.
i | Display a horizontal list of possessions.
inv | Display a vertical list of possessions.
oops NewWord | Replace the erroneous word in the last command with the supplied new word.
undo | Take back the last command issued.
again | Repeat the last command issued.
info | Display interpreter version information.
about | Display game version information.

You are now ready to embark on your first adventure into the world of interactive fiction. Remember to make a map as you go and read everything carefully as vital clues may be hidden in the descriptions of the locations and objects you come across. Examining every object you can refer to is a good idea, as is saving your position often. Well, good luck, and above all have fun!

Back to Contents