home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / games / volume5 / monster / part01 / mon1.doc < prev    next >
Text File  |  1988-11-30  |  49KB  |  1,161 lines

  1. Monster is a text-oriented computer adventure game.  Like other traditional
  2. adventure games such as Zork and Adventure, Monster players issue simple
  3. commands to direct a "puppet" through an artificial world.  Players can
  4. explore the world, pick up and make use of objects, and solve puzzles.
  5.  
  6. However, Monster is quite different from other computer adventures in two
  7. respects:  first, Monster is a multiplayer game.  In addition to the normal
  8. actions a player can effect on the simulated environment, players can also
  9. interact with one another.  Player characters can fight, talk, trade items
  10. and explore territory together.  Monster is similar in this respect to some
  11. multiplayer games available on computer networks such as the Source and
  12. Compuserve.
  13.  
  14. However, Monster allows players to do something that very few, if any, other
  15. games allow:  the players themselves create the fantasy world as part of the
  16. game.  Players can create objects, make locations, and set up puzzles for other
  17. players to solve.  Game mechanisms allow players to:
  18.  
  19.     o Create and describe new objects and locations
  20.     o Specify how game objects function
  21.     o Provide text descriptions for events that may happen
  22.  
  23. For example, a player in Monster could create a room named "Great Hall",
  24. provide a textual description for it (which other players would see upon
  25. entering the rooms), and describe special features of the room (for instance,
  26. a brass plaque on the wall).
  27.  
  28. Here's what another player who walked into the room described above would see
  29. (lines beginning with > are the player's input):
  30.  
  31.   > look
  32.   You're in Great Hall
  33.   You're in the middle of a vast hall stretching out of sight to the
  34.   east and west.  Strange shadows play across the high vaulted ceiling.
  35.   The floor is set with smooth rectangular stones.  The walls feel slightly
  36.   cold to the touch, and damp with condensation.  A copper plaque, slightly
  37.   green with age, is set into one wall.
  38.  
  39.   > look plaque
  40.  
  41.   The plaque looks very old and corroded.   However, you can still make out
  42.   the writing:
  43.  
  44.   " Monster, created by Rich Skrenta, 1988.  Play at your own risk. "
  45.  
  46. Now the creator of the rooms could add a secret passage, perhaps hidden
  47. underneath some stones in the floor.  To do this, first the player would
  48. describe what the stones looked like, then make a hidden exit to another
  49. location with a special command which would activate it.  Here's what the player
  50. would see after making these changes:
  51.  
  52.   > show details
  53.   Details here that you may inspect:
  54.       stones
  55.       plaque
  56.   > look stones
  57.   The stones are rough and black, and cold to the touch.  Although the
  58.   mortar work appears to have been expertly done, it has decayed with time.
  59.   Many stones are cracked, and narrow spaces fracture the carefully laid
  60.   pattern.  Some of the stones are quite loose.  You might be able to lift
  61.   one of them with some effort.
  62.   > lift
  63.   With great effort, you manage to lift the stone enough to fit inside.
  64.  
  65.   Once below the stone, it falls back into place, sealing out the light
  66.   from above.  You squirm down the narrow tunnel . . .
  67.  
  68. This example only hints at the details that actually go into the creation of a
  69. realistic game puzzle.  To set up a rich game location, a player would have to
  70. specify: 
  71.  
  72.     o A textual description of the room, as well as separate descriptions
  73.       for various rooms details (in the example above, the plaque and
  74.       the stones are room details)
  75.     o A description of each of the possible exits from the rooms (there
  76.       might be no description if the exit is hidden)
  77.     o What happens when an object is dropped at the location (for example,
  78.       if a player is swimming and he drops something, the object should
  79.       sink) as well as a message describing what happened to the object
  80.     o For each exit, a set of messages and parameters including:
  81.         - the name of the exit
  82.         - whether the exit requires a special object to pass (for
  83.           example, a door key or some magic object)
  84.         - a message displayed to the player if he can't successfully
  85.           leave through the exit (if he doesn't have the key, for
  86.           instance)
  87.         - an optional message that the player sees when he goes
  88.           through an exit (in the example above, the text "Once below
  89.           the stone, it falls back into place...." is such a message)
  90.         - a message that players inside the room see when someone
  91.           leaves through the exit
  92.         - a message that players inside the room see when another
  93.           player enters the room through the exit
  94.         - miscellaneous other parameters
  95.  
  96.  
  97.  
  98. Technical Aspects of Monster:
  99. -----------------------------
  100.  
  101. Each player who plays the Monster game runs a separate copy of the game.  Each
  102. individual Monster process shares a database containing all of the information
  103. about the simulated world, including:
  104.  
  105.     o Records describing all of the rooms, interconnections between rooms,
  106.       objects, and descriptions for the above
  107.     o The locations of every player and object
  108.     o A special shared file used for interprocess communication
  109.  
  110. Each of the Monster database files are organized as a linear collection
  111. of fixed-length records.  Monster uses the following files:
  112.  
  113.     roomfile:    file of records containing data on Monster locations
  114.     namfile:    file containing names for objects, rooms and people
  115.     descfile:    file of text description blocks (10 lines maximum)
  116.     linefile:    file of short (one line) descriptions
  117.     intfile:    file of various integer parameters
  118.     objfile:    file of records containing data on Monster objects
  119.     indexfile:    file of bitmaps for the other files; used to mark
  120.             free/inuse records for dynamic allocation
  121.     eventfile:    file of records used for interprocess communication
  122.  
  123.  
  124. Record Locking:
  125. ---------------
  126.  
  127. When Monster tries to access a record in one of the shared data files, it first
  128. makes a read attempt on the record.  If the record is available (no other
  129. Monster process is reading or writing it) VMS will lock and read the record and
  130. return successfully.  If another process has locked the record, VMS will return
  131. an error condition.  In this case the Monster process will wait a small random
  132. amount of time and attempt to read the record again.  Then if the Monster
  133. program cannot successfully read and lock the record after a certain number of
  134. retries, it prints an error message and aborts. 
  135.  
  136. In initial versions of Monster a count was kept of how many times two processes
  137. would "collide" when both wanted to read one record.  The random wait
  138. dramatically reduced this hit count.
  139.  
  140. Monster's response time using this scheme is acceptable when the load on the VAX
  141. is not too high.  However, it does have some drawbacks.  The first is that a
  142. data record being read by a Monster process is locked for a short time, even if
  143. the process has no intention of writing to it.  Also, the collide-and-wait
  144. approach is somewhat crude considering VMS has extensive record locking
  145. facilities which are capable not only of allowing multiple-read access to a
  146. record but also of queueing processes desiring to write-lock a record.
  147. Unfortunately, the use of these facilities requires special VMS priviliges not
  148. available to ordinary users.
  149.  
  150.  
  151. Interprocess Communication:
  152. ---------------------------
  153.  
  154. Monster processes communicate through a shared file.  A communication from one
  155. process to another is referred to as an event; the shared file for communication
  156. is called the event file.  Two player processes will only need to communicate
  157. if both players are in the same location, since actions in one room won't
  158. affect gamers elsewhere.  However, when two or more players are in the
  159. same location, quite a lot of events may happen:
  160.  
  161.     o Notification of entry and exit -- players in the room must see when
  162.       other players come and go
  163.     o Notification of various actions -- such as picking up and dropping
  164.       objects, taking inventory and closely examining things
  165.     o Messages when players talk to each other in the game
  166.     o Primary, target and third-party events for fighting -- the player
  167.       throwing the punch sees one thing, the person being hit another,
  168.       and somone else watching sees a third message.
  169.  
  170. Because only player processes in the same Monster game location need to
  171. communicate, each room has an associated event file record.  Each event file
  172. record contains a circular list of events with a pointer to the most recent
  173. event.  When a player enters a new room, either by moving or joining the game,
  174. the Monster process reads the event file record for the room and makes a local
  175. copy of the current event pointer.  At periodic intervals, the Monster process
  176. will reread the event file record and compare its local pointer to the one in
  177. the event file.  If they are different, other player processes have logged
  178. events to the event record, and the Monster process will pull them off the list,
  179. handle them, and update its own local pointer.  When a process needs to log an
  180. event, it write-locks the event file record, writes a new event, and updates the
  181. event file pointer. 
  182.  
  183. There are over sixty different events that a Monster process can initiate
  184. or handle; each event can be interpreted differently according to circumstances.
  185. For example, player A may whisper something to player B.  Suppose player C is
  186. also in the room.  Player A's process logs an event containing the message,
  187. the event type ("whisper") and the target of the whisper (player B) to the
  188. event file record associated with their current location.
  189.  
  190.   > whisper b
  191.   >> Hey b, this is something I whispered to you.
  192.  
  193. Player B's process will receive and handle the event:
  194.  
  195.   A whispers, "Hey b, this is something I whispered to you."
  196.  
  197. Player C's process will also receive and handle the event.  Usually C will only
  198. see A and B whispering together:
  199.  
  200.   A is whispering to B.
  201.  
  202. However, there is a small chance that C will overhear the message:
  203.  
  204.   You overhear A whispering to B:
  205.     "Hey b, this is something I whispered to you."
  206.  
  207. This method of interprocess communication requires that all Monster processes
  208. frequently read the event file to see if any events have occured.  This might
  209. seem less efficient than another scheme possibly using VMS mailboxes or shared
  210. memory.  Lack of sufficient VMS privileges prevented me from using shared
  211. memory.  Mailboxes might be more efficient, especially if used with the Vax's
  212. interrupt system.  However, several problems would be present: 
  213.  
  214.     o In order to allow any process to communicate with any other,
  215.       full interconnection would be necessary.  In addition, since VMS
  216.       mailboxes only transmit data in one direction, n Monster processes
  217.       would require 2n mailboxes.  A scheme using mailboxes would quickly
  218.       exhaust process quota limits.
  219.  
  220.     o It is somewhat awkward to set up mailboxes and even more difficult
  221.       to inform other processes of their presence.  Once again, I believe
  222.       that special VMS privileges might be necessary to do this.
  223.  
  224. The event file scheme of communication has proven flexible and is fast enough
  225. when the VAX load is not high.
  226.  
  227.  
  228. Maintaining a Player's Existence in the Database:
  229. -------------------------------------------------
  230.  
  231. When a user runs Monster, it first checks a playerlog to see if he has ever
  232. played before.  If so, the player is restored to the state he was in when he
  233. last played, just before issuing the QUIT command.  In the user is not found in
  234. the playerlog, he is started out at an initial location, somewhat in the center
  235. of the world. 
  236.  
  237. To place a player into a location, Monster scans the room record for a free
  238. "person" slot to put the player's index into.  Once the player is part of
  239. the room record, he will be visible to other players who are also in that
  240. room (providing he hasn't hidden himself), and they will be able to interact
  241. with him.
  242.  
  243. A dangerous situation occurs when a player process dies or becomes disconnected
  244. for some reason.  In this case, the room record shows that a certain player is
  245. in a location, but in fact there is no controlling Monster process for that
  246. player.  There will be no process to handle events directed at that player.
  247. This is a bad situation because they player is not obviously "dead" to the
  248. other Monster programs, as interprocess communication only involves sending
  249. an event, and does not provide for receipt acknowledgement.
  250.  
  251. These "zombie" players were a serious nuisance in an early version of Monster.
  252. The Monster world appeared to be full of players, when in fact they were just
  253. ghosts left from players typing the VAX interrupt character or becoming
  254. disconnected from modems (Monster now inhibits the interrupt character to help
  255. prevent the casual creation of zombies). 
  256.  
  257. There are two cases where a zombie game character may be detected:  when
  258. another player suspects that a game character is not being controlled by a real
  259. user (either from a lack of response from the game character or by checking
  260. the VAX user list); or when the player who created the zombie character attempts
  261. to play Monster again (only one player per account is allow to play Monster
  262. at a time, so if a player tries to enter Monster and also appears to be
  263. currently playing the game, either 1) two players on one account are trying
  264. to play Monster at the same time, or 2) the player character that appears
  265. to be currently playing Monster is really a zombie).
  266.  
  267. To handle the first case, when one player suspects another of being a zombie,
  268. the player can issue the PING command.  PING sends repeated events directed at
  269. the suspected zombie, with short pauses between the sends.  If PING does not
  270. receive a response within a certain amount of time (currently about three
  271. seconds) it attempts to smoothly return the zombie character to the "inactive"
  272. (not playing) state.  This involves taking every object the player character was
  273. holding and dropping them on the ground, updating the "time of last play" record
  274. and modifying the playerlog to show that the player is not currently playing. 
  275.  
  276. In the second case, when no other player has PINGed away the zombie and the
  277. original player (the one responsible for the zombie character) attempts to
  278. reenter Monster, Monster will inform him: 
  279.  
  280.     There may have been some trouble the last time you played.
  281.     Trying to fix it . . .
  282.  
  283. At this point, Monster itself attempts to PING the player's character.  If
  284. two people on the same account are trying to play Monster at the same time
  285. the PING will be answered and Monster will not let the second player into
  286. the game.  Otherwise, the player will enter Monster normally after a short
  287. pause:
  288.  
  289.     All should be fixed now.
  290.  
  291.     Welcome back, Faust.  Your last play was on 13-MAY-1988 at 8:31pm.
  292.  
  293. Even with this solution, there are still situations where trouble can arise with
  294. zombie characters.  For example, suppose a player is on a modem playing Monster
  295. and becomes disconnected.  Another player PINGs away the zombie character.  The
  296. dialup player calls up the VAX again, and reconnects to his disconnected
  297. process.  Now his Monster process still thinks the player character is alive in
  298. the room (it has no knowledge of the disconnect) but the database shows that the
  299. player is inactive.
  300.  
  301. If only a few events have been logged in the associated event file record, the
  302. reconnnected Monster process will notice the fatal PING to itself (lingering in
  303. the event file record) and will abort.  However, if many events have occured
  304. while the process was disconnected, it will not be aware of the change to the
  305. database. This will leave the database in an inconsistent state until the player
  306. QUITs the game.  Fortunately, when the player quits the database will be fixed. 
  307.  
  308. Since this problem will eventually correct itself (when the player quits) and
  309. because checking for this very rare situation would slow response time
  310. considerably (Monster would have to verify its existence in the database
  311. continuously) I decided to ignore this exception.
  312.  
  313. I had originally hoped for a smoother solution to the "disconnected player"
  314. problem.  In a system where a central process drives all of the player
  315. terminals, this is possible.  However, because control in Monster is shared
  316. between many identical processes, the problem is much harder.
  317.  
  318.  
  319. Reflections on the Project:
  320. ---------------------------
  321.  
  322. How the "Installed Base" Stagnated New Development:
  323. ---------------------------------------------------
  324.  
  325. During the development of Monster I would periodically change the records
  326. that held the Monster database.  Once changed in the program, this would render
  327. the existing database unusable, as the new program could no longer open the old
  328. files.  Thus, I would have to destroy the existing world if I wanted to add
  329. any fields to the records that comprised the shared files.
  330.  
  331. In order to provide a stable environment for players who did not want to see
  332. their hard work making Monster rooms destroyed every time I made a change to the
  333. structure of the database, I installed a version with a separate set of data
  334. files than the copy I worked on for development.  Players created rooms and
  335. tested the installed version, while I continued to develop my own copy.
  336. Eventually, the world in the first release of Monster had about 60 rooms. 
  337.  
  338. About a month after installing the original Monster I replaced it with the new,
  339. greatly enhanced version I had been working on (the executable was about 4 times
  340. the size of the original) and started over with an empty world.  I had provided
  341. expansion fields in the data records for the new release of Monster so I could
  342. continue to develop the game without having to work on my own private copy. 
  343.  
  344. The second release of Monster was very popular.  I continued to add features to
  345. the program, and made use of the expansion fields when possible.  However, I
  346. felt more and more constrained by the limits of my database.  I needed to
  347. change more about the data records than the expansion fields would allow.
  348. I wanted to erase the world a second time; however, players had put much work
  349. into creating over 100 rooms, and became quite angry when I suggested that I
  350. might throw away the current world to make a new one.
  351.  
  352. Some suggested that I write a program which would convert the existing database
  353. to a new format.  However, I felt that the work to do this would be much greater
  354. than the work I was planning to spend to make enhancements to the game. Also,
  355. the style of my changes during development called for small frequent changes. I
  356. abandoned the idea of trying to write a translation program, and instead
  357. attempted to work around the limitations of the database structure.  Eventually,
  358. however, my work stagnated, and new development on Monster ceased. 
  359.  
  360. I never anticipated the work of my playtesters holding back further development.
  361. If I were to rewrite Monster, I would use a more flexible storage approach, one
  362. probably involving a form of dynamic typing which would let me add new
  363. parameters to the database without actually changing the record structure or
  364. size. 
  365.  
  366.  
  367.  
  368.  
  369.  
  370.  
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378. Appendix A:  Specifyable Parameters for Monster Locations and Objects
  379. ---------------------------------------------------------------------
  380.  
  381. Rooms:
  382. ------
  383.  
  384. nicename:    the name of the room
  385. nameprint:    formatting control for the nicename
  386. primary,
  387. secondary:    textual descriptions of the room
  388. which:        control for which room description prints:
  389.             0 - only print primary room description
  390.             1 - only print secondary room description
  391.             2 - print both primary and secondary room descriptions
  392.             3 - print primary description; then print secondary
  393.                 description if the player is holding the specified
  394.                 magic object for the room
  395. magicobj:    the magic object for the room
  396. trapto,
  397. trapchance:    allows a player to semi-randomly be thrust through an exit
  398. rndmsg:        eerie message that randomly prints
  399. details:    details that may be looked at in the room
  400.  
  401.  
  402. Exits:
  403. ------
  404.  
  405. toloc:        where the exit goes
  406. kind:        type of the exit:
  407.             0 - no exit; always fails
  408.             1 - open exit; always succeeds
  409.             2 - exits succeeds if player has key object
  410.             3 - exit fails if player has key object
  411.             4 - exit randomly fails
  412.             5 - potential exit; doesn't exist yet
  413.             7 - exit cycles between being open and closed
  414. exitdesc:    short textual descrption of the exit
  415. fail:        description if player fails to go through exit
  416. success:    description if player succeeds to go through exit
  417. goin:        what other players see when someone goes into the exit
  418. comeout:    what others see when a player comes out of the exit
  419. hidden:        what the player sees when he finds the exit (if it's hidden)
  420. objreq:        key object for exit
  421. alias:        name of the exit
  422. reqverb:    requires the player to use the alias only (without "go") to
  423.         use the exit
  424. reqalias:    requires the player to know the exit alias; can't use the
  425.         compass point
  426. autolook:    surpresses the automatic "look" done upon entering the
  427.         new room
  428.  
  429. Objects:
  430. --------
  431.  
  432. oname:        the name of the object
  433. kind:        type parameter for the object
  434. linedesc:    short description of the object (the "on the floor" description)
  435. examine:    close inspection description for the object
  436. numexist:    how many copies of the object exist
  437. sticky:        inhibits players from being able to pick up the object
  438. getobjreq:    requires the player to be holding another object before
  439.         he can pick up this one
  440. getfail:    message printed if a player fails to get an object
  441. getsuccess:    message printed when an object is successfully picked up
  442. useobjreq:    object player must be holding to use this object
  443. uselocreq:    place player must be in to use this object
  444. usefail:    message printed if player fails in use of the object
  445. usesuccess:    message printed if object is successfully used
  446. usealias:    alias word to "use"
  447. reqalias:    require player to know the alias to use the object
  448. article:    whether "a", "an", "some", "the" should precede the object name
  449.  
  450.  
  451. Appendix B:  Monster Command List
  452. ---------------------------------
  453.  
  454. Accept/Refuse #  Allow others to Link an exit here at direction # | Undo Accept
  455. Brief            Toggle printing of room descriptions
  456. Customize [#]    Customize this room | Customize exit # | Customize object #
  457. Describe [#]     Describe this room | Describe a feature (#) in detail
  458. Destroy #        Destroy an instance of object # (you must be holding it)
  459. Duplicate #      Make a duplicate of an already-created object.
  460. Form/Zap #       Form a new room with name # | Destroy room named #
  461. Get/Drop #       Get/Drop an object
  462. #,Go #           Go towards # (Some: N/North S/South E/East W/West U/Up D/Down)
  463. Health           Show how healthy you are
  464. Hide/Reveal [#]  Hide/Reveal yoursef | Hide object (#)
  465. I,Inventory      See what you or someone else is carrying
  466. Link/Unlink #    Link/Unlink this room to/from another via exit at direction #
  467. Look,L [#]       Look here | Look at something or someone (#) closely
  468. Make #           Make a new object named #
  469. Name #           Set your game name to #
  470. Players          List people who have played Monster
  471. Punch #          Punch person #
  472. Quit             Leave the game
  473. Relink           Move an exit
  474. Rooms            Show information about rooms you have made
  475. Say, ' (quote)   Say line of text following command to others in the room
  476. Search           Look around the room for anything hidden
  477. Self #           Edit a description of yourself | View #'s self-description
  478. Show #           Show option # (type SHOW ? for a list)
  479. Unmake #         Remove the form definition of object #
  480. Use #            Use object #
  481. Wear #           Wear the object #
  482. Wield #          Wield the weapon #;  you must be holding it first
  483. Whisper #        Whisper something (prompted for) to person #
  484. Who              List of people playing Monster now
  485. Whois #          What is a player's username
  486. ?,Help           This list
  487. . (period)       Repeat last command
  488.  
  489.  
  490. Appendix C:  Customization Subsystem Menus
  491. ------------------------------------------
  492.  
  493. Room Customization:
  494. -------------------
  495.  
  496. Custom> ?
  497.  
  498. D       Alter the way the room description prints
  499. N       Change how the room Name prints
  500. P       Edit the Primary room description [the default one] (same as desc)
  501. S       Edit the Secondary room description
  502. X       Define a mystery message
  503.  
  504. G       Set the location that a dropped object really Goes to
  505. O       Edit the object drop description (for drop effects)
  506. B       Edit the target room (G) "bounced in" description
  507.  
  508. T       Set the direction that the Trapdoor goes to
  509. C       Set the Chance of the trapdoor functioning
  510.  
  511. M       Define the magic object for this room
  512. R       Rename the room
  513.  
  514. V       View settings on this room
  515. E       Exit (same as quit)
  516. Q       Quit (same as exit)
  517. ?       This list
  518.  
  519.  
  520. Exit customization:
  521. -------------------
  522.  
  523. Custom [direction]> ?
  524.  
  525. A       Set an Alias for the exit
  526. C       Conceal an exit
  527. D       Edit the exit's main Description
  528. E       EXIT custom (saves changes)
  529. F       Edit the exit's failure line
  530. I       Edit the line that others see when a player goes Into an exit
  531. K       Set the object that is the Key to this exit
  532. L       Automatically look [default] / don't look on exit
  533. O       Edit the line that people see when a player comes Out of an exit
  534. Q       QUIT Custom (saves changes)
  535. R       Require/don't require alias for exit; ignore direction
  536. S       Edit the success line
  537. T       Alter Type of exit (passage, door, etc)
  538. V       View exit information
  539. X       Require/don't require exit name to be a verb
  540. ?       This list
  541.  
  542.  
  543. Object Customization:
  544. ---------------------
  545.  
  546. Custom object> ?
  547.  
  548. A       "a", "an", "some", etc.
  549. D       Edit a Description of the object
  550. F       Edit the GET failure message
  551. G       Set the object required to pick up this object
  552. 1       Set the get success message
  553. K       Set the Kind of object this is
  554. L       Edit the label description ("There is a ... here.")
  555. P       Program the object based on the kind it is
  556. R       Rename the object
  557. S       Toggle the sticky bit
  558.  
  559. U       Set the object required for use
  560. 2       Set the place required for use
  561. 3       Edit the use failure description
  562. 4       Edit the use success description
  563. V       View attributes of this object
  564.  
  565. X       Edit the extra description
  566. 5       Edit extra desc #2
  567. E       Exit (same as Quit)
  568. Q       Quit (same as Exit)
  569. ?       This list
  570.  
  571.  
  572. Appendix D:  Monster Playerlist as of June 5, 1988
  573. --------------------------------------------------
  574.  
  575. dolpher       ! Monster Manager        5-JUN-1988  1:48pm * great baths
  576. dasun_c       ! Iceman                 4-JUN-1988 10:30pm * the transporter room
  577. kirsten       ! Kirsten                4-JUN-1988 11:20pm * ffoirefirma
  578. isakson       ! Satan                  3-JUN-1988 10:13am * satan's private hell
  579. tlb05405      ! Tlb05405               3-JUN-1988 11:59am * east hall
  580. nate          ! Smaug                  3-JUN-1988  7:41pm * platform 1
  581. skrenta       ! Faust                  3-JUN-1988  8:37pm * tower room
  582. gary          ! Monster Vice Manager   2-JUN-1988  9:50pm * inner office
  583. laura         ! Laura                  2-JUN-1988 10:36pm * turbolift chamber
  584. james         ! James                  1-JUN-1988  7:54pm * chuk's elevator
  585. chuk          ! SoulStorm              1-JUN-1988  9:57pm * east hall
  586. peter_t       ! Peter_t               31-MAY-1988  8:33pm * pine forest
  587. cary          ! Cary                  31-MAY-1988 11:20pm * maelstrom
  588. francisco     ! Prof. Anthrax         30-MAY-1988  3:54pm * waterbed
  589. sundeep       ! Sundeep               29-MAY-1988  2:21pm * mta office
  590. bkc04916      ! Cheekster             28-MAY-1988 10:51am * the 'ell stop
  591. ktl04905      ! Corwin                28-MAY-1988 11:44am * west hall
  592. perry         ! Bufu Master!!!        28-MAY-1988  8:40pm * pinkie's place
  593. maryahn       ! pinkie                27-MAY-1988 12:39pm * the sewer tunnel
  594. immell        ! hurricane eye         26-MAY-1988  2:25am * post office 3
  595. robert        ! Hungry Wolf           26-MAY-1988  2:26am * roll6
  596. linda         ! linlop                26-MAY-1988 10:47am * terminal room
  597. jeff          ! Pringle               25-MAY-1988  7:12pm * ic
  598. mic00229      ! Mic00229              22-MAY-1988  8:33pm * great hall
  599. jeffoire      ! Ffoire Zen Salad      20-MAY-1988  1:41pm * bar
  600. schroder      ! Schroder              19-MAY-1988 10:09am * burrow
  601. lunde         ! Purple Peril          18-MAY-1988 12:55pm * cloud 9.5
  602. pib           ! Great Pib             17-MAY-1988 11:51pm * great pib's lair
  603. ahrens        ! it                    15-MAY-1988  4:56pm * landing
  604. mborsetti     ! Mborsetti             12-MAY-1988 10:20pm * sewer crossroads
  605. brian         ! Mr. Raven             11-MAY-1988 11:24am * a damp and dark hole
  606. wen05563      ! Gary                  11-MAY-1988  9:00pm * great hall
  607. jimbo         ! Jimbo                  8-MAY-1988 10:02pm * great hall
  608. lentz         ! Lentz                  7-MAY-1988  8:24am * front of isp noyes
  609. miller        ! Mungus                 5-MAY-1988  1:14pm * starbase
  610. otto          ! Otto                   4-MAY-1988  8:45pm * heidi's nightmare
  611. chris         ! House Manager          3-MAY-1988  3:54am * home base
  612. liao          ! Liao                  30-APR-1988  1:21pm * white house
  613. chaz          ! Chaz                  29-APR-1988  4:05pm * post office 2
  614. jmc           ! Run JMC               29-APR-1988  4:37pm * isp heaven
  615. rod           ! Rod                   29-APR-1988  9:00pm * great hall
  616. choi          ! Choi                  28-APR-1988  8:25pm * east hall
  617. bo            ! God                   26-APR-1988  1:58pm * great hall
  618. jonathan      ! Jonathan              26-APR-1988  5:26pm * eye of the hurricane
  619. swift         ! Swift                 26-APR-1988  8:53pm * post office hall
  620. ric05787      ! Deadhead              26-APR-1988 10:57pm * nightmarish room
  621. mccoy         ! The Scribe            26-APR-1988 11:41pm * scribe home
  622. g_wenslow     ! Gary II               24-APR-1988 11:58pm * east hall
  623. kri04333      ! Kri04333              18-APR-1988 12:11am * great hall
  624. dissett       ! Kronos                18-APR-1988 10:13pm * kronos' room
  625. wantz         ! Wantz                 17-APR-1988  2:51pm * great hall
  626. cheezer       ! Cheezer               16-APR-1988  7:55pm * the pine forest
  627. ahr04465      ! Ivo                   16-APR-1988  7:56pm * sewer transport
  628. joey          ! geek                  15-APR-1988  8:03pm * forest crossroads
  629. wargaski      ! Wargaski              14-APR-1988  4:01pm * toxicated
  630. eric          ! Eric                  13-APR-1988  3:51pm * the hall of chuk
  631. rwc00220      ! Rwc00220              12-APR-1988  1:32pm * great hall
  632. kstull        ! Kstull                12-APR-1988  5:01pm * post office 3
  633. tim           ! Tim                   11-APR-1988  8:26pm * great hall
  634. sean          ! Sean                  10-APR-1988  4:27pm * great hall
  635. sam           ! Sam                   10-APR-1988 12:54pm * great hall
  636. dean          ! Artagel                9-APR-1988  8:21am * turbolift chamber
  637. supercom      ! Cursor                 8-APR-1988 12:00am * forest paths
  638. anne          ! Anne                   7-APR-1988  6:55pm * great hall
  639. lisa          ! Lisa                   7-APR-1988  6:56pm * great hall
  640. mouse         ! Mouse                  3-APR-1988 11:26pm * west hall
  641. mca04477      ! Mca04477               2-APR-1988  8:56pm * burrow
  642. sajiv         ! Sajiv                 30-MAR-1988  6:06pm * great hall
  643. chad          ! Chad                  30-MAR-1988  6:37pm * chuk's elevator
  644. jennifer      ! Jennifer              30-MAR-1988  7:22pm * east hall
  645. lasonia       ! Lasonia               29-MAR-1988 11:22am * west hall
  646. brian_t       ! Brian_t               29-MAR-1988 11:59am * maelstrom
  647. mikk          ! Random                29-MAR-1988 11:19pm * ledge
  648. topher        ! Topher                28-MAR-1988  1:19pm * great hall
  649. spectre       ! Ghost in the machine  28-MAR-1988 11:43pm * ghost's mailroom
  650. dave          ! Dave                  18-MAR-1988 10:14am * post office hall
  651. penguins      ! Penguins Amok         18-MAR-1988 11:52pm * chuk's elevator
  652. lawson        ! Space Cowboy          18-MAR-1988 12:23pm * great hall
  653. heidi         ! Heidi                 17-MAR-1988  1:11am * digital purgatory
  654. bueno         ! Bueno                 17-MAR-1988  7:49pm * post office hall
  655. dan           ! Grando                16-MAR-1988  8:18am * eye of the hurricane
  656. eric_yue      ! Samsok                16-MAR-1988  9:29pm * the yueguy's joint
  657. cra01453      ! Cra01453              15-MAR-1988  3:01am * great hall
  658. adam          ! Adam                  14-MAR-1988  6:45pm * round room
  659. was04906      ! Milt                  14-MAR-1988  9:48pm * great hall
  660. watson        ! Watson                14-MAR-1988 10:22pm * chuk's elevator
  661. brianw        ! Brianw                12-MAR-1988         * ffoirefirma
  662. mike          ! Mike                  12-MAR-1988         * toxicated
  663. predator      ! Predator              12-MAR-1988         * east hall
  664. daniel        ! Daniel                11-MAR-1988         * west hall
  665. dav08345      ! Dav08345              11-MAR-1988         * great hall
  666. vlahos        ! otis                  11-MAR-1988         * post office
  667. ginter        ! Ginter                10-MAR-1988         * living room
  668. rob09549      ! Rob09549               9-MAR-1988         * great hall
  669. dora          ! Dora                   8-MAR-1988         * toxicated
  670. kim           ! kim                    8-MAR-1988         * post office 2
  671. michael       ! Prabdib                7-MAR-1988         * tunnel of love
  672. bradley       ! Bradley               29-FEB-1988         * eye of the hurricane
  673. john          ! Raunchmeister         29-FEB-1988         * underhall
  674. melvin        ! Killer Melvin         27-FEB-1988         * chuk's elevator
  675. cliff         ! Cliff                 26-FEB-1988         * east hall
  676.  
  677.  
  678. Appendix E:  An Actual Monster Game Log
  679. ---------------------------------------
  680.  
  681. $ monster
  682. Welcome to Monster!  Hit return to start:
  683.  
  684. Welcome back, Faust.  Your last play was on 1-JUN-1988 at 10:47pm.
  685.  
  686. You're in Great Hall
  687. You're in the middle of a vast hall stretching out of sight to the
  688. east and west.  Strange shadows play across the high vaulted ceiling.
  689. The floor is set with smooth rectangular stones.  The walls feel slightly
  690. cold to the touch, and damp with condensation.  A copper plaque, slightly
  691. green with age, is set into one wall.
  692.  
  693. Monster Manager is here.
  694. >
  695. Monster Manager vanishes in a brilliant burst of multicolored light.
  696. > l
  697. You're in Great Hall
  698. You're in the middle of a vast hall stretching out of sight to the
  699. east and west.  Strange shadows play across the high vaulted ceiling.
  700. The floor is set with smooth rectangular stones.  The walls feel slightly
  701. cold to the touch, and damp with condensation.  A copper plaque, slightly
  702. green with age, is set into one wall.
  703.  
  704. >
  705. Monster Manager appears in a brilliant burst of multicolored light.
  706. > who
  707.                    Monster Status
  708.                  1-JUN-1988 10:48pm
  709.  
  710. Username        Game Name                 Where
  711. dolpher         Monster Manager           great hall
  712. skrenta         Faust                     great hall
  713. > look plaque
  714.  
  715. The plaque looks very old and corroded.   However, you can still make out
  716. the writing:
  717.  
  718.  " Monster, created by Rich Skrenta, 1988.  Play at your own risk. "
  719.  
  720. > show details
  721. Details here that you may inspect:
  722.     stones
  723.     plaque
  724. > look stones
  725. The stones are rough and black, and cold to the touch.  Although the
  726. mortar work appears to have been expertly done, it has decayed with time.
  727. Many stones are cracked, and narrow spaces fracture the carefully laid
  728. pattern.  Some of the stones are quite loose.  You might be able to lift
  729. one of them with some effort.
  730. >
  731. Monster Manager is looking at the stones.
  732. >
  733. Monster Manager is looking at the plaque.
  734. >
  735. Monster Manager says, "Hey Faust, let's go down to the Underhall."
  736. >
  737. Monster Manager manages to lift a stone in the floor and descends.
  738. > lift
  739. With great effort, you manage to lift the stone enought to fit inside.
  740.  
  741. Once below the stone, it falls back into place, sealing out the light
  742. from above.  You squirm down the narrow tunnel . . .
  743.  
  744. You're in UnderHall
  745. This is a cramped, humid room beneath the Great Hall.  The walls are
  746. dripping with water condensed from mist rising from the baths.  Some
  747. of the mist follows the ceiling and dissappears up the narrow tunnel.
  748.  
  749. Stairs lead north down to the Great Baths.
  750. A neon sign flashes "Great PIB's Lair" over a door to the South.
  751. You could manage a crawl through a narrow tunnel leading upwards.
  752.  
  753. Monster Manager is here.
  754. > look Monster Manager
  755. Monster Manager is the stereotype of a computer hacker.  He is wearing
  756. a flannel shirt with several snickers bars in the breast pocket.  On
  757. his belt is an ASCII-HEX conversion chart.  On his feet are a scuffed
  758. pair of hiking boots so he can tackle those dangerous mountains that
  759. crop up in operations.  Also dangling from his belt is a battered box
  760. with many buttons on the front and wires with sockets on the ends protruding
  761. from the back.  The switches seem to have been placed haphazardly, but
  762. the object is unmistakably one of great power nonetheless.
  763.  
  764. Monster Manager is in perfect health.
  765. Monster Manager is empty handed.
  766. >
  767. Monster Manager is looking at you.
  768. >
  769. Monster Manager swings at you but misses.
  770. >
  771. You duck in time to avoid Monster Manager's punch.
  772. >
  773. You see stars as Monster Manager bashes you in the face.
  774. >
  775. You parry Monster Manager's attack.
  776. > punch Monster Manager
  777. You can't punch the Monster Manager.
  778. > l
  779. You're in UnderHall
  780. This is a cramped, humid room beneath the Great Hall.  The walls are
  781. dripping with water condensed from mist rising from the baths.  Some
  782. of the mist follows the ceiling and dissappears up the narrow tunnel.
  783.  
  784. Stairs lead north down to the Great Baths.
  785. A neon sign flashes "Great PIB's Lair" over a door to the South.
  786. You could manage a crawl through a narrow tunnel leading upwards.
  787.  
  788. Monster Manager is here.
  789. > n
  790. You're in Great Baths
  791. These are the luxurious Great Baths where tired adventurers may come
  792. to relax and try to regain their health and youth from the mineral waters.
  793. From where you stand at the entrance, you can see below you the bubbling
  794. soapy pools of water churning violently in tile-lined pits.  The pools
  795. are fed by hot springs from deep in the rock beneath you.  Steam and
  796. huge soapy bubbles rise out of the hot pools of water.  The bubbles
  797. dance through the air, climbing higher and higher, until they either
  798. burst on the sharp walls of the cave or are lost in the mist above you.
  799.  
  800. Shallow tiled steps, wet and slick from the hot soapy waters of the
  801. springs, lead down to the pools.
  802.  
  803. Rough stone stairs lead up to the south.
  804.  
  805. >
  806. In an explosion of orange smoke Monster Vice Manager poofs into the room.
  807. >
  808. Monster Manager has come down the stairs from the Underhall.
  809. >
  810. Monster Vice Manager produces a "who" list and reads it.
  811. > system
  812. System> v
  813.  
  814.                used   free   total
  815. Block file    1008     92    1100
  816. Line file     1501    109    1610
  817. Room file      283     27     310
  818. Object file    139     41     180
  819. Integer file     6      0       6
  820.  
  821. System>
  822. Monster Vice Manager is in system maintenance mode.
  823. System> exit
  824. >
  825. Monster Vice Manager is no longer in system maintenance mode.
  826. > 'Hey Gary
  827. >
  828. Monster Vice Manager says, "Hi, Faust."
  829. > look Monster Vice Manager
  830. The Monster Vice Manager is dressed in a conservative three piece
  831. suit.  The stern expression on his face is just a facade, he really
  832. is a warm and sensitive guy underneath.  He is willing to answer
  833. any questions and help out with any problems.  He can best be
  834. described by the phrase:
  835.  
  836.             "Do what thou wilt, so mete it be."
  837.  
  838. He returns your gaze with a hint of understanding and amusement.
  839.  
  840. Monster Vice Manager is in perfect health.
  841. Monster Vice Manager is empty handed.
  842. >
  843. Monster Vice Manager is looking at you.
  844. > punch Monster Vice Manager
  845. You swing wild and miss.
  846. > .
  847. Monster Vice Manager ducks and avoids your punch.
  848. > .
  849. A quick punch, but it only grazes Monster Vice Manager.
  850. >
  851. You only feel the breeze as Monster Vice Manager swings wildly.
  852. > .
  853. You swing wild and miss.
  854. >
  855. You see stars as Monster Vice Manager bashes you in the face.
  856. >
  857. You only feel the breeze as Monster Vice Manager swings wildly.
  858. > .
  859. You deliver a quick jab to Monster Vice Manager's jaw.
  860. >
  861. Monster Vice Manager's swing misses you by a yard.
  862. > .
  863. Your roundhouse blow sends Monster Vice Manager reeling.
  864. >
  865. You double over after Monster Vice Manager lands a mean jab to your stomach!
  866. Monster Vice Manager looks a little dazed.
  867. >
  868. Monster Vice Manager vanishes from the room in a cloud of orange smoke.
  869. > who
  870.                    Monster Status
  871.                  1-JUN-1988 10:56pm
  872.  
  873. Username        Game Name                 Where
  874. dolpher         Monster Manager           great baths
  875. skrenta         Faust                     great baths
  876. gary            Monster Vice Manager      inner office
  877. > poof inner office
  878.  
  879. This rooms is a conservatively decorated office.  A large
  880. desk dominates the room.  Several pictures hang on the walls
  881. and a silver service is on a stand off to the left.  Two plush
  882. chairs beckon for you to sit down.
  883.  
  884. There are stairs leading down.
  885.  
  886. Monster Vice Manager is here.
  887. Monster Vice Manager looks a little dazed.
  888. > sh det
  889. Details here that you may inspect:
  890.     bin
  891.     plaque
  892.     pictures
  893.     stand
  894. > look bin
  895.  
  896. The bin has a sign on it saying, "Leave mail for the Monster
  897. Vice Manager here.  Thank you."
  898.  
  899. > look plaque
  900.  
  901. The plaque reads:
  902.  
  903.          Gary Wenslow, Monster Vice Manager
  904.  
  905. > look pictures
  906.  
  907. These are very nice pictures of landscapes.  They look expensive.
  908.  
  909. > look stand
  910.  
  911. The silver service on this stand is of fine workmanship.
  912. There are also crystal goblets and flasks containing very
  913. fine wine, brandy, and whiskey.
  914.  
  915. > l
  916.  
  917. This rooms is a conservatively decorated office.  A large
  918. desk dominates the room.  Several pictures hang on the walls
  919. and a silver service is on a stand off to the left.  Two plush
  920. chairs beckon for you to sit down.
  921.  
  922. There are stairs leading down.
  923.  
  924. Monster Vice Manager is here.
  925. Monster Vice Manager looks a little dazed.
  926. > rooms gary
  927. gary:
  928.     tunnel of love            more tunnel of love       end of tunnel
  929.     hot dog stand             picnic                    window
  930.     mvm office                inner office              hall1
  931.     hall2                     hall3                     hall4
  932.     hall5                     hall6                     hall7
  933.     hall8                     hall9                     concession
  934.     roll1                     roll2                     roll3
  935.     roll4                     roll5                     roll6
  936.     roll7                     roll8                     roll9
  937.     roll10                    worker's ledge            railing
  938.     rope                      mvm mail room
  939.  
  940. > rooms dolpher
  941. dolpher:
  942.     void                      pit of fire               underhall
  943.     great baths               pools                     in the pool
  944.     in the bubble             higher bubble             highest bubble
  945.     ledge                     tower ledge               circular staircase
  946.     behind house              kitchen                   living room
  947.     bottom of stairs          manager's mailbox         tower room
  948.     on the scaffolding        round room                mountain pass
  949.     roof of tower             west passageway           castle entrance
  950.     center hall               outside the gate          east passageway
  951.     narrow passage
  952.  
  953. > poof behind house
  954. You're at Behind House
  955. The back door of the house is boarded up, but the windows have not been
  956. blocked.  One window at ground level leads into what appears to be the
  957. kitchen.  All of the other windows are too far above the ground for you
  958. to reach.
  959.  
  960. A path leads west to the front of the house.
  961.  
  962. > form Study
  963. > poof studty
  964. There is no room named studty.
  965. > poof study
  966. You're in Study
  967.  
  968. A note on the east wall says "Your exit here."
  969.  
  970. > refuse east
  971. Exits east will be refused.
  972. > l
  973. You're in Study
  974.  
  975. > desc
  976. [ Editing the primary room description ]
  977. Enter text.  Terminate with ** at the beginning of a line.
  978. You have 10 lines maximum.
  979.  
  980.  1: This is a luxurious study walled with fine oak paneling.  A window
  981.  2: looks out of the east wall.  It is surrounded by purple curtains.
  982.  3: There is a small sign on the wall.
  983.  4: **
  984.  
  985. * e
  986. > l
  987. You're in Study
  988. This is a luxurious study walled with fine oak paneling.  A window
  989. looks out of the east wall.  It is surrounded by purple curtains.
  990. There is a small sign on the wall.
  991.  
  992. > desc sign
  993. [ Editing detail "sign" of this room ]
  994. Enter text.  Terminate with ** at the beginning of a line.
  995. You have 10 lines maximum.
  996.  
  997.  1: The note seems to have been hurriedly scrawled.  It reads:
  998.  2:
  999.  3:    "  This room for demonstration purposes only!  "
  1000.  4:
  1001.  5: **
  1002.  
  1003. * ?
  1004.  
  1005. A       Append text to end
  1006. C       Check text for correct length with parameter substitution (#)
  1007. D #     Delete line #
  1008. E       Exit & save changes
  1009. I #     Insert lines before line #
  1010. P       Print out description
  1011. Q       Quit: THROWS AWAY CHANGES
  1012. R #     Replace text of line #
  1013. Z       Zap all text
  1014. @       Throw away text & exit with the default description
  1015. ?       This list
  1016.  
  1017.  
  1018. * p
  1019.  
  1020.  1: The note seems to have been hurriedly scrawled.  It reads:
  1021.  2:
  1022.  3:    "  This room for demonstration purposes only!  "
  1023.  4:
  1024.  
  1025. * e
  1026. > sh det
  1027. Details here that you may isspect:
  1028.     sign
  1029. > look sign
  1030. The note seems to have been hurriedly scrawled.  It reads:
  1031.  
  1032.    "  This room for demonstration purposes only!  "
  1033.  
  1034. > l
  1035. You're in Study
  1036. This is a luxurious study walled with fine oak paneling.  A window
  1037. looks out of the east wall.  It is surrounded by purple curtains.
  1038. There is a small sign on the wall.
  1039.  
  1040. > desc sign
  1041. [ Editing detail "sign" of this room ]
  1042.  
  1043. * i 1
  1044. 1:
  1045. 2: **
  1046.  
  1047. * p
  1048.  
  1049.  1:
  1050.  2: The note seems to have been hurriedly scrawled.  It reads:
  1051.  3:
  1052.  4:    "  This room for demonstration purposes only!  "
  1053.  5:
  1054.  
  1055. * e
  1056. > look sign
  1057.  
  1058. The note seems to have been hurriedly scrawled.  It reads:
  1059.  
  1060.    "  This room for demonstration purposes only!  "
  1061.  
  1062. > l
  1063. You're in Study
  1064. This is a luxurious study walled with fine oak paneling.  A window
  1065. looks out of the east wall.  It is surrounded by purple curtains.
  1066. There is a small sign on the wall.
  1067.  
  1068. > form Behind the Curtains
  1069. > link west
  1070. Hit return alone at any prompt to terminate exit creation.
  1071.  
  1072. Room to link to? behind the curtains
  1073. Exit comes out in target room
  1074. from what direction? east
  1075. Exit created.  Use CUSTOM west to customize your exit.
  1076. > l
  1077. You're in Study
  1078. This is a luxurious study walled with fine oak paneling.  A window
  1079. looks out of the east wall.  It is surrounded by purple curtains.
  1080. There is a small sign on the wall.
  1081.  
  1082. There is a passage leading west.
  1083.  
  1084. > custom west
  1085. Customizing west exit
  1086. If you would rather be customizing this room, type CUSTOM with no arguments
  1087. If you would rather be customizing an object, type CUSTOM <object name>
  1088.  
  1089. Type ** for any line to leave it unchanged.
  1090. Type return for any line to select the default.
  1091.  
  1092. Custom west> ?
  1093.  
  1094. A       Set an Alias for the exit
  1095. C       Conceal an exit
  1096. D       Edit the exit's main Description
  1097. E       EXIT custom (saves changes)
  1098. F       Edit the exit's failure line
  1099. I       Edit the line that others see when a player goes Into an exit
  1100. K       Set the object that is the Key to this exit
  1101. L       Automatically look [default] / don't look on exit
  1102. O       Edit the line that people see when a player comes Out of an exit
  1103. Q       QUIT Custom (saves changes)
  1104. R       Require/don't require alias for exit; ignore direction
  1105. S       Edit the success line
  1106. T       Alter Type of exit (passage, door, etc)
  1107. V       View exit information
  1108. X       Require/don't require exit name to be a verb
  1109. ?       This list
  1110.  
  1111. Custom west> a
  1112. Alternate name for the exit? curtains
  1113. Custom west> r
  1114. The alias for this exit will be required to reference it.
  1115. Custom west> d
  1116. Enter a one line description of the exit.
  1117.  
  1118. Type ** to leave line unchanged, * to make [no line]
  1119. *
  1120. Custom west> exit
  1121. > l
  1122. You're in Study
  1123. This is a luxurious study walled with fine oak paneling.  A window
  1124. looks out of the east wall.  It is surrounded by purple curtains.
  1125. There is a small sign on the wall.
  1126.  
  1127. > go curtains
  1128. You're in Behind the Curtains
  1129.  
  1130. There is a passage leading east.
  1131. A note on the floor says "Your exit here."
  1132.  
  1133. > e
  1134. You're in Study
  1135. This is a luxurious study walled with fine oak paneling.  A window
  1136. looks out of the east wall.  It is surrounded by purple curtains.
  1137. There is a small sign on the wall.
  1138.  
  1139. > desc window
  1140. [ Editing detail "window" of this room ]
  1141. Enter text.  Terminate with ** at the beginning of a line.
  1142. You have 10 lines maximum.
  1143.  
  1144.  1  You see a green lawn shaded by tall trees and bordered with sculptured
  1145.  2: shrubbery.  A small rabbit is nibbling at some grass.  The entire
  1146.  3: scene has an artificial look, as if it were some cartoon rendering.
  1147.  4: **
  1148.  
  1149. * exit
  1150. > sh det
  1151. Details here that you may inspect:
  1152.     sign
  1153.     window
  1154. > look window
  1155. You see a green lawn shaded by tall trees and bordered with sculptured
  1156. shrubbery.  A small rabbit is nibbling at some grass.  The entire
  1157. scene has an artificial look, as if it were some cartoon rendering.
  1158. > quit
  1159. You vanish in a brilliant burst of multicolored light.
  1160. $
  1161.