A Guide to the Dungeons of Doom
Michael C. Toy
Kenneth C. R. C. Arnold
Computer Systems Research Group
Department of Electrical Engineering and Computer Science
University of California
Berkeley, California 94720
ABSTRACT
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 membership 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 several 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 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.
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 keystrokes[1] 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 computer 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.
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.
Level: 1 Gold: 0 Hp: 12(12) Str: 16(16) Arm: 4 Exp: 1/0
------------ |..........+ |..@....]..| |....B.....| |..........| -----+------
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:
The top line of the screen is reserved for printing messages that describe things that are impossible to represent 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 type a space.
The rest of the screen is the map of the level as you have explored it so far. Each symbol on the screen represents something. Here is a list of what the various symbols mean:
Commands are given to rogue by typing one or two characters. 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 cancel a count or a prefix, type <ESCAPE>. The list of commands 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.
% rogue save-file
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.
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.
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 program will tell you and it won't pick up the object, otherwise 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 differentiated. 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 identified 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).
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 weapons are ``w'' (wield) and ``t'' (throw).
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 protection the armor affords against the blows of monsters. Here is a list of the various armor types and their normal armor protection:
+-----------------------------------------+ | Type Protection | |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).
Scrolls come with titles in an unknown tongue[3]. After you read a scroll, it disappears from your pack. The command to use a scroll is ``r'' (read).
Potions are labeled by the color of the liquid inside the flask. They disappear after being quaffed. The command to use a scroll is ``q'' (quaff).
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 something 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)
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 commands to use rings are ``P'' (put on) and ``R'' (remove).
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).
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.
There are two ways to set the options.
The first is with the
``o''
command of rogue;
the second is with the
``ROGUEOPTS''
environment variable[4].
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 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>.
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 jump is on, passgo is off, and the name is set to ``Blue Meanie'', use the command
% setenv ROGUEOPTS "jump,nopassgo,name=Blue Meanie"[5]
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.
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 fee[6]. 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 players/games list is,
you can type
% rogue -s
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, suggestions, and just plain flames. And also Mom.
The public domain version of rogue now distributed with Berkeley UNIX was written by Timothy Stoehr.