Roguelike column thumbnail ['@ Play' is a bi-weekly column by John Harris which discusses the history, present and future of the Roguelike dungeon exploring genre.]

This week, we are going to talk about something very basic, yet of vital importance to getting involved with these games -- hopefully including some of you. Whenever I've attempted to explain them, by far the most frequent barrier I've encountered in transferring my own enthusiasm to other people is not, as one may think, the graphics, the difficulty, or permanent death. Almost every time, the primary reason initiates find to categorize roguelikes as Other-People-Things is the control scheme.

(By the way, if you'd like to play along at home, I suggest beginning with one of the modern ports of Rogue. Rogue Clone IV and the Roguelike Restoration Project's conversion of Rogue 5.4 are among the foremost DOS/Windows versions. Debian Linux users can get it from the package bsdgames-nonfree. ClassicRogue is a port with a couple of extra features and both Windows and Linux binaries. You can also get Rogue for Java, the Sega Dreamcast, Game Boy Advance, and the Infocom zMachine!)

As noted last time, roguelike games haven't changed much in their presentation since the days of playing on dumb terminals in college computer labs. There were no mice or joysticks on those systems. Many of 'em didn't have a numeric keypad, and some had no cursor keys.

What they did have, I'm sorry to say, was vi.

[Click through to read the full '@ Play' column!]

Behold the wonders of vi

VIM for Win32


vi is an infamous Unix text editor, in which lots of different keys do many different things. I know I'm gonna catch it from some people for dissing it, and it's certainly great for some things, but I don't think anyone can claim it's easy to pick up. Back in the days when lab students were the primary players of computer games, it could be counted on that many players would know vi, so it was natural to use its cursor movement system as the basis for Rogue's interface. Its legacy persists in Nethack to this day, although it and all the other major roguelike games tend to default to using a number pad for movement.

Also like vi, there are special keypresses for everything, and it is not a trivial matter to learn them all. And again, just like with vi, it does turn out to be an excellent interface when you know the keys. Many people still use and even swear at by vi's descendants. If you want to read a scroll, you don't fumble around with icons and menus, you just press R then the letter of the scroll in your inventory.

This is probably the thing that prevents most people from learning these games today. While most computer games take pains to simplify their interfaces as much as possible, to an initiate it may seem like Rogue and its progeny go out of their way to make things hard for the player. In Nethack, some keys do as many as four different things: pressing P (p)ays your bill in a shop, holding Shift and pressing P lets you (p)ut on an accessory such as a ring or an amulet, holding Ctrl and hitting P displays (p)revious pages of the message buffer, and Alt-P (p)rays to the gods for aid. It is true that these keys are all listed out, twice, in the game's help files, but who wants to run to Help every time he wants to have a meal or open a chest?

News (or rather, Keys) You Can Use

Since most of these games are based, to some degree, on Rogue, the commands of that game tend to have precedence over any new ones introduced, so learning those will take a player quite far. Learn those keys, and the whole genre opens up to you. And the commands Rogue has tend to follow a logic that makes them easy to remember: press W to (w)ield something, press E to (e)at, and so on.

Here, then, as a tutorial intended to get you playing these games instead of just reading about them, are the important keys of Rogue. All you need to win that game are on this list, and a few others besides. Other games will almost certainly have more than this, but these are usually the most commonly-used commands in those games too, so you can generally learn the others as you go along.

Movement: HJKL and YUBN (or number pad)
H and L go left and right, while J and K are for up and down. Y, U, B and N are used to travel diagonally if possible. But take my advice and stick with the numpad.

(Matt Matthews of Curmudgeon Gamer informs me that using J and K as up and down keys also works in Gmail and Google Reader! vi's roots are set deep indeed...)

Combat: same as movement
In most roguelikes, you attack a monster by merely attempting to walk into it. This is more than just a convenience. When a character is confused, that state of mind is represented by randomizing some of his moves, which could result in unintended attacks under this system.

> (Shift-period): Travel downstairs
< (Shift-comma): Travel upstairs

When standing over a staircase, these are the commands used to go to the next/previous dungeon level. In Rogue the upstairs and downstairs are on the same spot, but in most other games they are usually located in different rooms on the level. Nethack uses these keys as a general way to indicate down and up as directions.

(comma): Pick something up off the floor
Your character will automatically pick a thing up when moving into its space, but there are times when this doesn't happen, like when that feature is turned off or your inventory is full when you moved there. Pressing comma is an explicit request to grab loot at your feet.

(period) : Rest a turn
S: Search for things

These two commands are almost identical in apparent function. Both will pass exactly one turn, and neither will usually print any message on the screen. The only difference between them is that the period key will increase the chance that you'll regain some hit points that turn, and the S key will silently check all eight spaces around your character for hidden doors or traps. There's no guarantee that you'll find anything hidden even if it is there to find, so S is usually pressed several times in a row to reduce the chance that something has been missed.

Space bar: Clear [more] prompts
When a message appears that's longer than the width of the screen, press Space to see the rest. Simple.

Esc: Cancel a command.
If you hit a key that you suspect you'll regret, so long as you haven't specified an inventory item yet you can usually abort the command without penalty. Just press Escape.

Shift-S: Save the game
Shift-Q: Quit the game

These are both Shifted commands to reduce the chance that they're hit accidentally, and they both further ask if you're sure. Remember, if you Quit, you can’t go back to your last save! Saving the game in a roguelike always ends the current session, and restoring it later (usually by entering your saved character at the name prompt) will delete the save file.

I: Inventory
This is a very important command to remember. It not only prints out all the objects your character is carrying, but the letters assigned to each of them, which are used in all object request prompts. Most commands that require an item to act upon will offer a list of appropriate items if you press a particular key (either asterisk or ? depending), and there is nothing wrong with relying upon this feature, but if you happen to remember the letter you can just press it and save a step. Asking for a list of your inventory never spends a turn: it is a “free action.”

D: Drop (an item)
The Drop command asks you for an inventory letter, then drops the object you picked. Good for dumping useless or bad stuff.

C: Call (an item)
If you think you know what an item is, you don't have to wait for the game to name it for you. You can name it yourself with the Call command.

Shift-D: Discoveries
This lists everything you've conclusively learned the identity of, or Called, in your current game. It is worth noting that, in Nethack, this command is mapped to the backslash key instead.

Q: quaff (that is to say, drink, applies to potion)
R: read (a scroll)
These commands use up the object specified. After use the object is gone, leaving behind only its effects upon either you or the rest of the world.

W: wield (an item, usually weapons)
Shift-W: wear (armor)
Shift-T: take off (armor)
Shift-P: put on (rings)
Shift-R: remove (rings)

In a console RPG all these would probably be grouped into a single Equip command, but there are reasons to keep them separate. For example, you can actually wield any object in your inventory, not just weapons. This can be useful depending on what game you're playing. Since you can wear up to two rings, the ring commands will ask you which hand is to be (un)adorned.

T: Throw (an item, usually missile weapons)
Z: Zap (a wand)

These commands first ask for a direction to throw or zap in, then the object to throw or zap. You can throw anything, but since most thrown objects carry a risk of being destroyed it's best to only throw things like darts. Note that arrows do more damage when thrown if you're wielding a bow, and bolts do much more damage if you're wielding a crossbow. Zapping a wand will expend some of its power, and if the wand is out of magic nothing will happen (or, if it’s the impish Wand of Nothing).

Ctrl-P: Previous message
Sometimes messages get accidentally flipped past before you can read them. Holding Ctrl and pressing P repeatedly will flip back through the last few displayed. Note that some versions of Rogue may use different keys for this, such as F4.

either * or ? (asterisk or question-mark): List appropriate things from an inventory prompt
Pressing this (varies between games but usually one of the two) at any prompt that requests an inventory item will give you a list of things carried that are obviously relevant. If you press it after a (r)ead command, you’ll get a list of scrolls, but after a (q)uaff command the game will list potions instead.
The asterisk list is sometimes presented automatically, without you having to ask. Sometimes, the list is misleading. Several items in Rogue may be used in ways that aren't obvious at first, and the item prompts will not give away the secret. If you want to, say, throw an item that is not commonly thought of as suitable for throwing, you can specify its inventory letter even if it's not listed on the asterisk list. This isn’t used all that often, but is very helpful in specific circumstances.

You're probably wondering about those items that are used in special ways! Well you're in luck, for here follows a complete list of all the items with clever uses -- but no, wait, it seems I'm out of space. Maybe next time!