home *** CD-ROM | disk | FTP | other *** search
Text File | 1993-06-13 | 91.8 KB | 2,380 lines |
-
-
-
-
- PICTURE [Picture of Small Building]
- PIX [Sky pix] [Tree pix]
- END_ROOM
-
- By adding the [Sky pix] and [Tree pix] labels to the PIX line for the
- room, we will cause the SKY and the TREE to be displayed as pictures
- whenever the player is in this room -- if the player gives the proper
- VIEW command.
-
-
- META-COMMANDS AND PICTURES
-
- Most pictures or animations will be seen when the player gives a command
- to VIEW something. However, there will be times in the game when the
- game designer will want to initiate the display a picture or animation.
- For example, when the player wins the game (or loses) you may want to
- display as special picture to mark the occasion. These occasions will
- be handled by using meta-commands to display the pictures or animations.
-
- The game designer initiates these picture displays by using the
- ShowPicture or IfYShowPicture meta-command tokens. The following are
- two examples of how pictures might be shown by using meta-commands:
-
- #COMMENT ------- random "cameo" appearances in cave
-
- COMMAND ANY
- Chance 3
- AtLocationGT [hall of mists]
- AtLocationLT [cylindrical chamber] ;most of cave area
- FlagOFF [Dwarf here]
- PrintMessage [IRS men appear]
- WaitForReturn ; Show picture when player hits RETURN
- ShowPicture [Picture of IRS men]
- PrintMessage [IRS men disappear]
- END_MESSAGE
-
- MESSAGE [IRS men appear]
- Seven men, wearing gray business suits and carrying briefcases,
- suddenly appear out of the shadows and surround you. They identify
- themselves as representatives of the Internal Revenue Service!
- With absolutely no show of emotion, they report: "We understand
- that you have been accumulating some un-declared income. We wish
- to warn you that we are watching you closely as you play this game,
- and all of this income must be properly and totally accounted for
- on your next tax return. If it isn't, you will go to jail or
- worse!"
- END_MESSAGE
-
- MESSAGE [IRS men disappear]
- They then disappear in a >POOF< of red, white and blue smoke.
- END_MESSAGE
-
-
- 132
-
-
-
-
- COMMAND ANY
- Chance 3
- AtLocationGT [hall of mists]
- AtLocationLT [cylindrical chamber] ;most of cave area
- FlagOFF [Dwarf here]
- PrintMessage [Mining Robot appears]
- IfYShowPicture [Picture of Mining Robot] ; Asks if player wants to
- ; see picture -- and display it only if player responds with a YES
- PrintMessage [Mining Robot disappears]
- END_MESSAGE
-
- MESSAGE [Mining Robot appears]
- From somewhere nearby, there suddenly comes a sound of something
- mechanical in motion. As you turn toward it, an incredible figure
- rolls into the light of your lamp. It stands about five feet high
- on a wheeled metal pedestal, and has a globular light-filled head,
- accordion-pleated metal arms, and a cylindrical body the size
- of an oil drum with a plastic panel on the front. It rolls past
- without taking any notice of you, all the while waving its arms,
- flashing a light behind its front panel and bellowing "WARNING!
- WARNING! DANGER!" at the top of its not inconsiderable voice.
- END_MESSAGE
-
- MESSAGE [Mining Robot disappears]
- It rolls on out of sight, and moments later there is an immense
- flash of light and a tremendous blast of sparks and smoke. When
- the air clears, you find that no trace remains of the strange
- apparition.
- END_MESSAGE
-
- Remember -- these pictures or animations will be displayed until a key
- is pressed and then the display will return to the normal AGT text-based
- screen -- ready for the next game command from the player.
-
- IMPORTANT NOTE: Both of the meta-command picture examples above assume
- that the picture being referenced is one of the up-to-250 pictures or
- animations defined in the PICTURE list -- i.e., [Picture of IRS men] and
- [Picture of Mining Robot] were both defined by something similar to:
-
- PICTURES
- [Intro Picture] INTRO
- [First Jungle Scene] JUNGLE1
- ...
- [Picture of IRS men] IRSGUYS
- [Picture of Mining Robot] M-ROBOT
- . . .
- [Victory Picture] VICTORY
- END_PICTURES
-
- If [Picture of IRS men] and [Picture of Mining Robot] were defines as
- some of the up-to-30 ROOM_PIX, you would have to use different meta-
- command tokens. Specifically, rather than ...
-
- 133
-
-
-
-
- ShowPicture [Picture of IRS men]
- and
- IfYShowPicture [Picture of Mining Robot]
-
- you would have to use:
-
- ShowROOM_PIX [Picture of IRS men]
-
- and
-
- IfYShowROOM_PIX [Picture of Mining Robot]
-
- Obviously, if the proper picture/animation can not be found on the disk
- and/or the player's screen is not capable of displaying the resolution
- of the picture or animation, then these meta-command tokens will have no
- effect.
-
- Another meta-command token that you will find useful is:
-
- Room_PixHere [Tree pix]
-
- which will check if the [Tree pix] picture may be viewed in the current
- room.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 134
-
-
-
-
- PART 7: OPTIONAL MUSIC AND SOUND EFFECTS
-
-
- The Master's Edition allows you to play music or have other sound
- effects (like a telephone ringing) in the background of your AGT
- Adventure game. In the background means that once you start the sound
- effect or music playing, you can continue on with the rest of your game
- and the sound or music keeps playing without any additional effort on
- your part until the song or sound is finished. You can use this to
- provide special sound effects in your games or just to add a cute
- indication that your program is still doing something -- even when it is
- reacting to or waiting for the player's various commands. You can turn
- songs on and off using meta-commands and change the music to fit the
- mood of the current game situation -- e.g., eerie, spooky music for
- exploring a haunted house, or calliope music for an adventure set at a
- circus.
-
- The Master's Edition can use (1) music files from Neil Rubenking's
- PianoMan program version 4.0, or (2) music and sound effects that are in
- the form required by BASIC's PLAY statements or (3) you can create your
- own sound effects using a Turbo Pascal source program (provided as part
- of the Master's Edition "package"). All of AGT's sound effect or music
- files must have a .MUC file extension. You can have up to 50 .MUC files
- for each AGT game.
-
- In addition, Version 1.5 of the Master's Edition can use SoundBlaster
- and Adlib compatible sound/music files. Just how, will be described a
- little later in the manual.
-
-
- SOUND CONVERSION UTILITIES
-
- To help convert to AGT-useable sound/music files, several conversion
- programs are provided as part of The Master's Edition package.
- CNVT_MUZ.EXE will convert any PianoMan 4.0 (.MUZ) file into an AGT .MUC
- file. CONVT_PLY.EXE will convert any BASIC PLAY music strings (in ASCII
- or text) into an AGT .MUC file. See a couple of the .PLY files for
- examples of the format CNVT_PLY is expecting.
-
- To create sound effects like water dripping or telephones ringing, you
- should use the AGTSOUND.EXE program. The Turbo Pascal source code to
- this program (AGTSOUND.PAS) is also provided so you can create
- customized sounds.
-
- Each of these conversion/creation programs produces a .MUC file that AGT
- can play/sound in the background.
-
- These MUC. files use the IBM PC's built-in speaker. No special sound
- board is required.
-
- Blatant Plug: Neil's PianoMan is an excellent shareware product and is
- available from many bulletin boards on in the IBM Software forum on
-
- 135
-
-
-
-
- Compuserve. It allows you to play your computer's keyboard like a piano
- keyboard and record and edit music entered in real time or from sheet
- music. There are also many files of songs already entered that you can
- use. One sample archive for instance contains over 50 sample songs.
- PianoMan is described in more detail in the section entitled RECOMMENDED
- SHAREWARE UTILITIES.
-
-
- ADLIB AND SOUNDBLASTER SUPPORT
-
- With version 1.5 of the Master's Edition, we have added the capability
- to use AdLib or SoundBlaster (or compatible) sound cards -- if one is
- available on the computer where the game is being played. Using these
- sound cards, your game can now have sounds ranging from a full symphony
- to speech. In addition to its own music/sound format .MUC files, the
- Master's Edition can now play .CMF, .MID, or .VOC files.
-
-
- USING SOUND AND MUSIC
-
- The song/sound files are indicated in your AGT source files by something
- similar to the following:
-
- SOUNDS
- [Intro Music] INTRO <-- actual disk file must be named INTRO.MUC
- [Jungle Drums] TOM-TOMS <-- actual file must be named TOM-TOMS.MUC
- [Death Dirge] DEATH <-- actual file must be named DEATH.MUC
- . . .
- [Victory March] VICTORY <-- actual file must be named VICTORY.MUC
- END_SOUNDS
-
- There can be up to 50 song/sound files in each AGT game.
-
- Playing these songs and sound effects must be controlled via
- meta-commands. The following examples demonstrate how these
- meta-commands should be used:
-
- PlaySong [Jungle Drums] <-- This plays the song/sound file
- TOM-TOMS.MUC once. The standard
- mode is to play the song until
- it is finished and then to stop.
-
- RepeatSong [Jungle Drums] <-- This plays the song/sound file
- TOM-TOMS.MUC repeatedly. When
- the song is finished it would
- automatically be started again.
-
- EndRepeatSong <-- This causes the current
- song/sound to stop when it is
- finished, i.e., the repeating
- feature would be turned off.
-
-
- 136
-
-
-
-
- PlayRandom {num1} {num2} <-- This plays a random song/sound
- file between num1 and num2 once.
- The song/sound will be played
- until it is finished and then it
- will stop.
-
- StopSong <-- This causes the current
- song/sound to stop immediately.
- Once the StopSong command has
- been given, the song can not be
- resumed without giving a new
- PlaySong or RepeatSong
- meta-command. If you wish to
- change songs/sounds before the
- current sound/song is finished,
- you must first use a StopSong
- token before starting the new
- sound/song with either a
- StartSong or RepeatSong token.
-
- SuspendSong <-- This causes the current
- song/sound to stop immediately
- -- but it can be resumed at the
- current spot at a later time.
-
- ResumeSong <-- This resumes playing a song that
- had been suspended by a
- SuspendSong meta-command at the
- spot where it had been
- suspended.
-
- SongPlaying <-- This is a conditional
- meta-command and will return a
- TRUE or FALSE depending upon
- whether there is a song playing
- at the current moment.
-
- There is a utility provided called AGT_PLAY.EXE which allows you to try
- out your music and sound effects before you incorporate them into the
- actual AGT game. AGT_PLAY can be used to test/play .MUC, .CMF, .MID,
- and .VOC music/sound files. Try it to get a feel for what is possible.
-
-
- IMPORTANT NOTE ABOUT SOUND AND MUSIC
-
- There are a couple of potential limitations about using .MUC sound that
- you need to understand. NOTE: The following limitations/discussion
- do/does not apply to Adlib or SoundBlaster sound cards.
-
- First, sounds and/or songs within AGT are played in the background. The
- way in which this is done is to check and potentially change the sound
- parameters every time the computer's internal clock "ticks" -- roughly
-
- 137
-
-
-
-
- 18 times a second. The fact that AGT can only adjust the sound every
- 1/18th of a second means that some sounds can not be played successfully
- -- specifically, it is impossible to play sounds that change very
- quickly or have tones that last a very short time. An obvious example
- of this problem is music that has multiple voices where each voice gets
- a very short period of time for its note before switching to the next
- voice. Good examples of this are some of the songs from PIANOMAN that
- are written for four voice harmony. These songs are almost impossible
- for AGT to play successfully. Other sounds that AGT will have problems
- with are sound effects which are made up of a number tones of very short
- duration -- such as some whistles, sirens, and like sounds. The best
- way to test whether a sound/song can be used in AGT is to play it using
- PLAY_MUC. If you try to play it with PLAY_MUC and it works, then it
- will work in AGT. Conversely, if it does not work (i.e., you get no
- sound at all or it doesn't sound right), then it won't work correctly in
- AGT.
-
- The second limitation will only apply to some computers, principally
- older machines with "slow" hard disks. Again, the clock "tick rate" of
- once every 1/18th of a second may not allow you to make all of the
- sound/song changes that a sound file may require when you are also
- reading the descriptions off the disk at the same time. Some computers
- will complete a disk read (or write) and not interrupt the disk access
- just because of a clock tick every 1/18th of a second. If your disk is
- one of these, the sounds may be distorted by slow downs while the disk
- is being accessed. The best solution to this problem is to put your
- game (and all its associated files) on a ram disk. If you don't have a
- ram disk, you may wish to turn the SOUND OFF.
-
- The last limitation with AGT's sound/music capabilities is that the
- number of separate notes is limited to about 5000. The best way to
- check if a particular song or sound has less than 5000 notes is to use
- the program PLAY_MUC and check the size of the file. IF PLAY_MUC shows
- the song/sound files is 5000 bytes or less, then you should not have any
- problems in getting it to work properly within an AGT game.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 138
-
-
-
-
- PART 8: OTHER NEW FEATURES UNIQUE TO MASTER'S EDITION
-
-
- CUSTOMIZEABLE "DEFAULT" MESSAGES
-
- At long last, you can "die" in some other fashion than disappearing in a
- cloud of orange smoke. All (well -- almost all) of the messages in the
- Master's Edition can be customized by the game designer.
-
- The Master's Edition of AGT gets its standard "default" messages by
- reading a file of such standard messages. These files will have a .STD
- extension. When the Master's Edition MCOMPILE program is started it
- will first look for a .STD file for the specific game being played,
- i.e., GAMENAME.STD. If that file is not found on the current directory,
- MCOMPILE will look for the "default" .STD file which is AGT.STD. If
- AGT.STD is also not on the current directory, MRUN will quit with an
- error message.
-
- The Master's Edition package has two .STD file for you to play with:
- AGT.STD and IRUN.STD. AGT.STD is the "standard" set of AGT messages
- that use to be "hard-coded" into the MRUN program. IRUN.STD is a set of
- messages that change the player's perspective to the "first-person" from
- the normal perspective of "third-person," i.e., all of the messages are
- changed to use "I" rather than "You" -- such as, "I shoot the gun at the
- bandit." IRUN.STD is the set of messages that Pat Farley developed for
- CRIME TO THE 9TH POWER, the first place winning game in the 1990 AGT
- adventure game writing contest.
-
- There must be exactly 185 standard messages numbered STANDARD 1 to
- STANDARD 185 in a .STD file (either GAMENAME.STD, AGT.STD or IRUN.STD).
- You may edit these messages as you see fit. However, you must keep them
- in the same order and you must keep their meaning consistent with the
- current meaning. For example, below is STANDARD 38 which is the
- standard message that will be printed whenever the player tries to WEAR
- something that weights over 100 pounds:
-
- STANDARD 38
- It's too heavy! You aren't strong enough to carry or wear the
- $noun$!
- END_STANDARD
-
- You can feel free to change this message in any way you wish -- but,
- however you change STANDARD 38 -- it will still be printed if and only
- if the player tries to WEAR a noun weighing over 100 pounds.
-
- There are several "string variables" that may be used freely in messages
- -- specifically:
-
- $verb$ is the current VERB
- $noun$ is the current NOUN
- $prep$ is the current PREPOSITION
- $object$ is the current OBJECT
-
- 139
-
-
-
-
- $adjective$ is the current NOUN's adjective
- $n_pro$ is the NOUN's pronoun, i.e., "it" "they" "he" or "she"
- $o_pro$ is the OBJECT's pronoun, i.e., "it" "they" "he" or "she"
- $n_indir$ is the NOUN's indirect pronoun - "it" "them" "him" or
- "her"
- $o_indir$ is the OBJECT's indirect pronoun: "it" "them" "him" or
- "her"
- $n_is$ is either "is" or "are" based upon NOUN being singular or
- plural
- $o_is$ is either "is" or "are" based upon OBJECT being singular or
- plural
- $c_name$ is the NAME of the HOSTILE creature that is attacking the
- player
-
- Any of the above string variables can be capitalized by making the
- appropriate letters between the $'s upper case. For example $Noun$ will
- capitalize the first letter of the NOUN's name, or $OBJECT$ will display
- the OBJECT's name in all caps.
-
-
- CUSTOMIZEABLE USER INTERFACE
-
- The Master's Edition of AGT allows the user to customize the manner in
- which the game's general interface is defined and to specify the game's
- overall "look-and-feel." The user may define color schemes, status line
- options, command input method, size and "layout" of the screen, etc.
- Once the player has a set of "look-and-feel" options he or she likes,
- these options may be saved as the standard defaults for this game and
- any other AGT game the user plays.
-
- The "look-and-feel" options are accessed by hitting the ESC key during
- the game.
-
- If you create an user interface that you like, it may be saved by
- selecting the item on the options menu. This creates a file with the
- extension GAMENAME.OPT which has your options for this game.
- Thereafter, whenever you start the game, the fiel GAMENAME.OPT file will
- be read and your saved "look-and-feel" options will automatically be
- used.
-
-
- "FREEZING" THE USER INTERFACE
-
- If you have saved a particular set of "look-and-feel" options (in a file
- named GAMENAME,OPT) for a game, you can "freeze" those options, so that
- whoever is playing the game can not change the "look-and-feel." This is
- done by putting the word FREEZE on a separate line in the game's .AGT
- before the game is compiled. As an example, the game HOLMES forces the
- player to always use a MENU-DRIVEN option for the game.
-
-
-
-
- 140
-
-
-
-
- ADAPTING YOUR GAME FOR THE "MENU-DRIVEN" PLAYER INPUT
-
- One of the options available in the Master's Edition is a unique
- "menu-driven" player input that allows the player to enter game commands
- by selecting words from a menu. This option is particularly helpful for
- players who are often frustrated by their inability to figure out an
- adventure game's vocabulary -- since the menu always displays a list of
- "feasible" (though not always "smart" or even appropriate) commands from
- which the player may make a selection.
-
- However, the "menus" do show some intelligence -- if the player selects
- the verb DROP from the menu, then he/she will be shown a menu of nouns
- that can be selected to be dropped. This list will be composed only of
- nouns that the player is currently carrying or wearing, i.e., logical
- candidates for being DROPped. This level of inherent intelligence is
- not extended to all verbs, however. For example, if the player selects
- the verb EAT, the nouns shown will be all of the nouns and creatures
- visible at the location plus special "related" or "room" specific or
- "ubiquitous" nouns (to be discussed a little later). In other words,
- the noun list will not be limited to nouns that have been defined as
- EDIBLE and happen to be visible at the current location. I firmly
- believe the "menu-driven" input should not limit either the player's or
- the game designer's ability to have such game commands as EAT THE TRASH
- CAN or PUSH THE STRING WITH MY NOSE.
-
- The "menu-driven" input option may be accessed by hitting the ESC key
- during the game and toggling the MENU option to ON.
-
- The Master's Edition of AGT gets its standard "menu-driven" verb list by
- reading a file with the list of verbs to be displayed in the menu. This
- file will have a .VOC extension. When the Master's Edition MRUN program
- is started it will first look for a .VOC file for the specific game
- being played, i.e., GAMENAME.VOC. If that file is not found on the
- current directory, MRUN will look for the "default" .VOC file which is
- AGT.VOC. If AGT.VOC is also not on the current directory, MRUN will
- quit with an error message.
-
- The Master's Edition package has two .VOC files for you to play with:
- AGT.VOC and SQUYNCH.VOC. AGT.VOC is the "standard" set of AGT verbs for
- potential use by the "menu-driven" player input. SQUYNCH.VOC is a set
- of verbs that were selected specifically for the game SQUYNCH. By
- looking at the differences between these two files, you can get an idea
- of how and why you might want to "customize" your verb menu.
-
- When setting up our own .VOC file please follow these guidelines:
-
- 1. The verb menu will be displayed in the exact order as the
- verbs in the vocabulary file, i.e., the .VOC file.
-
- 2. It is important that some verbs be included in a particular
- order. For example, the directions should be shown before
- other verbs beginning with the same letter, e.g., SOUTH should
-
- 141
-
-
-
-
- be the first S-verb, so that hitting a single letter on the
- keyboard will jump to the most frequently used verbs
- (commands).
-
- 3. There should be a number in the first column of each verb
- entry in the .VOC file. The number should be a 1 if the verb
- does not need a noun, e.g., SOUTH, HELP. The number should be
- a 2 if the verb always needs a noun, e.g., GET. The number
- should be a 3 if the verb is a compound verb such as PUT IN
- that always needs both a noun and an object, e.g., PUT noun IN
- object. If the number is a 3, then the verb MUST consist of
- two words, e.g., PUT IN, or an error message will be
- generated. Any number other than 1, 2, or 3 will also
- generate an error message.
-
- IMPORTANT WARNING: Your verb list is limited to a maximum of 200 verbs.
- Also, each verb (compound or otherwise) must be limited to 15 characters
- or less.
-
- For example, the AGT.VOC starts off with the following entries:
-
- ! AGAIN should be the first A-verb
- 1 Again
- 2 Attack
- 3 Attack With
- 3 Ask about
- 1 Brief
- 3 Block with
- 2 Break
- 3 Break with
- 2 Close
- 1 Climb
- 2 Climb up
- 2 Climb down
-
- This would cause the following actions:
-
- ! AGAIN should be the first A-verb <- A comment line -- ignored
- 1 Again <- Will be selected when an A is hit on the keyboard
- 2 Attack <- ATTACK noun -- i.e., ATTACK ORC
- 3 Attack With <- ATTACK noun WITH object
- 3 Ask about <- ASK noun ABOUT object -- i.e., ASK ORC ABOUT GOLD
- 1 Brief <- Will be selected when an B is hit on the keyboard
- 3 Block with <- BLOCK noun WITH object
- 2 Break <- BREAK noun - i.e., BREAK EGG
- 3 Break with <- BREAK noun WITH object -- i.e., BREAK DOOR WITH AXE
- 2 Close <- CLOSE noun -- i.e., CLOSE DOOR
- 1 Climb <- CLIMB -- i.e., no noun
- 2 Climb up <- CLIMB UP noun -- i.e., CLIMB UP TREE
- 2 Climb down <- CLIMB DOWN noun -- i.e., CLIMB DOWN TREE
-
-
-
- 142
-
-
-
-
- The biggest challenge the game designer will have in converting a
- Classic Edition AGT game to work with the new menu-driven player input
- will be making sure that the nouns that should be displayed in a
- particular location or situation will (in fact) be displayed. The
- menu-driven input option shows only a subset of all of the potential
- nouns -- and your challenge as a game designer is to make sure that the
- nouns you want get selected for these subsets.
-
- To help you understand how to accomplish this feat, let's review just
- how this list of nouns to be displayed is determined. This list is
- formed from:
-
- 1. All "visible" nouns and creatures
-
- 2. All "related" names
-
- 3. All "ubiquitous" nouns
-
- 4. All "room specific" nouns
-
- More details follow on each of these:
-
- 1. All nouns and creatures that are "visible" at the current
- location, i.e., all creatures present in the room plus all
- nouns that are either being carried or worn, in the room, or
- inside another noun (which is inside the room) that is open.
-
- 2. All nouns or names that are "related" to one of the visible
- nouns, i.e., "related" to nouns covered by (1) above. As an
- example, see the magic carpet in SQUYNCH that has a "label"
- attached to it. You want the player to be able to READ THE
- LABEL whenever the magic carpet is present. By making LABEL a
- "related name" for the magic carpet, the word LABEL will
- appear whenever the word CARPET would also appear on a noun
- list. Another example from SQUYNCH is the need to have the
- word NOSE to appear on the noun lists whenever the player has
- the CLOTHPIN. This allows the player to use the menu-driven
- player input to enter a command like PIN NOSE WITH CLOTHPIN or
- PUT CLOTHPIN ON NOSE. This objective is accomplished by
- having NOSE as a "related name" of the noun CLOTHPIN.
-
- As an example, below is the NOUN definition for the CLOTHPIN:
-
- NOUN [247 WOODEN CLOTHPIN]
- CLOTHPIN
- WOODEN
- There is a wooden clothpin here.
- LOCATION [27 Royal Laundry Room]
- WEIGHT 5
- POSITION on clothline
- NOUN_SYNONYMS PIN
- RELATED_NAME NOSE
-
- 143
-
-
-
-
- END_NOUN
-
- NOUN_DESCR [247 WOODEN CLOTHPIN]
- The wooden clothpin is about 3 inches long.
- END_NOUN_DESCR
-
- 3. All nouns that have been defined by the game designer as
- "ubiquitous" for the particular game. Examples of possible
- ubiquitous nouns include such things/names as "ME", "GROUND,"
- or "SKY." These nouns will appear on EVERY noun list the
- menu-driven player input generates. There can be at most 100
- of these global nouns in a game. Below is an example of how
- these nouns would be specified in the .AGT file:
-
- GLOBAL_NOUNS
- Me
- Ground <-- Maximum of 100 of these!
- END_GLOBAL_NOUNS
-
- IMPORTANT NOTE: You should use the GLOBAL NOUNS to do the
- same thing for nouns that "Dummy Verbs" does for verbs. In
- other words, a GLOBAL NOUN will be recognized by the parser as
- a valid noun without having been defined as a separate NOUN
- (and using up one of your very precious 200 NOUN definitions).
- However, because they are not one of the "standard" NOUN
- definitions, you MUST handle all references to your GLOBAL
- NOUNS via metacommands!! For example, let's say that GROUND
- is defined as a GLOBAL NOUN (and is not a separate NOUN
- definition). You must have metacommands to handle such player
- inputs as GET GROUND, EXAMINE GROUND, etc. The standard
- "built-in" routines for AGT can only deal with things that are
- defined as either NOUNs or CREATUREs -- and obviously, GROUND
- does not apply in this case.
-
- 4. All nouns that have been defined by the game designer as "room
- specific" for the current room. Examples of possible "room
- specific" nouns might include such things as "TREES", "WATER,"
- or "SNOW," i.e., things that can be expected to be found in
- multiple locations through out the game and which are unlikely
- to have specific NOUN definitions in each of these locations.
- For example, you may want the player to GET WATER at multiple
- locations within the game such as at wells, streams, lakes,
- etc. By using a "room specific" noun of WATER for each of
- these locations, you can assure that WATER will always appear
- on any noun list the menu-driven input generates at any of
- these locations. Within the Master's Edition, you are allowed
- up to 30 "room specific" nouns (or flags). This is 30 in
- total -- not 30 per room.
-
- Here is an example of how these flags/nouns should be
- specified in the game's .AGT file:
-
-
- 144
-
-
-
-
- REM ---- Flag Noun Numbers
-
- FLAG_NOUNS
- [Castle] Castle
- [Cave] Cave
- [Cove] Cove
- [Water] Water
- [Moat] Moat
- [Bridge] Bridge
- [Stairs] Stairs <-- Maximum of 30 of these!
- END_FLAG_NOUNS
-
- Once these flags/nouns have been defined they can be specified
- for a room in the game as the following examples shows:
-
- ROOM [18 Drawbridge]
- Drawbridge
- NORTH [20 Moat]
- SOUTH [20 Moat]
- EAST [15 Waiting Room]
- WEST [Front of Castle]
- FLAGS [Castle] [Water] [Bridge]
- END_ROOM
-
- ROOM_DESCR [18 Drawbridge]
- You are now on the drawbridge in front of Squeeb's castle
- which lies to the east. There is another exit to the west.
- END_ROOM_DESCR
-
- The Drawbridge location has the flags/nouns for WATER, CASTLE,
- and BRIDGE. These nouns will be displayed on any noun list
- that the menu-driven input generates while at this location.
-
- You can test the status and/or change the status of these
- flags using the following meta-commands:
-
- RoomFlagON num <-- Tests if RoomFlag num is ON
- RoomFlagOFF num <-- Tests if RoomFlag num is OFF
- TurnRoomFlagON num <-- Will turn RoomFlag num ON
- TurnRoomFlagOFF num <-- Will turn RoomFlag num OFF
- ToggleRoomFlag num <-- Will toggle or switch RoomFlag num
-
- Here are a few examples of how the WATER room flag might be
- used to deal properly with the commands GET WATER and EXAMINE
- WATER:
-
- COMMAND GET WATER
- Present [231 WOODEN PAIL]
- RoomFlagOFF [Water] ; there isn't any water here
- PrintMessage [No water here!]
- DoneWithTurn
- END_COMMAND
-
- 145
-
-
-
-
- MESSAGE [No water here!]
- There isn't any water here. Perhaps, you meant to MAKE WATER!
- END_MESSAGE
-
- COMMAND GET WATER
- Present [231 WOODEN PAIL]
- RoomFlagON [Water] ; there is water here
- ReDirectTo FILL PAIL
- DoneWithTurn
- END_COMMAND
-
- COMMAND EXAMINE WATER
- RoomFlagON [Water]
- PrintMessage [Water description]
- DoneWithTurn
- END_COMMAND
-
- MESSAGE [Water description]
- The water looks dark, murky and polluted! It also stinks
- something awful!
- END_MESSAGE
-
- Room flags can also be used without having any nouns added to
- the noun list generated by the menu-driven input option.
- Examples of situations where you might want to be able to test
- or set flags for a location include: (1) a flag to indicate
- the location is "outside", (2) a flag to indicate that this
- location is one where a particular CREATURE might appear at
- random, and (3) a flag to indicate that the player must be
- wearing a "space-suit" or he/she will die from lack of oxygen.
-
- The way to accomplish this is to not add the flag to the
- FLAG_NOUNS list. For example, to create a flag for a room
- being "outside," we could add the following definition:
-
- #DEFINE [Outside] 8
-
- Then to specify that the "Drawbridge" location was "outside",
- we would just add it to the room's FLAG list:
-
- ROOM [18 Drawbridge]
- Drawbridge
- NORTH [20 Moat]
- SOUTH [20 Moat]
- EAST [15 Waiting Room]
- WEST [Front of Castle]
- FLAGS [Castle] [Water] [Bridge] [Outside]
- END_ROOM
-
- Because [Outside] is not in the FLAG_NOUNS list, the word
- OUTSIDE will not appear on the noun list that the menu-driven
- input option generates.
-
- 146
-
-
-
-
- INITIAL DESCRIPTIONS FOR ROOMS, NOUNS AND CREATURES
-
-
- NOUN INITIAL DESCRIPTIONS
-
- Let's begin with an example of using "initial" descriptions for nouns.
-
- Often you will want to have a noun's short description change after you
- move it or take it. For example, we might want to have the initial
- short description of a chrome key "attached" to objects in the key's
- initial location as follows:
-
- You are on a large ledge only a couple of meters below the top of
- the spire. There is a large nest just out of your reach.
- Dangling from the nest on a red string is a chrome key.
-
- Once you move the key, you would want its short description to be "free"
- of the nest -- for example:
-
- There is a chrome key on a string here.
-
- You can do this by specifying the noun's INITIAL value to be the number
- of a message. This message will be printed as the noun's short
- description until such time as the noun is moved by getting it, wearing
- it, or placing it. After the noun is moved from its initial location,
- the noun's "normal" short description will be used.
-
- For example, here is how the chrome key might be specified:
-
- ROOM [Top of the spire]
- Top of the spire
- DOWN [Half-way up the Spire]
- END_ROOM
-
- ROOM_DESCR [Top of the spire]
- You are on a large ledge only a couple of meters below the top of
- the spire. There is a large nest just out of your reach.
- END_ROOM_DESCR
-
- NOUN [Chrome key]
- key
- Chrome
- There is a chrome key on a string here.
- WEIGHT 1
- SIZE 1
- POINTS 2
- WEARABLE ; can be worn
- LOCATION [Top of the spire]
- INITIAL [Initial Chrome key description]
- END_NOUN
-
-
-
- 147
-
-
-
-
- NOUN_DESCR [Chrome key]
- The key is made of chrome and is on a string. It looks like it
- might come in handy.
- END_NOUN_DESCR
-
- MESSAGE [Initial Chrome key description]
- Dangling from the nest on a red string is a chrome key.
- END_MESSAGE
-
- You have the option of specifying "short-cut" initial messages just like
- you can with "short-cut" messages within a meta-command. For example,
- we could have defined the initial message as follows:
-
- NOUN [Chrome key]
- key
- Chrome
- There is a chrome key on a string here.
- WEIGHT 1
- SIZE 1
- POINTS 2
- WEARABLE ; can be worn
- LOCATION [Top of the spire]
- INITIAL "Dangling from the nest on a red string is a chrome key."
- END_NOUN
-
- If we went a longer (i.e., multi-line) initial message we can do that as
- well. For example, we could define a multi-line initial message as
- follows:
-
- NOUN [Chrome key]
- key
- Chrome
- There is a chrome key on a string here.
- WEIGHT 1
- SIZE 1
- POINTS 2
- WEARABLE ; can be worn
- LOCATION [Top of the spire]
- INITIAL
- Dangling from the nest on a red string is a chrome key. It looks
- like it could be easily plucked from the nest -- if you wanted it
- for some reason. But heaven only knows why you would want a key
- like this one.
- END_INITIAL
- END_NOUN
-
-
- CREATURE INITIAL DESCRIPTIONS
-
- We can do the same sort of things with initial descriptions for
- CREATUREs. For example, let's add a bald eagle to the above scenario
- that swoops out of the sky the first time it is described -- but is
-
- 148
-
-
-
-
- sitting on the nest quite peacefully after the first description -- as
- follows:
-
- CREATURE [Bald Eagle]
- Eagle
- Bald
- A bald eagle is perched peacefully on top of the nest.
- LOCATION [Top of the spire]
- FRIENDLY
- INITIAL
- Suddenly, you hear a screech from high above you. A big bird
- swoops down at you. It is a giant bald eagle and it dive bombs at
- your head -- making several passes that very nearly knock you off
- your precarious perch.
-
- The eagle finally lands on the nest and seems to calm down.
- END_INITIAL
- END_CREATURE
-
- The first time you are in the same room with the bald eagle the INITIAL
- description will be printed. Thereafter, the normal short description
- will be given -- e.g., "A bald eagle is perched peacefully on top of the
- nest."
-
-
- ROOM INITIAL DESCRIPTIONS
-
- We can do the same sort of things with initial descriptions for ROOMs.
- For example, let's add some descriptive prose to describe your very
- first climb up to the ledge below the nest -- as follows:
-
- ROOM [Top of the spire]
- Top of the spire
- DOWN [Half-way up the Spire]
- INITIAL
- You put you knee between a crack in the spire to wedge yourself
- safely while you swing your foot up to the ledge. Your foot lands
- on top of some loose stones and you grab at the ledge with your
- hands. You just catch the ledge with your finger tips. Finally,
- you manage to pull yourself up and you collapse exhausted on the
- ledge. After resting awhile, you regain enough of your strength
- and aplomb to look around you.
-
- You are on a large ledge only a couple of meters below the top of
- the spire. There is a large nest just out of your reach.
- END_INITIAL
- END_ROOM
-
- ROOM_DESCR [Top of the spire]
- You are on a large ledge only a couple of meters below the top of
- the spire. There is a large nest just out of your reach.
- END_ROOM_DESCR
-
- 149
-
-
-
-
- The first time you enter the room, the INITIAL description will be used
- to describe the room. On subsequent visits to the room or whenever you
- give the command LOOK, the normal description will be given. e.g., ...
-
- You are on a large ledge only a couple of meters below the top of
- the spire. There is a large nest just out of your reach.
-
-
- CHANGING DESCRIPTIONS
-
- Version 1.5 adds one other way to change the descriptions for NOUNS,
- CREATURES and ROOMS. This is by using the new ChangeDescr meta-command
- token. For example, to change the description of the CREATURE [Ogre] to
- the description contained in the MESSAGE [Angry Ogre], you would use the
- following meta-command:
-
- ChangeDescr [Ogre] [Angry Ogre]
-
- This capability will be particularly useful when you want to change
- descriptions for ROOMs to give the appearance of more rooms without
- really having more rooms. For example, your game might have an
- earthquake that changes all of the rooms' descriptions to reflect the
- damage, but does not change the basic map of the game. This could be
- done by a series of meta-commands similar to the following:
-
- ChangeDescr [Town Square] [Town Square -- after quake]
-
- Another example, you might want to have a NOUN which is window in a room
- that starts as being boarded-up, but after the player uses a crowbar on
- it, its description should change to "covered with loose boards." This
- could be done with:
-
- ChangeDescr [window] [window --with loose boards]
-
-
- "AUTOEXEC" META-COMMANDS FOR ROOMS
-
- Version 1.5 of the Master's Edition adds the ability to execute a set of
- meta-commands immediately upon entering a room. This is know as an
- "AutoExec" capability. As an example, the game HOLMES (included with
- Version 1.5) uses this capability to select one of eighteen cases for
- the player to try to solve. This is done, by have the starting room for
- the game a room that has an AUTOEXEC for the verb SELECTCASE (which must
- be defined as a verb). The meta-commands for the verb SELECTCASE then
- prompts the player to select a case (from 1 to 18), check to see that a
- proper case was selected (i.e., number 1 to 18), and then changes the
- various ROOM DESCRIPTIONS to correspond to the case selected. The logic
- to accomplish this is shown below:
-
- STARTING_ROOM [Select Case Room]
-
-
-
- 150
-
-
-
-
- ROOM [Select Case Room]
- 221B Baker Street
- ! Do SELECTCASE command to get Case number and change various
- ROOM_DESCR's
- AUTOEXEC SELECTCASE
- END_ROOM
-
- ROOM_DESCR [Select Case Room]
- You need to select one of the following cases to solve.
-
- 1 - The Adventure of the Dead Inventor
- 2 - The Adventure of the Missing Cuckoo
- 3 - The Case of Murder in the Park
- 4 - The Adventure of the Vanishing Lady
- 5 - The Case of the Vicious Viper
- 6 - The Adventure of the Missing Knife
- 7 - The Adventure of the Mysterious Message
- 8 - The Case of the Missing Rolls Royce
- 9 - The Adventure of the Golden Coins
- 10 - The Case of the Code Crossword
- 11 - The Case of the Crashed Cab
- 12 - The Silenced Maintenance Man
- 13 - The Case of the Jilted Jockey
- 14 - The Case of the Northern Cross
- 15 - The Case of the Dead Letter Murders
- 16 - The Adventure of West Landings Ghost
- 17 - The Case of the Vanishing Silver
- 18 - The Case of the Last Alibi
- END_ROOM_DESCR
-
- COMMAND SELECTCASE
- PrintMessage "Enter the number of the case you wish to solve"
- GetVariable [Case]
- SetVariableTo [Money] 25
- SetVariableTo [Number of Passes] 2
- SetVariableTo [Starting Time] 1302
- SetTimeToVariable [Starting Time]
- END_COMMAND
-
- MESSAGE [Please enter a number from 1 to 18 only!]
- Please enter a number from 1 to 18 only!
- END_MESSAGE
-
- COMMAND SELECTCASE
- ! Check for Valid Case number
- VariableLT [Case] 1
- GoToRoom [Select Case Room]
- PrintMessage [Please enter a number from 1 to 18 only!]
- ReDirectTo SELECTCASE
- DoneWithTurn
- END_COMMAND
-
-
- 151
-
-
-
-
- COMMAND SELECTCASE
- ! Check for Valid Case number
- VariableGT [Case] 18
- GoToRoom [Select Case Room]
- PrintMessage [Please enter a number from 1 to 18 only!]
- ReDirectTo SELECTCASE
- DoneWithTurn
- END_COMMAND
-
- COMMAND SELECTCASE
- ! Change all of the ROOM_DESCR's to the those for the Case 1
- VariableEquals [Case] 1
- ChangeDescr [Starting Room] [Case1 Starting Room]
- ChangeDescr [Loire Gallery] [Case1 Loire Gallery]
- ChangeDescr [Scotland Yard] [Case1 Scotland Yard]
- ChangeDescr [Seymore Park] [Case1 Seymore Park]
- ...
-
- ChangeDescr [Stock Exchange] [Case1 Stock Exchange]
- ChangeDescr [Cab Company] [Case1 Cab Company]
- ChangeDescr [Newspaper] [Case1 Newspaper]
- ChangeDescr [Pub] [Case1 Pub]
- ChangeDescr [Shipping Company] [Case1 Shipping Company]
- GoToRoom [Starting Room]
- DoneWithTurn
- END_COMMAND
-
- COMMAND SELECTCASE
- ! Change all of the ROOM_DESCR's to the those for the Case 2
- VariableEquals [Case] 2
- ChangeDescr [Starting Room] [Case2 Starting Room]
- ChangeDescr [Loire Gallery] [Case2 Loire Gallery]
- ChangeDescr [Scotland Yard] [Case2 Scotland Yard]
- ChangeDescr [Seymore Park] [Case2 Seymore Park]
- ...
-
- ChangeDescr [Stock Exchange] [Case2 Stock Exchange]
- ChangeDescr [Cab Company] [Case2 Cab Company]
- ChangeDescr [Newspaper] [Case2 Newspaper]
- ChangeDescr [Pub] [Case2 Pub]
- ChangeDescr [Shipping Company] [Case2 Shipping Company]
- GoToRoom [Starting Room]
- DoneWithTurn
- END_COMMAND
-
- These sets of ChangeDescr commands would be repeated for all 18 cases.
-
-
-
-
-
-
-
- 152
-
-
-
-
- SETTING COLORS WITHIN MESSAGES AND DESCRIPTIONS
-
- The Master's Edition allows you to change colors of words within your
- messages and descriptions and to mix and match colors to suit your
- needs. You can even cause some words to blink -- if you want.
-
- The way this is done is to insert "control characters" within your text
- wherever you wish to change colors from the "normal" text colors. These
- "control characters" are formed while using your text editor or word
- processor by simultaneously holding down the ALT key and a number key on
- the numeric key pad.
-
- The ALT-number combinations and their associated colors are as follows:
-
- Black = ALT 0
- Blue = ALT 1
- Green = ALT 2
- Cyan = ALT 3
- Red = ALT 4
- Magenta = ALT 5
- Brown = ALT 6
- "Normal" = ALT 7
- Blinking = ALT 8
-
- These ALT-numeric key combination each create a special character in the
- text. For example, the ALT-1 key combination creates a "happy face"
- character which will cause the words that follow it to be printed on a
- color monitor in blue. This blue color will remain in effect until
- either (1) you change color again using another special character within
- the message or description, or (2) the game's "turn" is done and AGT
- asks the player to enter another command -- which ever comes first.
- Each new turn of the game will cause AGT to revert to the game's
- "normal" text color.
-
- When AGT's MRUN program encounters these special control characters
- within a message or description, it will change the color accordingly
- and in place of the special character it will print a space -- so your
- spacing within your text will remain the same. For example, in the
- following message, we will change the color of the text to blue at the
- word "blue" by using our "happy face" character:
-
- MESSAGE [Example of color changes]
- The message should be blue now.
- END_MESSAGE
-
- Where the happy face is will be a space in the final printed message,
- but all of the text after that will be shown on the screen in blue.
-
- If you wish to make only the word "blue" blue and revert to the "normal"
- text color for the word "now," you would do this by inserting an ALT-7
- color control character (a small "dot" character) between the words
- "blue" and "now" -- as shown below:
-
- 153
-
-
-
-
- MESSAGE [Example of color changes]
- The message should be blue∙now.
- END_MESSAGE
-
-
- "ILLEGAL" DIRECTION MESSAGES
-
- There is now a way to print "customized" messages when you attempt to go
- in "illegal" directions. This is done by printing a message whenever
- the room number for a given direction is greater than a 1000.
- Specifically, if you give a room number of 1005 for going EAST from the
- current location, you will get message number five printed whenever you
- try to go EAST from the current location.
-
- For example, let's say that you are on top of a cliff and your want to
- give the message "You will fall to your death if you go $verb$." if you
- go NORTH or NORTHEAST and the message "You take a few steps and decide
- that it would be safer to return to where you were." if you go NORTHWEST
- or WEST. You could do this by putting the following in the first part
- of your game's source file:
-
- #DEFINE [You'll fall and die message] 1001
- #DEFINE [You decide to retreat to safety message] 1002
-
- MESSAGE [First message in game file]
- You will fall to your death if you go $verb$.
- END_MESSAGE
-
- MESSAGE [Second message in game file]
- You take a few steps and decide that it would be safer to return to
- where you were.
- END_MESSAGE
-
- You would get these messages to work by using the following in the ROOM
- definition:
-
- ROOM [Top of Cliff]
- Top of Cliff
- NORTH [You'll fall and die message]
- NORTHEAST [You'll fall and die message]
- NORTHWEST [You decide to retreat to safety message]
- WEST [You decide to retreat to safety message]
- SOUTH [Path leading down the cliff]
- END_ROOM
-
- ROOM_DESCR [Top of Cliff]
- You are on the top of a high cliff. The path you climbed up to
- reach your current location is to the south.
- END_ROOM_DESCR
-
-
-
-
- 154
-
-
-
-
- CUSTOM FONTS
-
- If the game is being played on an EGA or VGA monitor, it is possible to
- use "customizeable" fonts with the normal text-based output.
- Specifically, the default font will be contained in a file called
- GAMENAME.FNT. This font will be loaded automatically at the beginning
- of the game. If the game is being played on a monochrome or CGA monitor
- (or if the GAMENAME.FNT font file can not be found on the current
- directory) the game will continue to use its "standard" font.
-
- During the game, you may change fonts using the LoadFont meta-command.
- For example:
-
- LoadFont [Old English]
-
- will change the default font to "Old English." If the game is being
- played on a monochrome or CGA monitor (or if the font file can not be
- found on the current directory) the LoadFont meta-command will have no
- effect and the game will continue to use its current font.
-
- In order to use different fonts, you must define the font files you plan
- to use in the game source code as follows:
-
- FONTS
- [Old English] OLDENG
- [Digital] DIGITAL
- [Runic] RUNIC
- [Standard Font] STANDARD
- END_FONTS
-
- Where the words follow the bracket definitions are the *.FNT file names
- to be found on the current directory, e.g., OLDENG.FNT contains the "Old
- English" font.
-
- A collection of about 30 fonts can be found in the FONTSTUF.ZIP file.
- FONTSTUF.ZIP also contains a font editor FONTEDIT.EXE that will enable
- you to design your own custom fonts or edit the 30 or so fonts provided.
-
- By the way, the font loaded by AGT's MRUN or by FONTEDIT will remain as
- the active display font for your computer after this program is
- finished. To restore the font that is the "default" for your monitor,
- you will need to give the DOS command MODE CO80.
-
-
- NOTIFY COMMAND
-
- You can use the command NOTIFY to have the game give you a specific
- message whenever your score changes. This is often useful when
- debugging a game.
-
-
-
-
- 155
-
-
-
-
- USER SPECIFIED "STRINGS"
-
- The Master's Edition adds the capability to have up to 25 user defined
- strings that may be initialized in the AGT game source file(s) or input
- during the game by the player. These strings maybe up to 15 characters
- in length.
-
- To initialize them in the source files for the game, do something like
- the following:
-
- STRINGS
- [Name] John
- [Sex] Male
- [Eyes] Blue
- [Hair] Brown
- [City1] San
- [City2] Francisco
- [State] California
- END_STRING
-
- Notice that each string must be only one word, that is why "San" had to
- be a sperate string from "Francisco."
-
- Then to print these strings out in messages, you would something like
- the following:
-
- MESSAGE [Vital Statistics]
- Hi, my name is $Str[Name]$ and I am a red-blooded $str[Sex]$ living
- in $Str[City1]$ $Str[City2]$, $Str[State]$.
-
- I have $str[Eyes]$ eyes and $str[Hair]$ hair.
- END_MESSAGE
-
- Just like $NOUN$, $noun$ or $Noun$, the user defined strings would be
- capitalized based on how $STR1$, $str1$ or $Str1$ is capitalized.
- You may only use the GetString metacommand token to get the values for
- these strings from the Player's keyboard input as follows:
-
- #DEFINE [Player] 1
- #DEFINE [Age] 4
-
- COMMAND ANY
- FlagOFF [Game started]
- TurnFlagON [Game started]
- PrintMessage "What is your first name?"
- GetString [Player]
- PrintMessage "What is your age?"
- GetVariable [Age]
- VariableGT [Age] 30
- PrintMessage "#Var[Age]#!!! .... my or my ... that is really old!"
- END_COMMAND
-
-
- 156
-
-
-
-
- ...
-
- COMMAND ANY
- Chance 5
- PrintMessage [Strange Voice]
- END_COMMAND
-
- MESSAGE [Strange Voice]
- You hear a strange voices calling "$Str[Player]$... $Str[Player]$."
- END_MESSAGE
-
-
- ENHANCED QUESTION AND ANSWER CAPABILITIES
-
- Version 1.5 greatly expands the Master's Edition's capability for
- dealing with questions and answers. Now you can have up to 100 sets of
- questions and associated answers. Further, you can have answers that
- can include "logical" relations of AND and OR. For example, the
- following series of questions and answers represent the solution to case
- 5 in the game HOLMES:
-
- QUESTION [Case5 Who ?] Who killed Harry Wilcox?
- ANSWER [Case5 Who ?] Robert OR Simms OR Assistant
-
- QUESTION [Case5 How ?] How was he killed?
- ANSWER [Case5 How ?] Fork
-
- QUESTION [Case5 Why ?] What was the motive?
- ANSWER [Case5 Why ?] Revenge OR Pregnant OR Sister OR Pregnancy
-
- For example, if the answer the player gives to the "Why ?" question
- includes any of the words "revenge" or "pregnant" or "sister" and/or
- "pregnancy" -- the answer would be determined to be correct.
-
- You can also use "AND" relations as shown by the following example:
-
- QUESTION [Explorers ?] Which explorers found the Columbia River?
- ANSWER [Explorers ?] Lewis AND Clark
-
- The player must give an answer that has both of the words "Lewis" and
- "Clark" for AGT to determine the answer as correct. The words may be in
- any order and may be part of a much longer answer.
-
-
- BUILT-IN TIME CAPABILITIES
-
- The Master's Edition has built-in time capabilities that can be set,
- tested and displayed.
-
- To set the starting time for your adventure, put something like the
- following in your game's AGT source file:
-
-
- 157
-
-
-
-
- STARTING_TIME 1247
-
- DELTA_TIME 15
-
- This would cause your game to start at 12:47 PM (12:47 AM would have a
- STARTING_TIME of 47) and to be incremented by a random number of minutes
- (from 0 to 15) after each turn of the game.
-
- The current time may be printed out in messages by using $TIME$ (e.g.,
- 12:47 PM) or $time$ (e.g., 12:47 pm).
-
- There are several metacommand tokens that be used with time:
-
- TimeGT {num1} -- This is a conditional meta-command and will
- return a TRUE or FALSE depending upon whether
- the current time is greater than num1.
-
- TimeLT {num1} -- This is a conditional meta-command and will
- return a TRUE or FALSE depending upon whether
- the current time is less than num1.
-
- SetVariableToTime {num1} -- This sets variable num1 to the
- current time.
-
- SetTimeToVariable {num1} -- This sets the current time to
- variable num1.
-
- SetTime {num1} -- This sets the current time to num1.
-
- SetDeltaTime {num1} -- This sets the current value of DELTA_TIME
- to num1.
-
- AddToTime {num1} -- This adds num1 to the current time. Note: For
- 1 hour and 10 minutes, you would have num1 set
- to 110 -- not 70.
-
-
- OPTIONS FOR DISPLAYING SCORE AND STATUS LINE
-
- The Master's Edition allows the game designer to select options for how
- the game will display the SCORE and display the STATUS LINE.
-
- Specifically, to set the SCORE option to 2, put the following line in
- your game's source file:
-
- SCORE_OPTION 2
-
- The available options are:
-
- 0 -- The "Default" -- shows everything in the SCORE display.
-
- 1 -- Don't show the maximum number of rooms.
-
- 158
-
-
-
-
- 2 -- Don't show the maximum possible score.
-
- 3 -- Don't show either the maximum rooms or possible score.
-
- There is no need to have a "SCORE_OPTION 0" line, since AGT will
- automatically use the default if not SCORE_OPTION is encountered in the
- game's source file(s).
-
- To set the STATUS LINE option to 2, put the following line in the game's
- source files:
-
- STATUS_OPTION 2
-
- The available option are:
-
- 0 -- The "Default" -- shows "standard" STATUS LINE display
- consisting of current "Room Name", "Score", and "Move."
-
- 1 -- Same as "Default" except "Time" rather than "Move" -- i.e., a
- STATUS LINE display consisting of current "Room Name",
- "Score", and "Time."
-
- 2 -- Same as "Default" except "Score" is omitted -- i.e., a STATUS
- LINE display consisting current "Room Name" and "Move."
-
- 3 -- A STATUS LINE display consisting only of current "Room Name"
- and "Time."
-
- There is no need to have a "STATUS_OPTION 0" line, since AGT will
- automatically use the default if no STATUS_OPTION is encountered in the
- game's source file(s).
-
-
- OTHER NEW META-COMMAND TOKENS
-
- New Conditional Tokens:
-
- NOUNIsMan {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the NOUN is a
- creature and a Man
-
- NOUNIsWoman {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the NOUN is a
- creature and a Woman
-
- NOUNIsThing {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the NOUN is a
- creature and a Thing
-
-
- 159
-
-
-
-
- OBJECTIsMan {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the OBJECT is
- a creature and a Man
-
- OBJECTIsWoman {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the OBJECT is
- a creature and a Woman
-
- OBJECTIsThing {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the OBJECT is
- a creature and a Thing
-
- DirectionOK {none} -- Returns TRUE or FALSE depending upon
- current direction leading to another
- valid location. Will return FALSE if
- current verb is not a direction.
-
- DirectionIS {num1} -- Returns TRUE or FALSE depending upon
- current direction being num1 (i.e.,
- num1 = 1 for north, etc.) Will
- return FALSE if current verb is not a
- direction.
-
- BetweenRooms {n1} (n2} -- Returns TRUE or FALSE depending upon
- current location being between (and
- including) rooms n1 and n2.
-
- HasVisitedRoom {num1} -- Returns TRUE or FALSE depending upon
- whether player has visited room num1.
-
- EnteredOBJECT {none} -- Returns TRUE or FALSE depending upon
- whether current command has a valid
- OBJECT.
-
- New Action Tokens:
-
- ToggleMovable {num1} -- Toggles "movable status" for NOUN
- num1.
-
- ChangePoints {itm} {pts} -- Changes point value of item (ROOM,
- NOUN or CREATURE) to pts points.
-
- DestroyOBJECT {none} -- Destroys OBJECT (if any)
-
- GetVariable {num1} -- Gets variable num1 (1 to 25) from
- player's keyboard input.
-
- SetVariableToTime {num1} -- Sets variable num1 to the current
- time.
-
- 160
-
-
-
-
- SetTimeToVariable {num1} -- Sets the current time to variable
- num1.
-
- AddToTime {num1} -- This adds num1 to the current time. Note: For
- 1 hour and 10 minutes, you would have num1 set
- to 110 -- not 70.
-
-
- SUMMARY OF ALL NEW MASTER'S EDITION META-COMMAND TOKENS
-
- New Conditional Tokens:
-
- NOUNIsMan {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the NOUN is a
- creature and a Man
-
- NOUNIsWoman {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the NOUN is a
- creature and a Woman
-
- NOUNIsThing {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the NOUN is a
- creature and a Thing
-
- OBJECTIsMan {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the OBJECT is
- a creature and a Man
-
- OBJECTIsWoman {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the OBJECT is
- a creature and a Woman
-
- OBJECTIsThing {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the OBJECT is
- a creature and a Thing
-
- SongPlaying {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether there is a
- song playing or not at the current
- moment.
-
- SoundIsON {none} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the player has
- the sound option ON.
-
- 161
-
-
-
-
- DirectionOK {none} -- Returns TRUE or FALSE depending upon
- current direction leading to another
- valid location. Will return FALSE if
- current verb is not a direction.
-
- DirectionIS {num1} -- Returns TRUE or FALSE depending upon
- current direction being num1 (i.e.,
- num1 = 1 for north, etc. Will return
- FALSE if current verb is not a
- direction.
-
- BetweenRooms {n1} (n2} -- Returns TRUE or FALSE depending upon
- current location being between (and
- including) rooms n1 and n2.
-
- HasVisitedRoom {num1} -- Returns TRUE or FALSE depending upon
- whether player has visited room num1.
-
- EnteredOBJECT {none} -- Returns TRUE or FALSE depending upon
- whether current command has a valid
- OBJECT.
-
- TimeGT {num1} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the current
- time is greater than num1.
-
- TimeLT {num1} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending upon whether the current
- time is less than num1.
-
- Room_PixHere {num1} -- This is a conditional meta-command
- and will return a TRUE or FALSE
- depending on whether the num1
- ROOM_PIX picture may be viewed in the
- current room.
-
- New Action Tokens:
-
- LoadFont {num1} -- Loads and uses font num1 (from FONT
- list)
-
- ShowPicture {num1} -- Shows "global" picture num1 (from 1
- to 250)
-
- IfYShowPicture {num1} -- Shows "global" picture num1 (from 1
- to 250) if Player answers YES to
- query about showing the picture.
-
- ShowROOM_PIX {num1} -- Shows "ROOM_PIX" picture num1 (from 1
- to 30)
-
- 162
-
-
-
-
- IfYShowROOM_PIX {num1} -- Shows "ROOM_PIX" picture num1 (from 1
- to 30) if Player answers YES to query
- about showing the picture.
-
- PlaySong {num1} -- Plays the song/sound file num1 once.
- The standard mode is to play the song
- until it is finished and then to
- stop.
-
- RepeatSong {num1} -- Plays the song/sound file num1
- repeatedly. When the song is
- finished it would automatically be
- started again.
-
- PlayRandom {num1} {num2} -- Plays a random song/sound file
- between num1 and num2 once. The
- song/sound will be played until it is
- finished and then it will stop.
-
- EndRepeatSong {none} -- Causes the current song/sound to stop
- when it is finished, i.e., the
- repeating feature would be turns off.
-
- StopSong {none} -- Causes the current song/sound to stop
- immediately. Once the StopSong
- command has been given, the song can
- not be resumed without giving a new
- PlaySong or RepeatSong token.
-
- SuspendSong {none} -- Causes the current song/sound to stop
- immediately -- but it can be resumed
- at the current spot at a later time.
-
- ResumeSong {none} -- Resumes playing a song that had been
- suspended by a SuspendSong token at
- the spot where it was suspended.
-
- ToggleMovable {num1} -- Toggles "movable status" for NOUN
- num1.
-
- ChangePoints {itm} {pts} -- Changes point value of item (ROOM,
- NOUN or CREATURE) to pts points.
-
- DestroyOBJECT {none} -- Destroys OBJECT (if any)
-
- GetString {num1} -- Gets string num1 (1 to 25) from
- player's keyboard input. String
- length will be truncated to 15
- characters if necessary.
-
- GetVariable {num1} -- Gets variable num1 (1 to 25) from
- player's keyboard input.
-
- 163
-
-
-
-
- SetVariableToTime {num1} -- Sets variable num1 to the current
- time.
-
- SetTimeToVariable {num1} -- Sets the current time to variable
- num1.
-
- SetTime {num1} -- Sets the current time to num1.
-
- SetDeltaTime {num1} -- Sets the current value of DELTA_TIME
- to num1.
-
- AddToTime {num1} -- This adds num1 to the current time.
- Note: For 1 hour and 10 minutes, you
- would have num1 set to 110 -- not 70.
-
- DoSubroutine {num1} -- Causes the meta-commands in
- Subroutine num1 to be executed
-
- Return -- Causes an immediate exit from the
- currently executing Subroutine (if
- any), i.e., meta-command processing
- would resume immediately after the
- DoSubroutine token that called the
- Subroutine in the first place. Each
- Subroutine must have at least one
- "Return"!
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 164
-
-
-
-
- APPENDIX A: AGT ERROR MESSAGES
-
-
- ERRORS DURING GAME COMPILATION
-
- Error: "VERB is not a valid verb" -- VERB is not a standard AGT verb,
- nor has it been defined (so far) as a synonym for another verb. This
- error is in the *.AGT file.
-
- Error: ">>> Ignored: ASCII text" -- ASCII text encountered during
- reading of *.AGT file. Text does not correspond to anything normally
- expected in this file. Probably, just a comment by the game designer.
-
- Error: "Too many commands -- Processing halted" -- AGT only allows 900
- meta-commands. The current meta-command being read from the *.AGT file
- would have been number 901. This is a game designer error.
-
- Error: "FOR COMMAND VERB NOUN OBJECT -- ILLEGAL VERB" -- This
- meta-command has a VERB which the parser does not recognize as a
- standard AGT verb, a custom verb or a synonym for a valid verb. This is
- a game designer error.
-
- Error: "FOR COMMAND VERB NOUN OBJECT -- ILLEGAL NOUN or OBJECT" -- This
- meta-command has a NOUN or OBJECT which the parser does not recognize as
- a standard AGT noun or a synonym for a valid noun. This is a game
- designer error.
-
- Error: "FOR COMMAND VERB NOUN OBJECT -- ILLEGAL TOKEN" -- This meta-com-
- mand has something in it that the program does not recognize as a token.
- Probably, a game designer comment or a spelling mistake.
-
-
- ERRORS DURING RESTORING GAME
-
- Error: "File not found, can't restore FileName" -- FileName is not on
- disk.
-
-
- ERRORS DURING GAME PLAY
-
- Error: "I don't understand VERB as a verb." -- Try another VERB.
- Probably a spelling mistake.
-
- Error: "I don't understand NOUN as a noun." -- Try another word to
- identify this noun. May be a noun that does not really play a
- significant part in the game, i.e., something described in general in
- the room description, but not a separate object in the room. May also
- be a spelling mistake.
-
- Error: "I don't understand PREP as a preposition." -- Try another
- preposition. May be a spelling mistake.
-
-
- 165
-
-
-
-
- Error: "I don't understand OBJECT as the object of a preposition." --
- Try another word to identify this noun. May be a noun that does not
- really play a significant part in the game, i.e., something described in
- general in the room description, but not a separate object in the room.
- May also be a spelling mistake.
-
- Error: "Which NOUN do you mean, the ADJ1 NOUN or the ADJ2 NOUN?" -- Two
- or more nouns with the same name are present in the current room.
- Specify the one you mean by some phrase that includes the appropriate
- NOUN's adjective.
-
- Error :"I don't understand WORD as either a verb or a noun". Try
- another word to convey what you mean. May be a spelling mistake.
-
- Error: "You need a preposition and an object whenever you try to VERB a
- NOUN." Some verbs require prepositions and objects in order to work
- properly. For example, PLACE BOOK ON THE TABLE is fine, but PLACE BOOK
- by itself will generate this error.
-
- Error: "Too many words in command". AGT allows for a maximum of 12
- words in each part of a compound command (i.e., between AND's and
- THEN's). Re-phrase your command to be more succinct.
-
-
- TURBO PASCAL RUN-TIME ERRORS
-
- In addition to the above errors which are generated by AGT, it is
- possible to get errors from Turbo Pascal -- the language in which AGT is
- written. Specifically, you might get the following two run-time errors
- from Turbo:
-
- 101 "Disk Write Error" -- You would get this error when there is
- no more room on your disk, i.e., it is full. This situation
- might occur when (1) you are compiling a game and there is not
- enough room for the various files being created by the
- MCOMPILE program (i.e., *.D$$, *.DA1, etc) or (2) you trying
- to save a game and there is not enough room on the disk for
- the data being saved.
-
- 201 "Out of Range Error" -- You would get this error if your game
- source code has a value that is out of range -- like a
- "illegal" negative number or a label that is too long.
-
- 203 "Heap Overflow Error" -- You would get this error if your
- computer does not have enough internal memory. AGT requires a
- computer with at least 512K of available memory -- after
- counting for all of the memory resident or TSR programs.
-
-
-
-
-
-
- 166
-
-
-
-
- APPENDIX B: RECOMMENDED SHAREWARE UTILITIES
-
-
- PIANOMAN 4.0
-
- PIANOMAN lets you play the keyboard of an IBM-PC (or close compatible)
- like an electronic piano. The keys sound a tone as long as you hold
- them down, and stop when you release them. You can record and edit
- music, insert and delete notes, adjust pitch and length, make global
- changes, and save/retrieve files.
-
- To register PIANOMAN, send $25 to:
-
- Support Group Inc.
- P.O. Box 130
- McHenry, MD 21541
-
- You may also register using MasterCard or VISA by calling 800/USA-GROUP
- or 301/889-7893.
-
-
- MELODY MASTER
-
- Melody Master lets you create, save, edit, and play music on a PC. The
- easy-to-use graphic interface contains a staff on which basic music
- notation is placed and includes on-screen help. You can configure
- tempos, and note-lengths and modify the program's colors. Melody Master
- will also help you to insert music in your own programs whether you
- program in C, Pascal, BASIC or in DOS batch files. You don't have to
- know how to write music - Melody Master includes a large collection of
- ready-to-play melodies! Supports Hercules, CGA, EGA and VGA. ASP
- member.
-
- Registration Information:
- -------------------------
-
- Regular - $19
- Commercial License - $49
-
- Send registrations to:
-
- Shareable Software International
- PO Box 59102
- Schaumburg, IL 60159
-
- 800-622-2793 (orders only)
- 708-397-1221 (voice)
- 708-397-0381 (fax)
- 215-623-6203 (BBS, Join Conference 77)
- CompuServe: 76226,2652
- Internet: 76226.2652@compuserve.com
-
-
- 167
-
-
-
-
- GRAPHIC WORKSHOP
-
- Graphic workshop is a simple, menu driven environment which will let you
- perform the following operations on graphic files:
-
- - View them.
- - Convert between any two formats (with a few restrictions).
- - Print them to any LaserJet Plus compatible or PostScript laser
- and many dot matrix printers. Graphic Workshop can print
- color pictures to color PostScript and inkjet printers.
- - Dither the color ones to black and white.
- - Reverse them.
- - Rotate and flip them.
- - Scale them.
- - Reduce the number of colors in them and do color dithering.
- - Sharpen, soften and otherwise wreak special effects on them.
- - Crop them down to smaller files
- - Scan in completely new files, assuming that you have a
- supported scanner.
- - Adjust the brightness and color balance of the color ones.
-
- Versions of Graphics Workshop are available for both DOS and WINDOWS.
- Using Graphic Workshop, you can have your image files in the formats
- that your software recognizes, all without keeping track of numerous
- funky utilities. In addition, using the halftoning and dithering
- facilities of Graphic Workshop, you can convert full color digitized
- photographs for use as superb black and white clip art, suitable for
- inclusion in your documents.
-
- You can register Graphic Workshop by send $40.00 to:
-
- Alchemy Mindworks Inc.
- P.O. Box 500
- Beeton, Ontario
- L0G 1A0
- Canada
-
-
- IMPROCES
-
- IMPROCES is the DOS-only "jack of all trades" for PC graphics. It has
- many features: Image contrast enhancement, Histograms, Sharpening by
- convolution, Custom filters, Full control of the VGA palette, Clipboard,
- Five stroke Fonts in five sizes and the ability to import bit-map fonts,
- FAT BIT editor, many drawing tools, flips, mirror, Color Cycling, Plasma
- and terrain fractals, UNDO, XMS/EMS support, edit up to five images at
- one time, etc... IMPROCES can use a wide variety of SVGA video cards in
- resolutions up to 1024x768x256. The IMPROCES package is incredibly fast
- and powerful, but it is also incredibly easy to use.
-
- You may register IMPROCES with your Master Card or VISA. There are
- three ways to do this:
-
- 168
-
-
-
-
- Ted Gruber Software:
- VOICE: (702)735-1980 Monday - Friday, 10am - 5pm PST
-
- Software Excitement!:
- VOICE: (800)444-5457 24 hours a day.
-
- IMPORTANT: Be sure to *SPECIFY* that you want to order the *REGISTERED*
- version of IMPROCES. Software Excitement! is a shareware distributor
- and an authorized distributor of the shareware version of IMPROCES, so
- if you don't specify the registered version, they might send you a copy
- of the unregistered version!
-
- COMPUSERVE: Type GO SE to visit the Software Excitement! on-line store.
-
- Specify floppy disk format, 5 1/4" 360K or 3 1/2" 1.44 meg. Your card
- will be charged $25 ($35 outside of North America) and IMPROCES will be
- shipped as soon as possible.
-
- If you are using a check or money order, mail your registration to
- directly to the author of IMPROCES at: ($25, $35 outside of North
- America)
-
- John Wagner
- 6161 El Cajon Blvd, Suite B-246
- San Diego, CA 92115
-
- California residents, please add the appropriate sales tax. Outside of
- the United States and Canada, registration is $35. Please ensure that
- your check is in U.S. dollars, _DRAWN_ on a U.S. Bank.
-
-
- PAINT SHOP PRO
-
- PAINT SHOP PRO is a wonderful graphics utility that runs under WINDOWS.
- It does everything that GRAPHICS WORKSHOP and IMPROCES do (see above).
- PAINT SHOP PRO is available for $49 from:
-
- JASC, Inc.
- 17743 Evener Way
- Eden Prairie, MN 55346
- (612) 934-7117
-
-
-
-
-
-
-
-
-
-
-
-
- 169
-
-
-
-
- APPENDIX C: ANNUAL AGT CONTEST
-
-
- Each year, Softworks sponsors an annual contest for the best computer
- text adventure game developed using the Adventure Game Toolkit (AGT).
-
- The Annual Adventure Game Toolkit game writing contest offers a grand
- prize of $100 for the best game submitted. Additional prizes may be
- added if the judges decide that more than one entry is outstanding.
- game writers, including the contest winner(s), will also retain all
- rights to their games.
-
- "The main purpose of this contest is to encourage people to share the
- games they've written using the Adventure Game Toolkit," said Mark
- Welch, one of two co-authors of the program. "A lot of people start to
- write a game, and spend quite a few hours on it, but stop before they
- really finished the game, or before it's really playable," said Welch.
- "We are hoping that the contest will inspire people to create
- full-featured, playable games that can be enjoyed by other adventure
- game fans."
-
-
- PREVIOUS CONTESTS
-
- Softworks has sponsored three prior adventure game writing contests.
- The winner of the first contest was "Alice" written by Douglas Asherman
- of Oakland, California. Alice put the player in the role of Alice in
- Wonderland, meeting many of the same characters described in Lewis
- Carroll's 19th-century book while also adding some humorous 20th-century
- perspective.
-
- The 1988 contest winner was "A Dudley Dilemma" by Lane Barrow, a Ph.D
- candidate at Harvard. In this game, the player assumes the role of a
- Harvard student in his/her quest for knowledge, adventure and a diploma.
- Along the way, the player experiences a student sit-in and meets
- panhandlers, MIT students and other bizarre characters roaming Harvard
- Square.
-
- "Son of Stagefright" by Mike McCauley was the 1989 winner. In this
- game, you play the role of an actor (or actress) trying to get out of an
- old, abandoned theater. This is an adventure game in three "Acts",
- where each Act has a different theme and a different challenge. The
- game is fun(ny), frightening and very clever.
-
- "Crime to the Ninth Power" by Patrick Farley was the 1990 contest
- winner. In this game, the player helps Cliff Diver, a San Francisco
- private investigator escape from the deadly milieu of the Zamboni crime
- family's secret headquarters. Cliff Diver is cut from the same cloth as
- such famous PI's as Dashiell Hammett's Sam Spade and Raymond Chandler's
- Philip Marlowe.
-
-
-
- 170
-
-
-
-
- In 1991, the contest had two games that tied for 1st place: "CosmosServe
- -- An Adventure Game for the BBS-Enslaved" by Judith Pintar, and "The
- Multi-Dimensional Thief" by Joel Finch. In "CosmoServe," your world and
- your adventure are set inside a BBS (complete with sound effects for
- logging on, switching the computer ON and OFF, etc.) It is a very, very
- original, innovative and unusual game! In "The Multi-Dimensional
- Thief," you are a thief. Naturally, you aspire to join the largest and
- most prestigious of organized thieving bodies, the Multi-Dimensional
- Thieves' Guild. All you have to do is pass a simple test -- escape from
- a specially prepared set of rooms which have been "borrowed" from other
- universes and filled with strange items -- including the infamous
- "portable hole." This game is filled with wonderful puzzles and will
- remind you of Infocom's finest.
-
-
- CONTEST DETAILS
-
- To be eligible for the contest, entries must be designed using the
- Adventure Game Toolkit, and must not have been publicly released before
- January 1st of the contest year. Contest entries must be postmarked by
- December 31st of the contest year and received by Softworks no later
- than January 15 of the following year. For example, the 1993 contest
- will consider games written between January 1, 1993 and December 31,
- 1993 and received by Softworks no later than January 15, 1994.
-
- Judging begins approximately February 1st and the winner is announced in
- the spring following the contest year. The judges consider each game's
- originality, cleverness, fiendishness, humor, raw cunning and
- professionalism in arriving at their decision about the contest's
- winner.
-
- Entries must be submitted on disks for the IBM PC (or compatible
- computer), or for the Apple Macintosh, the Amiga or for the Atari ST
- computer. AGT source code for the game must be provided, but will not
- be publicly disclosed without the consent of the author. In addition to
- the AGT source code, each entry must be accompanied by a game "walk-
- thru" or solution to be used by the contest judges. A map of the game
- would also be very helpful, but is not required.
-
- No purchase or fee is required to enter. Game authors need not be
- registered users of AGT to enter the contest. Game writers, including
- the contest winner(s), will also retain all rights to their games --
- including the right to copyright and sell their games -- if they wish.
- However, it is "customary" for the contest game authors to allow their
- games' source code to be distributed (to registered AGT user only) -- if
- their games are judged as one of the "Best of the Contest."
-
-
-
-
-
-
-
- 171
-
-
-
-
- APPENDIX D: ABOUT THE AUTHOR
-
-
- David Malmberg has been active in the world of personal computer since
- 1977. He is the author or co-author of seven published software
- products. His most recent software product is P-ROBOTS, which is also
- available from Softworks.
-
- His most successful products were the Turtle Graphics series published
- by HESware. These two programs have sold over 80,000 copies world-wide,
- were translated into Spanish, and won two Consumer Electronic Software
- Showcase awards as some of the best software of 1983. These programs
- are widely used in schools to teach computer literacy to children and
- other computer novices.
-
- Dave has also published numerous articles and programs in various
- computer magazines. He has been a Contributing Editor of both
- COMPUTE!'s HOME & EDUCATIONAL COMPUTING and MICRO magazines. He was one
- of the principal authors of COMPUTE!'s FIRST BOOK OF VIC, the best
- selling computer book of 1983. He has written regular columns on
- educational uses of computers and on LOGO for COMMODORE and POWER/PLAY
- magazines.
-
-
-
- June 1993
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 172
-
-