Merge branch 'master' into gh-pages
This commit is contained in:
commit
112d8497dd
2 changed files with 443 additions and 2 deletions
|
|
@ -5,9 +5,9 @@ permalink: /apps/pcx86/1985/rogue/
|
|||
machines:
|
||||
- id: ibm5160-rogue
|
||||
type: pcx86
|
||||
resume: 1
|
||||
config: /devices/pcx86/machine/5160/cga/640kb/machine.xml
|
||||
state: /apps/pcx86/1985/rogue/state.json
|
||||
resume: 1
|
||||
---
|
||||
|
||||
Rogue (1985)
|
||||
|
|
@ -16,3 +16,444 @@ Rogue (1985)
|
|||
{% include machine.html id="ibm5160-rogue" %}
|
||||
|
||||
For more classic PC software experiences, see the PCjs collection of [IBM PC Application Demos](/apps/pcx86/).
|
||||
|
||||
ROGUE.DOC
|
||||
---------
|
||||
|
||||
A Guide to the Dungeons of Doom
|
||||
|
||||
Michael C. Toy
|
||||
|
||||
Computer Systems Research Group
|
||||
Department of Electrical Engineering and Computer Science
|
||||
University of California
|
||||
Berkeley, California 94720
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Introduction
|
||||
|
||||
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 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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
What is going on here?
|
||||
|
||||
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 (as opposed to pseudo
|
||||
English sentences), and the results of your commands are displayed
|
||||
graphically on the screen rather than being explained in words.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
What do all those things on the screen mean?
|
||||
|
||||
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.
|
||||
|
||||
---------------------
|
||||
|...................+
|
||||
|...@...........[...|
|
||||
|........B..........|
|
||||
|...................|
|
||||
--------+------------
|
||||
|
||||
Level: 1 Gold: 0 Hp: 12(12) Str: 16 Ac: 6 Exp: 1/0
|
||||
|
||||
|
||||
The bottom line
|
||||
|
||||
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:
|
||||
|
||||
Level 8
|
||||
This number indicates how deep you have gone in the dungeon. It starts
|
||||
at one and goes up forever (or until you get killed or decide to quit).
|
||||
Gold
|
||||
The number of gold pieces you have managed to find and keep with
|
||||
you so far.
|
||||
Hp
|
||||
Your current and maximum hit points. Hit 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 hit points by resting. The number in parentheses is
|
||||
the maximum number your hit points can reach.
|
||||
Str
|
||||
Your current strength. This can be any integer less than or
|
||||
equal to eighteen. The higher the number, the stronger you are.
|
||||
Ac
|
||||
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.
|
||||
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 experienced you are, the
|
||||
better you are able to fight and to withstand magical attacks.
|
||||
|
||||
|
||||
The top line
|
||||
|
||||
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 press a
|
||||
space.
|
||||
|
||||
|
||||
The rest of the screen
|
||||
|
||||
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:
|
||||
@
|
||||
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 trap, watch out for these.
|
||||
%
|
||||
The passage leading down to the next level.
|
||||
:
|
||||
A piece of food.
|
||||
A-Z
|
||||
The uppercase letters represent the various inhabitants of the
|
||||
Dungeons of Doom. Watch out, they can be mean.
|
||||
|
||||
|
||||
Commands
|
||||
|
||||
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.
|
||||
?
|
||||
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"
|
||||
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")
|
||||
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.
|
||||
f
|
||||
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.
|
||||
t
|
||||
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.)
|
||||
>
|
||||
If you are standing over the passage down to the next level, this command
|
||||
means to climb down.
|
||||
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.
|
||||
" "
|
||||
(space) Rest. This is the "do nothing" command.
|
||||
This is good for waiting and healing.
|
||||
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. Drink one of the potions you are carrying.
|
||||
r
|
||||
Read. Read one of the scrolls in your pack.
|
||||
e
|
||||
Eat food. Take some food out of your pack and eat it.
|
||||
w
|
||||
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.
|
||||
W
|
||||
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.
|
||||
T
|
||||
Take armor off. You can't remove armor that is cursed.
|
||||
This takes extra time.
|
||||
d
|
||||
Drop an object. Take something out of your pack and leave it lying
|
||||
on the floor. Only one object can occupy each space.
|
||||
o
|
||||
Examine and set options. This command is further explained in the section
|
||||
on options.
|
||||
^L
|
||||
REdraws the screen. Useful if spurious messages or transmission errors
|
||||
have messed up the display.
|
||||
v
|
||||
Prints the program version number.
|
||||
Q
|
||||
Quit. Leave the game.
|
||||
R
|
||||
Repeat last message. Useful when a message disappears before you can
|
||||
read it.
|
||||
S
|
||||
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
|
||||
% rogue save_file
|
||||
|
||||
|
||||
Dealing with objects
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Light
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Fighting
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Armor
|
||||
|
||||
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.
|
||||
|
||||
Type Class
|
||||
|
||||
Leather armor 8
|
||||
Studded leather / Ring mail 7
|
||||
Scale mail 6
|
||||
Chain mail 5
|
||||
Banded mail / Splint mail 4
|
||||
Plate mail 3
|
||||
|
||||
|
||||
Options
|
||||
|
||||
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.
|
||||
|
||||
Setting the options
|
||||
|
||||
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.
|
||||
|
||||
Using the "o" command
|
||||
|
||||
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.
|
||||
|
||||
Using the ROGUEOPTS variable
|
||||
|
||||
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
|
||||
|
||||
% setenv ROGUEOPTS "jump,noterse,name=Conan the Barbarian,fruit=mango"
|
||||
|
||||
% setenv ROGUEOPTS "jump,noterse,name=Conan the Barbarian,fruit=mango"
|
||||
|
||||
(For those of you who use the bourne shell, the commands would be
|
||||
$ ROGUEOPTS="jump,noterse,name=Conan the Barbarian,fruit=mango"
|
||||
$ export ROGUEOPTS
|
||||
|
||||
|
||||
Option list
|
||||
|
||||
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.
|
||||
"terse [noterse]"
|
||||
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.
|
||||
"jump [nojump]"
|
||||
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.
|
||||
"step [nostep]
|
||||
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.
|
||||
"flush [noflush]"
|
||||
If flush is set, all typeahead is thrown away after each round of battle.
|
||||
This is useful for those who type way ahead and watch to their dismay as
|
||||
a Kobold kills them.
|
||||
"askme [noaskme]"
|
||||
Upon reading a scroll or quaffing a potion which does not automatically
|
||||
identify it upon use, rogue will ask you what to name it so you can
|
||||
recognize it in the future.
|
||||
"name [account name]"
|
||||
This is the name of your character. It is used if you get on the top ten
|
||||
scorer's list. It should be less than eighty characters long.
|
||||
"fruit [slime-mold]"
|
||||
This should hold the name of a fruit that you enjoy eating. It is basically
|
||||
a whimsy that the program uses in a couple of places.
|
||||
"file [rogue.save]"
|
||||
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 contain the special character "~" which expands to be
|
||||
your home directory.
|
||||
|
||||
|
||||
Acknowledgements
|
||||
|
||||
Rogue was originally conceived of by Glenn Wichman and Michael Toy. The
|
||||
help of Ken Arnold in making the program easier to use and putting the
|
||||
finishing touches on is greatly appreciated. I would also like to thank
|
||||
Marty McNary, Scott Nelson, Daniel Jensen, Kipp Hickman, Joe Kalash,
|
||||
Steve Maurer, Bill Joy, Mark Horton and Jan Miller for their ideas
|
||||
and assistance.
|
||||
|
||||
Further instructions for CMU CC version (R602DK32@VAXA)
|
||||
|
||||
Rogue needs to know your terminal type, and since there are many
|
||||
more types than VMS knows about, you can't just SET TERMINAL to the
|
||||
right type. So, you must set logical name TERM$TYPE to contain your
|
||||
real terminal type, after using SET TERMINAL to either VT52 or VT100
|
||||
(whatever best suits your terminal). You do this with a command like
|
||||
|
||||
$ define term$type "vt52"
|
||||
|
||||
filling in "vt52" with the name of your terminal; look in
|
||||
SYS$LIBRARY:TERMCAP.TXT for the list of terminals known.
|
||||
|
||||
If you just want to run Rogue, you can use the RUN command. However,
|
||||
to resume a saved game you must provide an option to the command line,
|
||||
which means you must make it a "foreign command" and invoke it that way:
|
||||
|
||||
$ rogue:==$sys$usr:[r602dk32.rogue]rogue
|
||||
$ rogue ordinarily
|
||||
$ rogue -s to just print out the scores
|
||||
$ rogue -r to resume a game with the default name
|
||||
$ rogue -r filename to resume a game in that file
|
||||
|
||||
Rogue contains a system load check to prohibit use if the system load
|
||||
average (actually, any of the three load averages) is above 1.0.
|
||||
|
||||
Update log for CMU CC version
|
||||
|
||||
v4.00 1-Aug-82
|
||||
Installed native mode Rogue.
|
||||
v4.01 12-Sep-82
|
||||
Fixed two access violations: attack of violet fungi and Genocide scroll.
|
||||
v4.02 20-Sep-82
|
||||
Fixed -s option to return normal return code.
|
||||
v4.03 10-Oct-82
|
||||
Fixed spelling of "sapphire" ring; actually, just recompiled with new
|
||||
release of C to see if it worked correctly.
|
||||
|
||||
References
|
||||
----------
|
||||
|
||||
[The roguelike archive](https://britzl.github.io/roguearchive/)
|
||||
[Moby Games: Rogue (DOS)](http://www.mobygames.com/game/dos/rogue)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
<?xml-stylesheet type="text/xsl" href="/versions/pcx86/1.35.1/manifest.xsl"?>
|
||||
<manifest type="software">
|
||||
<title>Rogue</title>
|
||||
<version/>
|
||||
<version>1.49</version>
|
||||
<type>Game</type>
|
||||
<category>ASCII Adventure</category>
|
||||
<creator>Michael Toy</creator>
|
||||
|
|
|
|||
Loading…
Reference in a new issue