Alex -
Just a quick heads up that W+A+S+D testing via keyboard is not entirely reliable when troubleshooting possible input-conflict issues.
The contact overlays used on most modern membrane-switch keyboards are not physically capable of discerning additional keypresses or releases when some related combinations of keys are already active.
Any two simultaneous keypresses are guaranteed to register correctly even on the cheapest keyboards, as each combination has a unique signature of an input being shorted to an output. Additional keys may not register dependent on how the contact grid is wired-- mo' manufacturing resources assigned to additional contacts or layers typically being associated with fewer keys associated with any given input or output and thus a better chance that additional keypresses won't run into a conflict.
In case anyone is curious, imagine the simplest setup: Nine keys, each row of keys is assigned to an input A/B/C, and each column is assigned to an output X/Y/Z. Pressing the key makes contact between its input and output.
So, the sequence of events is:
First key A-X outputs connect AX - only one keypress combination produces this state.
Second key B-Y outputs connect AX and connect BY - only one keypress combination produces this state.
At this point, adding either the key A-Y, or the key B-X outputs connected ABXY, so EITHER keypress combination will have the same output. Designers tend to avoid false positives, so this input will not register because there's no way to tell which was actually pressed. Other permutations can get even weirder, like AX then BX then CX then CY each registering because there is only one keypress that can produce the state changed, but leaving the system in a state where releasing CX will not register because the output does not change.
Rule of thumb: Two simultaneous keys will always register correctly. Three keys will
usually work. Four keys in one area of the keyboard is likely to run into trouble for many users, and in nondeterministic ways because it is entirely dependent on the keyboard's internal layout.
"Crap, when i tried to jump, strafe left, move forward, and melee, it didn't smack him in the face!"
A massive geek am I.