ChrisGriffin: It's such a fundamental necessity than one shouldn't wonder whether a game has that option or not - IT SHOULD ALWAYS BE AVAILABLE.
Thread title is a rather direct way of wording it but I completely agree. Even 64KB DOS, Commodore 64, ZX Spectrum, etc, 1980's games had that, so when modern 100,000 to 1 million times larger games lack them seemingly having learned nothing whatsoever about basic ergonomics after 30 years of "evolution", it looks absurd.
For the benefit of any game developers reading this now or in future, there are plenty of objective reasons why rebindable keys are required beyond personal preference, including:-
1. Non QWERTY keyboards (eg,
AZERTY) that "hard-bind" to WASD end up with messed up backward controls where move forward (W) key is a row below move backward (S) and left (A) and right (D) aren't on the same row.
2. For right handers, when the mouse is to the right of the keyboard the natural left-hand placement is over WASD (that's why "WASD" became a defacto standard in the first place and not "IJKL"). But for left-handers, when the mouse is to the left of the keyboard the natural right-hand placement is over the cursor keys. It's good convention to simply mirror them (along with supporting keys like left CTRL & SHIFT onto Right CTRL & SHIFT) and allowing nearby WASD supporting keys (Q/E/F, etc) to be rebound on nearby cursor supporting keys (eg, Del / End / Pg Dn, Numpad, etc).
3. I know one disabled person with arthritis in their fingers who can't play either WASD or cursor keys because the keys are too close together, but can manage it when they're spaced further apart, eg, EACG.
4. Enhanced premium gaming mice / disability device compatibility. From things like premium 9-button gamer mice (eg, Logitech G300S) to disability aid input devices (eg, shifting weight in pressure sensitive chair, pressing L/R foot pedals, blow tubes, eye tracking, voice activated, etc), many of these devices have a compatibility mode where the device will "present" itself to Windows as a standard USB keyboard and then translate however it receives input into a virtual "key-press" to which you simply remap the keys in-game to match desired function). This allows them to work with any games without the game having to be aware of the devices. But in order to work, it does require that games have the basic ability to rebind keys.
Part of this is on the games devs themselves (their first game can be allowed for "learning experience" but when their 2nd, 3rd, etc, game comes out with exactly the same issues even after people point it out in forums, that's is indeed laziness / wilful ignorance). It's also partly on game engine designers like Epic Games for having the most absurd default cursor key controls. Unreal 4 seems particularly bad in that their stupid defaults get leftover in many games (eg, Obduction) often uses AD to strafe and yet cursor keys "turn" instead (like an early pre-mouselook FPS from 1992), so left-handers (mouse in left hand, cursor keys on right) end up with the ability to turn in each hand but can't actually strafe / move sideways in either, and this somehow passes their "QA" testing...)