CE hidden input buffering

#1
Hey there,

There's some hidden input buffering, easily reproduced using the FPS template, (typical WASD controls):

Press Left + Backward + Right (at the same time, and hold all 3 keys).

Now press (and hold) forward. Does it trigger? Nope.

Now let go of Backward. Forward triggers as if it's just been pressed!


I've traced this all the way down, BaseInput doesn't have it triggered etc. so I think it's input-device level buffering.

Could someone please explain what's going on? Is it just my keyboard? Some weird Windows 10 quirk? You can still press and trigger other buttons sigh......

Re: CE hidden input buffering

#2
If you're talking about original fps template, they use bit flags for wasd inputs. And opposite directions nullify themselves in UpdateMovementRequest. Cause for example.. move left applies velocity.x -= 1.f and move right does velocity.x += 1.f. the end velocity is 0 then. Same goes to forward end backward. So if you hold backwards and press forwards, velocity.y will be 0, and when you release backwards, velocity.y will be 1. This method is updated every frame.
Cryengine tutorial videos on my Youtube channel! Check it out !
https://www.youtube.com/user/MusicForLifePL20

Re: CE hidden input buffering

#4
Hi there,

This is more likely due to your keyboards rollover limitations.

You can check your n-key rollover limitations by using Microsoft's online testing page here;
https://www.microsoft.com/appliedscienc ... gDemo.mspx

It is mostly due to the way the keyboard trace layers are setup, certain keys use the same trace path underneath to detect key presses, this is why sometimes with water damage, a certain set of keys is broken, where as other keys are fine.

More information on the wiki site here;
https://en.wikipedia.org/wiki/Rollover_(key)
Uniflare
CRYENGINE Technical Community Manager
Here to help the community and social channels grow and thrive.

My personal belongings;
Beginner Guides | My GitHub | Splash Plugin

Re: CE hidden input buffering

#8
I have a Corsair K95 RGB which has no rollover key limitation. It's a pretty pricey mechanical keyboard - you get what you pay for. I went and tested the issue you are having with my codebase. I was able to hold down a whole bunch of keys and still get events through on others e.g. crouch while holding down WASD, etc.

The Windows driver can also be a source of problems, if not written well enough. In the bad old days they would often only hold up to 10 keystrokes, and then the bell would ring when the buffer overflowed, leading to a ding ding ding noise if you held down a key after a lock up.

Most keyboards should be able to deal with more than 3-4 keys being held so maybe you are just unlucky or spent a little too little on a keyboard.

Any of the mid-range gamer keyboards should have a lot more rollover potential than the one you are using.

Who is online

Users browsing this forum: No registered users and 1 guest