Annotation of early-roguelike/rogue4/rogue.me.in, Revision 1.1.1.1
1.1 rubenllo 1: .ds E \s-2<ESCAPE>\s0
2: .ds R \s-2<RETURN>\s0
3: .ds U \s-2UNIX\s0
4: .ie t .ds _ \d\(mi\u
5: .el .ds _ _
6: .de Cs
7: \&\\$3\*(lq\\$1\*(rq\\$2
8: ..
9: .sp 5
10: .ce 1000
11: .ps +4
12: .vs +4p
13: .b
14: A Guide to the Dungeons of Doom
15: .r
16: .vs
17: .ps
18: .sp 2
19: .i
20: Michael C. Toy
21: Kenneth C. R. C. Arnold
22: .r
23: .sp 2
24: Computer Systems Research Group
25: Department of Electrical Engineering and Computer Science
26: University of California
27: Berkeley, California 94720
28: .sp 4
29: .i ABSTRACT
30: .ce 0
31: .(b I F
32: .bi Rogue
33: is a visual CRT based fantasy game
34: which runs under the \*U\(dg timesharing system.
35: .(f
36: \fR\(dg\*U is a trademark of Bell Laboratories\fP
37: .)f
38: This paper describes how to play rogue,
39: and gives a few hints
40: for those who might otherwise get lost in the Dungeons of Doom.
41: .)b
42: .he '''\fBA Guide to the Dungeons of Doom\fP'
43: .fo ''- % -''
44: .bp 1
45: .sh 1 Introduction
46: .pp
47: You have just finished your years as a student at the local fighter's guild.
48: After much practice and sweat you have finally completed your training
49: and are ready to embark upon a perilous adventure.
50: As a test of your skills,
51: the local guildmasters have sent you into the Dungeons of Doom.
52: Your task is to return with the Amulet of Yendor.
53: Your reward for the completion of this task
54: will be a full membership in the local guild.
55: In addition,
56: you are allowed to keep all the loot you bring back from the dungeons.
57: .pp
58: In preparation for your journey,
59: you are given an enchanted mace,
60: a bow, and a quiver of arrows
61: taken from a dragon's hoard in the far off Dark Mountains.
62: You are also outfitted with elf-crafted armor
63: and given enough food to reach the dungeons.
64: You say goodbye to family and friends for what may be the last time
65: and head up the road.
66: .pp
67: You set out on your way to the dungeons
68: and after several days of uneventful travel,
69: you see the ancient ruins
70: that mark the entrance to the Dungeons of Doom.
71: It is late at night,
72: so you make camp at the entrance
73: and spend the night sleeping under the open skies.
74: In the morning you gather your mace,
75: put on your armor,
76: eat what is almost your last food,
77: and enter the dungeons.
78: .sh 1 "What is going on here?"
79: .pp
80: You have just begun a game of rogue.
81: Your goal is to grab as much treasure as you can,
82: find the Amulet of Yendor,
83: and get out of the Dungeons of Doom alive.
84: On the screen,
85: a map of where you have been
86: and what you have seen on the current dungeon level is kept.
87: As you explore more of the level,
88: it appears on the screen in front of you.
89: .pp
90: Rogue differs from most computer fantasy games in that it is screen oriented.
91: Commands are all one or two keystrokes\**
92: .(f
93: \** As opposed to pseudo English sentences.
94: .)f
95: and the results of your commands
96: are displayed graphically on the screen rather
97: than being explained in words.
98: .pp
99: Another major difference between rogue and other computer fantasy games
100: is that once you have solved all the puzzles in a standard fantasy game,
101: it has lost most of its excitement and it ceases to be fun.
102: Rogue,
103: on the other hand,
104: generates a new dungeon every time you play it
105: and even the author finds it an entertaining and exciting game.
106: .sh 1 "What do all those things on the screen mean?"
107: .pp
108: In order to understand what is going on in rogue
109: you have to first get some grasp of what rogue is doing with the screen.
110: The rogue screen is intended
111: to replace the \*(lqYou can see ...\*(rq descriptions
112: of standard fantasy games.
113: Figure 1 is a sample of what a rogue screen might look like.
114: .(z
115: .hl
116: .nf
117: .TS
118: center;
119: ce0 ce0 ce0 ce0 ce0 ce0 ce0 ce0 ce0 ce0 ce0 ce.
120: - - - - - - - - - - - -
121: | . . . . . . . . . . +
122: | . . @ . . . . ] . . |
123: | . . . . B . . . . . |
124: | . . . . . . . . . . |
125: - - - - - + - - - - - -
126: .TE
127:
128:
129: .ce 1000
130: Level: 1 Gold: 0 Hp: 12(12) Str: 16(16) Ac: 6 Exp: 1/0
131:
132: Figure 1
133: .ce
134: .hl
135: .)z
136: .sh 2 "The bottom line"
137: .pp
138: At the bottom line of the screen
139: are a few pieces of cryptic information
140: describing your current status.
141: Here is an explanation of what these things mean:
142: .ip Level \w'Level\ \ 'u
143: This number indicates how deep you have gone in the dungeon.
144: It starts at one and goes up as you go deeper into the dungeon.
145: .ip Gold \w'Level\ \ 'u
146: The number of gold pieces you have managed to find
147: and keep with you so far.
148: .ip Hp \w'Level\ \ 'u
149: Your current and maximum hit points.
150: Hit points indicate how much damage you can take before you die.
151: The more you get hit in a fight,
152: the lower they get.
153: You can regain hit points by resting.
154: The number in parentheses
155: is the maximum number your hit points can reach.
156: .ip Str \w'Level\ \ 'u
157: Your current strength and maximum ever strength.
158: This can be any integer less than or equal to 31,
159: or greater than or equal to three.
160: The higher the number,
161: the stronger you are.
162: The number in the parentheses
163: is the maximum strength you have attained so far this game.
164: .ip Ac \w'Level\ \ 'u
165: Your current armor class.
166: This number indicates how effective your armor is
167: in stopping blows from unfriendly creatures.
168: The lower this number is,
169: the more effective the armor.
170: .ip Exp \w'Level\ \ 'u
171: These two numbers give your current experience level
172: and experience points.
173: As you do things,
174: you gain experience points.
175: At certain experience point totals,
176: you gain an experience level.
177: The more experienced you are,
178: the better you are able to fight and to withstand magical attacks.
179: .sh 2 "The top line"
180: .pp
181: The top line of the screen is reserved
182: for printing messages that describe things
183: that are impossible to represent visually.
184: If you see a \*(lq--More--\*(rq on the top line,
185: this means that rogue wants to print another message on the screen,
186: but it wants to make certain
187: that you have read the one that is there first.
188: To read the next message,
189: just type a space.
190: .sh 2 "The rest of the screen"
191: .pp
192: The rest of the screen is the map of the level
193: as you have explored it so far.
194: Each symbol on the screen represents something.
195: Here is a list of what the various symbols mean:
196: .ip @
197: This symbol represents you, the adventurer.
198: .ip "-\^|"
199: These symbols represent the walls of rooms.
200: .ip +
201: A door to/from a room.
202: .ip .
203: The floor of a room.
204: .ip #
205: The floor of a passage between rooms.
206: .ip *
207: A pile or pot of gold.
208: .ip )
209: A weapon of some sort.
210: .ip ]
211: A piece of armor.
212: .ip !
213: A flask containing a magic potion.
214: .ip ?
215: A piece of paper, usually a magic scroll.
216: .ip =
217: A ring with magic properties
218: .ip /
219: A magical staff or wand
220: .ip ^
221: A trap, watch out for these.
222: .ip %
223: A staircase to other levels
224: .ip :
225: A piece of food.
226: .ip A-Z
227: The uppercase letters
228: represent the various inhabitants of the Dungeons of Doom.
229: Watch out, they can be nasty and vicious.
230: .sh 1 Commands
231: .pp
232: Commands are given to rogue by typing one or two characters.
233: Most commands can be preceded by a count to repeat them
234: (e.g. typing
235: .Cs 10s
236: will do ten searches).
237: Commands for which counts make no sense
238: have the count ignored.
239: To cancel a count or a prefix,
240: type \*E.
241: The list of commands is rather long,
242: but it can be read at any time during the game with the
243: .Cs ?
244: command.
245: Here it is for reference,
246: with a short explanation of each command.
247: .ip ?
248: The help command.
249: Asks for a character to give help on.
250: If you type a
251: .Cs * ,
252: it will list all the commands,
253: otherwise it will explain what the character you typed does.
254: .ip /
255: This is the \*(lqWhat is that on the screen?\*(rq command.
256: A
257: .Cs /
258: followed by any character that you see on the level,
259: will tell you what that character is.
260: For instance,
261: typing
262: .Cs /@
263: will tell you that the
264: .Cs @
265: symbol represents you, the player.
266: .ip "h, H"
267: Move left.
268: You move one space to the left.
269: If you use upper case
270: .Cs h ,
271: you will continue to move left until you run into something.
272: This works for all movement commands
273: (e.g.
274: .Cs L
275: means run in direction
276: .Cs l )
277: .ip j
278: Move down.
279: .ip k
280: Move up.
281: .ip l
282: Move right.
283: .ip y
284: Move diagonally up and left.
285: .ip u
286: Move diagonally up and right.
287: .ip b
288: Move diagonally down and left.
289: .ip n
290: Move diagonally down and right.
291: .ip t
292: Throw an object.
293: This is a prefix command.
294: When followed with a direction
295: it throws an object in the specified direction.
296: (e.g. type
297: .Cs th
298: to throw
299: something to the left.)
300: .ip f
301: Find prefix.
302: When followed by a direction
303: it means to continue moving in the specified direction
304: until you pass something interesting or run into a wall.
305: You should experiment with this,
306: since it is a very useful command,
307: but very difficult to describe.
308: .ip z
309: Zap prefix.
310: Point a staff or wand in a given direction
311: and fire it.
312: Even non-directional staves must be pointed in some direction
313: to be used.
314: .ip ^
315: Identify trap command.
316: If a trap is on your map
317: and you can't remember what type it is,
318: you can get rogue to remind you
319: by getting next to it and typing
320: .Cs ^
321: followed by the direction that would move you on top of it.
322: .ip s
323: Search for traps and secret doors.
324: Examine each space immediately adjacent to you
325: for the existence of a trap or secret door.
326: There is a large chance that even if there is something there,
327: you won't find it,
328: so you might have to search a while before you find something.
329: .ip >
330: Climb down a staircase to the next level.
331: Not surprisingly, this can only be done if you are standing on staircase.
332: .ip <
333: Climb up a staircase to the level above.
334: This can't be done without the Amulet of Yendor in your posession.
335: .ip "."
336: Rest.
337: This is the \*(lqdo nothing\*(rq command.
338: This is good for waiting and healing.
339: .ip i
340: Inventory.
341: List what you are carrying in your pack.
342: .ip I
343: Selective inventory.
344: Tells you what a single item in your pack is.
345: .ip q
346: Quaff one of the potions you are carrying.
347: .ip r
348: Read one of the scrolls in your pack.
349: .ip e
350: Eat food from your pack.
351: .ip w
352: Wield a weapon.
353: Take a weapon out of your pack and carry it for use in combat,
354: replacing the one you are currently using (if any).
355: .ip W
356: Wear armor.
357: You can only wear one suit of armor at a time.
358: This takes extra time.
359: .ip T
360: Take armor off.
361: You can't remove armor that is cursed.
362: This takes extra time.
363: .ip P
364: Put on a ring.
365: You can wear only two rings at a time
366: (one on each hand).
367: If you aren't wearing any rings,
368: this command will ask you which hand you want to wear it on,
369: otherwise, it will place it on the unused hand.
370: The program assumes that you wield your sword in your right hand.
371: .ip R
372: Remove a ring.
373: If you are only wearing one ring,
374: this command takes it off.
375: If you are wearing two,
376: it will ask you which one you wish to remove,
377: .ip d
378: Drop an object.
379: Take something out of your pack and leave it lying on the floor.
380: Only one object can occupy each space.
381: You cannot drop a cursed object at all
382: if you are wielding or wearing it.
383: .ip c
384: Call an object something.
385: If you have a type of object in your pack
386: which you wish to remember something about,
387: you can use the call command to give a name to that type of object.
388: This is usually used when you figure out what a
389: potion, scroll, ring, or staff is
390: after you pick it up.
391: (See the
392: .Cs askme
393: option below.)
394: .ip D
395: Print out which things you've discovered something about.
396: This command will ask you what type of thing you are interested in.
397: If you type the character for a given type of object
398: (\fIe.g.\fP
399: .Cs !
400: for potion)
401: it will tell you which kinds of that type of object you've discovered
402: (\fIi.e.\fP, figured out what they are).
403: This command works for potions, scrolls, rings, and staves and wands.
404: .ip o
405: Examine and set options.
406: This command is further explained in the section on options.
407: .ip ^L
408: Redraws the screen.
409: Useful if spurious messages or transmission errors
410: have messed up the display.
411: .ip ^R
412: Repeat last message.
413: Useful when a message disappears before you can read it.
414: This only repeats the last message
415: that was not a mistyped command
416: so that you don't loose anything by accidentally typing
417: the wrong character instead of ^R.
418: .ip \*E
419: Cancel a command, prefix, or count.
420: .ip !
421: Escape to a shell for some commands.
422: .ip Q
423: Quit.
424: Leave the game.
425: .ip S
426: Save the current game in a file.
427: It will ask you whether you wish to use the default save file.
428: .i Caveat :
429: Rogue won't let you start up a copy of a saved game,
430: and it removes the save file as soon as you start up a restored game.
431: This is to prevent people from saving a game just before a dangerous position
432: and then restarting it if they die.
433: To restore a saved game,
434: give the file name as an argument to rogue.
435: As in
436: .ti +1i
437: .nf
438: % rogue \fIsave\*_file\fP
439: .ip
440: To restart from the default save file (see below),
441: run
442: .ti +1i
443: .nf
444: % rogue \-r
445: .ip v
446: Prints the program version number.
447: .sh 1 Rooms
448: .pp
449: Rooms in the dungeons are either lit or dark.
450: If you walk into a lit room,
451: the entire room will be drawn on the screen as soon as you enter.
452: If you walk into a dark room,
453: it will only be displayed as you explore it.
454: Upon leaving a room,
455: all objects inside the room which might move
456: or be removed
457: are erased from the screen.
458: In the darkness you can only see one space
459: in all directions around you.
460: A corridor is always dark.
461: .sh 1 Fighting
462: .pp
463: If you see a monster and you wish to fight it,
464: just attempt to run into it.
465: Many times a monster you find will mind its own business
466: unless you attack it.
467: It is often the case that discretion is the better part of valor.
468: .sh 1 "Objects you can find"
469: .pp
470: When you find something in the dungeon,
471: it is common to want to pick the object up.
472: This is accomplished in rogue by walking over the object.
473: If you are carrying too many things,
474: the program will tell you and it won't pick up the object,
475: otherwise it will add it to your pack
476: and tell you what you just picked up.
477: .pp
478: Many of the commands that operate on objects must prompt you
479: to find out which object you want to use.
480: If you change your mind and don't want to do that command after all,
481: just type an \*E and the command will be aborted.
482: .pp
483: Some objects, like armor and weapons,
484: are easily differentiated.
485: Others, like scrolls and potions,
486: are given labels which vary according to type.
487: During a game,
488: any two of the same kind of object
489: with the same label
490: are the same type.
491: However,
492: the labels will vary from game to game.
493: .pp
494: When you use one of these labeled objects,
495: if its effect is obvious,
496: rogue will remember what it is for you.
497: If it's effect isn't extremely obvious, you can use the
498: .Cs call
499: command
500: (see above)
501: or the
502: .Cs askme
503: option
504: (see below)
505: to scribble down something about it
506: so you will recognize it later.
507: .sh 2 Weapons
508: .pp
509: Some weapons,
510: like arrows,
511: come in bunches,
512: but most come one at a time.
513: In order to use a weapon,
514: you must wield it.
515: To fire an arrow out of a bow,
516: you must first wield the bow,
517: then throw the arrow.
518: You can only wield one weapon at a time,
519: but you can't change weapons if the one
520: you are currently wielding is cursed.
521: .sh 2 Armor
522: .pp
523: There are various sorts of armor lying around in the dungeon.
524: Some of it is enchanted,
525: some is cursed,
526: and some is just normal.
527: Different armor types have different armor classes.
528: The lower the armor class,
529: the more protection the armor affords against the blows of monsters.
530: Here is a list of the various armor types and their normal armor class:
531: .(b
532: .TS
533: center;
534: l r.
535: Type Class
536: =
537: None 10
538: Leather armor 8
539: Studded leather / Ring mail 7
540: Scale mail 6
541: Chain mail 5
542: Banded mail / Splint mail 4
543: Plate mail 3
544: .TE
545: .)b
546: .lp
547: If a piece of armor is enchanted,
548: its armor class will be lower than normal.
549: If a suit of armor is cursed,
550: its armor class will be higher,
551: and you will not be able to remove it.
552: However, not all armor with a class that is higher than normal is cursed.
553: .sh 2 Scrolls
554: .pp
555: Scrolls come with titles in an unknown tongue.
556: After you read a scroll,
557: it disappears from your pack.
558: .sh 2 Potions
559: .pp
560: Potions are labeled by the color of the liquid inside the flask.
561: They disappear after being quaffed.
562: .sh 2 "Staves and Wands"
563: .pp
564: Staves and wands do the same kinds of things.
565: Staves are identified by a type of wood;
566: wands by a type of metal or bone.
567: They are generally things you want to do to something
568: over a long distance,
569: so you must point them at what you wish to affect
570: to use them.
571: Some staves are not affected by the direction they are pointed, though.
572: Staves come with multiple magic charges,
573: the number being random,
574: and when they are used up,
575: the staff is just a piece of wood or metal.
576: .sh 2 Rings
577: .pp
578: Rings are very useful items,
579: since they are relatively permanent magic,
580: unlike the usually fleeting effects of potions, scrolls, and staves.
581: Of course,
582: the bad rings are also more powerful.
583: Most rings also cause you to use up food more rapidly,
584: the rate varying with the type of ring.
585: Rings are differentiated by their stone settings.
586: .sh 1 Options
587: .pp
588: Due to variations in personal tastes
589: and conceptions of the way rogue should do things,
590: there are a set of options you can set
591: that cause rogue to behave in various different ways.
592: .sh 2 "Setting the options"
593: .pp
594: There are two ways to set the options.
595: The first is with the
596: .Cs o
597: command of rogue;
598: the second is with the
599: .Cs ROGUEOPTS
600: environment variable\**.
601: .(f
602: \** On Version 6 systems,
603: there is no equivalent of the ROGUEOPTS feature.
604: .br
605: .)f
606: .br
607: .sh 3 "Using the `o' command"
608: .pp
609: When you type
610: .Cs o
611: in rogue,
612: it clears the screen
613: and displays the current settings for all the options.
614: It then places the cursor by the value of the first option
615: and waits for you to type.
616: You can type a \*R
617: which means to go to the next option,
618: a
619: .Cs \-
620: which means to go to the previous option,
621: an \*E
622: which means to return to the game,
623: or you can give the option a value.
624: For boolean options this merely involves typing
625: .Cs t
626: for true or
627: .Cs f
628: for false.
629: For string options,
630: type the new value followed by a \*R.
631: .sh 3 "Using the ROGUEOPTS variable"
632: .pp
633: The ROGUEOPTS variable is a string
634: containing a comma separated list of initial values
635: for the various options.
636: Boolean variables can be turned on by listing their name
637: or turned off by putting a
638: .Cs no
639: in front of the name.
640: Thus to set up an environment variable so that
641: .b jump
642: is on,
643: .b terse
644: is off,
645: and the
646: .b name
647: is set to \*(lqBlue Meanie\*(rq,
648: use the command
649: .nf
650: .ti +3n
651: % setenv ROGUEOPTS "jump,noterse,name=Blue Meanie"\**
652: .fi
653: .(f
654: \**
655: For those of you who use the bourne shell, the commands would be
656: .in +3
657: .nf
658: $ ROGUEOPTS="jump,noterse,name=Blue Meanie"
659: $ export ROGUEOPTS
660: .fi
661: .in +0
662: .)f
663: .sh 2 "Option list"
664: .pp
665: Here is a list of the options
666: and an explanation of what each one is for.
667: The default value for each is enclosed in square brackets.
668: For character string options,
669: input over fifty characters will be ignored.
670: .ip "\fBterse\fP [\fI\^noterse\^\fP]"
671: Useful for those who are tired of the sometimes lengthy messages of rogue.
672: This is a useful option for playing on slow terminals,
673: so this option defaults to
674: .b terse
675: if your
676: are on a slow (1200 baud or under) terminal.
677: .ip "\fBjump\fP [\fI\^nojump\^\fP]"
678: If this option is set,
679: running moves will not be displayed
680: until you reach the end of the move.
681: This saves considerable cpu and display time.
682: This option defaults to
683: .b jump
684: if you are using a slow terminal.
685: .ip "\fBstep\fP [\fI\^nostep\^\fP]"
686: When
687: .b step
688: is set,
689: lists of things,
690: like inventories or
691: .Cs *
692: responses to
693: \*(lqWhich item do you wish to \fB. . .\fP? \*(rq questions,
694: are displayed one item at a time on the top of the screen,
695: rather than clearing the screen,
696: displaying the list,
697: then re-displaying the dungeon level.
698: .ip "\fBflush\fP [\fI\^noflush\^\fP]"
699: All typeahead is thrown away after each round of battle.
700: This is useful for those who type far ahead
701: and then watch in dismay as a Kobold kills them.
702: .ip "\fBaskme\fP [\fI\^noaskme\^\fP]"
703: Upon reading a scroll or quaffing a potion
704: which does not automatically identify itself upon use,
705: rogue will ask you what to name it
706: so you can recognize it if you encounter it again.
707: .ip "\fBpassgo\fP [\fI\^nopassgo\^\fP]"
708: Follow turnings in passageways.
709: If you run in a passage
710: and you run into stone or a wall,
711: rogue will see if it can turn to the right or left.
712: If it can only turn one way,
713: it will turn that way.
714: If it can turn either or neither,
715: it will stop.
716: This is followed strictly,
717: which can sometimes lead to slightly confusing occurrences
718: (which is why it defaults to being off).
719: The
720: .Cs f
721: prefix still works.
722: .ip "\fBname\fP [account name]"
723: This is the name of your character.
724: It is used if you get on the top ten scorer's list.
725: .ip "\fBfruit\fP [\fI\^slime-mold\^\fP]"
726: This should hold the name of a fruit that you enjoy eating.
727: It is basically a whimsey that the program uses in a couple of places.
728: .ip "\fBfile\fP [\fI\^~/rogue.save\^\fP]"
729: The default file name for saving the game.
730: If your phone is hung up by accident,
731: rogue will automatically save the game in this file.
732: The file name may contain the special character
733: .Cs ~
734: which expands to be your home directory.
735: .sh 1 Scoring
736: .pp
737: Rogue usually maintains a list
738: of the top ten scoring people on your machine.
739: Some installations limit each account on the machine
740: to post only one non-winning score on this list, however
741: this is no longer considered the default behavior.
742: If you score higher than someone else on this list,
743: or better your previous score on the list,
744: you will be inserted in the proper place
745: under your current name.
746: .pp
747: If you quit the game, you get out with all of your gold intact.
748: If, however, you get killed in the Dungeons of Doom,
749: your body is forwarded to your next-of-kin,
750: along with 90% of your gold;
751: ten percent of your gold is kept by the Dungeons' wizard as a fee.
752: This should make you consider whether you want to take one last hit
753: at that monster and possibly live,
754: or quit and thus stop with whatever you have.
755: If you quit, you do get all your gold,
756: but if you swing and live, you might find more.
757: .pp
758: If you just want to see what the current top ten list is,
759: you can type
760: .ti +1i
761: .nf
762: % rogue \-s
763: .br
764: .sh 1 Acknowledgements
765: .pp
766: Rogue was originally conceived of by Glenn Wichman and Michael Toy.
767: Ken Arnold and Michael Toy then smoothed out the user interface,
768: and added jillions of new features.
769: We would like to thank
770: Bob Arnold,
771: Michelle Busch,
772: Andy Hatcher,
773: Kipp Hickman,
774: Mark Horton,
775: Daniel Jensen,
776: Bill Joy,
777: Joe Kalash,
778: Steve Maurer,
779: Marty McNary,
780: Jan Miller,
781: and
782: Scott Nelson
783: for their ideas and assistance,
784: and also the teeming multitudes
785: who graciously ignored work, school, and social life to play rogue
786: and send us bugs, complaints, suggestions, and just plain flames.
787: And also Mom.
CVSweb