+6
Fix Live

Doubled Input in build 286.9174

Pie-jacker875 4 months ago in PC / Linux • updated by WW1GameSeries 1 month ago 18 1 duplicate

I seem to be getting some doubled inputs or something. If I hold my sprint key, my player will rapidly initiate a sprint continuously. If I hold the scoreboard key, then the scoreboard will flicker. When typing in chat, pressing backspace removes two chars.


I'm running Fedora 27.



Game Version:
286.9174
Reproduction steps:
Try running, opening the scoreboard, or removing characters in chat.
Output Log:
Gameplay

Duplicates 1

Awaiting User Response

That's not right. Do you have any controllers plugged in? does the problem persist after restting the controls to default?

No controllers plugged in, and it persists after resetting controls.


I've noticed it stops if I pressing another key while holding a key down. i.e. opening the scoreboard it starts flickering, when I press another key while the scoreboard is open it stops

Just to confirm I have exactly the same issue in both games now as well.


Holding tab to show scoreboard makes it constantly flicker, running constantly flickers the animation like shown in the video between running/walking. Exactly the same. I imagine it's an issue with Unity.


I'm on Ubuntu 17.10 64bit, Nvidia 980ti.

I'm having the same bug in Tannenberg. I'm running ubuntu 16.04, nVidia GTX 1080, prop. drivers 390.25 (from ppa).

+1

I've looked a little into it


Turns out, the reason it happens is because [insert whatever X11 replacement we have now] simulates represses by sending a rapid succession of key release and key press events. For some reason, the game has ceased to check the STATE of the keys, and started maintaining an internal state based on keyboard events.


A temporary fix, which will at least make the game a little more playable is to run


xset r off


in terminal. This removes automatic repetition of pressed keys.


Now, this is not to say that the game is restored to the pre-patch state. There's something funny going on with the input which makes the game quite unresponsive even without it. I have noticed the following:

  1. Keys do not seem to be interpreted in the correct order
  2. There's some obscure problem with the mouse which I can't put my finger on. It's just not like it used to be.
  3. The game is generally unresponsive, it feels as if the graphics I am seeing do not correspond to what is actually going on.
  4. The backspace key removes two letters at a time form the chat for some reason.
Confirmed

Thanks for reporting, we are looking to address this asap. 

I haven't been able to enjoy playing the game in quite a while due to this.

This has been half resolved. Sprinting and holding the scoreboard menu open works correctly. Removing characters when typing a chat message is still broken.

The only issue now is in the chat?

Yes, the issue shown in the end of the video still occurs.

Seems somewhat related, we are investigating

I'm finding that when I quite Verdun, suddenly keypresses don't repeat when I hold down keys (such as backspace). Am I right to suspect that you had to solve it by incorporating my quick fix and forgot to re-enable repetition with xset r on when Verdun exits? ;-)

Yes and no. Yes, we did end up incorporating the xset command into the game, because it was the only workaround that reliably solved the issue. However just to clarify, we did not just slap in that command and called it a day. We initially tried calling directly into the X11 library and disabling key repeat on the current display, similar to what the xset command does, but every attempt to do that was rejected and ignored by the X11 library. My guess is that the Unity engine already does these same calls into X11 at launch, but its requests get rejected in much the same way, leading to the issue in the first place. It seems to be a problem specific to certain desktop environments, because when I tested the game on Linux Mint Cinnamon earlier everything worked fine without any workarounds.


The reason why keyboard auto repeat doesn't get reset properly is slightly different. We have to exit the game in a "special" way (you can guess how) as a workaround for Unity being a bit silly and crashing occasionally when doing a normal exit. This however skips some of the teardown code that you would normally expect to run at exit, including the call to reset key repeat. This was a slight oversight on my part while implementing the fix. Having said that, it's annoying that xset only works on a global level, not per application.

Doesn't Unity use SDL2 to handle keyboard events?

Fixed in upcoming version

Chat issue is now also fixed in upcoming version. Please resubmit if this still happens.