When I play an Adventure, I judge it according to
the time frame in which it was originally written. For example, when
I wrote about Scott Adams' Adventureland, I described it in
superlative terms because that's what it deserved when you consider
that it was written in 1978.
However, times change and the old Scott Adams series
seem really crude compared to the likes of Infocom. If anyone
brought out a Scott Adams quality Adventure today, it would surely
be a flop ... unless of course your name happens to be Scott Adams!
The only reason I mention this is that I recently
played The Sorcerer of Claymorgue Castle and boy, was I ever
disappointed! I couldn't understand why all the reviewers had raved
over it. Sure it had nice graphics, but the Adventure itself was
downright lousy. It never told you the full story, the spelling was
atrocious, the puzzles were illogical and the solutions were unfair.
And from what I've read, The Hulk is similarly afflicted. Why?
I think there are two simple reasons. Firstly, Scott
Adams boasts that he never plays other people's Adventures in order
to avoid any subliminal influence. What rot! An Adventure author
should keep track of all new games in order that his own creations
will be state-of-the-art. Apart from which, Adventures of Infocom's
quality are the greatest inspiration that anyone could hope for.
Secondly, he's still using the same antiquated Adventure editor and
interpreter that he's been using since Adventureland. Come on Scott
I'm a great fan of yours, but this is 1985, not 1978!
Now that I've got that off my chest, let's turn to
this month's topic ... how Scott Adams writes an Adventure! Despite
what I've said above, I thought I'd cover this topic for two
reasons. Firstly, even though it's of general interest, it is
especially useful to all those budding Adventure writers who are
currently dabbling with Adventure Master, Adventure Writer or
Adventure Construction Set. Secondly, an appreciation of the inner
workings of an Adventure makes the game make a little more sense and
hence, easier to play.
How Scott
Adams writes Adventures
Scott Adams says that he begins an Adventure by
picking a subject such as Dracula or the Old West. He decides
whether to make it treasure oriented or mission oriented, then
builds the landscape. This will include a skeleton of the problems
and obstacles to overcome. As he dots the landscape with objects,
further problems present themselves and are incorporated into the
structure. At this point, he uses a program called an Adventure
editor to build the Adventure database. When the database is
complete, it is merged with another program called an Adventure
interpreter.
By this time, the Adventure is probably 50 percent
of its final size. It is play tested by Scott and others who provide
him with numerous ideas on how to fill the gaps in the structure.
Using these ideas, the database is modified and retested until the
Adventure is finally complete. This whole process takes anything
from one week (for Mystery Fun House) to one year (for
Adventureland), but one month is the average. The final product that
you buy consists of the interpreter and the database.
Structure
of the database
The database consists of five tables – vocabulary,
objects, rooms, messages and commands. The vocabulary table stores
the first three letters (or four in the later Adventures) of every
legal word that the player can use in the Adventure. This table is
divided into verbs and nouns stored in ASCII format. If any word is
preceded by an asterisk, it means that it is a synonym for the
previous word. When the interpreter runs, it scans the verbs to find
a match for the player's first word. If a match is found, the
player's word is converted to a number representing the offset into
the verb table and the process is repeated for the noun. If no match
is found for either the verb or the noun, then an error message is
printed.
The objects table contains descriptions of each of
the objects as well as the room number where the object resides. The
description is in ASCII, but is optionally followed by the take/drop
control. The latter is not relevant to our brief discussion, but may
be identified by a 3 or 4 character abbreviation of the object
description enclosed by slashes. If the object's room number is
zero, then it is in limbo. If the object's room number is minus one,
then the player is carrying it.
Each location in an Adventure is known as a room and
is given a unique number greater than zero (Remember that room zero
is used for objects not currently in play. The player can never get
to this room.) The room table contains descriptions and directions
for each of the rooms. The descriptions are again in ASCII. If a
description is preceded by an asterisk, the description is assumed
to be complete. For example, '*I'm under a bed' will be printed out
as 'I'm under a bed'. If the description is not preceded by an
asterisk, then the description will automatically be preceded by
'I'm in a' when printed. For example, 'forest' will be printed as
'I'm in a forest'.
There are six possible directions from every room
(i.e. north, south, east, west, up and down), but not all of these
will necessarily be valid for a particular room. There is one entry
in the table corresponding to each of the possible exits from each
room. If an entry is zero, it means there is no exit in that
direction. If an entry is non-zero, it indicates the room number
that the player will end up in if he goes in that direction.
The message table contains all the Adventure's
messages and these are again in ASCII. Each message is given a
number in the range 1 to 51 or 102 to 149.
The command table is the crux of the Adventure. This
contains one entry for each of the auto commands (explained in a
moment) and each of the valid commands that a player may use. Each
entry consists of a verb number, a noun number, a logic section and
an action section. Remember from above that the player's input is
converted into a verb number and a noun number. When this is
complete, the player phase begins, whereby the command table is
searched for a match on the verb/noun combination. If a match is
found, the logic section is checked.
The logic section consists of 0 to 5 conditions. If
these are all satisfied, the actions in the action section are
executed. If they are not satisfied, then the search continues for
another match on the verb/noun combination.
Once the search is exhausted or all necessary
actions have been carried out, the auto phase is executed. This is
the background processing. It is carried out the same way as the
player phase, except that the verb is zero to denote an auto command
and the noun is a number from 1 to 100. The noun number represents
the percentage chance of an action being carried out if the logic
section of the auto command is satisfied. For example, if the logic
section is satisfied and the noun number is 20, then there is a 20%
chance of the action being carried out. If the logic section is
satisfied and the noun number is 100, then there is a 100% chance of
the action being carried out.
The auto commands are quite an essential feature of
the Scott Adams adventures. They allow all the seemingly random
events to occur – like the tide going in and out in Pirate Adventure
or the bell ringing at various intervals in Ghost Town or the bear
deciding to eat you in Savage Island Part 1. Yet at the same time,
flaws in their logic allow for some extremely frustrating moments.
For example, it is feasible (though unlikely) that you could play
Ghost Town for a thousand turns without the piano playing ghost ever
making an appearance.
The one Adventure where bad logic in the auto
commands is particularly evident is Savage Island Part 1. Even if
you know the game inside out, there's a good chance that you'll be
killed through no fault of your own. When I first played the game, I
was killed by the bear immediately upon entering the volcano. This
happened three times in a row with absolutely no opportunity to save
myself. Similarly, I knew I needed a palm log, but I could wait
anywhere from 1 to 50 moves for it to appear. And I had recurring
nightmares about the raft that randomly took me everywhere except
where I wanted to go until the raft would eventually fall apart.
Very annoying.
Anything
else?
In addition to the five tables, the interpreter sets
up a number of control flags. There are 15 special flags which may
be set or cleared by the various actions. Initially, they are all
clear. There is also a 'dark flag' which indicates whether or not it
is too dark to see. And finally, there is a counter which tells how
many turns are left before the light source goes out. Incidentally,
the light source is always object number 9.
Hints
I didn't have enough time to prepare any hints this
month, so I'll try to make up for it in the next issue – but no
promises. I also have to write an Adventure column and a Question
and Answer column for my own users' group, as well as run the
Software Exchange. Other recent events included participation in the
Australian Personal Computer Show and lecturing teachers in a
country area on how to use the Atari. I barely have time to scratch
myself anymore!
top