8. Behind the Scenes

by Garry Francis of Sydney, Australia


Issue 16

Jul/Aug 1985

Next Article >>

<< Prev Article



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.


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!