This is with the default key bindings? If you change the binding for running, does it change the behavior?
It is conceivable that this is an(other) event handling issue due to Doomsday receiving key input via Qt on Windows. Because this arrangement has a couple other quirks as well, I am planning on addressing this in the near future: https://tracker.dengine.net/issues/1886
I haven't tried changing the key bindings, no. I generally use the classic control scheme so I'm not sure what I would change it to. If this is something on the board and being looked at, I'll just be patient and wait.
When it comes to the timeline for a possible fix, it will take a month or two at the minimum. My preferred solution for addressing this (using SDL for all input) isn't quite that straightforward because it comes with the requirement of also using SDL for managing the game window. This has various other consequences that increase the amount of needed work. A more likely solution is to manually implement XInput support in Doomsday, even though that code already exists in the SDL library that Doomsday is using.
In the meantime, perhaps you could try changing the binding for the Speed control to a key adjacent to the (default) Shift key on your keyboard.
Do you happen to use any Logitech customization software for the keyboard? If so, that might theoretically be doing something that conflicts with Doomsday's input events.
At the very least you should verify your key bindings ingame. To do so startup DOOM or DOOM2 from Doomsday's launcher. From the ingame menu select Options > Controls. You should be presented with an overview of the current key bindings, starting with the Movement controls.
Navigate to the corresponding entries in question via cursor-up/down. To delete a specific keybinding press the DEL key, which removes the entries for that particular movement control only. To add/change a keybinding press the ENTER key, then press the desired key or mousebutton.
As far as the keyboard thing goes, I can turn left when I'm not running, I just can't turn when I'm holding down the shift key. Or if I hold down the left button first, then I can't run.
As skyjake already asked above, do you perhaps have any keyboard customization software installed which may interfere with Doomsday?
Also, you should try to reconfigure the "Speed" key binding in Doomsday by deleting the current entry (press DEL), then rebind the SHIFT key to it (press ENTER). Note that you can define more than just one key binding to a control at a time. For example add the "Z" key as a second key to the "Speed" control and check whether left/right works with the "Z" key.
Tried rebinding it, same result. Also I do have logitech keyboard/mouse software, but this issue occurs whether it's running or not.
Do you happen to have any other keyboards around? Trying a physically different keyboard would tell us if the problem is specific to your Logitech keyboard or whether it is something software-related on your computer.
Another interesting thing for you to try is Doomsday's Event Grabber utility. Go here:
Then click on "Click to focus". Now all key events received by Doomsday will be visualized in the popup.
Now you can press the Left Arrow key and see that Doomsday recognizes it as "key-left-down" (when pressed) and "key-left-up" (when released).
When you hold Shift (for running), it should say "key-shift-down".
Now, if you then press Left Arrow while holding Shift, what does it say? (It should say "key-left-down" as before.)
My thinking here is that using Windows's low-level XInput API for keyboard events would likely help. I have decided that the most feasible way to achieve that would be to use SDL 2 for event handling, however that also necessitates using SDL for low-level window management. It is not terribly difficult to do but not trivial either. I've currently scheduled that work for the 2.2 release because I'd like to focus on the multiplayer stuff now for 2.1. So the original 1-2 months estimate is likely not going to be happening...
Understood, I'll play with it when I have some more time to see what I can find. Thanks for the tips, I'll shoot you all the info I can provide if it will help.
It sounds like there isn't much that can be done right now about this... Did you manage to try it with a different keyboard? (if you happen to have a spare/old one around)
Comments
It is conceivable that this is an(other) event handling issue due to Doomsday receiving key input via Qt on Windows. Because this arrangement has a couple other quirks as well, I am planning on addressing this in the near future: https://tracker.dengine.net/issues/1886
In the meantime, perhaps you could try changing the binding for the Speed control to a key adjacent to the (default) Shift key on your keyboard.
Do you happen to use any Logitech customization software for the keyboard? If so, that might theoretically be doing something that conflicts with Doomsday's input events.
Navigate to the corresponding entries in question via cursor-up/down. To delete a specific keybinding press the DEL key, which removes the entries for that particular movement control only. To add/change a keybinding press the ENTER key, then press the desired key or mousebutton.
Also, you should try to reconfigure the "Speed" key binding in Doomsday by deleting the current entry (press DEL), then rebind the SHIFT key to it (press ENTER). Note that you can define more than just one key binding to a control at a time. For example add the "Z" key as a second key to the "Speed" control and check whether left/right works with the "Z" key.
Another interesting thing for you to try is Doomsday's Event Grabber utility. Go here:
Then click on "Click to focus". Now all key events received by Doomsday will be visualized in the popup.
Now you can press the Left Arrow key and see that Doomsday recognizes it as "key-left-down" (when pressed) and "key-left-up" (when released).
When you hold Shift (for running), it should say "key-shift-down".
Now, if you then press Left Arrow while holding Shift, what does it say? (It should say "key-left-down" as before.)
This is the relevant tracker page: https://tracker.dengine.net/issues/1886
My thinking here is that using Windows's low-level XInput API for keyboard events would likely help. I have decided that the most feasible way to achieve that would be to use SDL 2 for event handling, however that also necessitates using SDL for low-level window management. It is not terribly difficult to do but not trivial either. I've currently scheduled that work for the 2.2 release because I'd like to focus on the multiplayer stuff now for 2.1. So the original 1-2 months estimate is likely not going to be happening...