CitiesSkylinesMultiplayer / CSM

Source code for the Cities: Skylines Multiplayer mod (CSM)

Home Page:https://citiesskylinesmultiplayer.com/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Clients can manipulate their own time

Bluenix2 opened this issue · comments

Summary

It's possible to completely desync the world it seems like. When playing yesterday with my party, the client were able to pause the time. While me, the server, wasn't able to. In the end this meant that the client's time became months after. We didn't see if /sync fixed this.

It appears that this is were a lot of other sync issues we experienced stemmed from, like money, population, and buildings ( as in zones.

To Reproduce

Steps to reproduce the behavior:

  1. Start a game and have someone join it
  2. Have the client stop the time
  3. Zone some streets
  4. See population desyncs, money desyncs, and similar.

Possible fix?

What should be the expected behavior here? Because surely we want to support accelerating, pausing and overall manage the time.
Why was the server not able to manage the time, but the clients could?

In the end, what I think should be the correct behavior. Would be syncing the time manipulation, and only allow the server to pause and manipulate the time for its clients. The clients themselves shouldn't be able to.
Or it could be a setting where everyone can manipulate the time, but it's global and affects everyone.

Tl;Dr
Server was not able to change its own time, but clients could which caused sync issues. Manipulation should be global and synced.

This is something I can take on, if I just get some directions on what's the expected behavior and what is an actual bug. As an example, I am still not sure if money is meant to be shared, or personal...

@kaenganxt could you clarify?

This is an issue that was introduced by the update that should improve syncing of time ;) If you stop the time before a player joins, it should mostly work I think. I have already some fixes ready, but hey don't work completely yet. I hope to be able to get them out this weekend.
Expected behaviour would be for now:

  • All players can change time and speed
  • Money is shared

If you stop the time before a player joins, it should mostly work I think.

Yes this could be seen when the client in question was loading, time was paused and I had to wait. But, because of the time it takes my cousin to load and join. Time resumed and I could keep playing + I could see a "... is connected" ( or what it now says ) while he was still loading and could not yet see the world. ( Maybe this could be why it didn't work like you thought it would? )

Expected behaviour would be for now:

  • All players can change time and speed
  • Money is shared

👍