Mercurial > hg > early-roguelike
diff rogue3/rogue36.html @ 0:527e2150eaf0
Import Rogue 3.6 from the Roguelike Restoration Project (r1490)
author | edwarj4 |
---|---|
date | Tue, 13 Oct 2009 13:33:34 +0000 |
parents | |
children | b343f42c1f01 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/rogue3/rogue36.html Tue Oct 13 13:33:34 2009 +0000 @@ -0,0 +1,633 @@ +<html> +<head> +<title></title> +</head> +<body> + +<h1 align=center><b>A Guide to the Dungeons of Doom</b></h1> + +<h2 align=center><i>Michael C. Toy</i></h2> + +<h3 align=center> +Computer Systems Research Group<br> +Department of Electrical Engineering and Computer Science<br> +University of California<br> +Berkeley, California 94720</h3> + +<h2 align=center><i>ABSTRACT</i></h2> + +<blockquote> + <blockquote> + <p align="justify"><font size="2">Rogue 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 Dungeons of Doom.</font></p> + </blockquote> +</blockquote> + +<h2 align="justify"><b>1. Introduction</b></h2> + +<p align="justify">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.</p> + +<p align="justify">In preparation for your journey, you are +given an enchanted sword, 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.</p> + +<p align="justify">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 sword, put on your armor, eat what +is almost your last food and enter the +dungeons.</p> + +<h2 align="justify"><b>2. What is going on here?</b></h2> + +<p align="justify">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.</p> + +<p align="justify">Rogue differs from most computer fantasy +games in that it is screen oriented. Commands are all one or +two keystrokes<sup>1 </sup>and the +results of your commands are displayed graphically on the +screen rather than being explained in words<sup>2</sup>.</p> + +<p align="justify">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.</p> + +<h2 align="justify"><b>3. What do all those things on the screen mean?</b></h2> + +<p align="justify">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. Here is a sample of what a +rogue screen might look like.</p> + +<div align="center"><pre> + --------------------- + |...................+ + |...@...........[...| + |........B..........| + |...................| + --------+------------ + +Level: 1 Gold: 0 Hp: 12(12) Str: 16 Ac: 6 Exp: 1/0 +</pre></div> + +<h3 align="justify"><b>3.1. The bottom line</b></h3> + +<p align="justify">At the bottom line of the screen is a few +pieces of cryptic information describing your current +status. Here is an explanation of what these things +mean:</p> + +<table border="0" width="100%" id="table1" cellspacing="3" cellpadding="3"> + <tr> + <td><p align="justify">Level </p></td> + <td><p align="justify">This number indicates how deep you have gone in the + dungeon. It starts at one and goes up forever<sup>2</sup>.</p></td> + </tr> + <tr> + <td><p align="justify">Gold</p></td> + <td><p align="justify">The number of gold pieces you have managed to find + and keep with you so far.</td> + </tr> + <tr> + <td><p align="justify">Hp</p></td> + <td><p align="justify">Your current and maximum hit 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 hit points can + reach.</p></td> + </tr> + <tr> + <td><p align="justify">Str</p></td> + <td><p align="justify">Your current strength. This can be any + integer less than or equal to eighteen. The higher the number, + the stronger you are.</td> + </tr> + <tr> + <td><p align="justify">Ac</p></td> + <td><p align="justify">Your current armor class. This number + indicates how effective your armor is in stopping blows from + unfriendly creatures. The lower this number is, the more + effective the armor.</p></td> + </tr> + <tr> + <td><p align="justify">Exp</p></td> + <td><p align="justify">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 experienced you are, the better + you are able to fight and to withstand magical attacks.</p></td> + </tr> +</table> + +<h3 align="justify"><b>3.2. The top line</b></h3> + +<p align="justify">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.</p> + +<h3 align="justify"><b>3.3. The rest of the screen</b></h3> + +<p align="justify">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:</p> + +<table border="0" width="100%" id="table2" cellspacing="3" cellpadding="3"> + <tr> + <td>@</td> + <td><p align="justify">This symbol represents you, the adventurer.</p></td> + </tr> + <tr> + <td>- |</td> + <td><p align="justify">These symbols represent the walls of rooms.</p></td> + </tr> + <tr> + <td>+</td> + <td> + <p align="justify">A door to/from a room.</p></td> + </tr> + <tr> + <td>.</td> + <td><p align="justify">The floor of a room.</p></td> + </tr> + <tr> + <td>#</td> + <td><p align="justify">The floor of a passage between rooms.</p></td> + </tr> + <tr> + <td>*</td> + <td><p align="justify">A pile or pot of gold.</p></td> + </tr> + <tr> + <td>)</td> + <td><p align="justify">A weapon of some sort.</p></td> + </tr> + <tr> + <td>]</td> + <td><p align="justify">A piece of armor.</p></td> + </tr> + <tr> + <td>!</td> + <td><p align="justify">A flask containing a magic potion.</p></td> + </tr> + <tr> + <td>?</td> + <td><p align="justify">A piece of paper, usually a magic scroll.</p></td> + </tr> + <tr> + <td>^</td> + <td><p align="justify">A trap, watch out for these.</p></td> + </tr> + <tr> + <td>%</td> + <td><p align="justify">The passage leading down to the next level.</p></td> + </tr> + <tr> + <td>:</td> + <td><p align="justify">A piece of food.</p></td> + </tr> + <tr> + <td>A-Z </td> + <td><p align="justify">The uppercase letters represent the various + inhabitants of the Dungeons of Doom. Watch out, they can be mean.</p></td> + </tr> +</table> + +<h2 align="justify"><b>4. Commands</b></h2> + +<p align="justify">Commands are given to rogue by pressing single letters. +Most commands can be preceded by a count to repeat them +(e.g. typing "10s" will do ten searches) 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.</p> + +<div align="center"> +<table border="0" cellspacing="3" cellpadding="3" id="table3"> + <tr> + <td>?</td> + <td><p align="justify">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.</p></td> + </tr> + <tr> + <td>/</td> + <td align="justify"><p>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.</p></td> + </tr> + <tr> + <td colspan="2">h, H</td> + </tr> + <tr> + <td> </td> + <td><p align="justify">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")</p></td> + </tr> + <tr> + <td>j</td> + <td><p align="justify">Move down.</p></td> + </tr> + <tr> + <td>k</td> + <td><p align="justify">Move up.</p></td> + </tr> + <tr> + <td>l</td> + <td><p align="justify">Move right.</p></td> + </tr> + <tr> + <td>y</td> + <td><p align="justify">Move diagonally up and left.</p></td> + </tr> + <tr> + <td>u</td> + <td><p align="justify">Move diagonally up and right.</p></td> + </tr> + <tr> + <td>b</td> + <td><p align="justify">Move diagonally down and left.</p></td> + </tr> + <tr> + <td>n</td> + <td><p align="justify">Move diagonally down and right.</p></td> + </tr> + <tr> + <td>t</td> + <td><p align="justify">Throw an object. This is a prefix command. When + followed with a direction it throws an object in the specified direction. + (e.g. type “th” to throw something to the left.)</p></td> + </tr> + <tr> + <td>f</td> + <td><p align="justify">Find prefix. When followed by a direction it means to + continue moving in the specified direction until you pass + something interesting or run into a wall.</p></td> + </tr> + <tr> + <td>t</td> + <td><p align="justify">Throw an object. This is a prefix command. Follow it + with a direction and you throw an object in the specified + direction. (e.g. type "th" to throw something + left.)</p></td> + </tr> + <tr> + <td>></td> + <td><p align="justify">If you are standing over the passage down to the next + level, this command means to climb down.</p></td> + </tr> + <tr> + <td>s</td> + <td><p align="justify">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.</p></td> + </tr> + <tr> + <td> </td> + <td><p align="justify">(space) Rest. This is the "do nothing" + command. This is good for waiting and healing.</p></td> + </tr> + <tr> + <td align="left" valign="top"> + <p>i</td> + <td align="justify"> + <p>Inventory. List what you are carrying in your pack.</td> + </tr> + <tr> + <td>I</td> + <td><p align="justify">Selective inventory. Tells you what a single item in + your pack is.</p></td> + </tr> + <tr> + <td>q</td> + <td><p align="justify">Quaff. Drink one of the potions you are + carrying.</p></td> + </tr> + <tr> + <td>r</td> + <td><p align="justify">Read. Read one of the scrolls in your pack.</p></td> + </tr> + <tr> + <td>e</td> + <td><p align="justify">Eat food. Take some food out of your pack and eat + it.</p></td> + </tr> + <tr> + <td>w</td> + <td><p align="justify">Wield a weapon. Take a weapon out of your pack and + carry it. You must be wielding weapon to use it (except to throw + things). To fire an arrow, you must wield the bow. You can + only wield one weapon at a time.</p></td> + </tr> + <tr> + <td>W</td> + <td><p align="justify">Wear armor. Take a piece of armor out of your pack + and put it on. You can only wear one suit of armor at a time.</td> + </tr> + <tr> + <td>T</td> + <td><p align="justify">Take armor off. You can’t remove armor that is + cursed. This takes extra time.</p></td> + </tr> + <tr> + <td>d</td> + <td><p align="justify">Drop an object. Take something out of your pack and + leave it lying on the floor. Only one object can occupy each + space.</p></td> + </tr> + <tr> + <td>o</td> + <td><p align="justify">Examine and set options. This command is further + explained in the section on options.</p></td> + </tr> + <tr> + <td>^L</td> + <td><p align="justify">Redraws the screen. Useful if spurious messages or + transmission errors have messed up the display.</p></td> + </tr> + <tr> + <td>v</td> + <td><p align="justify">Prints the program version number.</p></td> + </tr> + <tr> + <td>Q</td> + <td><p align="justify">Quit. Leave the game.</p></td> + </tr> + <tr> + <td>R</td> + <td><p align="justify">Repeat last message. Useful when a message disappears + before you can read it.</p></td> + </tr> + <tr> + <td>S</td> + <td><p align="justify">Save the current game in a file. Caveat: 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 restarting it if they + die. To restore a saved game, give the file name as an + argument to rogue. As in % rogue36 save_file</p></td> + </tr> +</table> +</div> + +<h2 align="justify"><b>5. Dealing with objects</b></h2> + +<p align="justify">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. 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 if the +notify option is set, tell you what you just picked up.</p> + +<p align="justify">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 press an escape and the command will be aborted.</p> + +<h2 align="justify"><b>6. Light</b></h2> + +<p align="justify">Rooms in the dungeons are either lit or dark. If you +walk into a lit room, the entire room will be drawn on the +screen as soon as you enter. If you walk into a dark room, +it will only be displayed as you explore it. Upon leaving a +dark room, all objects inside the room which might move are +removed from the screen. In the darkness you can only see +one space in all directions around you.</p> + +<h2 align="justify"><b>7. Fighting</b></h2> +<p align="justify">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.</p> + +<h2 align="justify">8<b>. Armor</b></h2> + +<p align="justify">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 +classes. The lower the armor class, the more protection the +armor affords against the blows of monsters. If a piece of +armor is enchanted or cursed, its armor class will be higher +or lower than normal. Here is a list of the various armor +types and their normal armor class.</p> + +<div align="center"> + <table border="1" cellspacing="3" cellpadding="3" id="table4" style="border-collapse: collapse"> + <tr> + <th><i>Type</i></th> + <th><i>Class</i></th> + </tr> + <tr> + <td>Leather armor</td> + <td align="center">8</td> + </tr> + <tr> + <td>Studded leather / Ring mail</td> + <td align="center">7</td> + </tr> + <tr> + <td>Scale mail </td> + <td align="center">6</td> + </tr> + <tr> + <td>Chain mail </td> + <td align="center">5</td> + </tr> + <tr> + <td>Banded mail / Splint mail</td> + <td align="center">4</td> + </tr> + <tr> + <td>Plate mail</td> + <td align="center">3</td> + </tr> + </table> +</div> + +<h2 align="justify">9<b>. Options</b></h2> + +<p align="justify">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.</p> + +<h3 align="justify"><b>9.1 Setting the options</b></h3> + +<p align="justify">There are basically two ways to set the options. The +first is with the "o" command of rogue, the second +is with the ROGUEOPTS environment variable. On Version 6 +systems, there is no equivalent of the ROGUEOPTS +feature.</p> + +<h3 align="justify"><b>9.1.1. Using the "o" command</b></h3> + +<p align="justify">When you press "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 pressing +"t" for true or "f" for false. For +string options, type the new value followed by a return.</p> + +<h3 align="justify">9<b>.1.2. Using the ROGUEOPTS variable</b></h3> + +<p align="justify">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 and +turned off by putting a "no" in front of the name. +Thus to set up an environment variable so that jump is on, +terse is off, the name is set to "Conan the +Barbarian" and the fruit is "mango", use the +command</p> + +<div align="justify"><pre> + % setenv ROGUEOPTS "jump,noterse,name=Conan the Barbarian,fruit=mango"<sup>3</sup> +</pre></div> + +<h3 align="justify"><b>9.2. Option list</b></h3> + +<p align="justify">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.</p> + +<p align="justify"><b>terse</b>[<i>noterse</i>]</p> +<blockquote> + <p align="justify"> + Useful for those who are tired of the sometimes lengthy + messages of rogue. This is a useful option for those on slow + terminals. This option defaults to on if your are on a slow + (under 1200 baud) terminal.</p> +</blockquote> + +<p align="justify"><b>jump</b>[<i>nojump</i>]</p> +<blockquote> + <p align="justify">If this option is set, running moves will not be + displayed until you reach the end of the move. This saves + considerable cpu time and display time. This option defaults + to on if you are using a slow terminal.</p> +</blockquote> + +<p align="justify"><b>step</b>[<i>nostep</i>]</p> +<blockquote> + <p align="justify">When step is set, lists of things, like inventories or + "*" responses to "Which item do you wish to + xxxx? " questions, are displayed one item at a time on + the top of the screen, rather than clearing the screen, + displaying the list, then re-displaying the dungeon + level.</p>