Standard minimal keyset?
Thursday, April 30, 2015 - 11:03
Hey!
I don't need a lot of keys/buttons in my game, so I was wondering if there is a standard set of keys that open source projects tend to use. The arrow keys seem pretty much universal for movement. But for things like firing, boosting, switching weapons, it is different in most of the FOSS games I have played.
I seek a control set that is not necessarily intuitive, but is easily discoverable, like the old NES games where there were only 4 buttons and a D-pad.
caret7
What genre are we talking about? In shooters and RPGs you have WASD for movement and the mouse for looking around/shooting/interacting. (Before the mouse, you'd have used Ctrl/Shift/Space.) And then there are the number keys for changing weapons or whatever.
Roguelikes have another preferred set of keys: hjkl for movement, w for wield/wear, e for eat and so on. And still different games have slightly different control schemes, to accomodate unique feature sets.
Other game genres... not sure. I think Metroidvanias on the PC have a somewhat standard scheme that involves the X and C keys for your character's left/right hands. You might want to look into that if you're making a platformer.
Most importantly however, think about your game's needs. Think about discoverability and ergonomics. The space bar for example is an obvious key to try when you haven't read the instructions, and it's equally accessible with both hands. Ask your friends. Ask casual gamers. (Pro tip: they won't be used to WASD, and no amount of explaining will help.) Play your own game a lot and you'll see what doesn't work. You should be fine.
Oh, and don't rely on the numpad. All those laptop users. :P
Almost all the indie platformers i've played use Z for jump (with arrow key movement). This is the first key I try when i start playing that sort of game.
When I try a first person shooter, using WASD and mouse, i try the 3 mouse buttons, then Q and E are the most common next choices, C or Ctrl for crouch, F and G are commonly used, and of course R is always reload.
Feel free to message me with your projects, collaborations, requests, etc. I am not likely to respond.
Is it working now
While there are some conventions, from the old fps etc games, I would not neccessarily reuse them, because I tend to lean towards html5 games for mobiles, that allows them to run on any device, and I can even update it on the server without to bother the player with update notifications.
Now mobiles have like fullHD screen and 2d/3d gpu, totally satisfying, but they have no keyboard. So a game should offer both keyboard / Mouse as well as touchscreen support. To keep this simple, I would suggest an "arcade hall device" standard, that may consist nothing more than a joystick and one to 3 buttons. The joystick can be emulated by mouse, WASD or arrow keys, onscreen virtual joystick for touchscreens, device orientation sensors in mobiles (that one I like)
By providing such a minimal set of "keys", porting to all platforms becomes easier. Basicly, it's the "what if there is no keyboard" scenario.
You should probably allow customizing the key bindings, although still you will need to decide what the default settings should be.
(My preferences are: For grid-based game, number pad or hjkl can be used for movement; for platform jumping game, my preference is left/right shift to move, space to jump, ZXCVBNM,./ to attack (if applicable).)
If you want to be able to work with gamepad or touch screen, then it is more difficult, although you can (and probably should) allow gamepad customization too. For touch screen, customization is probably unnecessary, but you may wish an option to show/hide controls (e.g. in case you have a device that has both a touch screen and keyboard).
However, regardless of any of this, you must ensure that it is documented. If it is not documented, then it will be difficult to use, regardless of what they might be.