






              AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm


                       _M_i_c_h_a_e_l _C_. _T_o_y
                  _K_e_n_n_e_t_h _C_. _R_. _C_. _A_r_n_o_l_d


              Computer Systems Research Group
 Department of Electrical Engineering and Computer Science
                  University of California
                Berkeley, California  94720




                          _A_B_S_T_R_A_C_T

    _RR_oo_gg_uu_ee  is a visual CRT based fantasy game which runs
    under the UNIX[+] timesharing  system.   This  paper
    describes  how  to play rogue, and gives a few hints
    for those who might otherwise get lost in  the  Dun-
    geons of Doom.




11..  IInnttrroodduuccttiioonn

     You  have  just finished your years as a student at the
local fighter's guild.  After much practice  and  sweat  you
have finally completed your training and are ready to embark
upon a perilous adventure.  As a test of  your  skills,  the
local  guildmasters have sent you into the Dungeons of Doom.
Your task is to return with  the  Amulet  of  Yendor.   Your
reward  for  the completion of this task will be a full mem-
bership in the local guild.  In addition, you are allowed to
keep all the loot you bring back from the dungeons.

     In  preparation  for  your  journey,  you  are given an
enchanted mace, a bow, and a quiver of arrows taken  from  a
dragon's  hoard in the far off Dark Mountains.  You are also
outfitted with elf-crafted armor and given  enough  food  to
reach  the  dungeons.  You say goodbye to family and friends
for what may be the last time and head up the road.

     You set out on your way to the dungeons and after  sev-
eral  days  of  uneventful travel, you see the ancient ruins
that mark the entrance to the Dungeons of Doom.  It is  late
at  night,  so  you  make camp at the entrance and spend the
____________________
   [+]UNIX is a trademark of Bell Laboratories












UUSSDD::3300--22                     AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm


night sleeping under the open skies.   In  the  morning  you
gather  your  weapons, put on your armor, eat what is almost
your last food, and enter the dungeons.

22..  WWhhaatt iiss ggooiinngg oonn hheerree??

     You have just begun a game of rogue.  Your goal  is  to
grab as much treasure as you can, find the Amulet of Yendor,
and get out of the Dungeons of Doom alive.  On the screen, a
map  of  where  you  have been and what you have seen on the
current dungeon level is kept.  As you explore more  of  the
level, it appears on the screen in front of you.

     Rogue  differs from most computer fantasy games in that
it is screen oriented.  Commands are all  one  or  two  key-
strokes1  and  the  results  of  your commands are displayed
graphically on the screen rather  than  being  explained  in
words.2

     Another  major  difference between rogue and other com-
puter fantasy games is that once you  have  solved  all  the
puzzles  in a standard fantasy game, it has lost most of its
excitement and it ceases to be fun.   Rogue,  on  the  other
hand,  generates  a  new  dungeon every time you play it and
even the author finds it an entertaining and exciting  game.

33..  WWhhaatt ddoo aallll tthhoossee tthhiinnggss oonn tthhee ssccrreeeenn mmeeaann??

     In  order  to  understand what is going on in rogue you
have to first get some grasp of what rogue is doing with the
screen.   The  rogue  screen is intended to replace the "You
can see ..." descriptions of standard fantasy games.  Figure
1 is a sample of what a rogue screen might look like.

33..11..  TThhee bboottttoomm lliinnee

     At  the  bottom  line of the screen are a few pieces of
cryptic information describing your current status.  Here is
an explanation of what these things mean:

Level  This  number  indicates how deep you have gone in the
       dungeon.  It starts at one and  goes  up  as  you  go
       deeper into the dungeon.

Gold   The  number  of  gold pieces you have managed to find
       and keep with you so far.
____________________
   1 As opposed to pseudo English sentences.
   2  A minimum screen size of 24 lines by 80 columns is re-
quired.  If the screen is larger,  only  the  24x80  section
will be used for the map.












AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm                     UUSSDD::3300--33



____________________________________________________________


                        ------------
                        |..........+
                        |..@....]..|
                        |....B.....|
                        |..........|
                        -----+------



Level: 1  Gold: 0      Hp: 12(12)  Str: 16(16)  Arm: 4  Exp: 1/0

                          Figure 1
____________________________________________________________


Hp     Your  current  and  maximum  health  points.   Health
       points  indicate  how much damage you can take before
       you die.  The more you get hit in a fight, the  lower
       they  get.   You can regain health points by resting.
       The number in parentheses is the maximum number  your
       health points can reach.

Str    Your  current  strength  and  maximum  ever strength.
       This can be any integer less than or equal to 99,  or
       greater  than  or equal to 1.  The higher the number,
       the stronger you are.  The number in the  parentheses
       is the maximum strength you have attained so far this
       game.

Arm    Your current armor protection.  This number indicates
       how  effective  your  armor is in stopping blows from
       unfriendly creatures.  The higher this number is, the
       more effective the armor.

Exp    These  two numbers give your current experience level
       and experience points.  As you do  things,  you  gain
       experience   points.   At  certain  experience  point
       totals, you gain an experience level.  The more expe-
       rienced you are, the better you are able to fight and
       to withstand magical attacks.

33..22..  TThhee ttoopp lliinnee

     The top line of the screen  is  reserved  for  printing
messages  that describe things that are impossible to repre-
sent visually.  If you see a "--More--"  on  the  top  line,
this  means that rogue wants to print another message on the
screen, but it wants to make certain that you have read  the
one  that  is  there  first.  To read the next message, just










UUSSDD::3300--44                     AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm


type a space.

33..33..  TThhee rreesstt ooff tthhee ssccrreeeenn

     The rest of the screen is the map of the level  as  you
have  explored  it so far.  Each symbol on the screen repre-
sents something.  Here is a list of what the various symbols
mean:

@    This symbol represents you, the adventurer.

-|   These symbols represent the walls of rooms.

+    A door to/from a room.

.    The floor of a room.

#    The floor of a passage between rooms.

*    A pile or pot of gold.

)    A weapon of some sort.

]    A piece of armor.

!    A flask containing a magic potion.

?    A piece of paper, usually a magic scroll.

=    A ring with magic properties

/    A magical staff or wand

^    A trap, watch out for these.

%    A staircase to other levels

:    A piece of food.

A-Z  The uppercase letters represent the various inhabitants
     of the Dungeons of Doom.  Watch out, they can be  nasty
     and vicious.

44..  CCoommmmaannddss

     Commands  are given to rogue by typing one or two char-
acters.  Most commands can be preceded by a count to  repeat
them (e.g. typing "10s" will do ten searches).  Commands for
which counts make no sense have the count ignored.  To  can-
cel  a  count  or a prefix, type <ESCAPE>.  The list of com-
mands is rather long, but it can be read at any time  during
the  game  with the "?"  command.  Here it is for reference,
with a short explanation of each command.










AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm                     UUSSDD::3300--55


?    The help command.  Asks for a character  to  give  help
     on.   If you type a "*", it will list all the commands,
     otherwise it will explain what the character you  typed
     does.

/    This  is  the "What is that on the screen?" command.  A
     "/" followed by any  character  that  you  see  on  the
     level,  will  tell  you  what  that  character is.  For
     instance, typing "/@" will tell you that the "@" symbol
     represents you, the player.

h, H, ^H
     Move left.  You move one space to the left.  If you use
     upper case "h", you will continue to  move  left  until
     you  run  into  something.  This works for all movement
     commands (e.g.  "L" means run in direction "l") If  you
     use  the "control" "h", you will continue moving in the
     specified direction until you pass something  interest-
     ing  or  run  into  a wall.  You should experiment with
     this, since it is a very useful command, but very  dif-
     ficult  to  describe.  This also works for all movement
     commands.

j    Move down.

k    Move up.

l    Move right.

y    Move diagonally up and left.

u    Move diagonally up and right.

b    Move diagonally down and left.

n    Move diagonally down and right.

t    Throw an object.  This is a prefix command.  When  fol-
     lowed with a direction it throws an object in the spec-
     ified direction.  (e.g. type "th" to throw something to
     the left.)

f    Fight  until someone dies.  When followed with a direc-
     tion this will force you to fight the creature in  that
     direction until either you or it bites the big one.

m    Move  onto  something without picking it up.  This will
     move you one space in the direction you specify and, if
     there  is  an object there you can pick up, it won't do
     it.

z    Zap prefix.  Point a staff or wand in a given direction
     and  fire  it.   Even  non-directional  staves  must be










UUSSDD::3300--66                     AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm


     pointed in some direction to be used.

^    Identify trap command.  If a trap is on  your  map  and
     you  can't  remember what type it is, you can get rogue
     to remind you by getting next to it and typing "^" fol-
     lowed  by  the  direction that would move you on top of
     it.

s    Search for traps and secret doors.  Examine each  space
     immediately adjacent to you for the existence of a trap
     or secret door.  There is a large chance that  even  if
     there  is  something  there,  you won't find it, so you
     might have to search a while before you find something.

>    Climb down a staircase to the next level.  Not surpris-
     ingly, this can only be done if  you  are  standing  on
     staircase.

<    Climb up a staircase to the level above.  This can't be
     done without the Amulet of Yendor in your possession.

.    Rest.  This is the "do nothing" command.  This is  good
     for waiting and healing.

,    Pick up something.  This picks up whatever you are cur-
     rently standing on, if you are standing on anything  at
     all.

i    Inventory.  List what you are carrying in your pack.

I    Selective  inventory.   Tells you what a single item in
     your pack is.

q    Quaff one of the potions you are carrying.

r    Read one of the scrolls in your pack.

e    Eat food from your pack.

w    Wield a weapon.  Take a weapon out  of  your  pack  and
     carry  it  for use in combat, replacing the one you are
     currently using (if any).

W    Wear armor.  You can only wear one suit of armor  at  a
     time.  This takes extra time.

T    Take armor off.  You can't remove armor that is cursed.
     This takes extra time.

P    Put on a ring.  You can wear only two rings at  a  time
     (one  on  each hand).  If you aren't wearing any rings,
     this command will ask you which hand you want  to  wear
     it  on, otherwise, it will place it on the unused hand.










AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm                     UUSSDD::3300--77


     The program assumes that you wield your sword  in  your
     right hand.

R    Remove  a ring.  If you are only wearing one ring, this
     command takes it off.  If you are wearing two, it  will
     ask you which one you wish to remove,

d    Drop  an  object.   Take something out of your pack and
     leave it lying on  the  floor.   Only  one  object  can
     occupy  each space.  You cannot drop a cursed object at
     all if you are wielding or wearing it.

c    Call an object something.  If you have a type of object
     in  your  pack  which  you  wish  to remember something
     about, you can use the call command to give a  name  to
     that  type  of  object.   This is usually used when you
     figure out what a potion, scroll,  ring,  or  staff  is
     after you pick it up but before it is truly identified.
     Each type of scroll and potion will  become  identified
     after its first use.

o    Examine  and  set  options.   This  command  is further
     explained in the section on options.

^R   Redraws the screen.  Useful  if  spurious  messages  or
     transmission errors have messed up the display.

^P   Print  last  message.  Useful when a message disappears
     before you can read  it.   Consecutive  repetitions  of
     this command will reveal the last five messages.

<ESCAPE>
     Cancel a command, prefix, or count.

!    Escape to a shell for some commands.

Q    Quit.  Leave the game.

S    Save  the  current  game  in  a  file.  It will ask you
     whether you wish to use the default save file.  _C_a_v_e_a_t:
     Rogue  won't  let  you start up a copy of a saved game,
     and it removes the save file as soon as you start up  a
     restored game.  This is to prevent people from saving a
     game just before a dangerous position and then restart-
     ing  it if they die.  To restore a saved game, give the
     file name as an argument to rogue.  As in
               % rogue _s_a_v_e___f_i_l_e

v    Prints the program version number.

)    Print the weapon you are currently wielding












UUSSDD::3300--88                     AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm


]    Print the armor you are currently wearing

=    Print the rings you are currently wearing

55..  RRoooommss

     Rooms in the dungeons are lit as you enter them.   Upon
leaving a room, all monsters inside the room are erased from
the screen.  In the darkness of a corridor, you can only see
one space in all directions around you.

66..  FFiigghhttiinngg

     If  you  see  a  monster and you wish to fight it, just
attempt to run into it.  Many times a monster you find  will
mind its own business unless you attack it.  It is often the
case that discretion is the better part of valor.

77..  OObbjjeeccttss yyoouu ccaann ffiinndd

     When you find something in the dungeon, it is common to
want  to  pick the object up.  This is accomplished in rogue
by walking over the object (unless you use the  "m"  prefix,
see  above).   If you are carrying too many things, the pro-
gram will tell you and it won't pick up the  object,  other-
wise  it will add it to your pack and tell you what you just
picked up.

     Many of the  commands  that  operate  on  objects  must
prompt you to find out which object you want to use.  If you
change your mind and don't want to  do  that  command  after
all,  just type an <ESCAPE> and the command will be aborted.

     Some objects, like armor and weapons, are  easily  dif-
ferentiated.   Others,  like  scrolls and potions, are given
labels which vary according to type.  During a game, any two
of  the same kind of object with the same label are the same
type.  However, the labels will vary from game to game.

     When you use one  of  these  labeled  objects,  if  its
effect may be obvious.  Potions or scrolls will become iden-
tified at this point, but not other items.  You may want  to
call  these  other  items something so you will recognize it
later, you can use the "call" command (see above).

77..11..  WWeeaappoonnss

     Some weapons, like arrows, come in  bunches,  but  most
come  one  at  a  time.   In order to use a weapon, you must
wield it.  To fire an arrow out of a  bow,  you  must  first
wield the bow, then throw the arrow.  You can only wield one
weapon at a time, but you can't change weapons  if  the  one
you  are  currently wielding is cursed.  The commands to use










AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm                     UUSSDD::3300--99


weapons are "w" (wield) and "t" (throw).

77..22..  AArrmmoorr

     There are various sorts of armor lying  around  in  the
dungeon.   Some of it is enchanted, some is cursed, and some
is just normal.  Different armor types have different  armor
protection.   The higher the armor protection, the more pro-
tection the armor affords against  the  blows  of  monsters.
Here  is  a list of the various armor types and their normal
armor protection:


           +-----------------------------------------+
           |  _T_y_p_e                        _P_r_o_t_e_c_t_i_o_n |
           |None                                   0 |
           |Leather armor                          2 |
           |Studded leather / Ring mail            3 |
           |Scale mail                             4 |
           |Chain mail                             5 |
           |Banded mail / Splint mail              6 |
           |Plate mail                             7 |
           +-----------------------------------------+


If a piece of armor is enchanted, its armor protection  will
be  higher  than  normal.  If a suit of armor is cursed, its
armor protection will be lower, and you will not be able  to
remove it.  However, not all armor with a protection that is
lower than normal is cursed.

     The commands to use weapons  are  "W"  (wear)  and  "T"
(take off).

77..33..  SSccrroollllss

     Scrolls  come with titles in an unknown tongue3.  After
you read a scroll, it disappears from your pack.   The  com-
mand to use a scroll is "r" (read).

77..44..  PPoottiioonnss

     Potions  are  labeled by the color of the liquid inside
the flask.  They disappear after being quaffed.  The command
to quaff a potion is "q" (quaff).


____________________
   3 Actually, it's a dialect spoken only by the twenty-sev-
en members of a tribe in Outer Mongolia, but you're not sup-
posed to _k_n_o_w that.












UUSSDD::3300--1100                    AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm


77..55..  SSttaavveess aanndd WWaannddss

     Staves  and  wands do the same kinds of things.  Staves
are identified by a type of wood; wands by a type  of  metal
or  bone.  They are generally things you want to do to some-
thing over a long distance, so you must point them  at  what
you  wish  to  affect  to  use  them.   Some  staves are not
affected by the direction they are pointed, though.   Staves
come  with  multiple magic charges, the number being random,
and when they are used up, the staff is just a piece of wood
or metal.

     The command to use a wand or staff is "z" (zap)

77..66..  RRiinnggss

     Rings  are very useful items, since they are relatively
permanent magic, unlike  the  usually  fleeting  effects  of
potions,  scrolls, and staves.  Of course, the bad rings are
also more powerful.  Most rings also cause  you  to  use  up
food  more  rapidly, the rate varying with the type of ring.
Rings are differentiated by their stone settings.  The  com-
mands to use rings are "P" (put on) and "R" (remove).

77..77..  FFoooodd

     Food  is  necessary  to  keep you going.  If you go too
long without eating you will faint, and  eventually  die  of
starvation.  The command to use food is "e" (eat).

88..  OOppttiioonnss

     Due to variations in personal tastes and conceptions of
the way rogue should do things, there are a set  of  options
you  can set that cause rogue to behave in various different
ways.

88..11..  SSeettttiinngg tthhee ooppttiioonnss

     There are two ways to set the options.   The  first  is
with  the  "o"  command  of  rogue;  the  second is with the
"ROGUEOPTS" environment variable4.

88..11..11..  UUssiinngg tthhee ``oo'' ccoommmmaanndd

     When  you  type  "o" in rogue, it clears the screen and
displays the current settings for all the options.  It  then
places the cursor by the value of the first option and waits
____________________
   4 On Version 6 systems, there is  no  equivalent  of  the
ROGUEOPTS feature.












AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm                    UUSSDD::3300--1111


for you to type.  You can type a <RETURN> which means to  go
to  the next option, a "-" which means to go to the previous
option, an <ESCAPE> which means to return to  the  game,  or
you  can  give the option a value.  For boolean options this
merely involves typing "t" for true or "f" for  false.   For
string options, type the new value followed by a <RETURN>.

88..11..22..  UUssiinngg tthhee RROOGGUUEEOOPPTTSS vvaarriiaabbllee

     The  ROGUEOPTS  variable is a string containing a comma
separated list of initial values for  the  various  options.
Boolean  variables can be turned on by listing their name or
turned off by putting a "no" in front of the name.  Thus  to
set up an environment variable so that jjuummpp is on, ppaassssggoo is
off, and the nnaammee is set to "Blue Meanie", use the command
   % setenv ROGUEOPTS "jump,nopassgo,name=Blue Meanie"5

88..22..  OOppttiioonn lliisstt

     Here  is  a  list  of the options and an explanation of
what each one  is  for.   The  default  value  for  each  is
enclosed  in square brackets.  For character string options,
input over forty characters will be ignored.

jjuummpp [_n_o_j_u_m_p]
     If this option is set, running moves will not  be  dis-
     played until you reach the end of the move.  This saves
     considerable  CPU  and  display  time.    This   option
     defaults to _j_u_m_p if you are using a slow terminal.

ppaassssggoo [_n_o_p_a_s_s_g_o]
     Follow  turnings  in passageways.  If you run in a pas-
     sage and you run into stone or a wall, rogue  will  see
     if  it  can  turn to the right or left.  If it can only
     turn one way, it will turn that way.  If  it  can  turn
     either  or  neither,  it will stop.  This algorithm can
     sometimes lead to slightly confusing occurrences  which
     is why it defaults to _n_o_p_a_s_s_g_o.

sskkuullll [_s_k_u_l_l]
     Print out the skull at the end if you get killed.  This
     is nice but slow, so you can turn it off if you like.

nnaammee [account name]
     This is the name of your character.  It is used if  you
     get on the top ten scorer's list.
____________________
   5 For those of you who use the Bourne shell sh  (1),  the
commands would be
   $ ROGUEOPTS="jump,nopassgo,name=Blue Meanie"
   $ export ROGUEOPTS












UUSSDD::3300--1122                    AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm


ffrruuiitt [_s_l_i_m_e_-_m_o_l_d]
     This  should  hold  the  name of a fruit that you enjoy
     eating.  It is basically a whimsey that rogue uses in a
     couple of places.

ffiillee [_~_/_r_o_g_u_e_._s_a_v_e]
     The  default  file  name  for saving the game.  If your
     phone is hung up by accident, rogue will  automatically
     save  the  game  in this file.  The file name may start
     with the special character "~" which expands to be your
     home directory.

99..  SSccoorriinngg

     Rogue  maintains  a  list  of the top scoring people or
scores on your machine.  If you score  higher  than  someone
else  on  this  list,  or  better your previous score on the
list, you will be inserted in the proper  place  under  your
current name.

     If you quit the game, you get out with all of your gold
intact.  If, however, you get  killed  in  the  Dungeons  of
Doom, your body is forwarded to your next-of-kin, along with
90% of your gold; ten percent of your gold is  kept  by  the
Dungeons' wizard as a fee6.  This should make  you  consider
whether  you  want  to take one last hit at that monster and
possibly live, or quit and thus stop with whatever you have.
If  you quit, you do get all your gold, but if you swing and
live, you might find more.

     If you just want to see  what  the  current  top  play-
ers/games list is, you can type
          % rogue -s

1100..  AAcckknnoowwlleeddggeemmeennttss

     Rogue  was originally conceived of by Glenn Wichman and
Michael Toy.  Ken Arnold and Michael Toy then  smoothed  out
the  user interface, and added jillions of new features.  We
would  like  to  thank  Bob  Arnold,  Michelle  Busch,  Andy
Hatcher, Kipp Hickman, Mark Horton, Daniel Jensen, Bill Joy,
Joe Kalash, Steve Maurer,  Marty  McNary,  Jan  Miller,  and
Scott  Nelson  for  their ideas and assistance; and also the
teeming multitudes who graciously ignored work, school,  and
social life to play rogue and send us bugs, complaints, sug-
gestions, and just plain flames.  And also Mom.


____________________
   6  The Dungeon's wizard is named Wally the Wonder Badger.
Invocations should be accompanied by a sizable donation.












AA GGuuiiddee ttoo tthhee DDuunnggeeoonnss ooff DDoooomm                    UUSSDD::3300--1133


     The public domain version of rogue now distributed with
Berkeley UNIX was written by Timothy Stoehr.

























































