Parexy / Multiplayer

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

Problems with some mods when it comes to cross os play between window and linux/mac os #40

Closed Parexy closed 5 years ago

Parexy commented 5 years ago

Some mods cause hash_diff when connecting if you are doing cross os play.

From what i understand this is caused by the case sensitivity of linux and mac os (Could be something else), but it makes a hash_diff appear even though their files technically are identical.

image

MilanDierick commented 5 years ago

@Parexy What mods where being used when this issue appeared?

Parexy commented 5 years ago

@MilanDierick "Expanded Prosthetics and Organ Engineering" was the mod that caused the problem for the most recent group people which this happend to. The windows users could connect without a problem but the mac user couldn't.

MilanDierick commented 5 years ago

@Parexy I'll ask around tomorrow if someone has a mac that we can test this with.

vasilevp commented 5 years ago

If anyone's interested, here's a workaround that I came up with some time ago to crossplay with a friend. I never encountered issues with this approach, but it can potentially require additional restrictions on mod order, etc. UPD: It's worth noting that this workaround is not backwards compatible.

Pecius commented 5 years ago

The issue indeed runs deeper as Zetrith said. Since your solution fixes the hash problem by sorting lists with defs, it means that there's a difference in order in defsList of DefDatabase. Which would mean it can actually affect more things than just that hash as IEnumerable AllDefs (which points at defsList) is used in many places of RimWorld's code, including random selection. So there's a probability the issue will cause desyncs in other mods. I have traced a possible cause, but I have to do some tests first.

SweptWasTaken commented 5 years ago

I can do testing with a mac as well if needed.

vasilevp commented 5 years ago

The issue appears on Linux as well (as long as you use the ext* filesystem), so you don't need a Mac specifically. Might be easier for the devs to test that way.

rkost commented 5 years ago

The issue appears on Linux as well (as long as you use the ext* filesystem), so you don't need a Mac specifically. Might be easier for the devs to test that way.

Can confirm for linux (arch) with btrfs as a host and windows as a client. I know that for RimWorld 1.0.2150 there was this fork/release that fixed the issue (however i did not investigate which commit was fixing it specifically).

I would also be ready to test stuff if you need some helping hands.

EDIT: Sorry, I just saw that you @vasilevp are here also. So I guess there are new problems for the new RimWorld version...

notfood commented 5 years ago

Please try https://github.com/notfood/RimWorld-Multiplayer/commit/099db82ae903231753b5eb9597d2970f0348cb9b

This needs testing, both host and client need it. Here is a compiled dll with the feature: Multiplayer.zip

rkost commented 5 years ago

I can confirm that the changes of @notfood do work for arch linux 5.1.4 with btrfs as a host and Windows 10 as a client when applied to the current release (0.4.7.1).

Thanks for the fix!

SamboyCoding commented 5 years ago

Fixed via #83 which includes notfood's patch.