Rogue 3.6 reconstruction from
[rogue-pphs.git] / rogue.r
1 .RP
2 .ds RH A Guide to the Dungeons of Doom
3 .ds CH
4 .ds CF - % -
5 .TL
6 A Guide to the Dungeons of Doom
7 .AU
8 Michael C. Toy
9 .AI
10 Computer Systems Research Group
11 Department of Electrical Engineering and Computer Science
12 University of California
13 Berkeley, California 94720
14 .AB
15 Rogue is a visual CRT based fantasy game which runs
16 under the UNIX timesharing system. This paper describes
17 how to play rogue and gives a few hints for those who might
18 otherwise get lost in the Dungeons of Doom.
19 .AE
20 .NH
21 Introduction
22 .PP
23 You have just finished your years as a student at the local fighter's guild.
24 After much practice and sweat you have finally completed your training and
25 are ready to embark upon a perilous adventure. As a test of your skills,
26 the local guildmasters have sent you into the Dungeons of Doom. Your
27 task is to return with the Amulet of Yendor. Your reward for the completion
28 of this task will be a full membership in the local guild. In addition, you are
29 allowed to keep all the loot you bring back from the dungeons.
30 .PP
31 In preparation for your journey, you are given an enchanted sword, taken
32 from a dragon's hoard in the far off Dark Mountains. You are also outfitted
33 with elf-crafted armor and given enough food to reach the dungeons. You
34 say goodbye to family and friends for what may be the last time and head
35 up the road.
36 .PP
37 You set out on your way to the dungeons and after several days of uneventful
38 travel, you see the ancient ruins that mark the entrance to the Dungeons
39 of Doom. It is late at night so you make camp at the entrance and spend
40 the night sleeping under the open skies. In the morning you gather
41 your sword, put on your armor, eat what is almost your last food and enter
42 the dungeons.
43 .NH
44 What is going on here?
45 .PP
46 You have just begun a game of rogue. Your goal is to grab as much treasure
47 as you can, find the Amulet of Yendor, and get out of the Dungeons of Doom
48 alive. On the screen, a map of where you have been and what you have seen on
49 the current dungeon level is kept. As you explore more of the level,
50 it appears on the screen in front of you.
51 .PP
52 Rogue differs from most computer fantasy games in that it is screen
53 oriented. Commands are all one or two keystrokes\(dg
54 .FS
55 \(dgAs opposed to pseudo English sentences.
56 .FE
57 and the results of your commands are displayed
58 graphically on the screen rather than being explained in words.
59 .PP
60 Another major difference between rogue and other computer fantasy games
61 is that once you have solved all the puzzles in a standard fantasy game,
62 it has lost most of its excitement and it ceases to be fun. Rogue on the
63 other hand generates a new dungeon every time you play it and
64 even the author finds it an entertaining and exciting game.
65 .NH
66 What do all those things on the screen mean?
67 .PP
68 In order to understand what is going on in rogue you have to first get
69 some grasp of what rogue is doing with the screen.
70 The rogue screen is intended to replace the "You can see ..." descriptions
71 of standard fantasy games. Here is a sample of what a rogue screen might
72 look like.
73 .in +1i
74 .nf
75 .cs R 15
76 ---------------------
77 |...................+
78 |...@...........[...|
79 |........B..........|
80 |...................|
81 --------+------------
84 .cs R
85 Level: 1 Gold: 0 Hp: 12(12) Str: 16 Ac: 6 Exp: 1/0
86 .fi
87 .in 0
88 .NH 2
89 The bottom line
90 .PP
91 At the bottom line of the screen is a few pieces of cryptic information,
92 describing your current status. Here is an explanation of what these
93 things mean:
94 .IP Level 8
95 This number indicates how deep you have gone in the dungeon. It starts
96 at one and goes up forever\(dg.
97 .FS
98 \(dgOr until you get killed or decide to quit.
99 .FE
100 .IP Gold
101 The number of gold pieces you have managed to find and keep with
102 you so far.
103 .IP Hp
104 Your current and maximum hit points. Hit points indicate how much
105 damage you can take before you die. The more you get hit in a
106 fight, the lower they
107 get. You can regain hit points by resting. The number in parentheses is
108 the maximum number your hit points can reach.
109 .IP Str
110 Your current strength. This can be any integer less than or
111 equal to eighteen. The higher the number, the stronger you are.
112 .IP Ac
113 Your current armor class. This number indicates how effective
114 your armor is in stopping blows from unfriendly creatures. The lower
115 this number is, the more effective the armor.
116 .IP Exp
117 These two numbers give your current experience level and experience points.
118 As you do things, you gain experience points. At certain experience point
119 totals, you gain an experience level. The more experienced you are, the
120 better you are able to fight and to withstand magical attacks.
121 .NH 2
122 The top line
123 .PP
124 The top line of the screen is reserved for printing messages that describe
125 things that are impossible to represent visually. If you see a
126 "--More--" on the top line, this means that rogue wants to print another
127 message on the screen, but it wants to make certain that you have read
128 the one that is there first. To read the next message, just press a
129 space.
130 .NH 2
131 The rest of the screen
132 .PP
133 The rest of the screen is the map of the level as you have explored it so far.
134 Each symbol on the screen represents something. Here is a list of what
135 the various symbols mean:
136 .IP @
137 This symbol represents you, the adventurer.
138 .IP "-|" 6
139 These symbols represent the walls of rooms.
140 .IP +
141 A door to/from a room.
142 .IP .
143 The floor of a room.
144 .IP #
145 The floor of a passage between rooms.
146 .IP *
147 A pile or pot of gold.
148 .IP )
149 A weapon of some sort.
150 .IP ]
151 A piece of armor.
152 .IP !
153 A flask containing a magic potion.
154 .IP ?
155 A piece of paper, usually a magic scroll.
156 .IP ^
157 A trap, watch out for these.
158 .IP %
159 The passage leading down to the next level.
160 .IP :
161 A piece of food.
162 .IP A-Z
163 The uppercase letters represent the various inhabitants of the
164 Dungeons of Doom. Watch out, they can be mean.
165 .NH
166 Commands
167 .PP
168 Commands are given to rogue by pressing single letters. Most commands can
169 be preceded by a count to repeat them (e.g. typing "10s" will do ten searches)
170 The list of commands is rather long, but it can be read at any time during
171 the game with the ? command. Here it is for reference, with a short
172 explanation of each command.
173 .IP ? 6
174 The help command. Asks for a character to give help on. If you type
175 a "*", it will list all the commands, otherwise it will explain what the
176 character you typed does.
177 .IP /
178 This is the "What is that on the screen?" command. A "/" followed by any
179 character that you see on the level, will tell you what that character
180 is. For instance, typing "/@" will tell you that the @ symbol represents
181 you, the player.
182 .IP "h , H"
183 Move left. You move one space to the left. If you use upper case
184 h, you will continue to move left until you run into something. This
185 works for all movement commands (e.g. "L" means run in direction "l")
186 .IP j
187 Move down.
188 .IP k
189 Move up.
190 .IP l
191 Move right.
192 .IP y
193 Move diagonally up and left.
194 .IP u
195 Move diagonally up and right.
196 .IP b
197 Move diagonally down and left.
198 .IP n
199 Move diagonally down and right.
200 .IP f
201 Find prefix. When followed by a direction it means to continue moving
202 in the specified direction until you pass something interesting or
203 run into a wall.
204 .IP t
205 Throw an object. This is a prefix command. Follow it with a direction and
206 you throw an object in the specified direction. (e.g. type "th" to throw
207 something left.)
208 .IP >
209 If you are standing over the passage down to the next level, this command
210 means to climb down.
211 .IP s
212 Search for traps and secret doors. Examine each space immediately adjacent
213 to you for the existence of a trap or secret door. There is a large chance
214 that even if there is something there, you won't find it so you might
215 have to search a while before you find something.
216 .IP " "
217 (space) Rest. This is the "do nothing" command.
218 This is good for waiting and healing.
219 .IP i
220 Inventory. List what you are carrying in your pack.
221 .IP I
222 Selective inventory. Tells you what a single item in your pack is.
223 .IP q
224 Quaff. Drink one of the potions you are carrying.
225 .IP r
226 Read. Read one of the scrolls in your pack.
227 .IP e
228 Eat food. Take some food out of your pack and eat it.
229 .IP w
230 Wield a weapon. Take a weapon out of your pack and carry it. You must be
231 wielding weapon to use it (except to throw things). To fire an arrow,
232 you must wield the bow. You can only wield one weapon at a time.
233 .IP W
234 Wear armor. Take a piece of armor out of your pack and put it on. You can
235 only wear one suit of armor at a time.
236 .IP T
237 Take armor off. You can't remove armor that is cursed.
238 This takes extra time.
239 .IP d
240 Drop an object. Take something out of your pack and leave it lying
241 on the floor. Only one object can occupy each space.
242 .IP o
243 Examine and set options. This command is further explained in the section
244 on options.
245 .IP ^L
246 REdraws the screen. Useful if spurious messages or transmission errors
247 have messed up the display.
248 .IP v
249 Prints the program version number.
250 .IP Q
251 Quit. Leave the game.
252 .IP R
253 Repeat last message. Useful when a message disappears before you can
254 read it.
255 .IP S
256 Save the current game in a file. Caveat: Rogue won't let you start
257 up a copy of a saved game, and it removes the save file as soon as
258 you start up a restored game. This is to prevent people from saving
259 a game just before a dangerous position and then restarting it
260 if they die. To restore a saved game, give the file name as an argument
261 to rogue. As in
262 .ti +1i
263 .nf
264 % rogue save_file
265 .NH
266 Dealing with objects
267 .PP
268 When you find something in the dungeon, it is common to want to pick the
269 object up. This is accomplished in rogue by walking over the object. If
270 you are carrying too many things, the program will tell you and it won't pick
271 up the object, otherwise it will add it to your pack and if the notify
272 option is set, tell you what you just picked up.
273 .PP
274 Many of the commands that operate on objects must prompt you to find
275 out which object you want to use. If you change your mind and don't want to
276 do that command after all, just press an escape and the command will be
277 aborted.
278 .NH
279 Light
280 .PP
281 Rooms in the dungeons are either lit or dark. If you walk into a lit room,
282 the entire room will be drawn on the screen as soon as you enter. If you
283 walk into a dark room, it will only be displayed as you explore it. Upon
284 leaving a dark room, all objects inside the room which might move are
285 removed from the screen. In the darkness you can only see one space
286 in all directions around you.
287 .NH
288 Fighting
289 .PP
290 If you see a monster and you wish to fight it, just attempt to run into it.
291 Many times a monster you find will mind its own business unless you attack
292 it. It is often the case that discretion is the better part of valor.
293 .NH
294 Armor
295 .PP
296 There are various sorts of armor lying around in the dungeon. Some of it
297 is enchanted, some is cursed and some is just normal. Different armor
298 types have different armor classes. The lower the armor class, the
299 more protection the armor affords against the blows of monsters.
300 If a piece of armor is enchanted or
301 cursed, its armor class will be higher or lower than normal. Here is
302 a list of the various armor types and their normal armor class.
303 .TS
304 center box;
305 c c
306 l | c.
307 Type Class
308 =
309 Leather armor 8
310 Studded leather / Ring mail 7
311 Scale mail 6
312 Chain mail 5
313 Banded mail / Splint mail 4
314 Plate mail 3
315 .TE
316 .NH
317 Options
318 .PP
319 Due to variations in personal tastes and conceptions of the way rogue
320 should do things, there are a set of options you can set that cause
321 rogue to behave in various different ways.
322 .NH 2
323 Setting the options
324 .PP
325 There are basically two ways to set the options. The first is with the
326 "o" command of rogue, the second is with the ROGUEOPTS environment
327 variable. On Version 6 systems, there is no equivalent of
328 the ROGUEOPTS feature.
329 .NH 3
330 Using the "o" command
331 .PP
332 When you press "o" in rogue, it clears the screen and displays the current
333 settings for all the options. It then places the cursor by the value of the
334 first option and waits for you to type. You can type a RETURN which means to
335 go to the next option, a "\-" which means to go to the previous option, an
336 escape which means to return to the game, or you can give the option a
337 value. For boolean options this merely involves pressing "t" for true or
338 "f" for false. For string options, type the new value followed by a
339 return.
340 .NH 3
341 Using the ROGUEOPTS variable
342 .PP
343 The ROGUEOPTS variable is a string containing a comma separated list of
344 initial values for the various options. Boolean variables can be turned
345 on by listing their name and turned off by putting a "no" in front of the
346 name. Thus to set up an environment variable so that jump is on, terse is
347 off, the name is set to "Conan the Barbarian" and the fruit is "mango",
348 use the command
349 .nf
350 .nf
351 .ti +3
352 % setenv ROGUEOPTS "jump,noterse,name=Conan the Barbarian,fruit=mango" \(dg
353 .fi
354 .ti +3
355 % setenv ROGUEOPTS "jump,noterse,name=Conan the Barbarian,fruit=mango" \(dg
356 .fi
357 .FS
358 \(dgFor those of you who use the bourne shell, the commands would be
359 .in +3
360 .nf
361 $ ROGUEOPTS="jump,noterse,name=Conan the Barbarian,fruit=mango"
362 $ export ROGUEOPTS
363 .fi
364 .in +0
365 .FE
366 .NH 2
367 Option list
368 .PP
369 Here is a list of the options and an explanation of what each one is for.
370 The default value for each is enclosed in square brackets.
371 .IP "terse [noterse]" 25
372 Useful for those who are tired of the sometimes lengthy messages of rogue.
373 This is a useful option for those on slow terminals. This option defaults to
374 on if your are on a slow (under 1200 baud) terminal.
375 .IP "jump [nojump]"
376 If this option is set, running moves will not be displayed until you
377 reach the end of the move. This saves considerable cpu time and
378 display time. This option defaults to on if you are using a slow terminal.
379 .IP "step [nostep]
380 When step is set, lists of things, like inventories or "*" responses to
381 "Which item do you wish to xxxx? " questions, are displayed one item
382 at a time on the top of the screen, rather than clearing the screen,
383 displaying the list, then re-displaying the dungeon level.
384 .IP "flush [noflush]"
385 If flush is set, all typeahead is thrown away after each round of battle.
386 This is useful for those who type way ahead and watch to their dismay as
387 a Kobold kills them.
388 .IP "askme [noaskme]"
389 Upon reading a scroll or quaffing a potion which does not automatically
390 identify it upon use, rogue will ask you what to name it so you can
391 recognize it in the future.
392 .IP "name [account name]"
393 This is the name of your character. It is used if you get on the top ten
394 scorer's list. It should be less than eighty characters long.
395 .IP "fruit [slime-mold]"
396 This should hold the name of a fruit that you enjoy eating. It is basically
397 a whimsy that the program uses in a couple of places.
398 .IP "file []"
399 The default file name for saving the game. If your phone is hung up by
400 accident, rogue will automatically save the game in this file. The
401 file name may contain the special character "~" which expands to be
402 your home directory.
403 .NH
404 Acknowledgements
405 .PP
406 Rogue was originally conceived of by Glenn Wichman and Michael Toy. The
407 help of Ken Arnold in making the program easier to use and putting the
408 finishing touches on is greatly appreciated. I would also like to thank
409 Marty McNary, Scott Nelson, Daniel Jensen, Kipp Hickman, Joe Kalash,
410 Steve Maurer, Bill Joy, Mark Horton and Jan Miller for their ideas
411 and assistance.