Preferred Key Controls
Following a discussion on RGRD, I am attempting to collate a list of preferred keyboard controls for RL games.
When it comes to movement keys, there are two main camps of preference: the ViKeys supporters and the NumPad supporters. Naturally, a third camp exists to exhort followers of the other two to coexist by offering both keysets and permitting users to select which to use as a matter of preference. Two other ways used might be: Allow both ways to work at the same time (as Rogue does), or allow keys to be configured using an external file (as ADOM does).
The arguments for ViKeys are:
- Familiarity for users of vi(m) (a rather ubiquitous text editor)
- Removes requirement for a dedicated numeric keypad, which isn't always available on laptops
- Tradition, as there's a reason these commands are known as 'rogue keys' in certain circles
Counting against vi-keys are:
- They don't map neatly to some keyboard layouts (e.g., Dvorak or even some non-us layouts, e.g. the german one) (though a separate commandset for users of alternate keyboards can address this issue)
- They reduce the keys available for single-stroke game commands (which may or may not be an issue, depending on the complexity of the entire commandset)
- They introduce the possibility of pressing 'y' or 'n' in accidental response to a prompt (though forcing an uppercase reply addresses this issue in most cases)
- To non-vi-users they are not immediately obvious
Arguments for NumPad are:
- They have a layout that matches the movement directions - they are obvious
- You don't lose any letter keys on the keyboard (unless using a laptop keyboard)
- They take away a lot more keys when on a laptop in NumPad mode
- Use of a numeric keypad in place of vi-keys takes focus from the standard keyboard, effectively forcing users to perform a context shift to and from the dedicated keypad
- It's not always obvious if NumLock has to be turned on or off in order to use the NumPad. Some games need it, some do not. Some games accept both.
- Some laptops don't have a NumPad
A general RL theme in terms of keyboard controls is the use of mnemonic bindings, for example:
'q' - quaff (drink something) 'w' - wear/wield (make use of a weapon or piece of armour) 'e' - eat
Due to the freedom of action many RLs provide, one can easily run out of letters. For example 'd' might have been drink, but usually it is drop, and what about dance or drag, etc.?
There are several solutions that have been employed by various RLs.
- Using key modifiers such as (most often) Shift or Alt, Ctrl, Meta, Super, Hyper, etc.
- A method used in Nethack is extended command mode '#' which lets the user enter further keys to spell out the action required, for less used commands like #dip, #jump and #loot.
- Action menus - used more in RLs on more limited platforms, such as mobile devices and handheld game consoles.
|f||target (2) and f again to fire (1)|
|o||open (2) and again to close (1)|
|R||rest till interrupted or healed/magicked up (1)|
|U||special use (1)|
|x||exchange (1) , examine (2)|
|numpad 0||reload (1)|
|12345||quick weapon switch or tactics (1)|
|numpad 5||pickup (1)|
|tab||next target (1)|
|<>||up down stairs (2)|
|@||character screen (1)|
|ctrl x||exit (1)|