Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Game stuck on ping > 300ms #2873

Open
illwieckz opened this issue Dec 13, 2023 · 11 comments
Open

Game stuck on ping > 300ms #2873

illwieckz opened this issue Dec 13, 2023 · 11 comments

Comments

@illwieckz
Copy link
Member

illwieckz commented Dec 13, 2023

I reproduce it on “Rakka Takka” server which is located in Australia.

When the ping is larger than 200ms, the game is stuck. I believe it's a bug, the game should lag a lot, but not be stuck.

@illwieckz
Copy link
Member Author

I have common.framerate.max set to 0 meaning I get high framerate around 300 fps, but still under the 333 cap (that is enabled anyway).

If I reset common.framerate.max, I get capped at 125fps as expected, the game unstuck itself and I can move around freely but then the game wrongly displays a ping of 999ms which is not true.

@illwieckz
Copy link
Member Author

When I'm stuck, the game continue to render things (I see bots playing), but the input are dead.

@illwieckz
Copy link
Member Author

I still get the bug if I join with a 0.54.0 client.

@illwieckz
Copy link
Member Author

illwieckz commented Dec 27, 2023

It looks like the bug occurs if ping (ms) + fps is high, to reproduce the bug one should have both high fps and high ping.

The higher the ping is, the easier you get the bug with lower fps. The 333 fps cap is not enough to avoid being stuck if you have 300 ms ping, for example.

@illwieckz
Copy link
Member Author

illwieckz commented Dec 27, 2023

What is stuck is the input, the game renders properly and updates according to server state on every frame, we can see bots moving around and beacons moving on screen.

@illwieckz
Copy link
Member Author

The bug was already there in 0.54.0, I guess I only noticed it after 0.54.1 was released because we improved performance.

@illwieckz
Copy link
Member Author

illwieckz commented Dec 27, 2023

I reproduce locally if I spawn a server listening on localhost and join with a client, and emulating a 600fps ping on lo interface:

sudo tc qdisc add dev lo root netem delay 300ms

With 600ms ping, even 125fps is already too much and inputs stop working.

Edit: Setting 300ms in fact gives 600ms.

Edit: To remove the emulated ping, one does:

sudo tc qdisc del dev lo root netem delay 300ms

@illwieckz
Copy link
Member Author

Well, the command likely gives a 600ms ping since both server and client gets 300ms ping, that just makes the bug more obvious.

@illwieckz
Copy link
Member Author

illwieckz commented Dec 27, 2023

I reproduce the bug with 170fps and 300ms ping. So it means our default 125fps maximum framerate is what prevents European people to get the game being stuck when joining the Australian server.

@illwieckz
Copy link
Member Author

illwieckz commented Dec 27, 2023

When the bug occurs, the game displays 999ms ping, even if it's 300ms (netem delay 150ms).

framerate network ping displayed ping game experience
60fps 300ms 300ms playable
125fps 300ms 999ms playable
170fps 300ms 999ms stuck

@illwieckz
Copy link
Member Author

The scoreboard displays the real ping (300ms in my example).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant