Parexy / Multiplayer

Zetrith's Multiplayer mod for RimWorld
MIT License
1 stars 0 forks source link

Temperature dropping below -10 causes desyncs between 32bit and 64bit #93

Open 20k opened 5 years ago

20k commented 5 years ago

Hi there! I discovered this totally by mistake. Its probably not worth fixing, but the temperature dropping below -10 killing plants passively causes desyncs if one player is 32bit, and the other is 64bit. Tested on windows 10 64 vs 32, as well as windows 10 32 vs mac 64bit

notfood commented 5 years ago

Can't be... It's probably a rogue random somewhere. The order of plant killing is incorrect somewhere.

MP mod focuses hard on making things deterministic. That means seeding the Randoms so they become predictable. It shouldn't change between architectures, the math is the same.

20k commented 5 years ago

Its definitely bitness which uncovers the issue (even if its not the root cause) - I've checked it between the 32bit and 64bit versions of the game - it only desyncs when the clients aren't both 64bit, and it now definitely works that both clients are 64bit

We only noticed because I accidentally downloaded the non-steam 32bit version of the client instead of 64bit when we'd previously played solely with everyone on 64bit versions, and experienced easily reproducible desyncs every time winter came and started killing the passive plants on the map, across multiple maps and with no mods (other than core + multiplayer), and multiple nights. After a lot of hair pulling, swapping to 64bit has completely eliminated it desyncing when the temperature gets low

Its probably reproducible by using the 32 and 64bit versions of the client and forcing a cold snap in the summer just after starting. Starting in winter won't repro it

Edit:

Oh and this happens across every version of the multiplayer mod we've tried, its broken in zetriths last release, and in 0.4.8.2 and other versions of this