So to be clear, the ideal thing to do is to allow the player to define in-game which keys should do what. But realistically speaking, Iām not going to complain because I brought this on myself when I chose to use a hardware controlled Dvorak layout. Still worth it btw ^^
I do note however, that the project is open source on GitHub, so if any of my fellow hardware controlled alternate keyboard layout peoples want to take a stab at submitting a PR for a keyboard binding config menu for the game I say go for it :)
Ugh, no. FPS has standardized on WASD over the last 20 years and people trying to reinterpret this are the bane of a positive experience.
Positional keys? Sure. Whatever's in WASD's place is fine. But splitting hairs for the <1% of users using nonstandard stuff (like a dvorak keyboard, which after a lifetime of computer nerditry I still have never seen in-the-wild) will lose you a huge chunk of your audience.
WASD or die
No no no no no this is a terrible idea. Don't make 99% of peoples experience non standard just so that people with non qwerty keyboards (who are probably expecting to need to remap controls anyway) have automagic defaults. Just default to the most common thing (WASD) and let people remap keybinds to whatever they want in case that doesn't fit.
I'm a pretty avid gamer and I've literally never opened a PC first person/third person shooter (or other real time genres with a similar perspective) released in the last 15 years or so that didn't have movement mapped to WASD by default. Not doing so would make your game feel very unpolished.
If you care about accessibility at all you need to allow button remapping anyway, even if you go with positional keybinding.
That said, please please, no "WASD". This is very uncomfortable on non-QWERTY keyboard layouts.
There are two solutions to this.
# Best solution
Game programmer always mean "the group of physically-positioned keys that happen to be labelled WASD on the programmer's keyboard", not "whatever keys that are actually labelled WASD on the player's keyboard".
So, wherever possible, use an API that refers to key position, not key symbol. This is possible in most programming environments, e.g. in Javascript using https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEve...
# Alternative solution
Alternatively, use keys that are stable across most common Latin keyboards layout, which means no AMQWYZ.
ESDF is fine, as are RDFG, TFGH, or the traditional IJKL (see https://en.wikipedia.org/wiki/Arrow_keys for more).
If you want to be kind to Dvorak, Bepo, Colemak and other users, prefer the first solution!
https://en.wikipedia.org/wiki/Keyboard_layout#QWERTY-based_L...