home *** CD-ROM | disk | FTP | other *** search
/ Fatal Distractions! / fataldistractions.bin / appndxa / masters / mast-doc.pt1 < prev    next >
Text File  |  1993-06-13  |  150KB  |  3,590 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.                               THE MASTER'S EDITION
  13.  
  14.                                        OF
  15.  
  16.                            THE ADVENTURE GAME TOOLKIT
  17.  
  18.                                      Version 1.5
  19.  
  20.  
  21.                                        BY
  22.  
  23.                                 DAVID R. MALMBERG
  24.  
  25.  
  26.                        Based on a program by Mark J. Welch
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.                                   Published by:
  42.  
  43.                                     Softworks
  44.                                 43064 Via Moraga
  45.                                 Mission San Jose
  46.                                    California
  47.                                       94539
  48.  
  49.                                  (510) 659-0533
  50.  
  51.  
  52.  
  53.  
  54.    COPYRIGHT, TRADEMARKS AND WARRANTY
  55.  
  56.  
  57.    COPYRIGHT:
  58.    The Adventure Game Toolkit is a copyrighted work, just like a book.  It is
  59.    protected by United States copyright law and by applicable international
  60.    treaty provisions.  All text, program, and source code files on disk(s) are
  61.    copyright 1987, 1988, 1989, 1990, 1991, 1992 and 1993 by Mark J. Welch and
  62.    David R. Malmberg.  Portions of the manual and source code are copyright
  63.    1985 and 1986 by Mark J. Welch.
  64.  
  65.  
  66.    TRADEMARKS:
  67.    "Adventure Game Toolkit", "AGT" and "Master's Edition" are trademarks of
  68.    Mark J. Welch and David R. Malmberg.
  69.  
  70.  
  71.    WARRANTY:
  72.    The program disk(s) and printed manual are warranted to be free from
  73.    defects in materials and workmanship for a period of 90 days from the date
  74.    of purchase.  In the event of a defect, registered users of AGT may obtain
  75.    a replacement copy of the program disk(s) and/or manual from Softworks. 
  76.    The remedy for any breach of warranty shall be limited to replacement or
  77.    refund and shall not encompass any other damages, including but not limited
  78.    to loss of profit, special, incidental, consequential, or other similar
  79.    claims.
  80.  
  81.  
  82.    DISCLAIMER:
  83.    THE ADVENTURE GAME TOOLKIT (AGT) COMES WITH NO OTHER WARRANTIES OF ANY
  84.    KIND, INCLUDING WARRANTY OF MERCHANTABILITY OR OF FITNESS FOR A PARTICULAR
  85.    PURPOSE. THE ADVENTURE GAME TOOLKIT (AGT) IS AVAILABLE AS IS. IN NO EVENT
  86.    WILL THE AUTHORS BE LIABLE FOR DAMAGES, INCLUDING ANY LOST PROFITS OR
  87.    INCIDENTAL AND CONSEQUENTIAL DAMAGES, EVEN IF THE AUTHORS HAVE BEEN ADVISED
  88.    OF THE POSSIBILITY OF SUCH DAMAGES.
  89.  
  90.  
  91.    Softworks is a member of the Association of Shareware Professionals -- your
  92.    guarantee of quality in shareware software.
  93.  
  94.                              ┌─────────┐
  95.                        ┌─────┴───┐     │   MEMBER
  96.                     ───│         │O    │───────────────────
  97.                        │   ┌─────┴╨──┐ │   Association of 
  98.                        │   │         ├─┘   Shareware      
  99.                        └───┤    O    │     Professionals  
  100.                     ───────│    ║    │─────────────────────
  101.                            └────╨────┘
  102.  
  103.  
  104.  
  105.  
  106.  
  107.                                         2
  108.  
  109.  
  110.  
  111.  
  112.    QUICK START
  113.  
  114.  
  115.    THE FILES ON THE DISK(S)
  116.  
  117.    On the disk(s) included with this documentation are a number of files. 
  118.    Specifically, the disk(s) have the Adventure Game Toolkit's MCOMPILE and
  119.    MRUN programs, a number of sample adventure game source files, some
  120.    "utility" programs, the latest documentation, and one or more "README"
  121.    files. 
  122.  
  123.    However, all of these files (except the README files) on the disk(s) are in
  124.    a "compressed" form.  By doing this, we were able to put the equivalent of
  125.    twenty 360K disks worth of material on only six 360K disks.  The IBM files
  126.    have been "ZIPped."  However, the means to "uncompress" your files has also
  127.    been included on your disks.  To learn how to do this, simply run or browse
  128.    the README file.  This file will explain in detail what steps you should
  129.    follow to create an "uncompressed", fully-useable version of the Adventure
  130.    Game Toolkit (AGT).
  131.  
  132.  
  133.    CREATING A PLAYABLE VERSION OF ONE OF THE SAMPLE GAMES
  134.  
  135.    To create a playable version of one of the sample adventure games on your
  136.    disk you will first need to MCOMPILE the game's source files and then RUN
  137.    the compiled game using AGT's MCOMPILE and MRUN programs.  The detailed
  138.    steps needed to do this for an IBM or compatible computer are described in
  139.    a section of the manual beginning on page 17.
  140.  
  141.  
  142.    CREATING YOUR OWN ADVENTURE GAME
  143.  
  144.    When creating your source data files for your own AGT game, you must use a
  145.    text editor (Qedit is highly recommended!) or word processor which creates
  146.    plain ASCII or TEXT files with a true carriage return at the end of each
  147.    line.  Lines longer than 80 characters, WordStar or WordPerfect document
  148.    files, will cause AGT to abort!  The best rule-of-thumb is to use the
  149.    MS-DOS "TYPE" command to view the file.  If it looks normal, it's probably
  150.    OK for AGT.  If words split at the end of the line and strange characters
  151.    appear, it's probably not OK for AGT.
  152.  
  153.    Obviously, you will need to know what to put into your AGT source files in
  154.    order to create your own adventure game.  Unfortunately, there is no "quick
  155.    start" for doing this -- other than reading the documentation.  If you are
  156.    anxious to start your own adventure game and want to read as little as
  157.    possible to get started, read sections 1 and 2 of the manual.  These
  158.    sections should tell you enough to get you started.  However, read the
  159.    other sections of the manual later or you will really miss out on
  160.    discovering just how much power AGT can give you to creating truly
  161.    professional level, world-class games.
  162.  
  163.  
  164.  
  165.                                         3
  166.  
  167.  
  168.  
  169.  
  170.    SECTIONS OF THE MANUAL
  171.  
  172.    PART 1 gives an overview of the Adventure Game Toolkit, the various files
  173.    on the disk(s), and explains how to play the adventure games created by the
  174.    AGT.
  175.  
  176.    PART 2 gives a number of pointers on how to create a good adventure game. 
  177.    It also explains the way AGT defines an adventure game in terms of files
  178.    and game data elements like Rooms, Nouns, and Creatures and gives several
  179.    examples of each.
  180.  
  181.    PART 3 explains the use of AGT's unique meta-language and how it can be
  182.    used to create Professional Level adventure games.  Numerous examples are
  183.    given.
  184.  
  185.    PART 4 gives several detailed scenarios where meta-language commands have
  186.    been used to create typical adventure games situations, like random attacks
  187.    by other characters, and how to expand the game's vocabulary to include new
  188.    verbs and actions.
  189.  
  190.    PART 5 gives a number of helpful "secret" commands for "debugging" your
  191.    game once you have a first draft.
  192.  
  193.    PART 6 shows how to (at your option) incorporate graphic illustrations into
  194.    your game.
  195.  
  196.    PART 7 shows how to (at your option) incorporate music and sound effects
  197.    that use the PC's internal speaker or Adlib or SoundBlaster (or compatible)
  198.    files into your game.
  199.  
  200.    PART 8 shows a variety of the "new and improved" features to be found in
  201.    the Master's Edition (that are not available in the Classic Edition).
  202.  
  203.    The final part of the manual is a series of Appendices that give detailed
  204.    information on a number of specific AGT topics for easy reference.
  205.  
  206.  
  207.    HARDWARE REQUIREMENTS FOR AGT
  208.  
  209.    The games created by the Master's Edition of the Adventure Game Toolkit
  210.    requires an IBM-compatible computer with at least 512K of memory, MS-DOS
  211.    2.1, and a hard disk drive.  You may use any kind of monitor and AGT will
  212.    automatically adjust its output to best suit your monitor.  However, when
  213.    viewing illustrations (or pictures) you must have a graphics display.  An
  214.    EGA or VGA display is recommended.
  215.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221.  
  222.  
  223.                                         4
  224.  
  225.  
  226.  
  227.  
  228.    DIFFERENCES BETWEEN THE CLASSIC AND THE MASTER'S EDITIONS
  229.  
  230.  
  231.    The "Classic Edition" (i.e., the normal/old/regular version) of AGT is very
  232.    simple to use and can be used by programming novices or even by
  233.    non-programmer's to create very professional text adventures similar to
  234.    those from firms like Infocom.  Versions of the Classic Edition are
  235.    available for IBM, Macintosh, Atari ST and Amiga computers and games
  236.    created on any of these computers can be re-compiled and played on any of
  237.    the other computers.  The Classic Edition is still supported and available
  238.    from Softworks as Shareware for only $20 (or $40 including a 223 page
  239.    printed manual with lots and lots of detailed examples).
  240.  
  241.    The "Master's Edition" contains all the features and capabilities of the
  242.    "Classic Edition" plus a whole lot more.  It is totally compatible with the
  243.    Classic Edition and games originally developed for the Classic Edition can 
  244.    be easily converted to and used with the Master's Edition.  The Master's
  245.    Edition is available only for IBM (or compatible) computers.  The Master's
  246.    Edition is aimed at the more sophisticated and experienced programmer/game
  247.    designer.  
  248.  
  249.    The Master's Edition has a number of "new and improved" features not found
  250.    in the Classic Edition -- including:
  251.  
  252.         o    Bigger games; approximately twice as large as "Classic" games,
  253.              e.g., up to 300 rooms, 200 nouns, 900 messages, etc., and a
  254.              typical game can have a vocabulary of 1000 words or more.
  255.  
  256.         o    An OOPS feature that allows you to edit/correct your input
  257.              commands.
  258.  
  259.         o    Optional graphic illustrations using PCX formatted pictures for
  260.              display on CGA, EGA or VGA screens.  The PCX format is the most   
  261.              widely available of any picture format and is supported by most
  262.              PAINT and/or DRAW programs.  Plus -- a great deal of PCX
  263.              "clip-art" is available.
  264.  
  265.         o    Optional animation (*) using FLI files (produced by Autodesk
  266.              Animator, Animator Pro, 3D-Studio, PC-Animate, StrataVision 3D
  267.              and other animation packages) that can be displayed on VGA
  268.              screens (only).  The FLI format is the most widely used animation
  269.              format.  Plus -- a great deal of FLI animation "clip-art" is
  270.              available.
  271.  
  272.         o    Optional music and sound effects that can be played in the
  273.              "background" during the game.  These sound effects can either use
  274.              the PC's internal speaker or use an AdLib (*) or SoundBlaster (*)
  275.              (or compatible) "sound card" (if one is available).
  276.  
  277.         o    Optional user-definable "look-and-feel" interface including a
  278.              menu-driven player input option that displays feasible commands
  279.              for he player to pick from.
  280.  
  281.                                         5
  282.  
  283.  
  284.  
  285.  
  286.         o    Optional "pop-up" hints available when the <Alt> and <h> keys are 
  287.              pressed at the same time.
  288.  
  289.         o    Optional fonts (EGA and VGA monitors only) that can be changed to 
  290.              suit the needs of the game.  The Master's Edition comes with over
  291.              30 sample fonts including Old English, Scrawl, Computereze. 
  292.              Plus, a Font Editor is provided that allows you to create your
  293.              own unique fonts.
  294.  
  295.         o    Greatly enhanced question and answer capability (*) that makes
  296.              the Master's Edition ideal for computer-aided-instruction or
  297.              tutorial applications.
  298.  
  299.    (*)  New feature available with version 1.5 of the Master's Edition.
  300.  
  301.    The Master's Edition is totally compatible with the Classic Edition and
  302.    games originally developed for the Classic Edition can be easily converted
  303.    to (using a provided conversion utility) and used with the Master's
  304.    Edition.
  305.  
  306.    The Master's Edition is available only for IBM (or compatible) computers.
  307.    However, be warned: The Master's Edition is aimed at the more sophisticated
  308.    and experienced programmer/game designer!
  309.  
  310.    The Master's Edition is available from Softworks for only $50.  This price
  311.    includes the cost of six ZIPped disks with over 5 megabytes of goodies
  312.    including complete documentation on disk, a bunch of game creation
  313.    utilities, several brand new sample games including the complete AGT source
  314.    code to:
  315.  
  316.         o    HUMONGOUS CAVE (believed to be the largest text adventure game    
  317.              available on any microcomputer).  Based on the "Colossal Cave"    
  318.              adventure, but expanded to 1000 points, 300 locations, hundreds
  319.              of objects, elves and other creatures, treasures and puzzles.
  320.  
  321.         o    HURRY! HURRY! HURRY! -- an illustrated, musical text adventure
  322.              about a mystery in a traveling circus with all of the game's
  323.              related font, music, sound effects and pictures files.
  324.  
  325.         o    SHERLOCK HOLMES -- a very unusual, menu-driven adventure where
  326.              you play the famous detective and try to solve a total of 18
  327.              separate cases.  This adventure illustrates the Master's
  328.              Edition's vastly improved capability to handle questions and
  329.              answers.  HOLMES is new with version 1.5 of the Master's.
  330.  
  331.         o    BRAINSCAPE -- an adventure that takes place inside the brain
  332.              similar to the novels (and movie) by Isaac Asimov "Fantastic
  333.              Voyage" and "Fantastic Voyage II: Destination Brain".
  334.  
  335.         o    SQUYNCH -- a classic adventure in-the-style-of-Infocom in which
  336.              you challenge the evils and mysteries of the Land of Squynch.
  337.              Very clever!
  338.  
  339.                                         6
  340.  
  341.  
  342.  
  343.  
  344.         o    PORK -- a parody of the Infocom ZORK series of adventures.  If
  345.              you were frustrated by ZORK, play PORK and enjoy the sweet fruits
  346.              of revenge.
  347.  
  348.         o    ADVENTURELAND and PIRATE'S ADVENTURE -- two true classic games by 
  349.              Scott Adams converted to AGT.  See how a real master of the genre 
  350.              does his magic!
  351.  
  352.    Which version is right for you?  If you are a "power" gamer/programmer and
  353.    know that you can use (or need) the full power of the Master's Edition, 
  354.    then by all means -- get the Master's Edition.  If you have less experience
  355.    with programming or game design, then you should probably start with the
  356.    Classic Edition.  If you select the Classic Edition, you can always upgrade
  357.    later when you need the full power of the Master's Edition -- for a special
  358.    "registered AGT user" upgrade price of only $35.
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379.  
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391.  
  392.  
  393.  
  394.  
  395.  
  396.  
  397.                                         7
  398.  
  399.  
  400.  
  401.  
  402.                 ADVENTURE GAME TOOLKIT (AGT) REGISTRATION/ORDER FORM
  403.  
  404.    Remit to:  Softworks
  405.               43064 Via Moraga, Mission San Jose, California  94539-5748
  406.  
  407.    You can also order by phone using your Mastercard or VISA by dialing
  408.    (510) 659-0533, 6:00 PM to 9:00 PM., PST ONLY, Monday to Thursday
  409.                    9:00 AM to 5:00 PM., PST ONLY, Saturday and Sunday
  410.  
  411.    AGT Registration (Classic Edition).................... $ 20.00     $ ______
  412.        includes: (1) Notice of future AGT upgrades, new AGT Adventures and
  413.        related AGT products.  (2) Latest version of the programs, sample
  414.        Adventure game source files (CAVE, CRUSADE, UNDERGND, ALICE and
  415.        others), and summary documentation on disk.  Over one and half megabyte
  416.        of program and data files -- ZIPped on two disks.  (3) Telephone
  417.        support from 7 PM to 9 PM PST (M-Th) plus Weekends.  (4) The option to
  418.        upgrade to the Master's Edition of AGT at any time for only $ 35.
  419.  
  420.    Above with printed AGT manual (Classic Edition)....... $ 40.00     $ ______
  421.        includes: Above items plus printed manual (223 pages) with numerous
  422.        detailed examples on how to use the Adventure Game Toolkit to create
  423.        very professional and very clever Adventure games.  The printed AGT
  424.        manual has approximately 300% the amount of information as contained in
  425.        the summary disk documentation.
  426.  
  427.    Master's Edition AGT Purchase ........................ $ 50.00     $ ______
  428.        The Master's Edition of AGT is for the IBM only and is aimed at
  429.        more sophisticated programmers/game designers.  The package includes:
  430.        (1) Notice of future AGT upgrades, new AGT Adventures and related AGT
  431.        products.  (2) Latest version of the Master's Edition programs and
  432.        utilities, sample Adventure game source files (HUMONGOUS CAVE, HURRY,
  433.        PORK, SQUYNCH, PIRATE and others), and complete documentation on disk.
  434.        Over five megabyte of program and data files -- ZIPped on six disks.
  435.        (3) Telephone support from 7 PM to 9 PM PST (M-Th) plus Weekends.
  436.  
  437.        Orders are normally shipped by US mail at no additional charge.
  438.        For UPS ground shipment, please add $5.00......... $ 5.00      $ ______
  439.  
  440.        Shipments outside the United States are sent via Air Mail:
  441.          For shipments to Africa, Hong Kong, Japan, New Zealand
  442.             or Australia add ............................ $ 14.00     $ ______
  443.          For shipments to Canada or Mexico add........... $  6.00     $ ______
  444.          For shipments to Great Britain and Europe add... $ 10.00     $ ______
  445.          For shipments elsewhere outside the USA add..... $ 12.00     $ ______
  446.  
  447.                                                    Subtotal           $ ______
  448.  
  449.        (California residents please add 8.25% sales tax)      Tax     $ ______
  450.  
  451.               ******** U.S. Dollars ONLY!!! -------------->>> Total   $ ______
  452.  
  453.    Payment by:    ( ) Check    ( ) MasterCard    ( ) VISA    ( ) Cash
  454.  
  455.                                         8
  456.  
  457.  
  458.  
  459.  
  460.           ADVENTURE GAME TOOLKIT (AGT) REGISTRATION/ORDER FORM -- PAGE 2
  461.  
  462.  
  463.       Name: ____________________________________________________________
  464.  
  465.    Company: ____________________________________________________________
  466.  
  467.    Address: ____________________________________________________________
  468.  
  469.           : ____________________________________________________________
  470.  
  471.      City : ____________________________________________________________
  472.  
  473.      State: ___________________________ Zip:____________________________
  474.  
  475.    Country: ____________________________________________________________
  476.  
  477.    Day Phone: _________________________ Eve: ___________________________
  478.  
  479.     Card #: _________________________________ Exp. Date: _______________
  480.  
  481.    Signature of cardholder: ____________________________________________
  482.  
  483.    AGT Version/Disk Size desired:  ______ IBM 5 1/4  ______ IBM 3 1/2
  484.  
  485.    Disk density desired: ______ High  ______ Low
  486.  
  487.  
  488.    ------------------------ User comments ------------------------------
  489.  
  490.    I heard about the Adventure Game Toolkit (AGT) from
  491.         [ ] - Friend                      [ ] - Disk Vendor
  492.         [ ] - Computer Club               [ ] - Computer Store
  493.         [ ] - CompuServe                  [ ] - BIX
  494.         [ ] - Genie                       [ ] - Electronic Bulletin Board
  495.         [ ] - Other - Please Specify ________________________________
  496.  
  497.    We would also appreciate any input you would care to give concerning
  498.    AGT.  If you have any ideas or comments that would make AGT a better
  499.    system, then please let us know.
  500.  
  501.    We value your comments and/or suggestions:
  502.  
  503.    ____________________________________________________________________
  504.  
  505.    ____________________________________________________________________
  506.  
  507.    ____________________________________________________________________
  508.  
  509.    ____________________________________________________________________
  510.  
  511.    ____________________________________________________________________
  512.  
  513.                                         9
  514.  
  515.  
  516.  
  517.  
  518.    ADVENTURE GAME TOOLKIT PRODUCT/TECHNICAL SUPPORT
  519.  
  520.  
  521.    Softworks will make every reasonable effort to fix AGT bugs, and help
  522.    registered users by answering technical and other AGT related questions. 
  523.    This Product/Technical support for AGT is available to registered users
  524.    (only) in several forms:
  525.  
  526.         (1)  By telephone to David Malmberg at Softworks, Monday through
  527.              Thursday from 7:00 PM to 9:00 PM (Pacific Coast Time) at (510)
  528.              659-0533.  Or, on Saturday and Sunday from 9:00 AM to 5:00 PM
  529.              (PST).  Please respect these hours!!!
  530.  
  531.         (2)  By CompuServe E-Mail to David Malmberg, CompuServe ID 73435,1277.
  532.  
  533.         (3)  By Genie E-Mail to D.MALMBERG.
  534.  
  535.         (5)  By letter to:  Softworks
  536.                             43064 Via Moraga
  537.                             Mission San Jose, California
  538.                                            94539
  539.  
  540.              If you send disks or listings that you wish returned, be sure to
  541.              enclosed a self-addressed, stamped envelope (SASE) with
  542.              sufficient postage.  If you do not enclose a SASE, your material
  543.              will not be returned.
  544.  
  545.    Regardless of the method you use to solicit AGT support, if you are having
  546.    a problem and you can not get AGT to do what you think it should do, please
  547.    provide background information on the following:
  548.  
  549.         (1)  The version of AGT you are using.  The version number is
  550.              displayed on the title screen whenever you execute MCOMPILE or
  551.              MRUN.
  552.  
  553.         (2)  The computer system you are using.
  554.  
  555.         (3)  Your system's configuration, i.e., amount of RAM, number and type
  556.              of disk drives, the type of monitor you are using.
  557.  
  558.         (4)  Any memory resident programs you have installed at the same time
  559.              you are using AGT and a "rough idea" of what they do and how much
  560.              memory they take.
  561.  
  562.         (5)  Your problem, i.e., what is happening vs. what you think should
  563.              be happening.
  564.  
  565.  
  566.  
  567.  
  568.  
  569.  
  570.  
  571.                                        10
  572.  
  573.  
  574.  
  575.  
  576.  
  577.                                 TABLE OF CONTENTS
  578.  
  579.    COPYRIGHT, TRADEMARKS AND WARRANTY  . . . . . . . . . . . . . . . . . .   2
  580.  
  581.    QUICK START . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   3
  582.         THE FILES ON THE DISK(S) . . . . . . . . . . . . . . . . . . . . .   3
  583.         CREATING A PLAYABLE VERSION OF ONE OF THE SAMPLE GAMES . . . . . .   3
  584.         CREATING YOUR OWN ADVENTURE GAME . . . . . . . . . . . . . . . . .   3
  585.         SECTIONS OF THE MANUAL . . . . . . . . . . . . . . . . . . . . . .   4
  586.         HARDWARE REQUIREMENTS FOR AGT  . . . . . . . . . . . . . . . . . .   4
  587.  
  588.    DIFFERENCES BETWEEN THE CLASSIC AND THE MASTER'S EDITIONS . . . . . . .   5
  589.  
  590.    ADVENTURE GAME TOOLKIT (AGT) REGISTRATION/ORDER FORM  . . . . . . . . .   8
  591.  
  592.    ADVENTURE GAME TOOLKIT PRODUCT/TECHNICAL SUPPORT  . . . . . . . . . . .  10
  593.  
  594.    PART 1:  INTRODUCTION . . . . . . . . . . . . . . . . . . . . . . . . .  15
  595.         FEATURES OF THE MASTER'S EDITION OF THE ADVENTURE GAME TOOLKIT . .  15
  596.         QUICK START FOR CREATING A READY-TO-PLAY GAME  . . . . . . . . . .  17
  597.         MASTER'S EDITION AGT FILES . . . . . . . . . . . . . . . . . . . .  19
  598.         ADDITIONAL GAMES AVAILABLE . . . . . . . . . . . . . . . . . . . .  19
  599.         HOW TO PLAY THE ADVENTURE GAME(S) PROVIDED WITH AGT  . . . . . . .  20
  600.              VOCABULARY  . . . . . . . . . . . . . . . . . . . . . . . . .  20
  601.              STANDARD LEVEL VERBS  . . . . . . . . . . . . . . . . . . . .  22
  602.              SOME GENERAL COMMENTS ABOUT COMMANDS  . . . . . . . . . . . .  23
  603.              ABBREVIATIONS AND SPECIAL KEYS  . . . . . . . . . . . . . . .  23
  604.              RE-DEFINABLE FUNCTION KEYS  . . . . . . . . . . . . . . . . .  24
  605.              NEW INPUT "EDITOR" WITH "OOPS" FEATURE  . . . . . . . . . . .  24
  606.              SPECIAL WORDS . . . . . . . . . . . . . . . . . . . . . . . .  25
  607.              NOUNS . . . . . . . . . . . . . . . . . . . . . . . . . . . .  25
  608.              NOISE WORDS . . . . . . . . . . . . . . . . . . . . . . . . .  26
  609.              PREPOSITIONAL PHRASES . . . . . . . . . . . . . . . . . . . .  26
  610.              COMMAND LINE OPTIONS  . . . . . . . . . . . . . . . . . . . .  26
  611.  
  612.    PART 2:  HOW TO WRITE AN ADVENTURE GAME . . . . . . . . . . . . . . . .  27
  613.         INTRODUCTION: WHY SHOULD I WRITE MY OWN ADVENTURE GAME?  . . . . .  27
  614.         HOW AN AGT ADVENTURE GAME WORKS  . . . . . . . . . . . . . . . . .  27
  615.              AN OVERVIEW . . . . . . . . . . . . . . . . . . . . . . . . .  27
  616.         THE "MECHANICS" OF WRITING YOUR GAME FILES . . . . . . . . . . . .  29
  617.              LABELS AND AGTLABEL . . . . . . . . . . . . . . . . . . . . .  29
  618.              LABEL DEFINITIONS . . . . . . . . . . . . . . . . . . . . . .  30
  619.              STANDARD LEVEL GAME FILES . . . . . . . . . . . . . . . . . .  31
  620.              TITLE FILES . . . . . . . . . . . . . . . . . . . . . . . . .  31
  621.              SETTING SCREEN COLORS . . . . . . . . . . . . . . . . . . . .  32
  622.              INSTRUCTIONS FILES  . . . . . . . . . . . . . . . . . . . . .  33
  623.              THE WORK-HORSE .AGT FILE  . . . . . . . . . . . . . . . . . .  33
  624.         ROOMS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  34
  625.              HELP MESSAGES . . . . . . . . . . . . . . . . . . . . . . . .  36
  626.         NOUNS  . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  36
  627.              TEXT  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  38
  628.  
  629.                                        11
  630.  
  631.  
  632.  
  633.  
  634.              MULTIPLE NOUNS WITH THE SAME NAME . . . . . . . . . . . . . .  39
  635.              PUSH, PULL, TURN, AND PLAY DESCRIPTIONS . . . . . . . . . . .  39
  636.              EATING, DRINKING, AND DYING . . . . . . . . . . . . . . . . .  40
  637.              WEIGHT AND SIZE . . . . . . . . . . . . . . . . . . . . . . .  41
  638.              LIGHT AND DARKNESS  . . . . . . . . . . . . . . . . . . . . .  41
  639.         CREATURES  . . . . . . . . . . . . . . . . . . . . . . . . . . . .  41
  640.              TALK AND ASK MESSAGES . . . . . . . . . . . . . . . . . . . .  44
  641.              GROUPS OF CREATURES . . . . . . . . . . . . . . . . . . . . .  44
  642.         SPECIALS . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  45
  643.              "SPECIAL" SPECIALS  . . . . . . . . . . . . . . . . . . . . .  46
  644.         CREATING A TYPICAL ROOM  . . . . . . . . . . . . . . . . . . . . .  48
  645.         "INVISIBLE" NOUNS  . . . . . . . . . . . . . . . . . . . . . . . .  51
  646.         SCORING  . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  53
  647.         OTHER DATA ITEMS IN THE .AGT FILE  . . . . . . . . . . . . . . . .  53
  648.              INTRODUCTION or INTRO TEXT  . . . . . . . . . . . . . . . . .  53
  649.              STARTING ROOM . . . . . . . . . . . . . . . . . . . . . . . .  53
  650.              RESURRECTION_ROOM . . . . . . . . . . . . . . . . . . . . . .  54
  651.              MAX_LIVES . . . . . . . . . . . . . . . . . . . . . . . . . .  54
  652.              TREASURE ROOM . . . . . . . . . . . . . . . . . . . . . . . .  54
  653.              VERB SYNONYMS . . . . . . . . . . . . . . . . . . . . . . . .  54
  654.                   WARNING  . . . . . . . . . . . . . . . . . . . . . . . .  55
  655.              PLAYER_DEAD . . . . . . . . . . . . . . . . . . . . . . . . .  55
  656.              GAME_WIN  . . . . . . . . . . . . . . . . . . . . . . . . . .  56
  657.              GAME_END  . . . . . . . . . . . . . . . . . . . . . . . . . .  56
  658.         PAGE PAUSES  . . . . . . . . . . . . . . . . . . . . . . . . . . .  57
  659.         ORDER OF DEFINITIONS . . . . . . . . . . . . . . . . . . . . . . .  57
  660.         HOW TO INCLUDE COMMENTS IN YOUR AGT DATA FILES . . . . . . . . . .  57
  661.         CREATING A FINAL COMPILED VERSION  . . . . . . . . . . . . . . . .  59
  662.  
  663.    PART 3:  USING META-COMMANDS IN PROFESSIONAL LEVEL ADVENTURE GAMES  . .  60
  664.         CUSTOM USER-DEFINED VERBS  . . . . . . . . . . . . . . . . . . . .  60
  665.         MAXIMUM_SCORE  . . . . . . . . . . . . . . . . . . . . . . . . . .  62
  666.         MESSAGES . . . . . . . . . . . . . . . . . . . . . . . . . . . . .  62
  667.         A TYPICAL GAME TURN  . . . . . . . . . . . . . . . . . . . . . . .  63
  668.         "ANY" META-COMMANDS  . . . . . . . . . . . . . . . . . . . . . . .  64
  669.         META-COMMANDS FOR SPECIFIC WORDS . . . . . . . . . . . . . . . . .  66
  670.         "AFTER" META-COMMANDS  . . . . . . . . . . . . . . . . . . . . . .  66
  671.         THE FORMAT OF META-COMMANDS  . . . . . . . . . . . . . . . . . . .  67
  672.         PRINTING SHORT MESSAGES FROM META-COMMANDS . . . . . . . . . . . .  70
  673.         MULTI-LINE SHORT-CUT MESSAGES  . . . . . . . . . . . . . . . . . .  71
  674.         META-COMMANDS CONDITIONAL TESTS  . . . . . . . . . . . . . . . . .  72
  675.              PLAYER CONDITIONS . . . . . . . . . . . . . . . . . . . . . .  73
  676.              ITEM(S) CONDITIONS  . . . . . . . . . . . . . . . . . . . . .  74
  677.              NOUN CONDITIONS   . . . . . . . . . . . . . . . . . . . . . .  75
  678.              MISCELLANEOUS CONDITIONS  . . . . . . . . . . . . . . . . . .  77
  679.         TEXT MACROS  . . . . . . . . . . . . . . . . . . . . . . . . . . .  78
  680.         MACRO NESTING AND RECURSION  . . . . . . . . . . . . . . . . . . .  80
  681.         MULTIPLE SOURCE FILES  . . . . . . . . . . . . . . . . . . . . . .  81
  682.         OTHER MCOMPILE KEYWORDS  . . . . . . . . . . . . . . . . . . . . .  83
  683.         DELIMITER CHARACTERS . . . . . . . . . . . . . . . . . . . . . . .  83
  684.         META-COMMANDS ACTION TOKENS  . . . . . . . . . . . . . . . . . . .  84
  685.              PLAYER ACTION TOKENS  . . . . . . . . . . . . . . . . . . . .  84
  686.  
  687.                                        12
  688.  
  689.  
  690.  
  691.  
  692.              A WORD OF WARNING . . . . . . . . . . . . . . . . . . . . . .  84
  693.              ITEM/NOUN/LOCATION ACTION TOKENS  . . . . . . . . . . . . . .  85
  694.              MISCELLANEOUS ACTION TOKENS . . . . . . . . . . . . . . . . .  86
  695.         SPECIAL META-COMMAND SITUATIONS  . . . . . . . . . . . . . . . . .  87
  696.              FLAGS . . . . . . . . . . . . . . . . . . . . . . . . . . . .  88
  697.              DEBUG FLAG  . . . . . . . . . . . . . . . . . . . . . . . . .  88
  698.              COUNTERS  . . . . . . . . . . . . . . . . . . . . . . . . . .  88
  699.              VARIABLES . . . . . . . . . . . . . . . . . . . . . . . . . .  89
  700.              NUMBER INPUT  . . . . . . . . . . . . . . . . . . . . . . . .  93
  701.              ASKING AND ANSWERING QUESTIONS  . . . . . . . . . . . . . . .  94
  702.              DEALING WITH MULTIPLE NOUNS WITH THE SAME NAME  . . . . . . .  95
  703.              HANDLING THE CONTENTS OF VARIOUS THINGS . . . . . . . . . . .  96
  704.              OPENING AND CLOSING PASSAGEWAYS BETWEEN ROOMS . . . . . . . .  97
  705.         META-COMMAND REDIRECTION . . . . . . . . . . . . . . . . . . . . .  98
  706.         ORGANIZATION OF META-COMMANDS IN THE .AGT FILE . . . . . . . . . . 104
  707.  
  708.    PART 4:  SAMPLE AGT META-COMMAND SCENARIOS  . . . . . . . . . . . . . . 108
  709.         SCENARIO 1: "FIND" VERB ACTIONS  . . . . . . . . . . . . . . . . . 108
  710.         SCENARIO 2: RANDOM ACTIVITIES BY GUARD . . . . . . . . . . . . . . 110
  711.         SCENARIO 3: INTERACTION WITH OTHER CHARACTERS  . . . . . . . . . . 117
  712.  
  713.    PART 5:  "DEBUGGING" YOUR ADVENTURE . . . . . . . . . . . . . . . . . . 125
  714.  
  715.    PART 6:  OPTIONAL GRAPHIC ILLUSTRATIONS . . . . . . . . . . . . . . . . 127
  716.         GRAPHIC CONVERSION UTILITIES . . . . . . . . . . . . . . . . . . . 127
  717.         SCREEN DISPLAY AND FILE EXTENSION OPTIONS  . . . . . . . . . . . . 127
  718.         ANIMATION DISPLAYS . . . . . . . . . . . . . . . . . . . . . . . . 128
  719.         UTILITY VIEWER . . . . . . . . . . . . . . . . . . . . . . . . . . 129
  720.         ROOM, NOUN AND CREATURE PICTURES OR ANIMATIONS . . . . . . . . . . 129
  721.         MULTIPLE ROOM PICTURES AND ANIMATIONS  . . . . . . . . . . . . . . 131
  722.         META-COMMANDS AND PICTURES . . . . . . . . . . . . . . . . . . . . 132
  723.  
  724.    PART 7:  OPTIONAL MUSIC AND SOUND EFFECTS . . . . . . . . . . . . . . . 135
  725.         SOUND CONVERSION UTILITIES . . . . . . . . . . . . . . . . . . . . 135
  726.         ADLIB AND SOUNDBLASTER SUPPORT . . . . . . . . . . . . . . . . . . 136
  727.         USING SOUND AND MUSIC  . . . . . . . . . . . . . . . . . . . . . . 136
  728.         IMPORTANT NOTE ABOUT SOUND AND MUSIC . . . . . . . . . . . . . . . 137
  729.  
  730.    PART 8:  OTHER NEW FEATURES UNIQUE TO MASTER'S EDITION  . . . . . . . . 139
  731.         CUSTOMIZEABLE "DEFAULT" MESSAGES . . . . . . . . . . . . . . . . . 139
  732.         CUSTOMIZEABLE USER INTERFACE . . . . . . . . . . . . . . . . . . . 140
  733.         ADAPTING YOUR GAME FOR THE "MENU-DRIVEN" PLAYER INPUT  . . . . . . 141
  734.         INITIAL DESCRIPTIONS FOR ROOMS, NOUNS AND CREATURES  . . . . . . . 147
  735.              NOUN INITIAL DESCRIPTIONS . . . . . . . . . . . . . . . . . . 147
  736.              CREATURE INITIAL DESCRIPTIONS . . . . . . . . . . . . . . . . 148
  737.              ROOM INITIAL DESCRIPTIONS . . . . . . . . . . . . . . . . . . 149
  738.         SETTING COLORS WITHIN MESSAGES AND DESCRIPTIONS  . . . . . . . . . 153
  739.         "ILLEGAL" DIRECTION MESSAGES . . . . . . . . . . . . . . . . . . . 154
  740.         CUSTOM FONTS . . . . . . . . . . . . . . . . . . . . . . . . . . . 155
  741.         NOTIFY COMMAND . . . . . . . . . . . . . . . . . . . . . . . . . . 155
  742.         USER SPECIFIED "STRINGS" . . . . . . . . . . . . . . . . . . . . . 156
  743.          . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157
  744.  
  745.                                        13
  746.  
  747.  
  748.  
  749.  
  750.         OTHER NEW META-COMMAND TOKENS  . . . . . . . . . . . . . . . . . . 159
  751.         SUMMARY OF ALL NEW MASTER'S EDITION META-COMMAND TOKENS  . . . . . 161
  752.  
  753.    APPENDIX A:  AGT ERROR MESSAGES . . . . . . . . . . . . . . . . . . . . 165
  754.         ERRORS DURING GAME COMPILATION . . . . . . . . . . . . . . . . . . 165
  755.         ERRORS DURING RESTORING GAME . . . . . . . . . . . . . . . . . . . 165
  756.         ERRORS DURING GAME PLAY  . . . . . . . . . . . . . . . . . . . . . 165
  757.         TURBO PASCAL RUN-TIME ERRORS . . . . . . . . . . . . . . . . . . . 166
  758.  
  759.    APPENDIX B:  RECOMMENDED SHAREWARE UTILITIES  . . . . . . . . . . . . . 167
  760.         PIANOMAN 4.0 . . . . . . . . . . . . . . . . . . . . . . . . . . . 167
  761.         MELODY MASTER  . . . . . . . . . . . . . . . . . . . . . . . . . . 167
  762.         GRAPHIC WORKSHOP . . . . . . . . . . . . . . . . . . . . . . . . . 168
  763.         IMPROCES . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 168
  764.         PAINT SHOP PRO . . . . . . . . . . . . . . . . . . . . . . . . . . 169
  765.  
  766.    APPENDIX C:  ANNUAL AGT CONTEST . . . . . . . . . . . . . . . . . . . . 170
  767.  
  768.    APPENDIX D:  ABOUT THE AUTHOR . . . . . . . . . . . . . . . . . . . . . 172
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.  
  802.  
  803.                                        14
  804.  
  805.  
  806.  
  807.  
  808.    PART 1:  INTRODUCTION
  809.  
  810.  
  811.    The Adventure Game Toolkit is designed to allow you to create and play your
  812.    own text adventure games.  Once created, your adventure games can be shared
  813.    with and enjoyed by others -- even if they do not have a copy of the
  814.    Adventure Game Toolkit themselves.
  815.  
  816.    The Adventure Game Toolkit (AGT) began life as a program by Mark Welch
  817.    called the Generic Adventure Game System (GAGS).  Using GAGS it was
  818.    possible for the non-programmer to develop complete adventure games using a
  819.    fixed (but relatively large) vocabulary of action verbs.  David Malmberg
  820.    took GAGS and made a number of enhancements including the ability to
  821.    customize the vocabulary and to program complex conditional tests and a
  822.    rich assortment of actions and messages using a special meta-language
  823.    (designed specifically for adventure games).  The current Adventure Game
  824.    Toolkit combines the best features of both approaches to enable the user to
  825.    create two distinct levels of adventure games:
  826.  
  827.         (1)  Standard Level games that require no programming experience
  828.              (honestly!), only a fertile imagination.  These Standard Level
  829.              games follow the original GAGS format and only require that the
  830.              user generate the game using a word processor or text editor to
  831.              describe the various locations, objects and results of actions
  832.              that collectively make up the game.
  833.  
  834.         (2)  Professional Level games that also make use of the special
  835.              adventure game meta-language to create games as complex and rich
  836.              as the game designer's imagination and prose style will allow. 
  837.              These games should be technically comparable with the published
  838.              text adventure games from firms like Infocom.
  839.  
  840.  
  841.    FEATURES OF THE MASTER'S EDITION OF THE ADVENTURE GAME TOOLKIT
  842.  
  843.    The Master's Edition of AGT has a number of features that make it a very
  844.    comprehensive adventure product.  These features make the Master's Edition
  845.    more powerful, more professional and easier to use than any previously
  846.    available Adventure Game development system.  Some of these key features
  847.    are:
  848.  
  849.         POWERFUL
  850.  
  851.              *    Big, complex games with up to 300 locations, 200 inanimate
  852.                   objects (e.g., treasures, swords, lakes, trees, books, etc.)
  853.                   and 200 animate objects (e.g., people, animals or
  854.                   creatures).
  855.  
  856.              *    Large standard vocabulary with potential to define many more
  857.                   words unique to a specific adventure.  Typical games can
  858.                   have a vocabulary of 1000 words or more.
  859.  
  860.  
  861.                                        15
  862.  
  863.  
  864.  
  865.  
  866.              *    Sophisticated parser that can understand (1) complex input
  867.                   commands including pronouns (IT, HIM, HER, THEM, MY and
  868.                   ITS), and (2) compound commands separated by AND or THEN or
  869.                   punctuation symbols, and (3) commands addressed to
  870.                   characters within the game.  Here are a few examples of
  871.                   commands AGT can handle with ease:
  872.  
  873.                        GET THE FLASH LIGHT AND THEN SWITCH IT ON
  874.                        DROP THE FOOD, THE KEY AND THE BOTTLE THEN UNLOCK THE
  875.                           DOOR WITH THE BRASS KEY AND THEN LEAVE
  876.                        PUT ON THE CLOAK, THEN EXAMINE IT; READ ITS LABEL
  877.                        PLACE THE GREEN ROCK AND THE SMALL PEBBLE BEHIND
  878.                           THE TREE
  879.                        ENTER THE HOUSE; GET ALL; EXIT; SOUTH; SOUTH THEN DOWN
  880.                        SULU, SET A COURSE FOR ALPHA 14
  881.                        SCOTTY, BEAM DOWN A TRICORDER AND THE QWERTY MODULE
  882.  
  883.              *    Special, English-like meta-language (especially developed
  884.                   for writing Adventure games) that gives the game designer
  885.                   total control and flexibility in the development of his/her
  886.                   games.
  887.  
  888.  
  889.         PROFESSIONAL
  890.  
  891.              *    "Look and feel" of Infocom adventure games with similar
  892.                   screen layout and standard vocabulary and routines.
  893.  
  894.              *    Optional graphic illustrations using PCX formatted pictures
  895.                   or FLI file animation -- if the player's display can support
  896.                   it.
  897.  
  898.              *    Optional fonts (EGA and VGA monitors only) that can be
  899.                   changed to suit the needs of the game.
  900.  
  901.              *    Optional music and sound effects that can be played in the 
  902.                   background during the game.  These sound effects can use the
  903.                   PC's  internal speaker or Adlib or SoundBlaster cards.
  904.  
  905.              *    Optional user-definable "look-and-feel" interface including
  906.                   a menu-driven player input option that displays feasible
  907.                   commands from which the player can pick.
  908.  
  909.              *    Optional "pop-up" hints available when the <Alt> and <h>
  910.                   keys are pressed at the same time.
  911.  
  912.              *    Automatic screen adaptation to use either a color or a mono-
  913.                   chrome monitor.  Color combinations may be specified by the
  914.                   game designer or by the player during the game.
  915.  
  916.              *    Predefined function and cursor keys to input frequently used
  917.                   commands and move directions.
  918.  
  919.                                        16
  920.  
  921.  
  922.  
  923.  
  924.              *    SCRIPT and UNSCRIPT commands to echo game output to printer.
  925.  
  926.         EASY-TO-USE
  927.  
  928.              *    Large library of completed games that can be enjoyed simply
  929.                   as great entertainment or used as a platform by the game
  930.                   designer to build upon and/or learn from.
  931.  
  932.              *    Professionally written documentation totalling over 200
  933.                   pages.  Has numerous examples that unveil the "secrets" of
  934.                   great adventure writers.
  935.  
  936.  
  937.    QUICK START FOR CREATING A READY-TO-PLAY GAME
  938.  
  939.    If you've never played an adventure game before, the best way to start to
  940.    understand how an adventure game works is to play one.  Before you can do
  941.    that, however, there are a few things you should do first to protect your
  942.    disk(s) and to create the final version of the game from the source files
  943.    on the disk(s).
  944.  
  945.    Let's make a playable copy of SQUYNCH (one of the games provided as part of
  946.    the Master's Edition package).  
  947.  
  948.    NOTE:  You would follow exactly the same steps to make a ready-to-play
  949.    version of any of the other games provided with the Master's Edition.  For
  950.    example, if you want to make a playable copy of the game HUMONGOUS CAVE,
  951.    just substitute the word "HUGHCAVE" wherever you see the word "SQUYNCH"
  952.    below.
  953.  
  954.    1.   First, make a copy of the original disk(s) and put them in a safe
  955.         place.  That way, if you accidentally damage the disk(s) you're
  956.         playing with, you can still re-copy the original(s).  Check your DOS
  957.         manual for the correct form of the COPY or DISKCOPY command that is
  958.         appropriate for your particular system.
  959.  
  960.    2.   If there is a file on the disk(s) called READ.ME, read that file
  961.         before going further.  These files will have information on changes
  962.         and/or features that have been made after the documentation was
  963.         created.
  964.  
  965.    3.   Create a new subdirectory (named SQUYNCH) on your hard disk by giving
  966.         the DOS command MD\SQUYNCH
  967.  
  968.    4.   Copy the following files to your new subdirectory from the Master's
  969.         Edition disks: AGTFILES.ZIP, SQUYNCH.ZIP and PKUNZIP.EXE by giving the
  970.         following DOS commands:
  971.  
  972.         COPY A:AGTFILES.ZIP C:\SQUYNCH
  973.  
  974.         COPY A:SQUYNCH.ZIP C:\SQUYNCH
  975.  
  976.  
  977.                                        17
  978.  
  979.  
  980.  
  981.  
  982.         COPY A:PKUNZIP.EXE C:\SQUYNCH
  983.  
  984.         The above commands assume your floppy drive is drive A: and your hard
  985.         drive is drive C:.  Change these letters as appropriate for your
  986.         drives.
  987.  
  988.    5.   Switch to the SQUYNCH subdirectory on the C: drive by giving the
  989.         following DOS commands:
  990.  
  991.         C:             <-- Switches you to the C: drive
  992.  
  993.         CD\SQUYNCH     <-- Switches you to the SQUYNCH subdirectory
  994.  
  995.    6.   "Unzip" the ZIP files by giving the following DOS commands:
  996.  
  997.         PKUNZIP AGTFILES.ZIP
  998.  
  999.         PKUNZIP SQUYNCH.ZIP
  1000.  
  1001.    7.   Now you are ready to actually compile the game by giving the DOS
  1002.         command:
  1003.  
  1004.         MCOMPILE SQUYNCH
  1005.  
  1006.         This will cause the MCOMPILE program to read your game source file,
  1007.         SQUYNCH.AGT, and create a number of intermediate files, SQUYNCH.DAT,
  1008.         SQUYNCH.MSG, SQUYNCH.CMD, etc.  You must have enough space available
  1009.         on your hard disk for these files to be created.  Two megabytes of
  1010.         free space before you begin to compile a game is recommended.
  1011.         If the compile of the game is successful, you will hear a loud "beep"
  1012.         at the end of the process and MCOMPILE will erase the intermediate
  1013.         files (SQUYNCH.DAT, SQUYNCH.MSG, SQUYNCH.CMD, etc.) from your hard
  1014.         disk -- since they are no longer needed.
  1015.  
  1016.    8.   The files needed JUST TO PLAY the SQUYNCH game are:
  1017.  
  1018.         MRUN.EXE       <-- The "Run-Time Engine" for all Master's games
  1019.         SQUYNCH.TTL    <-- The SQUYNCH title file
  1020.         SQUYNCH.INS    <-- The SQUYNCH instructions file
  1021.         SQUYNCH.VOC    <-- The SQUYNCH vocabulary file
  1022.         SQUYNCH.BAT    <-- The SQUYNCH batch file
  1023.         SQUYNCH.D$$    <-- A SQUYNCH game data file
  1024.         SQUYNCH.DA1    <-- A SQUYNCH game data file
  1025.         SQUYNCH.DA2    <-- A SQUYNCH game data file
  1026.         SQUYNCH.DA3    <-- A SQUYNCH game data file
  1027.         SQUYNCH.DA4    <-- A SQUYNCH game data file
  1028.         SQUYNCH.DA5    <-- A SQUYNCH game data file
  1029.         SQUYNCH.DA6    <-- A SQUYNCH game data file
  1030.  
  1031.         And optionally -- the SQUYNCH.SOL file, the solution to the game.
  1032.  
  1033.         These files may be copied to a "floppy" disk or another directory on
  1034.  
  1035.                                        18
  1036.  
  1037.  
  1038.  
  1039.  
  1040.         your hard disk as the "finished" game that is ready-to-play by giving
  1041.         the DOS command SQUYNCH.
  1042.  
  1043.    9.   You will be left with a number of files in your SQUYNCH directory that
  1044.         are unnecessary to play the finished SQUYNCH game.  These files
  1045.         include: 
  1046.  
  1047.         SQUYNCH.ZIP    <-- The SQUYNCH zip file containing the source code
  1048.         AGTFILES.ZIP   <-- The AGT zip file containing various files
  1049.         ORDERFRM.AGT   <-- The AGT order form
  1050.         AGT.STD        <-- The AGT "standard" default message file
  1051.         IRUN.STD       <-- The AGT "first-person" default message file
  1052.         STDDEFS.AGT    <-- The AGT "standard" DEFINEs file
  1053.         MCOMPILE.EXE   <-- The AGT game compiler
  1054.         AGT.VOC        <-- The AGT "standard" default vocabulary file
  1055.         PKUNZIP.EXE    <-- The "unzipper" utility
  1056.         SQUYNCH.AGT    <-- The SQUYNCH source code file
  1057.         SQUYNCH.SOL    <-- The SQUYNCH solution or "Walk-Thru" file
  1058.  
  1059.         If all you wanted to do was create a playable version of SQUYNCH, all
  1060.         of these files may be deleted.  However, if you want to build your own
  1061.         new game using SQUYNCH as your starting "platform," then keep these
  1062.         files in the subdirectory until you have finished your new SQUYNCH
  1063.         game.
  1064.  
  1065.  
  1066.    MASTER'S EDITION AGT FILES
  1067.  
  1068.    Included on the disk(s) are numerous files.  If there is a file on the
  1069.    disk(s) called READ.ME, read that file before going further.  That file
  1070.    will have "late-breaking news" as well as information about all of the
  1071.    files that make up the Master's Edition.
  1072.  
  1073.  
  1074.    ADDITIONAL GAMES AVAILABLE
  1075.  
  1076.    If you would like additional games, you should be aware of our annual
  1077.    contest.  Softworks sponsors an annual Adventure Game writing contest and
  1078.    makes the AGT source code available for the winning games.  All registered
  1079.    users will received a "flyer" describing the winning games and how they can
  1080.    get copies.  This flyer is normally sent once a year in June when the
  1081.    contest judging has been completed and the winners selected.
  1082.  
  1083.    Incidently, see Appendix C on page 170 for details on how you can enter
  1084.    your game in the current AGT game writing contest.
  1085.  
  1086.  
  1087.  
  1088.  
  1089.  
  1090.  
  1091.  
  1092.  
  1093.                                        19
  1094.  
  1095.  
  1096.  
  1097.  
  1098.    HOW TO PLAY THE ADVENTURE GAME(S) PROVIDED WITH AGT
  1099.  
  1100.  
  1101.    VOCABULARY
  1102.  
  1103.    The Adventure Game Toolkit creates adventure games that understand a wide
  1104.    variety of commands.  A typical AGT game might have a vocabulary totalling
  1105.    1000 words or more.
  1106.  
  1107.    Your game's commands should generally be in the format:
  1108.  
  1109.         <verb phrase> <(multiple) noun phrase(s)> <preposition> <noun
  1110.         phrase/object>
  1111.  
  1112.    Verb phrases can consist of a simple verb like EAT, SHOOT, READ or a verb
  1113.    followed by a preposition such as CLIMB UP, JUMP THROUGH, or SWIM IN.  Noun
  1114.    (or object) phrases can consist of a single word noun like TREE, ROCK, LAKE
  1115.    or a noun and its adjective such as RED ROCK, SMALL BOWL or UGLY MUTANT. 
  1116.    Several nouns may be connected with AND's or commas.  Articles like A, AN
  1117.    or THE are optional.  The personal pronouns MY and ITS are also optional. 
  1118.    The pronouns IT, THEM, HIM and HER may be used to refer to a previously
  1119.    mentioned noun.
  1120.  
  1121.    Here are some (hypothetical) examples of valid commands:
  1122.  
  1123.              PLACE A RED ROCK IN THE SMALL BOWL
  1124.              PUT THE GREEN ROCK AND THE SMALL PEBBLE BEHIND THE OAK TREE
  1125.              READ MY POETRY BOOK
  1126.              SWIM IN THE SWIMMING POOL
  1127.              EXAMINE THE GOLD RING, THE DWARF AND THE SILVER NECKLACE
  1128.              EAT THE CELERY, THE TUNA, THE APPLE AND THE ONION
  1129.              THROW THE BATTLE AXE AND THE LARGE ROCK AT THE WEREWOLF
  1130.              SHOOT THE BURGLAR WITH THE REVOLVER
  1131.              ATTACK HIM
  1132.                ("HIM" will refer to last noun mentioned, e.g., the burglar)
  1133.              FIRE THE LASER PISTOL AT THE ALIEN MUTANT
  1134.              GET THE BOOK (also: TAKE THE BOOK)
  1135.              READ IT
  1136.                ("IT" will refer to last noun mentioned, e.g., the book)
  1137.              GET ALL (will get everything movable at the current location)
  1138.              GET THE KEYS, BOTTLE, FOOD AND THE CLOAK
  1139.              EXAMINE THE KEYS, BOTTLE, FOOD AND CLOAK
  1140.              PUSH THE RED BUTTON AND THE GREEN BUTTON
  1141.              UNLOCK THE FILE CABINET WITH THE STEEL KEY
  1142.              JUMP THROUGH THE OPENING
  1143.              JUMP OVER THE LOG
  1144.              NORTH
  1145.              SOUTHWEST
  1146.              PLACE AN AXE AND THE SHIELD NEXT TO THE BIG TREE
  1147.              PUT THE FOOD ON THE KITCHEN TABLE
  1148.              TURN ON THE FLASHLIGHT
  1149.              LIGHT THE TORCH WITH THE WOODEN MATCHES
  1150.  
  1151.                                        20
  1152.  
  1153.  
  1154.  
  1155.  
  1156.              SCREAM AT THE UGLY TROLL
  1157.              CLIMB UP THE LADDER
  1158.              EXTINGUISH THE FIRE (or PUT OUT THE FIRE)
  1159.              DRINK THE WHITE WINE
  1160.              THROW THE FIRE WOOD IN THE STOVE
  1161.              PULL THE BELL CORD
  1162.              WEAR THE STUPID HAT (also: PUT ON THE STUPID HAT)
  1163.              TAKE OFF THE HAT (also: REMOVE THE HAT)
  1164.              NE (for NORTHEAST)
  1165.              DROP THE KEY AND THE BOTTLE
  1166.              ENTER THE CAVE
  1167.              XYZZY (i.e., a "magic" word)
  1168.              TURN THE DOORKNOB
  1169.              PLAY WITH THE DOG
  1170.              TALK TO (or TALK WITH) THE OLD MAN (ABOUT THE WEATHER)
  1171.              TELL JEFF ABOUT THE SWORD
  1172.              ASK JODIE ABOUT THE CRIME
  1173.  
  1174.    Compound commands can be created by connecting single commands (like those
  1175.    above) with "AND", "THEN" or the punctuation symbols "," or ";" to connect
  1176.    two or more separate commands.  However, "end-of-sentence" punctuation
  1177.    symbols like ".", "!" and "?" should not be used.  Below are a few examples
  1178.    of valid compound commands:
  1179.  
  1180.              TURN THE DOORKNOB; OPEN THE DOOR THEN ENTER THE ROOM
  1181.              CLIMB DOWN THE LADDER THEN SOUTH, WEST AND NORTHWEST
  1182.              GET THE CLOAK AND THEN EXAMINE IT; READ THE LABEL
  1183.              DROP THE FOOD AND THE BOTTLE THEN UNLOCK THE DOOR AND THEN LEAVE
  1184.              GET THE TORCH, LIGHT IT WITH THE WOODEN MATCHES THEN EXAMINE IT
  1185.  
  1186.    AGT's parser also allows you to give commands to other characters in the
  1187.    game like these:
  1188.  
  1189.              SULU, SET A COURSE FOR ALPHA 14
  1190.              SCOTTY, BEAM DOWN A TRICORDER AND THE QWERTY MODULE
  1191.              HELMSMAN, RAISE THE DEFLECTOR SHIELDS
  1192.              BONES, COME TO THE BRIDGE
  1193.  
  1194.    The comma after the character's name is optional.
  1195.  
  1196.    One point of advice about command structure is in order.  Your commands
  1197.    should be structured to follow the most "natural" sequence of words when
  1198.    two or more sequences are possible.  For example, THROW THE GOLDEN EGGS TO
  1199.    THE TROLL will be understood by the AGT parser, whereas THROW TROLL THE
  1200.    EGGS will not be understood -- even though it is understandable to most
  1201.    humans as equivalent.  Similarly, you should avoid the verb "USE", such as
  1202.    USE THE KEY TO UNLOCK THE DOOR.  This command should be entered simply as
  1203.    UNLOCK THE DOOR WITH THE KEY. 
  1204.  
  1205.    NOTE:  Player's input commands will be shown in all caps throughout this
  1206.    document.
  1207.  
  1208.  
  1209.                                        21
  1210.  
  1211.  
  1212.  
  1213.  
  1214.    STANDARD LEVEL VERBS
  1215.  
  1216.    Standard level games have a fixed set of verbs -- although these may all be
  1217.    supplemented by additional synonyms.  Professional level games have all of
  1218.    the standard level verbs plus they can have additional verbs that are
  1219.    defined uniquely for each game.  The standard level verbs and the form of
  1220.    their commands are shown below:
  1221.  
  1222.    Meanings of notation:
  1223.         [required word]
  1224.         {optional word}
  1225.         | (means OR, i.e., alternative words)
  1226.  
  1227.         Verbs that do not require nouns
  1228.         ===============================
  1229.               N,S,E,W,NE,NW,SE,SW,U,D,
  1230.               NORTH,SOUTH,EAST,WEST,NORTHEAST,NORTHWEST,SOUTHEAST,             
  1231.                 SOUTHWEST,UP,DOWN
  1232.               ENTER | GO [IN | INTO]
  1233.               EXIT | LEAVE  (* directions *)
  1234.  
  1235.               SCORE  (* display score and status *)
  1236.               QUIT | Q  (* end game *)
  1237.               INVENTORY | I  (* list things player is carrying and wearing *)
  1238.               SCREAM | SHOUT | YELL  (* make noise *)
  1239.               WAIT  (* waste a turn *)
  1240.               BRIEF | VERBOSE  (* change description mode *)
  1241.               L | LOOK  (* repeat full description *)
  1242.               SAVE | RESTORE {GAME}  (* save and restore game status *)
  1243.               HELP | H  (* ask for help *)
  1244.               AGAIN | G (* repeat last command entered *)
  1245.               SCRIPT  (* echo all output to both printer (LP1:) and screen *)
  1246.               UNSCRIPT  (* send all output to screen only *)
  1247.  
  1248.         Verbs that require nouns (and perhaps objects)
  1249.         ==============================================
  1250.               LIST | SHOW [EXITS]  (* list visible exits *)
  1251.               THROW | CAST | DUMP [noun]
  1252.                  {[AT | TO | IN | INTO | ACROSS | INSIDE] [noun]}
  1253.               ATTACK | KILL | FIGHT | HIT [creature] {[WITH] [noun]}
  1254.               DROP | PUT DOWN [noun | ALL]
  1255.               GET | TAKE | PICK UP [noun | ALL]
  1256.               OPEN [noun] {[WITH] [noun]}
  1257.               CLOSE | SHUT [noun]
  1258.               LOCK [noun] {[WITH] [noun]}
  1259.               UNLOCK [noun] {[WITH] [noun]}
  1260.               EXAMINE | CHECK | INSPECT | LOOK AT | LOOK IN [noun]
  1261.               READ [noun]
  1262.               EAT [noun]
  1263.               DRINK [noun]
  1264.               PUT | PLACE [noun]
  1265.                  [IN | WITH | INSIDE | INTO | NEAR | BEHIND |
  1266.  
  1267.                                        22
  1268.  
  1269.  
  1270.  
  1271.  
  1272.                   BESIDE | ON | UNDER] [noun]
  1273.               PUSH | TOUCH [noun] {[WITH] [noun]}
  1274.               TURN [noun] {ON | OFF}
  1275.               TURN {ON | OFF} [noun]
  1276.               PULL [noun]
  1277.               PLAY {WITH} [noun]
  1278.               LIGHT [noun]
  1279.               EXTINGUISH | PUT OUT [noun]  (* synonym is "EXT" *)
  1280.               SHOOT | FIRE [noun] [AT] [creature]
  1281.               SHOOT | FIRE [creature] [WITH] [noun]
  1282.               PUT ON | WEAR [noun | ALL]
  1283.               TAKE OFF | REMOVE [noun | ALL]
  1284.               ASK [creature] [ABOUT] [noun]
  1285.               TALK [TO | WITH] [creature] {[ABOUT] [noun]}
  1286.               TELL [creature] [ABOUT] [noun]
  1287.  
  1288.  
  1289.    SOME GENERAL COMMENTS ABOUT COMMANDS
  1290.  
  1291.    Figuring out what words work in a game is part of the "challenge" of some
  1292.    adventure games.  The usual directions are understood by AGT games (N, S,
  1293.    E, W, NE, NW, SE, SW, UP, and DOWN; in some cases, ENTER or EXIT might also
  1294.    be appropriate).  Other events might also cause you to change location: if
  1295.    you detonate a nuclear warhead, for example, you'll likely be immediately
  1296.    transported somewhere far, far away.
  1297.  
  1298.    You can try to TAKE or GET most things that are in a room with you; you
  1299.    should EXAMINE or LOOK AT most visible nouns as well, whether or not you
  1300.    are carrying them.  You can DROP or THROW anything you're carrying.  Eating
  1301.    and drinking are often permitted, but eating strange things is usually
  1302.    dangerous.  If something seems to be closed or locked, you can try to open
  1303.    or unlock it -- but it may require some special kind of key.
  1304.  
  1305.    There's no penalty for incorrect words: if the game doesn't understand a
  1306.    word, it gives you another chance and doesn't count the invalid input as a
  1307.    turn.
  1308.  
  1309.    If you try to do something foolish like EAT THE CHAIR or GET THE BUILDING,
  1310.    the game will give you an appropriate response like "Eat the chair?  You
  1311.    must be kidding!" or "The building can not be taken".
  1312.  
  1313.  
  1314.    ABBREVIATIONS AND SPECIAL KEYS
  1315.  
  1316.    All of the directions can be abbreviated by using one or two key letters.  
  1317.    For example, N for NORTH, SW for SOUTHWEST, U for UP, etc.  You can also 
  1318.    abbreviate EXAMINE as EX (e.g., EX BOOK).  To turn out a light, you can 
  1319.    EXTINGUISH it, and EXTINGUISH can be abbreviated as EXT (e.g., EXT LAMP). 
  1320.    Other acceptable abbreviation are L for LOOK, I for INVENTORY, G for AGAIN,
  1321.    H for HELP and Q for QUIT.
  1322.  
  1323.  
  1324.  
  1325.                                        23
  1326.  
  1327.  
  1328.  
  1329.  
  1330.    It is also possible to use the function keys and the cursor keys (in
  1331.    combination with the Alt key) in lieu of many frequently used commands and
  1332.    directions as follows:
  1333.  
  1334.              F1  --  GET                  Alt-Up Arrow  --  NORTH
  1335.              F2  --  DROP                 Alt-Down Arrow  --  SOUTH
  1336.              F3  --  EXAMINE              Alt-Right Arrow  --  EAST
  1337.              F4  --  READ                 Alt-Left Arrow  --  WEST
  1338.              F5  --  OPEN                 Alt-Home  --  NORTHWEST
  1339.              F6  --  CLOSE                Alt-End  --  SOUTHWEST
  1340.              F7  --  INVENTORY            Alt-Pg Up  --  NORTHEAST
  1341.              F8  --  LOOK                 Alt-Pg Dn  --  SOUTHEAST
  1342.              F9  --  SCORE                Alt-Gray "-" Key -- UP
  1343.              F10  --  HELP                Alt-Gray "+" Key -- DOWN
  1344.                                           Alt-Ins -- ENTER
  1345.                                           Alt-Del -- EXIT
  1346.  
  1347.    If at any time during the game the player needs to be reminded of what the
  1348.    function and cursor keys stand for, hitting the ? key followed by <ENTER>
  1349.    will produce a diagram of what each cursor and function key means.
  1350.  
  1351.  
  1352.    RE-DEFINABLE FUNCTION KEYS
  1353.  
  1354.    As explained above, the function keys have been predefined to stand for
  1355.    several of the most frequently used commands.  Now, by giving the command
  1356.    DEFINE, you may re-define any of the function keys to give any input
  1357.    command you wish.  For example, in a game you might find it useful to
  1358.    re-define one of the function keys to give the command KILL ORC WITH AXE or
  1359.    GIVE CANDY TO BABY.
  1360.  
  1361.    Hitting the '?' key (during the game) will display a diagram of keys and
  1362.    their current definitions.
  1363.  
  1364.  
  1365.    NEW INPUT "EDITOR" WITH "OOPS" FEATURE
  1366.  
  1367.    The Master's Edition of AGT has a much improved input command editor than
  1368.    that found as part of the Classic Edition.  Now it is possible to edit
  1369.    (using the cursor keys, and the delete, insert and backspace keys) either
  1370.    the command you are currently entering or your previous command.  For
  1371.    example, if you are entering a command and you notice that you have typed
  1372.    THORW ROPE by mistake, you can use the left arrow key to move the cursor
  1373.    over to the mistake and correct it to THROW ROPE.
  1374.  
  1375.    Also, there is now an OOPS command that will allow you to recall and edit
  1376.    your previous command.
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.                                        24
  1384.  
  1385.  
  1386.  
  1387.  
  1388.    SPECIAL WORDS
  1389.  
  1390.    Certain words have special meanings to AGT games.  SCORE will let you see
  1391.    how much progress you've made and will give you an idea how much of the
  1392.    game you've seen so far.  QUIT will permit you to stop the game and return
  1393.    to DOS.  SAVE will allow you to save the current game status, and RESTORE
  1394.    will restore a previously-saved game.  AGAIN (or its abbreviation G) will
  1395.    cause the game to respond as if the previous command had been entered
  1396.    again.
  1397.  
  1398.    In addition, AGT also allows the use of SCRIPT to echo all of the game's
  1399.    output to your printer (as well as the screen).  UNSCRIPT may be used to
  1400.    turn off the printer output.
  1401.  
  1402.    As you move around through the game, you'll notice that the game provides a
  1403.    long text description of each room only when you first enter the room.  To
  1404.    see the full description again, type LOOK or L or hit the F8 function key. 
  1405.    The game doesn't keep these long text descriptions in memory, but instead
  1406.    reads them from disk each time it needs them.  If you don't like this
  1407.    delay, you can suppress the long text by using the BRIEF command.  VERBOSE
  1408.    will bring them back.
  1409.  
  1410.    Further, in AGT it is possible to issue commands for HELP or alternatively
  1411.    hit the F10 key.  Be warned, however, that some game designers might feel
  1412.    that the situation does not deserve any help or, worse yet, some deviate
  1413.    designers might actually give the player a hint that is a little
  1414.    misleading.
  1415.  
  1416.  
  1417.    NOUNS
  1418.  
  1419.    While the list of verbs is generally similar from game to game, all the
  1420.    nouns change every time.  One game might be filled with weapons and
  1421.    creatures, while another might contain many keys and locks.  Most nouns are
  1422.    unique: you probably won't find more than one "gold key," but you might
  1423.    find a "brass key," an "access card," and an "entry pass."  The game only
  1424.    understands an adjective if it is correctly followed by the matching noun:
  1425.    if TAKE RED FLUTE is valid, the game will not try to guess what you meant
  1426.    by TAKE RED or TAKE RED INSTRUMENT or TAKE THE RED ONE.  It will accept
  1427.    TAKE FLUTE, but not TAKE BLUE FLUTE.
  1428.  
  1429.    With some verbs, nouns are optional.  For example, NORTH is quite clear by
  1430.    itself, and any "valid" words following it will be ignored completely.  EAT
  1431.    needs a noun of some kind, preferably an edible one.  And some things may
  1432.    not be possible unless you specify a tool: UNLOCK PADLOCK may not be
  1433.    acceptable, while UNLOCK THE PADLOCK WITH THE BRASS KEY may work fine.
  1434.  
  1435.  
  1436.  
  1437.  
  1438.  
  1439.  
  1440.  
  1441.                                        25
  1442.  
  1443.  
  1444.  
  1445.  
  1446.    NOISE WORDS
  1447.  
  1448.    The words "THE", "MY", "ITS", "A" and "AN" are ignored; so are friendly
  1449.    words like "PLEASE" and "NOW."  This way, PLEASE PUT A RED ROSE AND MY NOTE
  1450.    ON THE SMALL TABLE NOW can be understood, while the game may be quite
  1451.    confused by PLEASE YOUR MOTHER.
  1452.  
  1453.  
  1454.    PREPOSITIONAL PHRASES
  1455.  
  1456.    In some cases, the preposition need not be followed by an object (TURN THE
  1457.    GAS STOVE ON is fine), but often the game will be puzzled unless you
  1458.    provide one.  For example, UNLOCK THE PADLOCK WITH or PLACE THE BOOK BESIDE
  1459.    just won't do.
  1460.  
  1461.  
  1462.    COMMAND LINE OPTIONS
  1463.  
  1464.    In order to accommodate as many hardware systems as possible, it is
  1465.    possible to enter a "/B" option on the command line that invokes your
  1466.    adventure game.  This causes the game to use the BIOS for all output,
  1467.    rather than writing directly to the screen memory locations (which is
  1468.    considerably faster and AGT's default mode of operation).  Some clones may
  1469.    require this option.  Also, some multi-tasking environments (specifically,
  1470.    DESQview) need this option to allow an AGT game to run in its own "window". 
  1471.    If you find that an AGT game causes strange behavior on your screen, you
  1472.    should try this option.  For example, to play the game QUEST using this
  1473.    option, you would start the game from the DOS prompt with "MRUN QUEST /B".
  1474.  
  1475.    There is one additional command line option available.  If you wish the
  1476.    player's input to be in lower case, rather than AGT's default mode of upper
  1477.    case, use the option "/L".  For example, to play CAVE with lower case
  1478.    player input, start the game from the DOS prompt with "MRUN CAVE /L".
  1479.  
  1480.  
  1481.  
  1482.  
  1483.  
  1484.  
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492.  
  1493.  
  1494.  
  1495.  
  1496.  
  1497.  
  1498.  
  1499.                                        26
  1500.  
  1501.  
  1502.  
  1503.  
  1504.    PART 2:  HOW TO WRITE AN ADVENTURE GAME
  1505.  
  1506.                            
  1507.    INTRODUCTION: WHY SHOULD I WRITE MY OWN ADVENTURE GAME?
  1508.  
  1509.    Here are a few good reasons:
  1510.  
  1511.         *    Imagine your office as an adventure game.  Imagine the wonderful
  1512.              descriptions you could provide for your co-workers' offices, the
  1513.              analogies you could make for the delivery people, and the
  1514.              thinly-veiled insults of your boss you could include.  If such an
  1515.              adventure game scenario were written in reasonable taste, it
  1516.              could serve as a well-deserved diversion on a Friday afternoon. 
  1517.              Of course, if it's written in poor taste, and your insults aren't
  1518.              veiled enough, it could be your last Friday.
  1519.  
  1520.         *    Maybe you are trying to teach someone something.  Perhaps you
  1521.              want them to learn about computers.  Maybe you want to guide them
  1522.              through many screens of tutorials.  If you could write the text
  1523.              as an adventure game, and make learning a game, the game players
  1524.              might learn faster and even have fun doing it.  An excellent
  1525.              example of this is a series of spreadsheet templates called
  1526.              Templates of Doom which has introduced Lotus 1-2-3 (in the guise
  1527.              of an adventure game) to thousands of new spreadsheet users. 
  1528.              Another excellent example is a game entitled Brainscape which
  1529.              teaches the anatomy of the human brain by letting the player (who
  1530.              has been reduced to microscopic size) explore the various
  1531.              "locations" of the brain in search of human growth hormone and
  1532.              other "treasures" -- so the he can be restored to normal size.
  1533.  
  1534.         *    Or maybe you're well-equipped with a great imagination and you
  1535.              want to develop a game that will rival the ones you've bought in
  1536.              stores or played with friends.  Perhaps this is your chance to
  1537.              prove your fiction-writing abilities.
  1538.  
  1539.         *    Or last, but not least, because writing adventures is even more
  1540.              fun than playing them.
  1541.  
  1542.  
  1543.    HOW AN AGT ADVENTURE GAME WORKS
  1544.  
  1545.  
  1546.    AN OVERVIEW
  1547.  
  1548.    When a player begins to play an AGT game, the first thing the program does
  1549.    is look on the disk for a title file (indicated by a .TTL file extension),
  1550.    which should contain the name of the game, the author's name, and perhaps a
  1551.    copyright statement.  Each line in the file is displayed centered on the
  1552.    screen.
  1553.  
  1554.    AGT also posts its copyright notice just below the game writer's title
  1555.    information.  If, for some reason, there is no file with a .TTL extension,
  1556.  
  1557.                                        27
  1558.  
  1559.  
  1560.  
  1561.  
  1562.    the AGT copyright information is displayed by itself.  The title screen,
  1563.    with the author's information and AGT's, stays on the screen while the
  1564.    program initializes all its data arrays and records and reads the various
  1565.    compiled data file.
  1566.  
  1567.    If the game's .AGT file contains some text preceded by the keywords INTRO
  1568.    or INTRODUCTION and ended with the keyword END_INTRO, that text is
  1569.    displayed at the beginning of the game.  It cannot be re-read during the
  1570.    game.
  1571.  
  1572.    In addition to the INTRO section of the .AGT file, there can also be an
  1573.    instruction file with a .INS extension.  If such a file exists for the
  1574.    adventure being played, before actual play begins AGT will ask the player
  1575.    if he/she would like instructions.  If the answer if yes, this file will be
  1576.    displayed.
  1577.  
  1578.    Once all the data has been read and the player has had an opportunity to
  1579.    read the game's instructions (if any), the program puts the player into the
  1580.    game's starting location.  AGT then prints the long text description for
  1581.    the starting location and the player is asked what to do.
  1582.  
  1583.    Each time the player types in a command and <ENTER>, the program sends the
  1584.    input line to the "parse" module.  The parser takes the input line, breaks
  1585.    it into separate words, and tries to locate an addressee (if the command is
  1586.    being directed to another character), a verb, a noun, a preposition, and
  1587.    another noun as the object of the preposition.  It does this by eliminating
  1588.    extra words like "THE" and "PLEASE"; and by checking and then eliminating
  1589.    adjectives.  It returns up to five words: addressee, verb, noun,
  1590.    preposition, and an object of the preposition.  (If any of these elements
  1591.    is missing, the "empty string" ('') is returned in its place.)
  1592.  
  1593.    If an invalid word is found by the parser, it informs the user, indicating
  1594.    what part of speech AGT expected and which specific input command word it
  1595.    didn't recognize.  Otherwise, the program then calls the execute module;
  1596.    this section selects a procedure to call based on the verb (THROW, TAKE,
  1597.    EAT, MOVE, etc.).  Depending on the procedure's own checking, the noun,
  1598.    preposition and object might be rejected as invalid or, in some cases,
  1599.    ignored partly or completely and an appropriate "error" message will be
  1600.    given  For example, "EAT CASTLE" would typically cause the "error" message:
  1601.    "It is impossible to eat the castle."
  1602.  
  1603.    There are two ways a player can be moved to a new room.  One is by
  1604.    specifically trying to do so.  Moving east is generally accomplished by
  1605.    typing EAST or E or hitting the Right Arrow cursor key.  If the player
  1606.    tries to move in a direction that is not allowed, AGT will inform him that
  1607.    such a move is impossible.
  1608.  
  1609.    The other way to move is by meeting a set of special requirements that the
  1610.    game's author has defined as a "special."  The special might be defined, in
  1611.    plain language, as "if the player is in the sauna, and he turns the faucet,
  1612.    then move him to another room X."  That other room X might be anything. 
  1613.    One possibility is that it may be a room with a similar or identical
  1614.  
  1615.                                        28
  1616.  
  1617.  
  1618.  
  1619.  
  1620.    description, but with a new exit or without an old one.  It might even be
  1621.    the same room, but by executing the "special," the program displays several
  1622.    lines of text.
  1623.  
  1624.    In this case, the special text might be "You turn on the faucet, and
  1625.    scalding hot water pours onto your feet.  You scream in agony and kick the
  1626.    faucet, which is turned off."  If the author was cruel, the "special" here
  1627.    might move the player to a new room called "hell" and be told "As you turn
  1628.    the faucet, scalding hot water pours out onto your legs.  You scream in
  1629.    agony, but the faucet won't shut off.  In minutes, you are scalded to
  1630.    death.  You awaken in purgatory, where Satan tells you that your punishment
  1631.    for killing the lizard (something the player did earlier to get here) will
  1632.    be boiling in oil for eternity."  The new room description would describe a
  1633.    vat of boiling oil, provide no exits, and include the keyword GAME_END to
  1634.    end the game.
  1635.  
  1636.    For relatively simple adventure games (i.e., Standard Level games),
  1637.    "Specials" are the way you do almost anything unusual.  Of course, a
  1638.    special can be used to move a player to a new room (i.e., TOUCH MIRROR
  1639.    might cause the player to fall through the looking-glass and into a new
  1640.    room).  But specials also allow a room to be "changed" in the player's view
  1641.    -- this is accomplished by actually moving the player to a new, but similar
  1642.    room.  If you want an airlock to close one door and open another, you use a
  1643.    "special" which moves the player to a 'new' airlock with a different exit. 
  1644.    If you want a player to 'teleport,' you use a special.  If you want to
  1645.    player to be surprised by some action but not moved (i.e., PLAY STEREO
  1646.    could lead to "Beethoven's Fifth plays loudly, awakening the neighbors. 
  1647.    Someone pounds loudly on the ceiling"), use a special.  More examples of
  1648.    "Specials" will be given later.
  1649.  
  1650.  
  1651.    CREATING YOUR SOURCE DATA FILES WITH WORD PROCESSORS
  1652.  
  1653.    When creating your source data files for your own AGT game, you must use a
  1654.    text editor (I recommend QEdit -- a wonderful shareware text editor) or
  1655.    word processor which creates plain ASCII or TEXT files with a true carriage
  1656.    return at the end of each line.  Lines longer than 80 characters, WordStar
  1657.    or WordPerfect document files, will cause AGT to abort!  The best
  1658.    rule-of-thumb is to use the MS-DOS "TYPE" command to view the file.  If it
  1659.    looks normal, it's probably OK for AGT.  If words split at the end of the
  1660.    line and strange characters appear, it's probably not OK for AGT.
  1661.  
  1662.  
  1663.    THE "MECHANICS" OF WRITING YOUR GAME FILES
  1664.  
  1665.  
  1666.    LABELS AND AGTLABEL
  1667.  
  1668.    The Master's Edition of AGT uses labels rather than numbers -- similar to
  1669.    the way the utility AGTNUM works.  AGTNUM is a utility that is provided as
  1670.    a part of the Classic Edition of AGT.
  1671.  
  1672.  
  1673.                                        29
  1674.  
  1675.  
  1676.  
  1677.  
  1678.    A utility, named AGTLABEL, can be used to convert your old/normal (i.e.,
  1679.    Classic Edition) game source files to files that use labels instead of
  1680.    numbers.  By the way, be sure to use an .OVR file to preserve the meanings
  1681.    of all of your game's flags, counters, variables, etc.  Read the
  1682.    AGTLABEL.DOC file for details.
  1683.  
  1684.    The .AGT file looks very much like the files it replaced.  The main
  1685.    difference is that it uses text labels instead of numbers for rooms, nouns,
  1686.    and the like. The labels are enclosed in delimiters, which are braces [ ]
  1687.    by default.  (This can be changed.)  Labels may consist of any ASCII
  1688.    characters (even whitespace characters), except the closing delimiter.  For
  1689.    example, the following labels are all legal (and unique):
  1690.  
  1691.         [bridge]
  1692.         [the captain's quarters]
  1693.         [transporter pad number 6]
  1694.         [ transporter pad number 6 ]
  1695.         [!@#$%^&*()]
  1696.         [[[[[[]
  1697.         [!]
  1698.         [ ]
  1699.         [  ]
  1700.  
  1701.  
  1702.    The null label [] is not allowed.  MCOMPILE, the Master's Edition's game
  1703.    compiler, is insensitive to case by default, so [bridge] and [BRIDGE] are
  1704.    considered identical.
  1705.  
  1706.    When MCOMPILE parses the .AGT file, it assigns appropriate numbers to the
  1707.    labels.  When the output files are written, the numbers are substituted for
  1708.    the labels.  (The .AGT file is not changed by MCOMPILE.)
  1709.  
  1710.  
  1711.    LABEL DEFINITIONS
  1712.  
  1713.    When MCOMPILE encounters a label, it must determine what type of item the
  1714.    label refers to (room, message, flag, etc.).  For some items, the normal
  1715.    item definition gives this information.  Consider this example:
  1716.  
  1717.         ROOM [sickbay]
  1718.         Sickbay
  1719.         EXIT [corridor]
  1720.         END_ROOM
  1721.  
  1722.         ROOM_DESCR [sickbay]
  1723.         This is the sickbay, where the regulars are cured of all their ills
  1724.         and the extras meet slow, painful deaths.
  1725.         END_ROOM_DESCR
  1726.  
  1727.    In this case, the word "ROOM" at the beginning of the line tells MCOMPILE
  1728.    that [sickbay] is a label for a room.  Labels for nouns, creatures,
  1729.    messages, and questions are determined in the same way.
  1730.  
  1731.                                        30
  1732.  
  1733.  
  1734.  
  1735.  
  1736.    STANDARD LEVEL GAME FILES
  1737.  
  1738.    Each Standard Level games can have up to three files: A title file (e.g.,
  1739.    ALICE.TTL), an instruction file (e.g., ALICE.INS), and a data file
  1740.    (ALICE.AGT).  Each of these file types will be explained in separate
  1741.    sections to follow.
  1742.  
  1743.  
  1744.    TITLE FILES
  1745.  
  1746.    If there is a file with a .TTL extension, that file is displayed first
  1747.    before the actual game play begins.  The contents of this file will be
  1748.    displayed centered on a cleared screen.  For example, the title file for
  1749.    the ALICE IN WONDERLAND game contained in the ALICE.TTL file is:
  1750.  
  1751.         The Adventures of Alice
  1752.         Who
  1753.         Went Through the Looking-Glass
  1754.         And
  1755.         Came Back 
  1756.         Though Not Much Changed
  1757.         Based on characters created by Lewis Carroll
  1758.         Game and Text Copyright 1986 D.A. Asherman
  1759.  
  1760.    This would actually be centered on the screen as follows:
  1761.  
  1762.                              The Adventures of Alice
  1763.                                        Who
  1764.                          Went Through the Looking-Glass
  1765.                                        And
  1766.                                     Came Back
  1767.                              Though Not Much Changed
  1768.                   Based on characters created by Lewis Carroll
  1769.                    Game and Text Copyright 1986 D.A. Asherman
  1770.  
  1771.    Optionally, the title information can be included in the game's .AGT file
  1772.    by doing the following:
  1773.  
  1774.         TITLE
  1775.         The Adventures of Alice
  1776.         Who
  1777.         Went Through the Looking-Glass
  1778.         And
  1779.         Came Back 
  1780.         Though Not Much Changed
  1781.         Based on characters created by Lewis Carroll
  1782.         Game and Text Copyright 1986 D.A. Asherman
  1783.         END_TITLE
  1784.  
  1785.  
  1786.  
  1787.  
  1788.  
  1789.                                        31
  1790.  
  1791.  
  1792.  
  1793.  
  1794.    SETTING SCREEN COLORS
  1795.  
  1796.    AGT sets the screen colors to be used during the adventure automatically. 
  1797.    If the game is being played on a color monitor, the screen output is quite
  1798.    colorful.  Specifically, the default screen colors will be:
  1799.  
  1800.         Normal text color is Cyan
  1801.         High lighted text color is Yellow
  1802.         Background color is Black
  1803.         Reverse text color is Red
  1804.         Reverse background color is Light Gray
  1805.  
  1806.    These colors cause the normal screen output to be shown as "Cyan on Black",
  1807.    while the player's input is shown as "Yellow on Black", and the status line
  1808.    at the top of the screen is shown as "Red on Light Gray".
  1809.  
  1810.    These default colors can be changed to specific different colors in the
  1811.    first line of the .TTL file.  For example, if you wanted to change the
  1812.    color combinations to normal output of "White on Blue", and player input of
  1813.    "Yellow on Blue", and the status line of "Black on Cyan", then you are
  1814.    specifying:
  1815.  
  1816.         Normal text color is White
  1817.         High lighted text color is Yellow
  1818.         Background color is Blue
  1819.         Reverse text color is Black
  1820.         Reverse background color is Cyan
  1821.  
  1822.    This could be accomplished by putting the following line as the first line
  1823.    of the .TTL file:
  1824.  
  1825.         COLORS WHITE YELLOW BLUE BLACK CYAN
  1826.  
  1827.    If you are playing the game on a monochrome monitor, most of the screen
  1828.    output will be "White on Black", i.e., the normal monochrome output for
  1829.    your monitor.  The only exceptions will be the player input which will be
  1830.    shown high-lighted and the status line on the top of the screen which will
  1831.    be shown in reverse, i.e., "Black on White".  On monochrome monitors, this
  1832.    basic monochrome color combination will be used automatically regardless of
  1833.    what may have been specified in the COLORS command in the first line of the
  1834.    .TTL file.
  1835.  
  1836.    It is also possible for the player to change the screen color combination
  1837.    by giving input during the game.  For example, if the player inputs:
  1838.  
  1839.         COLORS YELLOW GREEN CYAN BLACK LIGHTGRAY
  1840.  
  1841.    during the game, the screen will immediately change to "Yellow on Cyan",
  1842.    with the player's input shown as "Green on Cyan", and the status line
  1843.    displayed as "Black on Light Gray" -- if the game is being played on a
  1844.    color monitor.  If the game is being played on a monochrome monitor, the
  1845.    above player input would have no effect.  Other player color commands
  1846.  
  1847.                                        32
  1848.  
  1849.  
  1850.  
  1851.  
  1852.    allowed are:
  1853.  
  1854.         COLORS MONO
  1855.  
  1856.    which changes the screen to a monochrome color combination - even on a
  1857.    color monitor, and:
  1858.  
  1859.         COLORS DEFAULT
  1860.  
  1861.    which will return the screen to AGT's default color combination --
  1862.    depending upon the type of monitor the game is currently being played upon.
  1863.  
  1864.  
  1865.    INSTRUCTIONS FILES
  1866.  
  1867.    If there is a file with the correct filename and the suffix .INS, then AGT
  1868.    will ask the player if he wished to read the instructions for the game.  If
  1869.    the response is Y or YES, the filename.INS file will be displayed a screen
  1870.    at a time with a pause between screens.  If the player responds with N or
  1871.    NO, then the instructions will be skipped and the game will begin normally
  1872.    in the starting room location.
  1873.  
  1874.    If there is no .INS file, then the instruction prompt will not appear and
  1875.    play will begin without any instructions.
  1876.  
  1877.    Optionally, the instructions can be included in the game's .AGT file by
  1878.    doing like the following:
  1879.  
  1880.         INSTRUCTIONS
  1881.         The instruction text goes here.
  1882.         END_INSTRUCTIONS
  1883.  
  1884.  
  1885.    THE WORK-HORSE .AGT FILE
  1886.  
  1887.    Adventure games are really just a special kind of data base application. 
  1888.    The game driver (for AGT, this is MRUN.EXE) just accesses the adventure
  1889.    data base to retrieve data based on the player's commands.  This is much
  1890.    like how a "standard" data base application might display all employees in
  1891.    the marketing department with salaries over a certain amount after getting
  1892.    a query from the data base user.  For Standard Level AGT games, the data
  1893.    base is contained in the .AGT file.  This file is the real work-horse file
  1894.    for AGT adventure games.  The most important data elements in an AGT game
  1895.    are three large data arrays: the game's ROOMS, NOUNS, and CREATURES.  Each
  1896.    of these data types will be explained in separate sections that follow.
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902.  
  1903.  
  1904.  
  1905.                                        33
  1906.  
  1907.  
  1908.  
  1909.  
  1910.    ROOMS
  1911.  
  1912.    The room specification in the .AGT data file is quite simple:
  1913.  
  1914.    Required:
  1915.  
  1916.            |<-----significant----->|<------ignored------------------------>|
  1917.                                    |
  1918.  
  1919.             ROOM [label]            <-- [label for the Room], i.e., its AGT    
  1920.                                          "name"
  1921.             Room Name               <-- short room name (up to 30 characters),
  1922.                                         that will be shown on the status
  1923.                                         line (do not include comments!)
  1924.             {optional characteristics}
  1925.             END_ROOM
  1926.  
  1927.    Optional characteristics:   <-- optional but at least one is
  1928.                                        strongly recommended
  1929.  
  1930.            |<---significant--->|<------ignored------------------------>|
  1931.                                |
  1932.  
  1933.            {direction} [Room label] <-- Room label is the room to be found in
  1934.                                         that direction.  The default is
  1935.                                         [none] or zero.
  1936.                                         {any one of 12 directions can be
  1937.                                          specified, from the list:
  1938.                                            NORTH   NORTHEAST  UP
  1939.                                            SOUTH   SOUTHEAST  DOWN
  1940.                                            EAST    NORTHWEST  ENTER
  1941.                                            WEST    SOUTHWEST  EXIT}
  1942.             SPECIAL [Room label]    <-- optional, Room label is a room name.
  1943.                                         {If present, the current definition
  1944.                                         must include KEY xxx and there must
  1945.                                         be a SPECIAL [Room label] definition}
  1946.             KEY [Noun label]        <-- Noun label is for the noun that
  1947.                                         {activates special [Room label]}
  1948.             LIGHT [Noun label]      <-- Noun label for a light that is a noun
  1949.                                          used to light up the room OR the
  1950.                                         value 1 for ("any light").  The
  1951.                                         default is [none] or no light is need
  1952.                                         for the room.
  1953.             POINTS xxx              <-- xxx is number of points player is
  1954.                                         awarded just for getting here.
  1955.                                         Default is 0.
  1956.             LOCKED_DOOR             <-- default is FALSE.  If TRUE, AGT
  1957.                                         will act as if there is a locked
  1958.                                         door that cannot be opened in
  1959.                                         the room and give various
  1960.                                         appropriate messages if player
  1961.                                         tries to do something to the
  1962.  
  1963.                                        34
  1964.  
  1965.  
  1966.  
  1967.  
  1968.                                         door.
  1969.             PLAYER_DEAD             <-- if this line is in the definition,
  1970.                                         the player dies as soon as he or she
  1971.                                         enters the room.
  1972.             GAME_END                <-- if this line is in the definition,
  1973.                                         the game ends as soon as the player
  1974.                                         enters the room (the room_descr
  1975.                                         is displayed, then the score).
  1976.                                         (Player loses game here.)
  1977.             GAME_WIN                <-- if this line is in the definition,
  1978.                                         the game ends as soon as the player
  1979.                                         enters the room (the room_descr
  1980.                                         is displayed, then the score).
  1981.                                         (Player wins game here.)
  1982.             ROOM_SYNONYMS           <-- default is NONE.  Room synonyms are
  1983.                                         indicated in the .AGT file as:
  1984.                                         ROOM_SYNONYMS MAGIC_WORD XYZZY SESAME
  1985.                                         ROOM_SYNONYMS CHANGE_LOCATION CLIMB
  1986.                                         ROOM_SYNONYMS PLAY SHOW DISPLAY FLASH
  1987.                                         These cause the first word (which must
  1988.                                         be a valid verb) to be substituted
  1989.                                         whenever the player enters one of the
  1990.                                         words following the first word in that
  1991.                                         room.  For example, if the player
  1992.                                         entered SHOW, DISPLAY, or FLASH
  1993.                                         (above), AGT would act as if the word
  1994.                                         PLAY (which is a "special") was
  1995.                                         entered and react accordingly.  There
  1996.                                         can only be one room synonym
  1997.                                         specification in each room.
  1998.             PICTURE [Picture label] <-- Picture label for a PCX format picture
  1999.                                         file associated with this ROOM.
  2000.                                         To be explained in a later section.
  2001.  
  2002.    It is recommended that at a minimum, one exit from each room be provided;
  2003.    otherwise the player will be stuck in the room until he quits.  Of course,
  2004.    that direction might be a special -- which will be explained in a later
  2005.    section.
  2006.  
  2007.    A room description should also be provided in .AGT file:
  2008.  
  2009.         ROOM_DESCR [Room label]
  2010.         Some text, any number of lines, about the room.
  2011.         END_ROOM_DESCR
  2012.  
  2013.    This room description will be what is printed whenever the player enters
  2014.    the room or gives the command to LOOK.
  2015.  
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.                                        35
  2022.  
  2023.  
  2024.  
  2025.  
  2026.    HELP MESSAGES
  2027.  
  2028.    An optional HELP message may also be provided for each room:
  2029.  
  2030.         HELP [Room label]
  2031.         Some text, any number of lines, gives a HELP message for this room.
  2032.         END_HELP_DESCR
  2033.  
  2034.    If you don't enter a specific HELP message for a room, the default message
  2035.    if the player asks for HELP is "Sorry, but you are on your own here."
  2036.  
  2037.    Here is a more complete example of how a room might be specified in the
  2038.    .AGT file:
  2039.  
  2040.         ROOM [Top of the Cliff]
  2041.         Top of Cliff
  2042.         NORTH [North of Cliff Top]
  2043.         SOUTH [South of Cliff Top]
  2044.         WEST [West of Cliff Top]
  2045.         END_ROOM
  2046.  
  2047.         ROOM_DESCR [Top of the Cliff]
  2048.         You are standing near the edge on the top of a tall cliff.  To the
  2049.         east is a sheer drop of several thousand feet.  To the north, west and
  2050.         south are paths that lead down the side of the mountain.
  2051.         END_ROOM_DESCR
  2052.  
  2053.         HELP [Top of the Cliff]
  2054.         Be careful, don't go too near the edge!
  2055.         END_HELP_DESCR
  2056.  
  2057.  
  2058.    NOUNS
  2059.  
  2060.    Nouns are necessarily more complex than rooms.  They are specified in the
  2061.    following format, listed with the possible values (and defaults):
  2062.  
  2063.            |<-----significant----->|<------ignored------------------------>|
  2064.                                    |
  2065.  
  2066.             NOUN [label]            <-- Label is the AGT name for this noun
  2067.             Name                    <-- one-word name of the noun
  2068.             Adjective               <-- one-word adjective
  2069.             Short one-line description of the noun
  2070.  
  2071.             {other characteristics go here}-
  2072.             END_NOUN
  2073.  
  2074.  
  2075.  
  2076.  
  2077.  
  2078.  
  2079.                                        36
  2080.  
  2081.  
  2082.  
  2083.  
  2084.         Other characteristics (optional):
  2085.  
  2086.             SIZE nn                 <-- nn is a number from 1 to 99+
  2087.                                         Default is 1.
  2088.             WEIGHT nn               <-- nn is a number from 1 to 99+
  2089.                                         Default is 1.
  2090.             UNMOVABLE               <-- default is movable (carryable)       
  2091.             LOCATION [Room label]   <-- Room label is AGT name for the "room"
  2092.                                         where this noun is located.  It may
  2093.                                         be located in a room, inside another
  2094.                                         noun, being carried, or worn.
  2095.             READABLE                <-- default is "not readable"
  2096.                                         {if READABLE then TEXT [label]
  2097.                                         must also be defined}
  2098.             CLOSABLE                <-- default is "not closable"
  2099.             OPEN                    <-- default is "closed"
  2100.                                         {if open, then it can hold something}
  2101.                                         {if closed, it can not hold something}
  2102.             LOCKABLE                <-- default is not lockable
  2103.             LOCKED                  <-- default is unlocked
  2104.             KEY [Noun label]        <-- default is 0
  2105.                                         Noun label is the AGT name for the 
  2106.                                         noun that unlocks this noun --
  2107.                                         if it's lockable.
  2108.             EDIBLE                  <-- default is inedible
  2109.             DRINKABLE               <-- default is undrinkable/solid
  2110.             POISONOUS               <-- default is nonpoisonous
  2111.                                         {predictable effect if poisonous
  2112.                                         edible/drinkable noun is eaten}
  2113.             ON                      <-- default is 'off'
  2114.             PUSHABLE                <-- default is not pushable
  2115.                                         {PUSH_DESCR nn recommended but
  2116.                                         not required if it is pushable}
  2117.             PULLABLE                <-- (ditto, PULL_DESCR nn)
  2118.             PLAYABLE                <-- (ditto, PLAY_DESCR nn)
  2119.             TURNABLE                <-- (ditto, TURN_DESCR nn)
  2120.             IS_LIGHT                <-- default is NOT is_light
  2121.                                         (IS_LIGHT -> illuminates any room
  2122.                                         defined as LIGHT 1 or LIGHT
  2123.                                         [label] where [label] is this noun
  2124.             POINTS                  <-- default is 0 (points awarded to player
  2125.                                         if object is being carried,
  2126.                                         present or in the "treasure" room
  2127.                                         at game_end)
  2128.             GAME_WIN                <-- default is FALSE.  Player wins game
  2129.                                         if TRUE when he get this noun.
  2130.             CAN_SHOOT               <-- default is can't shoot (Can the
  2131.                                         weapon be used to shoot a creature?
  2132.                                         If not, it must be thrown.)
  2133.             NUM_SHOTS               <-- default is 0 (how many bullets/
  2134.                                         charges are there initially?
  2135.                                         decremented each time the noun is
  2136.  
  2137.                                        37
  2138.  
  2139.  
  2140.  
  2141.  
  2142.                                         fired.)
  2143.             WEARABLE                <-- default is not wearable
  2144.             POSITION                <-- default in NONE.  If the game designer
  2145.                                         wishes to have a noun's original
  2146.                                         position as "(behind the tree)"
  2147.                                         he would have:
  2148.                                             POSITION behind the tree
  2149.                                         in the .AGT file.  The verbs
  2150.                                         PUT/PLACE and GET/TAKE change the
  2151.                                         noun's position.
  2152.             SINGULAR                <-- default is SINGULAR.  The only
  2153.                                         alternative is PLURAL.  AGT
  2154.                                         verbs/pronouns will be singular
  2155.                                         or plural depending upon this
  2156.                                         value.
  2157.             NOUN_SYNONYMS           <-- default is NONE.  If the .AGT file had
  2158.                                             NOUN_SYNONYMS GOLD COIN COINS
  2159.                                         then all of these words would be
  2160.                                         accepted as valid synonyms for
  2161.                                         this noun.  Of course, the
  2162.                                         "official" NAME will also work.
  2163.             PICTURE [Picture label] <-- Picture label for a PCX format picture
  2164.                                         file associated with this NOUN.
  2165.                                         To be explained in a later section.
  2166.  
  2167.    Note: To 'spice up' the game, you might want to put things inside other
  2168.    things initially, so the player has to open everything to be sure s/he
  2169.    doesn't miss anything important.  Be logical, though: a refrigerator seems
  2170.    likely to be open-able, but a crabapple probably ought to be 'closed' and
  2171.    'unclosable' and thus unable to contain something else.
  2172.  
  2173.    Similar to the complete room descriptions, there is a way to specify a
  2174.    lengthy description of a noun by using a NOUN_DESCR in the .AGT file.  When
  2175.    the player gives the command to EXAMINE the noun, this description will be
  2176.    displayed on the screen.
  2177.  
  2178.    TEXT
  2179.  
  2180.    If a noun is readable, the description that is printed whenever the player
  2181.    gives the command to READ it is contained in a TEXT description in the .AGT
  2182.    file.  Thus, the following would be a valid set of definitions:
  2183.  
  2184.         NOUN [Small Red Book]
  2185.         Book
  2186.         Red
  2187.         There is a small red book here.
  2188.         WEIGHT 1
  2189.         SIZE 3
  2190.         LOCATION [Top of the Cliff]
  2191.         READABLE
  2192.         NOUN_SYNONYMS Cover Title
  2193.         END_NOUN
  2194.  
  2195.                                        38
  2196.  
  2197.  
  2198.  
  2199.  
  2200.         NOUN_DESCR [Small Red Book]
  2201.         The red book is quite thin, and has a hard cover.  There is writing on
  2202.         the book's cover.
  2203.         END_NOUN_DESCR
  2204.  
  2205.         TEXT [Small Red Book]
  2206.         The title of the book is "The Wisdom of Ronald Reagan."  The pages are
  2207.         all blank.
  2208.         END_TEXT
  2209.  
  2210.  
  2211.    MULTIPLE NOUNS WITH THE SAME NAME
  2212.  
  2213.    AGT allows multiple nouns with the same name.  The parser examines the
  2214.    current room and player environment and assumes that if only one noun with
  2215.    a particular name is in the room then that must be the noun that the player
  2216.    meant as the NOUN or OBJECT of his command.  If there is more than one noun
  2217.    with the same name in the room, the parser gives an "error" message and
  2218.    asks the player to be more specific about which NOUN (or OBJECT) he means. 
  2219.    For example, if there are three kinds of trees in the "room" and the player
  2220.    had entered the command to EXAMINE TREES, the parser would ask for the
  2221.    clarification: "Which 'TREES', the OLIVE TREES or the OAK TREES or the PINE
  2222.    TREES?" The player could then enter any response with one of the proper
  2223.    adjectives to specify which trees were meant, i.e., any of these responses
  2224.    would tell the parser that the OAK trees were correct:
  2225.  
  2226.         THE OAK TREES
  2227.         EXAMINE THE OAKS
  2228.         OAK
  2229.         THE OAKS, YOU OAF!!
  2230.  
  2231.    If the player still doesn't enter a response with one of the proper
  2232.    adjectives, a message is given that asks the player to re-enter his command
  2233.    using the NOUN's adjective to clarify which NOUN is meant.  This means that
  2234.    if there are two or more nouns with the same name, their adjectives MUST BE
  2235.    unique, i.e., you can have a RED BOWL and a GREEN BOWL, but the game should
  2236.    not contain two RED BOWLs!
  2237.  
  2238.  
  2239.    PUSH, PULL, TURN, AND PLAY DESCRIPTIONS
  2240.  
  2241.    Similar to TEXT descriptions if a noun is readable, you may also give
  2242.    unique descriptions if a noun is described as being pushable, playable,
  2243.    turnable, or pullable and the player takes one of those actions with the
  2244.    noun.  These descriptions are included in the .AGT file as a PUSH_DESCR,
  2245.    PULL_DESCR, TURN_DESCR and PLAY_DESCR.  They will be displayed only if the
  2246.    player takes the specified action AND that action does not activate a
  2247.    SPECIAL for the current room.  If there is no description provided, a
  2248.    standard ("nothing happens" or something equally appropriate) message is
  2249.    provided.
  2250.  
  2251.    For example, if you want to generate messages whenever the player gives the
  2252.  
  2253.                                        39
  2254.  
  2255.  
  2256.  
  2257.  
  2258.    commands to PLAY RADIO or to TURN ON RADIO or TURN DIAL, you could set up 
  2259.    the following in the .AGT file:
  2260.  
  2261.         NOUN [Portable Radio]
  2262.         Radio
  2263.         Portable
  2264.         There is a large "ghetto blaster" portable radio here.
  2265.         MOVABLE
  2266.         WEIGHT 10
  2267.         SIZE 10
  2268.         NOUN_SYNONYMS GHETTO BLASTER DIAL DIALS KNOB KNOBS
  2269.         PLAYABLE
  2270.         TURNABLE
  2271.         END_NOUN
  2272.  
  2273.         NOUN_DESCR [Portable Radio]
  2274.         The radio is barely portable.  It weighs about 47 pounds and must be
  2275.         carried with both hands.  It has many dials and knobs.
  2276.         END_NOUN_DESCR
  2277.  
  2278.         PLAY_DESCR [Portable Radio]
  2279.         As you turn on the radio, you hear a song by "Duran."  After a few
  2280.         moments, you become bored with the music and you turn the radio off.
  2281.         END_PLAY_DESCR
  2282.  
  2283.         TURN_DESCR [Portable Radio]
  2284.         As you turn the dial on the radio, you hear the Beatles singing
  2285.         "Yesterday".  This sounds like a good station and you stop turning the
  2286.         dial.  The music sounds nice and you sing along softly.
  2287.         END_TURN_DESCR
  2288.  
  2289.  
  2290.    EATING, DRINKING, AND DYING
  2291.  
  2292.    Any object defined as EDIBLE can be eaten.  Any object defined as DRINKABLE
  2293.    can be drunk.  And any object defined as POISONOUS will kill the player if
  2294.    s/he eats or drinks it.  POISONOUS has no effect if the noun is neither
  2295.    edible nor drinkable.  In most situations, it is considered poor sport to
  2296.    make completely non-threatening and logically edible things poisonous; it
  2297.    is likewise questionable to make packages of rat poison edible but
  2298.    non-poisonous.
  2299.  
  2300.    When a noun is eaten or drunk it normally disappears (into the player's
  2301.    stomach -- naturally).  The only exception to this is when the noun is
  2302.    unmovable.  This makes it possible for the player to drink from a lake
  2303.    without having all the water (or the lake itself) disappear.
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.                                        40
  2312.  
  2313.  
  2314.  
  2315.  
  2316.    WEIGHT AND SIZE
  2317.  
  2318.    Those values are there for a reason!!  No player can lift an object heavier
  2319.    than 100, even if it's defined as MOVABLE.  Likewise, objects whose size is
  2320.    more than 100 are too awkward to be carried.  The total weight the player
  2321.    can carry is 100, so the player cannot carry two 60-weight objects at once. 
  2322.    Total size limit is also 100.  It is considered poor sport to assign large
  2323.    weight values to feathers and low values to large slabs of steel, but cruel
  2324.    game writers are able to do so.  Likewise, a game will be less baffling if
  2325.    small objects (pens, tin cans) have small size values and large ones
  2326.    (desks, cars) are larger.
  2327.  
  2328.    VERY, VERY IMPORTANT NOTE: Size is also very important when dealing with
  2329.    "containers".  A container will only be able to contain things whose total
  2330.    size is less than the size of the container.  For example, if you have a
  2331.    knapsack whose size is 10, it will be able to hold a flashlight of size 2,
  2332.    a sandwich of size 1, and long rope of size 6.  If the player tries to put
  2333.    something else (e.g., a compass of size 3) into the knapsack, he/she will
  2334.    get a message that "The compass will not fit into the knapsack".  
  2335.    Confusion about sizes and containers is the single greatest source of phone
  2336.    calls and letters about suspected "bugs" in AGT.
  2337.  
  2338.  
  2339.    LIGHT AND DARKNESS
  2340.  
  2341.    If a room has a LIGHT value other than 0 (the default), the room will
  2342.    appear pitch black if the player wanders in empty-handed.  There are two
  2343.    "types" of lights and two types of darkness.  A noun may be defined as
  2344.    being a light by specifying the word IS_LIGHT in its definition; in this
  2345.    case, it will light any dark room defined as LIGHT 1.  The light value of 1
  2346.    in a room definition means that any light will make the room visible.  Of
  2347.    course, these "general-purpose" lights must be turned on to light the room,
  2348.    and thus all LIGHTs can be TURNed ON and OFF (or LIGHTed and EXTINGUISHed).
  2349.  
  2350.    If the LIGHT value is other than 1 (i.e., LIGHT [Torch]), only the noun
  2351.    with the matching AGT "name," i.e., [Torch], will make the room's contents
  2352.    visible.  This is useful if the darkness comes from something other than an
  2353.    absence of light: for example, a fan might be the only object that makes a
  2354.    smokey room clear enough to see in.  A special-purpose light need not be
  2355.    defined as a light (i.e., it doesn't have to be defined IS_LIGHT), nor does
  2356.    it have to be on, to work as a light in a room with that noun as a LIGHT. 
  2357.    A noun can function as a special-purpose light for more than one room, but
  2358.    each room can only be lit by one special-purpose light.  (A room with a
  2359.    LIGHT value of 1 will be lit by ANY noun defined as IS_LIGHT.)
  2360.  
  2361.  
  2362.    CREATURES
  2363.  
  2364.    Any living thing is identified as a 'creature', and can be either
  2365.    'friendly' or 'hostile'.  Friendly creatures are quite passive; hostile
  2366.    creatures are not quite as friendly.  It is recommended that provisions be
  2367.    made for a weapon to kill any hostile creatures.  For fairness, that weapon
  2368.  
  2369.                                        41
  2370.  
  2371.  
  2372.  
  2373.  
  2374.    should be accessible by the player before s/he meets the hostile creature.
  2375.  
  2376.    Players should be discouraged from wild and unwarranted killing: i.e., they
  2377.    ought not kill friendly creatures.  If no weapon will kill the creature
  2378.    (i.e.,  if you leave or specify WEAPON as the default value 0), the player
  2379.    cannot kill it.  For friendly creatures, you should not lead the player on
  2380.    by making the weapon something unexpected: if the player kindly offers a
  2381.    jelly bean to the friendly creature, it ought not be fatal.  Only one
  2382.    weapon can kill any given creature, but the same weapon might be used to
  2383.    kill many creatures.
  2384.  
  2385.    The format in the .AGT file for Creatures, like rooms, are relatively
  2386.    simple:
  2387.  
  2388.            |<-----significant----->|<------ignored------------------------>|
  2389.                                    |
  2390.    Required:
  2391.  
  2392.             CREATURE [Label]        <-- Label is the AGT name for the creature
  2393.             Name                    <-- one word name
  2394.             Adjective               <-- one word adjective
  2395.             Short one-line description of creature.
  2396.             {optional characteristics}
  2397.             END_CREATURE
  2398.  
  2399.    Optional:
  2400.  
  2401.             LOCATION [Room label]   <-- Room label is the creature's location
  2402.                                         {default is 0 or [Nowhere]}
  2403.             WEAPON [Noun label]     <-- Noun label is the AGT name weapon
  2404.                                         that kills this creature.
  2405.                                         {default is 0 or [none]}
  2406.             HOSTILE                 <-- default is friendly
  2407.             THRESHOLD n             <-- {n is number of times a hostile        
  2408.                                         creature can be unsuccessfully
  2409.                                         attacked before it and kills the
  2410.                                         player - default 3}
  2411.             TIME_THRESH n           <-- {n is number of turns player can be
  2412.                                         in the same room with the creature
  2413.                                         before it kills the player - default
  2414.                                         value is infinite, or disabled}
  2415.             POINTS nn               <-- nn is the number of points player
  2416.                                         gets for having this creature in the
  2417.                                         current room, i.e., for "capturing"
  2418.                                         or "rescuing" the creature.
  2419.                                         {default is 0}
  2420.             GROUPMEMBER             <-- default is NOT a GroupMember.  If a
  2421.                                         creature is specified as a GROUPMEMBER
  2422.                                         then it will automatically follow the
  2423.                                         player from location to location once
  2424.                                         they meet.
  2425.  
  2426.  
  2427.                                        42
  2428.  
  2429.  
  2430.  
  2431.  
  2432.             GENDER                  <-- default is THING.  GENDER may also be
  2433.                                         specified as MAN or WOMAN.  GENDER
  2434.                                         causes pronouns and verbs to be used
  2435.                                         that are appropriate to the specific
  2436.                                         creature.  THINGs are ferocious and
  2437.                                         referred to as "IT".  MANs are less
  2438.                                         ferocious and are referred to as
  2439.                                         "HE" and "HIM".  WOMANs are "SHE"
  2440.                                         and "HER".
  2441.             CREATURE_SYNONYMS       <-- default is NONE.  If the .AGT file had
  2442.                                         CREATURE_SYNONYMS BOB BILLY then all
  2443.                                         of these names would be accepted as
  2444.                                         valid synonyms for the creature.
  2445.                                         Of course, the "official" NAME will
  2446.                                         also work.
  2447.             PICTURE [Picture label] <-- Picture label for a PCX format picture
  2448.                                         file associated with this CREATURE.
  2449.                                         To be explained in a later section.
  2450.  
  2451.    NOTE: A player cannot exit a room containing a hostile creature.  When
  2452.    killed, creatures are relocated to LOCATION 0, i.e., [Nowhere]. 
  2453.    Friendly/non-hostile creatures have no effect on the (Standard Level)
  2454.    game's outcome -- they just add a little "spice" to the game.
  2455.  
  2456.    For example, to define a female Froobious Bandersnatch in room [Jungle],
  2457.    which can be killed with noun [Big Gun], we could use the following
  2458.    specifications in the .AGT file:
  2459.  
  2460.         CREATURE [Froobious Bandersnatch]
  2461.         Bandersnatch
  2462.         Froobious
  2463.         There is a mommy froobious bandersnatch, looking for her cubs.
  2464.         LOCATION [Jungle]
  2465.         WEAPON 205
  2466.         THRESHOLD 2
  2467.         TIME_THRESH 5
  2468.         WOMAN
  2469.         HOSTILE
  2470.         CREATURE_SYNONYMS BEAST
  2471.         END_CREATURE
  2472.  
  2473.    The thresholds specify that you can try to attack the bandersnatch twice
  2474.    (unsuccessfully) or be in the room with the bandersnatch for 5 turns,
  2475.    before the beast kills you.  The player will not be able to leave the room
  2476.    if the Bandersnatch is present, because she is hostile, until the creature
  2477.    has been killed (with weapon [Big Gun]).  To use the weapon to kill the
  2478.    creature, the player would FIRE THE GUN AT THE BANDERSNATCH or SHOOT THE
  2479.    BEAST WITH THE GUN, if the weapon is a gun, or THROW the weapon AT the
  2480.    creature or KILL the creature WITH the weapon, if the weapon is not a gun.
  2481.  
  2482.    The complete EXAMINE description might be contained in the .AGT file as:
  2483.  
  2484.  
  2485.                                        43
  2486.  
  2487.  
  2488.  
  2489.  
  2490.         CREATURE_DESCR [Froobious Bandersnatch]
  2491.         The bandersnatch is snorting and drooling.  It is a large female and
  2492.         she appears to have misplaced her cubs, which makes her very un-
  2493.         pleasant and very dangerous.  She seems to harbor few honorable
  2494.         intentions towards you.
  2495.         END_CREATURE_DESCR
  2496.  
  2497.  
  2498.    TALK AND ASK MESSAGES
  2499.  
  2500.    CREATURES can now have messages that will be given in response to a TALK TO
  2501.    or ASK CREATURE ABOUT XXXXXX input commands.  These are similar to the
  2502.    PUSH, PULL, TURN, etc., messages for NOUNs.
  2503.  
  2504.    Here is an example of how you might define these messages:
  2505.  
  2506.         CREATURE [Bart Simpson]
  2507.         Kid
  2508.         Obnoxious
  2509.         There is an obnoxious kid here leaning against a skate board.
  2510.         LOCATION [NoWhere]
  2511.         MAN
  2512.         CREATURE_SYNONYMS Bart Simpson
  2513.         PICTURE [Bart2 pic]
  2514.         END_CREATURE
  2515.  
  2516.         CREATURE_DESCR [Bart Simpson]
  2517.         The kid still looks familiar.  He is resting against a skateboard.  As
  2518.         you look at him he says "I'm Bart Simpson.  Who the hell are you,
  2519.         Dude?"  You decide to ignore him.
  2520.         END_CREATURE_DESCR
  2521.  
  2522.         TALK_DESCR [Bart Simpson]
  2523.         "I don't talk to people from your generation!  Like stooonnnee aage! 
  2524.         Get real, Dude.!"
  2525.         END_TALK_DESCR
  2526.  
  2527.         ASK_DESCR [Bart Simpson]
  2528.         "Do I look like I am someone who know or cares about $OBJECT$?  Do I?
  2529.         Do I really?  Get real, Dude.!"
  2530.         END_ASK_DESCR
  2531.  
  2532.  
  2533.    GROUPS OF CREATURES
  2534.  
  2535.    Creatures can be designated as a member of the "Group" by using the
  2536.    GROUPMEMBER specification.  All group members in the current location will
  2537.    automatically move with the player when he/she moves to another location. 
  2538.    However, their group status will not effect other aspects of their behavior
  2539.    during the game, i.e., they can still be talked to or killed as
  2540.    individuals.  Probably the best known example of an adventure creature
  2541.    following the player once they meet is the Robot Floyd who is the player's
  2542.  
  2543.                                        44
  2544.  
  2545.  
  2546.  
  2547.  
  2548.    constant companion in the Infocom adventure games Planetfall and its sequel
  2549.    Stationfall.  The group can have several members, so this feature could be
  2550.    used to beam down a "landing party" consisting of the player, Spock, Sulu,
  2551.    McCoy and Scotty and have them explore the planet as a group in a Star Trek
  2552.    adventure.
  2553.  
  2554.    Later in this manual, we will introduce a variety of meta-commands that
  2555.    enable the game designer to test the status of the group and to manipulate
  2556.    the group in many ways, i.e., add or subtract members, disband the group,
  2557.    send the group off to another location, etc.
  2558.  
  2559.  
  2560.    SPECIALS
  2561.  
  2562.    To 'activate' the special, the player must 'do something' to the noun
  2563.    specified as the room's KEY.  This can include turning it, pushing it,
  2564.    pulling it, or playing it (depending on what can be done to the noun as
  2565.    defined).  If the proper action is taken on the noun while in the room, the
  2566.    player will be relocated to the room specified in the SPECIAL line and the
  2567.    SPECIAL nn text will be displayed.  (If the Special points to the current
  2568.    room, the only effect apparent to the reader will be the display of the
  2569.    SPECIAL text.)
  2570.  
  2571.    For example, to enter the house (by going to the entry hall -- ROOM [Entry
  2572.    Hall]) by pushing the door bell on the porch (ROOM [Porch]) could be done
  2573.    with the following special:
  2574.  
  2575.         ROOM [Porch]
  2576.         Front Porch
  2577.           .
  2578.           .
  2579.           .
  2580.         SPECIAL 14 [Entry Hall]
  2581.         KEY [Door Bell]
  2582.         END_ROOM
  2583.  
  2584.         ROOM_DESCR [Porch]
  2585.         You are standing on the front porch of a large mansion.  The doors are
  2586.         about 10 feet high.
  2587.         END_ROOM_DESCR
  2588.  
  2589.         NOUN [Door Bell]
  2590.         Bell
  2591.         Door
  2592.         Beside the door in a door bell.
  2593.           .
  2594.           .
  2595.         PUSHABLE
  2596.         UNMOVABLE
  2597.         LOCATION [Front Porch]
  2598.         NOUN_SYNONYMS doorbell
  2599.         END_NOUN
  2600.  
  2601.                                        45
  2602.  
  2603.  
  2604.  
  2605.  
  2606.         SPECIAL [Entry Hall]
  2607.         You boldly push the door bell.  Deep inside the house, you hear some
  2608.         chimes that sound vaguely like Big Ben.  After a few minutes, the door
  2609.         is opened by a butler dressed in a black morning coat.  He says "Good
  2610.         morning, Sir.  I will tell the Master that you have arrived."  With
  2611.         that, he disappears down the hall.  You are left alone in the entry
  2612.         hall of the house.
  2613.         END_SPECIAL
  2614.  
  2615.         ROOM [Entry Hall]
  2616.         Entry Hall
  2617.         NORTH [End of Hall]
  2618.           .
  2619.           .
  2620.         END_ROOM
  2621.  
  2622.         ROOM_DESCR [Entry Hall]
  2623.         The entry hall is long and narrow.  You can see open doors at the end
  2624.         of the hall to the north.  The front doors are behind you to the
  2625.         south.
  2626.         END_ROOM_DESCR
  2627.  
  2628.  
  2629.    "SPECIAL" SPECIALS
  2630.  
  2631.    AGT has two "special" specials: the verbs MAGIC_WORD and CHANGE_LOCATION. 
  2632.    These words are used in conjunction with a room synonym declaration to
  2633.    create a "special" for any words the game designer may wish to use (i.e.,
  2634.    you are not restricted to PULL, PUSH, TURN and PLAY).  For example, the
  2635.    designer may specify that XYZZY and MAGIC_WORD are synonyms in a particular
  2636.    room -- so that if the player gives the command XYZZY in that room, it
  2637.    causes a "special" for that room which might send the player to another
  2638.    room with an appropriate "special" messages being written.  CHANGE_LOCATION
  2639.    works the same way except it requires a specific NOUN that is the "key" to
  2640.    the "special" to be present in the room.  For example, the game designer
  2641.    might make SHOW a synonym for CHANGE_LOCATION in particular room and make
  2642.    the noun PASS the "key" to the "special" in that room, then whenever the
  2643.    player gives the command SHOW THE PASS TO THE GUARD (in the particular
  2644.    room), the "special" would be executed and a message like "The guard
  2645.    examines your security pass and finds it in order.  He opens the steel door
  2646.    and allows you to enter the vault, where you find...."
  2647.  
  2648.    NOTE: In AGT, each room may have only one special.  So, you will not be
  2649.    able to have a MAGIC_WORD and another special in the same room. (You could,
  2650.    however, achieve similar results using meta-commands.)
  2651.  
  2652.    For example, in order to be able to define a special for CLIMB TREE or
  2653.    SCALE TREE to cause the player to go from room [Dark Forest] to room [Top
  2654.    of Oak Tree] with a special message, the game designer could use the
  2655.    following specifications in his data file:
  2656.  
  2657.  
  2658.  
  2659.                                        46
  2660.  
  2661.  
  2662.  
  2663.  
  2664.         ROOM [Dark Forest]
  2665.         Dark Forest
  2666.           .
  2667.           .
  2668.         SPECIAL [Top of Oak Tree]
  2669.         KEY [Oak Tree]
  2670.         ROOM_SYNONYMS CHANGE_LOCATION CLIMB SCALE
  2671.         END_ROOM
  2672.  
  2673.         NOUN [Oak Tree]
  2674.         tree
  2675.         oak
  2676.         There is a large oak tree at the edge of the clearing.
  2677.           .
  2678.           .
  2679.         UNMOVABLE
  2680.         LOCATION [Dark Forest]
  2681.         END_NOUN
  2682.  
  2683.         SPECIAL [Top of Oak Tree]
  2684.         You manage to climb up to the top of the oak tree.
  2685.         END_SPECIAL
  2686.  
  2687.         ROOM [Top of Oak Tree]
  2688.         Top of Oak Tree
  2689.            .
  2690.            .
  2691.         DOWN [Dark Forest]  <-- can exit by going DOWN
  2692.         END_ROOM
  2693.  
  2694.    MAGIC_WORD works the same way except, the KEY for the room must be zero. 
  2695.    For example, if you wish to allow the player to go from room [Emperor's
  2696.    Tomb] to room [Outside Tomb Entrance] when he gives the commands SESAME,
  2697.    SHAZAM or ABRACADABRA you would do it as follows:
  2698.  
  2699.         ROOM [Emperor's Tomb]
  2700.         Emperor's Tomb
  2701.           .
  2702.           .
  2703.         SPECIAL [Outside Tomb Entrance]
  2704.         KEY 0
  2705.         ROOM_SYNONYMS MAGIC_WORD SESAME SHAZAM ABRACADABRA
  2706.         END_ROOM
  2707.  
  2708.         SPECIAL [Outside Tomb Entrance]
  2709.         By saying the magic word $VERB$, you are suddenly transported to the
  2710.         outside of the Emperor's Tomb.  You are very lucky to have escaped,
  2711.         because the air in the tomb was almost gone.
  2712.         END_SPECIAL
  2713.  
  2714.  
  2715.  
  2716.  
  2717.                                        47
  2718.  
  2719.  
  2720.  
  2721.  
  2722.         ROOM [Outside Tomb Entrance]
  2723.         Outside Tomb Entrance
  2724.           .
  2725.           .
  2726.         END_ROOM
  2727.  
  2728.    In this example, the SPECIAL message uses a very convenient and helpful
  2729.    feature of AGT, namely $VERB$.  This causes the original verb to be
  2730.    repeated back in the message, i.e., if the command was SHAZAM, then the
  2731.    special message would be "By saying the magic word SHAZAM, you are suddenly
  2732.    transported..."  Similarly, in AGT, the game designer may also have the
  2733.    NOUN, the noun's ADJECTIVE, the PREPOSITION and the OBJECT of the commands
  2734.    repeated back in messages by specifying $NOUN$, $ADJECTIVE$, $PREPOSITION$
  2735.    and $OBJECT$ within the message text.  If a command is being addressed to a
  2736.    character in the adventure, e.g., SCOTTY, BEAM ME UP, the character's name
  2737.    may also be echoed back in a message by using $NAME$.
  2738.  
  2739.    IMPORTANT NOTE:  The $-words are case-sensitive.  For example, if you use
  2740.    $NAME$, you will get the name echoed back to the player in the game in all
  2741.    caps.  If you use $Name$, you will get the first letter of the name
  2742.    capitalized and the remainder in lower case.  If you use $name$, you will
  2743.    get the name displayed in all lower case letters.  These same case rules
  2744.    also apply to the other $-words, i.e., $Verb$ will cause the verb to be
  2745.    repeated back with its first letter capitalized and the other letters lower
  2746.    case.
  2747.  
  2748.  
  2749.    CREATING A TYPICAL ROOM
  2750.  
  2751.    Let's suppose that your game contains a bedroom, connected to a closet, a
  2752.    bathroom, and a hallway.  In the bedroom are a lamp, a bed, a dresser, a
  2753.    mirror, and a werewolf.
  2754.  
  2755.    First, you want to define the room itself:
  2756.  
  2757.         ROOM [Master Bedroom]
  2758.         Master Bedroom
  2759.         WEST [hallway]
  2760.         EAST [bathroom]
  2761.         NORTHEAST [closet]
  2762.         END_ROOM
  2763.  
  2764.    A description of the room is appropriate here:
  2765.  
  2766.         ROOM_DESCR [Master Bedroom]
  2767.         This is the master bedroom, where Mommy and Daddy usually sleep. 
  2768.         Plainly visible in the room are a bed, a dresser, a lamp, and a large
  2769.         wall mirror.  The room smells horrible, as if a large, unclean animal
  2770.         had been here recently.
  2771.         END_ROOM_DESCR
  2772.  
  2773.  
  2774.  
  2775.                                        48
  2776.  
  2777.  
  2778.  
  2779.  
  2780.    Note that this description mentions the nouns that are initially in the
  2781.    room.  This is OK, since all of the nouns are UNMOVABLE, but if they could
  2782.    be taken by the player, they should not be described in the room
  2783.    description since they may not be there if the player should return.
  2784.  
  2785.    That werewolf is begging to be described, too:
  2786.  
  2787.         CREATURE [Werewolf]
  2788.         Werewolf
  2789.         Black
  2790.         There is a menacing black werewolf here.
  2791.         LOCATION [Master Bedroom]
  2792.         WEAPON [Blow gun]               <-- Noun [Blow gun] will kill it
  2793.         HOSTILE                         <-- ever met a friendly werewolf?
  2794.         END_CREATURE
  2795.  
  2796.         CREATURE_DESCR [Werewolf]
  2797.         The werewolf is about the size of a small horse.  Its matted fur
  2798.         stinks, and a sickening smell emerges from its open mouth, through
  2799.         which you can see sharp, large teeth.
  2800.         END_CREATURE_DESCR
  2801.  
  2802.    A HELP message might be given as follows:
  2803.  
  2804.         HELP [Master Bedroom]
  2805.         The werewolf looks dangerous.  Perhaps, you should get out of here as
  2806.         fast as you can.
  2807.         END_HELP
  2808.  
  2809.    Finally, each noun within the room ought to be defined and described:
  2810.  
  2811.         NOUN [Bed]
  2812.         Bed
  2813.         Large
  2814.         There is a large (king-size) bed here.
  2815.         LOCATION [Master Bedroom]
  2816.         UNMOVABLE
  2817.         END_NOUN
  2818.  
  2819.         NOUN_DESCR [Bed]
  2820.         The bed is quite ordinary.
  2821.         END_NOUN_DESCR
  2822.  
  2823.         NOUN [Dresser]
  2824.         Dresser
  2825.         Wooden
  2826.         There is a large wooden dresser here.
  2827.         LOCATION [Master Bedroom]
  2828.         CLOSABLE
  2829.         CLOSED
  2830.         UNMOVABLE
  2831.         END_NOUN
  2832.  
  2833.                                        49
  2834.  
  2835.  
  2836.  
  2837.  
  2838.         NOUN_DESCR [Dresser]
  2839.         The wooden dresser looks pretty much like most wooden dressers.
  2840.         END_NOUN_DESCR
  2841.  
  2842.         NOUN [Lamp]
  2843.         Lamp
  2844.         Small
  2845.         There is a lamp on the dresser.
  2846.         LOCATION [Master Bedroom]
  2847.         UNMOVABLE
  2848.         END_NOUN
  2849.  
  2850.         NOUN_DESCR [Lamp]
  2851.         The small table lamp is pink and has a green shade.
  2852.         END_NOUN_DESCR
  2853.  
  2854.         NOUN [Strange Mirror]
  2855.         Mirror
  2856.         Strange
  2857.         There is a wall-size mirror here.
  2858.         LOCATION [Master Bedroom]
  2859.         UNMOVABLE
  2860.         END_NOUN
  2861.  
  2862.         NOUN_DESCR [Strange Mirror]
  2863.         As you gaze into the mirror, you sense something unusual about it.  It
  2864.         seems to shimmer, and your reflection seems somehow unreal, as if the
  2865.         mirror weren't really there at all.
  2866.         END_NOUN_DESCR
  2867.  
  2868.    Hmm.  That mirror seems rather interesting.  Maybe you could make a
  2869.    "special" out of it.  For example: when the player touches it, s/he is sent
  2870.    to room [Cavern], the mystic cavern of the Wizardess.  To do so, you need
  2871.    to add a "special" to room [Master Bedroom] and specify the mirror as its
  2872.    key, and you need to make the mirror touchable.  (Note: "touch" and "push"
  2873.    are synonyms -- but, you should use the word "push," not the word "touch,"
  2874.    in your definitions.)
  2875.  
  2876.         ROOM [Master Bedroom]
  2877.         Master Bedroom
  2878.         WEST [hallway]
  2879.         EAST [bathroom]
  2880.         NORTHEAST [closet]
  2881.         SPECIAL [Cavern]        <-- Special goes to room [Cavern]
  2882.         KEY [Strange Mirror]    <-- Special activated by touching mirror
  2883.         END_ROOM
  2884.  
  2885.  
  2886.  
  2887.  
  2888.  
  2889.  
  2890.  
  2891.                                        50
  2892.  
  2893.  
  2894.  
  2895.  
  2896.         NOUN [Strange Mirror]
  2897.         Mirror
  2898.         Strange
  2899.         There is a wall-size mirror here.
  2900.         LOCATION [Master Bedroom]
  2901.         UNMOVABLE
  2902.         PUSHABLE                <-- Here's how we'll activate the special
  2903.         END_NOUN
  2904.  
  2905.    The player will see room [Cavern]'s description when s/he gets there, but
  2906.    the SPECIAL text for room [Cavern] will be displayed first:
  2907.  
  2908.         SPECIAL [Cavern]
  2909.         You reach out to touch the mirror, and are shocked to find that your
  2910.         fingers vanish through the surface.  Before you can react, you feel
  2911.         yourself drawn forward through the mirror, and into a black nothing-
  2912.         ness.  You look back to try to see the mirror, but everything is
  2913.         black.
  2914.  
  2915.         You are falling, but not very quickly -- it's almost as if you are
  2916.         floating.  As you fall, your eyes begin to adjust to the darkness. 
  2917.         Then, suddenly, you land on a soft cushion of some sort.  As you rest
  2918.         on the cushion, your eyes adjust to the very dim light of this new
  2919.         room.
  2920.         END_SPECIAL
  2921.  
  2922.    (Note that usually, you'd want to have a PUSH_DESCR  prepared for when the
  2923.    player touches a noun when it doesn't activate a special, but the mirror
  2924.    can't be moved so it will always activate a special when Touched.)
  2925.  
  2926.  
  2927.    "INVISIBLE" NOUNS
  2928.  
  2929.    Occasionally, you will want to have a noun that does not have a separate
  2930.    description line when you see the room's description, i.e., you want to
  2931.    have an "invisible" noun.  The most common instance of these is an
  2932.    UNMOVABLE noun whose description is incorporated in the room description.
  2933.    This is accomplished by having the first word in the "one-line" description
  2934.    of the noun be the word "INVISIBLE."  For example, below is an invisible
  2935.    bunch of toys which can be EXAMINEd and PLAYed with, but its basic
  2936.    description is contained within the room's description.
  2937.  
  2938.         ROOM [Santa's Workshop]
  2939.         Santa's Workshop
  2940.         EAST [Bunkhouse]
  2941.         WEST [Garage]
  2942.         SOUTH [Gift Wrapping Room]
  2943.         NORTH [Outside Workshop]
  2944.         END_ROOM
  2945.  
  2946.  
  2947.  
  2948.  
  2949.                                        51
  2950.  
  2951.  
  2952.  
  2953.  
  2954.         ROOM_DESCR [Santa's Workshop]
  2955.         This is Santa's Workshop.  Not many people have laid their eyes on
  2956.         this room.  All around you is a clutter of toys, in various stages of
  2957.         development, and tools of all descriptions.  To the north there is a
  2958.         door.  Doors also lie to the south, east and west.  Work benches line
  2959.         all four walls.  Above each bench is a peg board full of hooks.  Tools
  2960.         hang from the hooks.  The tops of the benches are covered with an
  2961.         array of items, from scraps of building materials, the odd nail and
  2962.         screw, paint brushes, cans of paint, some open and some closed, to
  2963.         blueprints and plans of toys.  The floor is cluttered with toys. 
  2964.         These toys represent just about every stage of development possible.
  2965.         In fact the clutter on the floor is so bad, that you have to kick a
  2966.         path in order to move about the room.
  2967.         END_ROOM_DESCR
  2968.  
  2969.         NOUN [Invisible Toys]
  2970.         toys
  2971.         many
  2972.         INVISIBLE  --  description in room description
  2973.         UNMOVABLE
  2974.         LOCATION [Santa's Workshop]
  2975.         PLAYABLE
  2976.         PLURAL
  2977.         NOUN_SYNONYMS toy sleds toboggans skates skis dolls trains car cars
  2978.         END_NOUN
  2979.  
  2980.         NOUN_DESCR [Invisible Toys]
  2981.         This is what Santa's part of Christmas is all about...TOYS!  There are 
  2982.         so many, that it's hard to begin to describe what you see.  The first  
  2983.         thing you notice is that there seems be a lot more than when you were  
  2984.         around.  The world's population must have doubled in the few short     
  2985.         years of your retirement.  The sleds and toboggans have the 'New and   
  2986.         Improved' look.  There's not much change in the design and style of    
  2987.         the skates and skis, just better materials to work with.  Now the      
  2988.         dolls are a different story. You see your standard 'cry-and-wet' doll, 
  2989.         rag dolls, the so-called fashion doll and the new 'vegetable-patch'    
  2990.         doll. The biggest change in the dolls is the talking dolls.  Computer  
  2991.         chips are a miracle-come-true.  These dolls have real voices...nothing 
  2992.         tinny about the quality of the sound.  From the number of them here,   
  2993.         you would guess that at least 4 out of 5 good girls are going to find  
  2994.         one of these little gems under their Christmas Tree tomorrow morning.  
  2995.         Over in the corner you spy the electric trains.  Santa and his 'toy    
  2996.         architects' have left this design alone.  They look the same and      
  2997.         operate the same.  The next thing you ogle over are the racing cars    
  2998.         sets.  The cars are sleek and fast!  Not to mention the slick surface  
  2999.         of the track.  Too bad you have a mission.  You'd love to sit and      
  3000.         pretend you're A. J. Foyt.  The little ones will be pleased that      
  3001.         Santa's elves have made up the latest stuffed toys.  Alf seems to be   
  3002.         the most popular.  You really don't have much time to look at all the  
  3003.         toys.  You have a mission, remember?  One last quick scan of the room, 
  3004.         just to make sure that the usually rocking horses and bicycles are     
  3005.         present and accounted for.
  3006.  
  3007.                                        52
  3008.  
  3009.  
  3010.  
  3011.  
  3012.         END_NOUN_DESCR
  3013.  
  3014.         PLAY_DESCR [Invisible Toys]
  3015.         Sorry, but you don't have time to play with the toys.  You have to     
  3016.         help Santa make Christmas a success this year.
  3017.         END_PLAY_DESCR
  3018.  
  3019.    Notice, that the toy noun must be UNMOVABLE for this scenario to work the
  3020.    way it should.
  3021.  
  3022.  
  3023.    SCORING
  3024.  
  3025.    The player's progress in the game is reported in two ways: the number of
  3026.    rooms visited, and the number of points currently held.  The player
  3027.    receives the defined number of points for visiting each room (default point
  3028.    value is 0), and for possessing (i.e., carrying, wearing or in the current
  3029.    room or in the treasure room) each noun (or creature with points) when
  3030.    scoring is done.  The point defaults for both nouns and creatures are zero. 
  3031.    Players get no points for having eaten something, since objects which are
  3032.    eaten or drunk are removed from the game.
  3033.  
  3034.    For best results, it is best to assign a point value to each room which the
  3035.    player arrives at after solving some puzzle.  It's also wise to award a few
  3036.    points for out-of-the-way rooms.  Objects should only have point values if
  3037.    they can reasonably be expected to be carried at the end of game -- if an
  3038.    object is too heavy to be lifted or moved, it's not logical to assign it a
  3039.    point value.
  3040.  
  3041.  
  3042.    OTHER DATA ITEMS IN THE .AGT FILE
  3043.  
  3044.  
  3045.    INTRODUCTION or INTRO TEXT
  3046.  
  3047.    In the .AGT file, you can include some introductory remarks by using the
  3048.    header INTRO or INTRODUCTION and ending these remarks with END_INTRO. 
  3049.    These kinds of remarks are particularly useful for telling the player what
  3050.    has happened prior to his arrival in the game's starting room.  The
  3051.    introductory text is displayed during the game's initialization and cannot
  3052.    be re-read later.  It also cannot be skipped over.  For example, you would
  3053.    include intro material in the .AGT file by doing something like the
  3054.    following:
  3055.  
  3056.         INTRODUCTION
  3057.         The introductory text goes here.
  3058.         END_INTRO
  3059.  
  3060.  
  3061.    STARTING ROOM
  3062.  
  3063.    You must specify a starting room location within your in the .AGT file. 
  3064.  
  3065.                                        53
  3066.  
  3067.  
  3068.  
  3069.  
  3070.    For example, if the .AGT file had:
  3071.  
  3072.         STARTING_ROOM [At the end of the road]
  3073.  
  3074.    then the game would start in room [At the end of the road].
  3075.  
  3076.  
  3077.    RESURRECTION_ROOM
  3078.  
  3079.    You can now specify a room to have the player resurrected in.  The starting
  3080.    room is the default resurrection location, but you now specify an
  3081.    alternative room.  For example, by putting the following line in your .AGT
  3082.    file, you can cause the player to be resurrected in room number [Inside
  3083.    Small Building]:
  3084.  
  3085.         RESURRECTION_ROOM [Inside Small Building]
  3086.  
  3087.  
  3088.    MAX_LIVES
  3089.  
  3090.    You can also specify the number of times the player can be resurrected in
  3091.    the game.  For example, by putting the following in the .AGT file, you
  3092.    would set the number of player lives to 5:
  3093.  
  3094.         MAX_LIVES 5
  3095.  
  3096.    The default is 3 lives.  If you set MAX_LIVES to zero, the player will
  3097.    never be resurrected.
  3098.  
  3099.  
  3100.    TREASURE ROOM
  3101.  
  3102.    Normally, the player only gets points for visiting rooms and for possessing
  3103.    treasures (i.e., nouns or creatures with value).  However, many classic
  3104.    adventure games use a convention that required the player to bring his
  3105.    various treasures to a "Treasure Room".  Probably, the best example of this
  3106.    is the Well House in the original "Colossal Cave" adventure.  AGT adds this
  3107.    feature by allowing the game designer to specify a treasure room in the
  3108.    .AGT file as:
  3109.  
  3110.         TREASURE_ROOM [Inside Well House]
  3111.  
  3112.    Normally, there is no treasure room.  This option is only activated if a
  3113.    statement like the above appears in the .AGT file.
  3114.  
  3115.  
  3116.    VERB SYNONYMS
  3117.  
  3118.    To specify verb synonyms, simply create a AGT definition starting with VERB
  3119.    (alone on a line) and ending with END_VERB (alone on a line).  For example:
  3120.  
  3121.  
  3122.  
  3123.                                        54
  3124.  
  3125.  
  3126.  
  3127.  
  3128.         VERB
  3129.         KILL STAB CHOP
  3130.         ATTACK STRANGLE CHOKE THROTTLE
  3131.         UP CLIMB ASCEND
  3132.         END_VERB
  3133.  
  3134.    In the above example, if the player types STAB THE DWARF WITH THE KNIFE,
  3135.    AGT will translate the sentence to KILL THE DWARF WITH THE KNIFE and
  3136.    attempt to do so.  Synonyms do not replace the original verb, e.g., the
  3137.    verb KILL would also work.  Likewise, if the player types CLIMB the game
  3138.    will execute the sentence as if the player had typed UP -- which means that
  3139.    CLIMB DOWN would be translated to UP DOWN which would, of course, confuse
  3140.    the game somewhat and generate an error message which might, in turn,
  3141.    confuse the player.
  3142.  
  3143.    Because the verb synonyms are not actually user-defined verbs, you should
  3144.    think carefully about the possible uses of words you add, to make sure the
  3145.    player won't be confused by the meaning of a word.
  3146.  
  3147.    WARNING: It is NOT possible to define a synonym for a synonym.  For
  3148.    example, the following entry would generate an error message:
  3149.  
  3150.         VERB
  3151.         ATTACK CHOKE
  3152.         CHOKE STRANGLE    <-- "Verb not recognized - Line ignored"
  3153.         END_VERB
  3154.  
  3155.    Verb synonyms defined as those above are "global" in that they apply in
  3156.    each room of the game.  On the other hand, room synonyms apply only in the
  3157.    particular room for which they are defined.  Room synonyms take precedence
  3158.    over global synonyms.  For example, you could define CHOKE to be a synonym
  3159.    for ATTACK globally (as above), then define CHOKE to be a synonym for PULL
  3160.    in a particular room.  If you were in that room, CHOKE would be treated
  3161.    like the verb PULL; outside of that room CHOKE would be treated as if you
  3162.    had input the verb ATTACK.
  3163.  
  3164.  
  3165.    PLAYER_DEAD
  3166.  
  3167.    A ROOM can contain a PLAYER_DEAD specification that will cause the player
  3168.    to die when he or she first enters the room (and after the description is
  3169.    displayed on the screen).  An example of how this feature might be used is
  3170.    as follows:
  3171.  
  3172.         ROOM [In the frigid water]
  3173.         You have drowned!
  3174.         PLAYER_DEAD
  3175.         END_ROOM
  3176.  
  3177.  
  3178.  
  3179.  
  3180.  
  3181.                                        55
  3182.  
  3183.  
  3184.  
  3185.  
  3186.         ROOM_DESCR [In the frigid water]
  3187.         Now you've done it!  You've slid off the floe into the frigid water. 
  3188.         Your life passes before your eyes.  They say drowning is not such a
  3189.         bad way to go, but whoever said that must have drowned in warm water. 
  3190.         Your frozen little body bobs to the surface for a second then flips
  3191.         upside down and you sink to the bottom of the ocean.  You're dead!
  3192.         END_ROOM_DESCR
  3193.  
  3194.  
  3195.    GAME_WIN
  3196.  
  3197.    Acquiring all the points defined in the game doesn't let the player "win,"
  3198.    and winning isn't even related to points.  If you define a room as
  3199.    GAME_WIN, then the player wins the game upon entering the room, and the
  3200.    game ends and the final score is displayed.  It is usually desirable to
  3201.    make that room very difficult to enter and not let the player get there
  3202.    unless he or she has done everything else there is to do.
  3203.  
  3204.    The room description is displayed, so you should put your congratulatory
  3205.    description there.  For example:
  3206.  
  3207.         ROOM [End of the Rainbow]
  3208.         End of the Rainbow
  3209.         GAME_WIN
  3210.         POINTS 50
  3211.         END_ROOM
  3212.  
  3213.         ROOM_DESCR [End of the Rainbow]
  3214.         At long last, you have reached the end of the rainbow.  The pot of
  3215.         gold lies at your feet.  You have won the game!!
  3216.         END_ROOM_DESCR
  3217.  
  3218.    Note that is also possible to win the game when a specific Noun is
  3219.    acquired.  This is done be putting a GAME_WIN in the Noun's specification.
  3220.  
  3221.  
  3222.    GAME_END
  3223.  
  3224.    If you desire to have the game end, without having the player win, you can
  3225.    use a GAME_END in the room definition.  When this is done, the game will
  3226.    end when the player enters the room and the final score is displayed.  The
  3227.    room description is also displayed, so you should put any final comments to
  3228.    the player in the room description.  For example:
  3229.  
  3230.         ROOM [End of the trail]
  3231.         End of the trail
  3232.         GAME_END
  3233.         END_ROOM
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.                                        56
  3240.  
  3241.  
  3242.  
  3243.  
  3244.         ROOM_DESCR [End of the trail]
  3245.         You have reached the end of the trail.  There is no turning back.
  3246.         Sorry, but your adventure is OVER!
  3247.         END_ROOM_DESCR
  3248.  
  3249.  
  3250.    PAGE PAUSES
  3251.  
  3252.    Normally, the game pauses after every 22 lines of text (so that the player
  3253.    can read it), and the player then hits <CR> to read more.  As you play-test
  3254.    your game, you might try to adjust your paragraph or line spacing so that
  3255.    the page breaks don't come at awkward spots and confuse the player.  This
  3256.    is probably most important in the title screen and the INSTRUCTION and
  3257.    INTRO texts; it is less controllable in the individual room descriptions.
  3258.  
  3259.  
  3260.    ORDER OF DEFINITIONS
  3261.  
  3262.    AGT doesn't require that the definitions be in any specific order within
  3263.    the data files.  Definitions can be freely mixed throughout your data
  3264.    files.  You'll probably want to group items together that logically belong
  3265.    together. That's how the sample games were written.  The order of
  3266.    definitions in the file has no effect on game performance, as long as each
  3267.    definition is properly structured.
  3268.  
  3269.  
  3270.    HOW TO INCLUDE COMMENTS IN YOUR AGT DATA FILES
  3271.  
  3272.    Within your data file, you'll probably want to include comments which won't
  3273.    be processed by the game itself, so you'll be able to understand why you
  3274.    did certain things.
  3275.  
  3276.    In general, AGT treats anything it doesn't understand as a comment.  Thus,
  3277.    if you have a paragraph of text in between definitions, AGT will usually
  3278.    ignore it.
  3279.  
  3280.    BEWARE: If one of the lines in the paragraph begins with a keyword like
  3281.    "noun" or "text," AGT will probably decide that it's the beginning of a
  3282.    definition and get confused.
  3283.  
  3284.    To avoid this, you can use a nonsense word to start each line of a comment:
  3285.    words like "REM" (for remark) are useful since they also clearly state what
  3286.    the line is.  
  3287.  
  3288.    AGT ignores most punctuation completely, so using "comment" indicators like
  3289.    "(*" and "*)" or { and } at the beginning of a line won't help.  However,
  3290.    using these kinds of comment indicators will make your game files easier to
  3291.    read.  AGT usually only sees alphabetic characters ('a'..'z' and 'A'..'Z')
  3292.    or the digits ('0'..'9').
  3293.  
  3294.    You can put comments on lines which contain a keyword or a keyword and a
  3295.    number; don't include comments on lines which contain a full-line
  3296.  
  3297.                                        57
  3298.  
  3299.  
  3300.  
  3301.  
  3302.    description.
  3303.  
  3304.    Example of properly-commented definitions:
  3305.  
  3306.         ROOM [Master Bedroom]
  3307.         Master Bedroom
  3308.         EAST [bathroom]
  3309.         NORTHEAST [closet]
  3310.         SPECIAL [cavern]
  3311.         KEY [Strange Mirror]    <-- Special activated by touching mirror
  3312.         END_ROOM
  3313.  
  3314.         NOUN [Strange Mirror]
  3315.         Mirror
  3316.         Strange                 (isn't there a better adjective?)
  3317.         There is a wall-size mirror here.
  3318.         LOCATION [Master Bedroom]             (in the Master Bedroom)
  3319.         rem: the player finds this mirror in the master bedroom,
  3320.         rem: and gets to the Cavern by touching it.  The player
  3321.         rem: can only return if s/he has the magic amulet, and
  3322.         rem: will need the soap from the bathroom to kill the
  3323.         rem: demon on the bridge.
  3324.         UNMOVABLE               (not very useful if the player can take it!)
  3325.         PUSHABLE                <-- Here's how we'll activate the special
  3326.         END_NOUN
  3327.  
  3328.    Below is an example of a badly-commented definition:
  3329.  
  3330.         ROOM [Master Bedroom]
  3331.         Master Bedroom
  3332.         WEST [hallway]
  3333.         (If the player decides to enter the bathroom to the
  3334.         west, s/he will find the 32 gold pieces.)
  3335.         EAST [bathroom]
  3336.         NORTHEAST [closet]
  3337.         SPECIAL [Cavern]        <-- Special goes to room [Cavern]
  3338.         KEY [Strange Mirror]    <-- Activated by touching mirror
  3339.         (The player gets to the mystic cavern by means of a
  3340.         key special, activated by noun [Magic Mirror])
  3341.         END_ROOM
  3342.  
  3343.    In the above example, the second full comment line begins with the keyword
  3344.    "WEST" and contains the number 32, so AGT might decide that WEST should
  3345.    lead to room 32, changing the game!  The last line before the END_ROOM
  3346.    could confuse AGT and redefine the key number (to 233).  That comment line
  3347.    is also plainly incorrect, since it says "[Magic Mirror]" instead of
  3348.    "[Strange Mirror]."
  3349.  
  3350.    There are several other ways to sprinkle comments throughout your game
  3351.    source files.  Any line in the file that begins with either a ! mark or ;
  3352.    in column 1 of the line will be treated as a comment and ignored by
  3353.    MCOMPILE.  In addition, you may use the #COMMENT directive to place notes
  3354.  
  3355.                                        58
  3356.  
  3357.  
  3358.  
  3359.  
  3360.    or remarks anywhere in the source file, even in the middle of game text, so
  3361.    long as the comment begins and ends on its own line(s).  MCOMPILE will
  3362.    completely disregard these comments, and they will not appear in any output
  3363.    files.
  3364.  
  3365.    The #COMMENT directive has two forms: a single-line form and a multi-line
  3366.    form.  The two forms look like this:
  3367.  
  3368.         #COMMENT  This is a single-line comment.
  3369.  
  3370.         #COMMENT
  3371.         This is a multi-
  3372.         line comment.
  3373.         #END_COMMENT
  3374.  
  3375.    Note that MCOMPILE tells the difference between single- and multi-line
  3376.    directives by the presence or absence of text following the directive
  3377.    keyword.
  3378.  
  3379.  
  3380.    CREATING A FINAL COMPILED VERSION
  3381.  
  3382.    To make a playable copy of your game -- named YOURGAME for purposes of
  3383.    illustration -- just follow the steps laid out in the section entitled
  3384.    "QUICK START FOR CREATING A READY-TO-PLAY GAME" earlier in the manual. 
  3385.    However substitute the name YOURGAME wherever you see the name SQUYNCH.
  3386.  
  3387.    Later in this manual, you will learn that you may also want to include
  3388.    various picture, sound, music and font files with your game as part of the
  3389.    "finished" package.
  3390.  
  3391.    And remember to NEVER, NEVER erase or delete your source game file,
  3392.    YOURGAME.AGT!!
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399.  
  3400.  
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.                                        59
  3414.  
  3415.  
  3416.  
  3417.  
  3418.    PART 3:  USING META-COMMANDS IN PROFESSIONAL LEVEL ADVENTURE GAMES
  3419.  
  3420.  
  3421.    Before discussing meta-commands in detail, it is convenient to present a
  3422.    quick overview of other changes in Professional Level games.  The principal
  3423.    changes are the addition of custom user-defined verbs and Maximum_Score to
  3424.    the .AGT file (NOTE: everything else about the .AGT files as previously
  3425.    presented still applies in Professional Level games).
  3426.  
  3427.  
  3428.    CUSTOM USER-DEFINED VERBS
  3429.  
  3430.    Custom user-defined verbs are defined very much like "Verb Synonyms".  For
  3431.    example, the following lines in the .AGT file will define several new verbs
  3432.    (and synonyms):
  3433.  
  3434.         VERB
  3435.         Dummy_Verb1 KISS HUG LOVE CARESS
  3436.         Dummy_Verb2 GO CLIMB CROSS
  3437.         Dummy_Verb3 CUT CHOP BREAK CRACK BUST
  3438.         Dummy_Verb4 JUMP LEAP
  3439.         Dummy_Verb5 SEARCH FIND
  3440.         END_VERB
  3441.  
  3442.    AGT adds 50 "dummy verbs" (Dummy_Verb1 ...  Dummy_Verb50) to the list of
  3443.    valid verbs.  These dummy verbs are then redefined as if they had synonyms
  3444.    in statements like the ones above.  These user-defined verbs are then used
  3445.    in meta-commands to specify new conditional tests and appropriate actions. 
  3446.    For example, the following meta-commands (in the .AGT file) would allow the
  3447.    player to CLIMB a tree and to CROSS a bridge:
  3448.  
  3449.         COMMAND CLIMB TREE
  3450.         InRoom [sturdy oak tree]
  3451.         GoToRoom [in branches at top of oak tree]
  3452.         PrintMessage [You climb up to the top of the tree.]
  3453.         DoneWithTurn
  3454.         END_COMMAND
  3455.  
  3456.         COMMAND CROSS BRIDGE
  3457.         AtLocation [West side of bridge]
  3458.         GoToRoom [East side of bridge]
  3459.         PrintMessage [You walk across the bridge to the other side.]
  3460.         DoneWithTurn
  3461.         END_COMMAND
  3462.  
  3463.         COMMAND CROSS BRIDGE
  3464.         AtLocation [East side of bridge]
  3465.         GoToRoom [West side of bridge]
  3466.         PrintMessage [You walk across the bridge to the other side.]
  3467.         DoneWithTurn
  3468.         END_COMMAND
  3469.  
  3470.  
  3471.                                        60
  3472.  
  3473.  
  3474.  
  3475.  
  3476.    The above meta-commands could also have been done by CHANGE_LOCATION
  3477.    specials.  However, custom verbs and meta-commands can also be used to
  3478.    create more unusual situations, like these meta-commands for processing the
  3479.    user's input to KISS or HUG something:
  3480.  
  3481.         COMMAND KISS PRINCESS
  3482.         InRoom [Princess]
  3483.         AtLocation [Bridal Suite of palace]
  3484.         PrintMessage [The princess melts into your strong arms, etc.]
  3485.         PlusScore [Bonus for Kiss]
  3486.         WinGame 
  3487.         DoneWithTurn
  3488.         END_COMMAND
  3489.  
  3490.         COMMAND KISS PRINCESS
  3491.         InRoom [Princess]
  3492.         NOT AtLocation [Bridal Suite of palace]
  3493.         PrintMessage [The princess pushes you away coyly, "Not here!"]
  3494.         DoneWithTurn
  3495.         END_COMMAND
  3496.  
  3497.         COMMAND KISS TROLL
  3498.         InRoom [Ugly Troll]
  3499.         PrintMessage [The troll kills you!]
  3500.         KillPlayer [That will teach you to KISS THE TROLL!!]
  3501.         DoneWithTurn
  3502.         END_COMMAND
  3503.  
  3504.         COMMAND KISS ANY
  3505.         NOUNpresent ; NOUN (whatever it is) is here.
  3506.         PrintMessage [You try to $verb$ the $noun$ for awhile.]
  3507.         MinusScore 10 ; penalty for sick mind
  3508.         DoneWithTurn
  3509.         END_COMMAND
  3510.  
  3511.         COMMAND KISS ANY
  3512.         PrintMessage [The $adjective$ $noun$ isn't here!]
  3513.         MinusScore 10 ; penalty for sick mind
  3514.         DoneWithTurn
  3515.         END_COMMAND
  3516.  
  3517.    Meta-commands are processed in the order encountered in the .AGT file, so
  3518.    the last two KISS ANY commands represent "default" commands and would be
  3519.    activated only if you weren't trying to KISS, HUG, etc. the PRINCESS or the
  3520.    TROLL.  For example, if you gave the input "KISS THE BLARNEY STONE", the
  3521.    game would respond with "You try to kiss the stone for a while" or "The
  3522.    Blarney stone isn't here!" depending upon if the Blarney stone is present
  3523.    at your current location or not.
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.                                        61
  3530.  
  3531.  
  3532.  
  3533.  
  3534.    MAXIMUM_SCORE
  3535.  
  3536.    AGT allows the score to be manipulated via meta-language commands.  For
  3537.    example, using meta-language commands, one could adjust the score whenever
  3538.    the player:
  3539.  
  3540.         -- Accepts a hint
  3541.         -- Solves a particularly difficult puzzle
  3542.         -- Gives the correct answer to a riddle
  3543.         -- Performs a daring and/or noble act
  3544.  
  3545.    The score can be manipulated either positively or negatively in this way.
  3546.  
  3547.    Since in AGT you may add (or subtract) points from your score via your
  3548.    deeds, the maximum score for the game will often be different from the sum
  3549.    of the scores for visiting rooms and possessing objects.  In this
  3550.    situation, you will need to specify a maximum score for the game in the
  3551.    .AGT file.  For example, to have a maximum score of 350 points for the game
  3552.    you would put the following statement in the game's .AGT file:
  3553.  
  3554.         MAXIMUM_SCORE 350
  3555.  
  3556.  
  3557.    MESSAGES
  3558.  
  3559.    The Master's Edition allows you to have up to 700 messages that are used by
  3560.    various meta-language commands.  The format for each message is straight-
  3561.    forward text as follows:
  3562.  
  3563.         MESSAGE [As you speak, the vault door opens]
  3564.         As you $verb$ into the microphone, the security door slides open
  3565.         noiselessly.  You hurry into the vault.  The door closes behind you.
  3566.         END_MESSAGE
  3567.  
  3568.    In any message, the game designer can use $VERB$, $NOUN$, $ADJECTIVE$,
  3569.    $PREPOSITION$, $OBJECT$ and $NAME$ wherever he wants to have the original
  3570.    verb, the noun, the noun's adjective, the preposition, the objective of the
  3571.    preposition or the name of the person the command is addressed to (if any)
  3572.    echoed back in a message.  $VERB$ uses the original verb which is input by
  3573.    the player, not the verb for which it may be a synonym, e.g., if SPEAK is a
  3574.    synonym for TALK and you input the verb SPEAK, the above MESSAGE [As you
  3575.    speak, the vault door opens] would output "As you speak into the
  3576.    microphone..."
  3577.  
  3578.    IMPORTANT NOTE:  The $-words are case-sensitive.  For example, if you use
  3579.    $NAME$, you will get the name echoed back to the player in the game in all
  3580.    caps.  If you use $Name$, you will get the first letter of the name
  3581.    capitalized and the remainder in lower case.  If you use $name$, you will
  3582.    get the name displayed in all lower case letters.  These same case rules
  3583.    also apply to the other $-words, i.e., $Verb$ will cause the verb to be
  3584.    repeated back with its first letter capitalized and the other letters lower
  3585.    case.
  3586.  
  3587.                                        62
  3588.  
  3589.  
  3590.