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).
y k u 7 8 9 \|/ \|/ h-+-l 4-5-6 /|\ /|\ b j n 1 2 3 vi-keys numpad
The arguments for vi-keys are:
- They are familiar for users of vi and vim.
- They don't require numeric keypads, which are unavailable on some laptops and require a USB device.
- vi-keys are traditional; they are used in the original Rogue and many of the other major roguelikes.
Counting against vi-keys are:
- They pose a bit of a learning curve for those not used to them.
- vi-keys are designed for the QWERTY layout, and can be counterintuitive and frustrating to use for other keyboards (e.g. Dvorak or QWERTZ.)
- Certain ergonomic "split" keyboards may have the Y key separate from the rest of the vi-keys.
- They reduce the number of keys available for single-stroke game commands.
- They introduce the possibility of pressing "y" or "n" in accidental response to a prompt. This can be solved in most cases by requiring uppercase responses.
Arguments for NumPad are:
- They are intuitive and easy to get used to.
- You don't lose any letter keys on the keyboard, with the exception of some laptops, which have the numpad overlaid on the keyboard.
- Some laptops have no numpad at all, requiring an external USB device.
- They can take away many letter keys on certain laptops which have the numpad overlaid on the keyboard. To use the letter keys underneath, the user has to enable and disable NumLock constantly, which can be irritatingly tedious.
- The user has to move his/her hand between the numpad and the normal keyboard, which can be time-consuming. This is a major disadvantage for real-time roguelikes.
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)|