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

Guaranteed De-sync on speeds above x1. #75

Closed
ZergerZ opened this issue Apr 28, 2020 · 3 comments
Closed

Guaranteed De-sync on speeds above x1. #75

ZergerZ opened this issue Apr 28, 2020 · 3 comments

Comments

@ZergerZ
Copy link

ZergerZ commented Apr 28, 2020

Test game condition:

Rimworld Version: v1.1.2610
Multiplayer Version: v0.5.0.25
Game is as Direct connect with static IP and proper port forwarding.
Internet connection was tested and no issues was detected (packet loss, latency & etc)
3 players on 3 maps with a total of 20 colonists.

If the game is set to run on a speed above normal like x2 or x3 players will start lagging in ticks behind the host.
on x2 speed it happens after few minutes of game play (ticks are growing, but slowly),
on x3 it is nearly instant.

The issue might be somewhat related to:
Zetrith/Multiplayer#79
Or
Parexy/Multiplayer#32

Since the host machine got AMD Ryzen Threadripper 2920X 12-Core Processor
No HW bottleneck was observed during game play session.
Tested the above and it seems it makes no difference on intel.

all of 3 players are on the high end HW, but both clients are on Intel based CPUs

the situation was somehow improved by removing excess of domesticated animals and cleaning up the maps from raiders bodies.

@notfood
Copy link
Member

notfood commented Jul 15, 2020

This is more a core RimWorld issue, the more pawns, the more computation is required. You can debug this with Dubs Performance Analyser.

The only thing you can do is cut down on the map sizes and/or number of pawns in game. Using Dubs Performance Analyser to hunt for those tick abuser mods and removing them is also a solution if you play heavily modded games.

On the MP side I'm not sure what can be done to mitigate this.

@NotherGithubAccount
Copy link

NotherGithubAccount commented Aug 28, 2020

Out of curiosity: You're saying multiplayer depends on everyone processing the game at the exact same speed?

Since this is an imperfect universe with nasty things like network latency and clock drift, I'm assuming there's some sort of synchronization or maybe it's just not an exact science.

Couldn't the arbiter send out regular timestamps, turn counts, or whatever the game uses to keep track? When a client gets ahead, they could slow down or pause the simulation for a moment to get back in sync, respectively request the same from the arbiter if they're behind.

That would still leave a chance for a desync if a player makes a change affecting something another player had already calculated, but this window could be kept very small making it unlikely at least.

@LuzBun
Copy link
Contributor

LuzBun commented Jul 30, 2021

Not much can be done about Rimworld's single threaded nature, however it won't be the cause of desyncs themself. Ticks behind will just cause an apparent "lag" and not much else.

@LuzBun LuzBun closed this as completed Jul 30, 2021
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

4 participants