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

Network desync happens constantly making network games unplayable #5579

Open
davewthompson opened this Issue Jun 10, 2017 · 18 comments

Comments

Projects
None yet
9 participants
@davewthompson

davewthompson commented Jun 10, 2017

Windows 10 x64 / Windows 10 x64
v0.0.8-develop
5c5389a

When playing a multiplayer game with a PC on the same LAN the client will show the network desync detected dialog immediately and the game gradually goes out of sync.

Can you point me in the direction of the log files so I can check myself?

[ N ] Reproducible in RCT2 (vanilla)?
[ Y ] Multiplayer?

Steps to reproduce:

Start a network game on the LAN.
Start a new park.
Client connects and desync almost immediately.
Wait.

@Gymnasiast

This comment has been minimized.

Show comment
Hide comment
@Gymnasiast

Gymnasiast Jun 10, 2017

Member

We know there are desyncs. But this is so unspecific that we can't do anything with it. "Network desync happens constantly making network games unplayable" describes quite a lot of issues.

If can reliably produce it with a particular save, then it's different.

Member

Gymnasiast commented Jun 10, 2017

We know there are desyncs. But this is so unspecific that we can't do anything with it. "Network desync happens constantly making network games unplayable" describes quite a lot of issues.

If can reliably produce it with a particular save, then it's different.

@davewthompson

This comment has been minimized.

Show comment
Hide comment
@davewthompson

davewthompson Jun 10, 2017

How can I find more information? Can I run in debug mode? Send you a log?

I've tried to compile the code on my own machine but the latest version doesn't seem to compile using msbuild.

davewthompson commented Jun 10, 2017

How can I find more information? Can I run in debug mode? Send you a log?

I've tried to compile the code on my own machine but the latest version doesn't seem to compile using msbuild.

@Gymnasiast

This comment has been minimized.

Show comment
Hide comment
@Gymnasiast

Gymnasiast Jun 10, 2017

Member

Finding desyncs is hard. If you have a save that will always cause a desyncs, or a set of actions that will always cause one, and we can reproduce it, then we can look into it.

Do you always try with the same park? Is it a mostly empty park or a used save?

Member

Gymnasiast commented Jun 10, 2017

Finding desyncs is hard. If you have a save that will always cause a desyncs, or a set of actions that will always cause one, and we can reproduce it, then we can look into it.

Do you always try with the same park? Is it a mostly empty park or a used save?

@davewthompson

This comment has been minimized.

Show comment
Hide comment
@davewthompson

davewthompson Jun 10, 2017

Crazy Castle P&D.zip

This file will always cause a desync when the second player connects.

davewthompson commented Jun 10, 2017

Crazy Castle P&D.zip

This file will always cause a desync when the second player connects.

@Juli199696

This comment has been minimized.

Show comment
Hide comment
@Juli199696

Juli199696 Jun 10, 2017

Well i have checked the File aswell on Windows 10 64 Bit
Got no desync in 5 minutes. Just the normal "lag". I even build a coaster to test. Everything was synced.
Maybe its a slow network on your side @davewthompson?

Juli199696 commented Jun 10, 2017

Well i have checked the File aswell on Windows 10 64 Bit
Got no desync in 5 minutes. Just the normal "lag". I even build a coaster to test. Everything was synced.
Maybe its a slow network on your side @davewthompson?

@janisozaur

This comment has been minimized.

Show comment
Hide comment
@janisozaur

janisozaur Jun 10, 2017

Member

Network conditions can only affect ping and connection state, not staying in sync.

Member

janisozaur commented Jun 10, 2017

Network conditions can only affect ping and connection state, not staying in sync.

@Juli199696

This comment has been minimized.

Show comment
Hide comment
@Juli199696

Juli199696 Jun 10, 2017

@janisozaur I just rememberd what happend to me in OpenTTD some years ago when i got a bad connection i just got disconnected cus to much desync.

Juli199696 commented Jun 10, 2017

@janisozaur I just rememberd what happend to me in OpenTTD some years ago when i got a bad connection i just got disconnected cus to much desync.

@ZehMatt

This comment has been minimized.

Show comment
Hide comment
@ZehMatt

ZehMatt Jun 10, 2017

Contributor

It is possible that I've fixed this, see: #5578

Contributor

ZehMatt commented Jun 10, 2017

It is possible that I've fixed this, see: #5578

@janisozaur

This comment has been minimized.

Show comment
Hide comment
@janisozaur

janisozaur Jun 12, 2017

Member

@davewthompson how's the experience for you now that we've merged #5578?

Member

janisozaur commented Jun 12, 2017

@davewthompson how's the experience for you now that we've merged #5578?

@davewthompson

This comment has been minimized.

Show comment
Hide comment
@davewthompson

davewthompson Jun 13, 2017

It doesn't desync immediately so it's an improvement but unfortunately there's a desync about 10 minutes into play...

We are using a wireless network though, so it could easily be that! We'll try again on a wired connection.

Thank you very much to you all for looking.

davewthompson commented Jun 13, 2017

It doesn't desync immediately so it's an improvement but unfortunately there's a desync about 10 minutes into play...

We are using a wireless network though, so it could easily be that! We'll try again on a wired connection.

Thank you very much to you all for looking.

@IntelOrca

This comment has been minimized.

Show comment
Hide comment
@IntelOrca

IntelOrca Jun 13, 2017

Contributor

We are using a wireless network though, so it could easily be that! We'll try again on a wired connection.

It won't be. All desyncs will be caused by bugs in the code.

Contributor

IntelOrca commented Jun 13, 2017

We are using a wireless network though, so it could easily be that! We'll try again on a wired connection.

It won't be. All desyncs will be caused by bugs in the code.

@Juli199696

This comment has been minimized.

Show comment
Hide comment
@Juli199696

Juli199696 Jun 13, 2017

Well desyncs are common in ORCT. Just check the "Disable disconnect on dsync" so you can play without getting disconnected. But i recommend you to play the parks just without money like the most of the Multiplayer Servers do.

Juli199696 commented Jun 13, 2017

Well desyncs are common in ORCT. Just check the "Disable disconnect on dsync" so you can play without getting disconnected. But i recommend you to play the parks just without money like the most of the Multiplayer Servers do.

@ZehMatt

This comment has been minimized.

Show comment
Hide comment
@ZehMatt

ZehMatt Jun 16, 2017

Contributor

I'm currently working on improving the multiplayer aspect when it comes to desyncs, I've already submited a few new PR's so perhaps your experience will improve with the latest changes soon.

Contributor

ZehMatt commented Jun 16, 2017

I'm currently working on improving the multiplayer aspect when it comes to desyncs, I've already submited a few new PR's so perhaps your experience will improve with the latest changes soon.

@runfalk

This comment has been minimized.

Show comment
Hide comment
@runfalk

runfalk Oct 25, 2017

I recently started playing with a friend. I host in-game on x86_64 Linux and he plays on x86_64 Windows. The desync will happen within the first few minutes of staying connected. We have to play with Disable disconnect on dsync to play at all.

This happens in all scenarios we have tested (5 first scenarios in challenging category of RCT2). I haven't yet found anything in particular to reproduce it.

We currently play on 0.1.2 build ce4899c

EDIT: I've confirmed that at least hiring staff and lifting guests causes desync. This happens regardless of the autoplace staff setting.

runfalk commented Oct 25, 2017

I recently started playing with a friend. I host in-game on x86_64 Linux and he plays on x86_64 Windows. The desync will happen within the first few minutes of staying connected. We have to play with Disable disconnect on dsync to play at all.

This happens in all scenarios we have tested (5 first scenarios in challenging category of RCT2). I haven't yet found anything in particular to reproduce it.

We currently play on 0.1.2 build ce4899c

EDIT: I've confirmed that at least hiring staff and lifting guests causes desync. This happens regardless of the autoplace staff setting.

@Daimyo21

This comment has been minimized.

Show comment
Hide comment
@Daimyo21

Daimyo21 Nov 7, 2017

Here's a method I came up with recently that seems to reduce desync's to almost nil:
https://openrct2.org/forums/topic/2710-consistent-server-stability-found-less-desyncs-dev-builds-012/

Daimyo21 commented Nov 7, 2017

Here's a method I came up with recently that seems to reduce desync's to almost nil:
https://openrct2.org/forums/topic/2710-consistent-server-stability-found-less-desyncs-dev-builds-012/

@IntelOrca

This comment has been minimized.

Show comment
Hide comment
@IntelOrca

IntelOrca Nov 7, 2017

Contributor

@Daimyo21 thanks for investigating. I see two potential issues here:

  1. headless servers are not behaving correctly with actions, client to client.
  2. server actions are not executing in the same way as client actions.

This might be related to our game action changes that have gone in since 0.1.1 release. The next thing would be to compare your findings with 0.1.1 or earlier builds of 0.1.2 to see if this is a recent regression.

Contributor

IntelOrca commented Nov 7, 2017

@Daimyo21 thanks for investigating. I see two potential issues here:

  1. headless servers are not behaving correctly with actions, client to client.
  2. server actions are not executing in the same way as client actions.

This might be related to our game action changes that have gone in since 0.1.1 release. The next thing would be to compare your findings with 0.1.1 or earlier builds of 0.1.2 to see if this is a recent regression.

@Daimyo21

This comment has been minimized.

Show comment
Hide comment
@Daimyo21

Daimyo21 Nov 9, 2017

I did some brief tests in stable and this is what I found:

-Desync still seems to happen in headless mode when the client builds, rejoins etc.. maybe not as common as in dev but pretty immediate.
-When server is running without headless and is idle, it seemed pretty stable as far as I can tell
-When server is running without headless and is building/hiring, there was some instances of desync but did not seem as bad and immediate. I did notice however that with ~7,000 guests, it started to lock up and lag a bit as server running in 1280x1024 resolution and software mode. Mind you this is a virtual machine but didnt seem to happen before though I wouldnt really chalk it up as good test results, but it was consistently happening.

Daimyo21 commented Nov 9, 2017

I did some brief tests in stable and this is what I found:

-Desync still seems to happen in headless mode when the client builds, rejoins etc.. maybe not as common as in dev but pretty immediate.
-When server is running without headless and is idle, it seemed pretty stable as far as I can tell
-When server is running without headless and is building/hiring, there was some instances of desync but did not seem as bad and immediate. I did notice however that with ~7,000 guests, it started to lock up and lag a bit as server running in 1280x1024 resolution and software mode. Mind you this is a virtual machine but didnt seem to happen before though I wouldnt really chalk it up as good test results, but it was consistently happening.

@duncanspumpkin

This comment has been minimized.

Show comment
Hide comment
@duncanspumpkin

duncanspumpkin Nov 9, 2017

Contributor

The main actions you want to test are ride destruct, park entrance placement, park entrance set price, ride open/close/test, ride create, name ride/guest/staff. Those are the ones that have moved to our new code and may be causing new desyncs.

Contributor

duncanspumpkin commented Nov 9, 2017

The main actions you want to test are ride destruct, park entrance placement, park entrance set price, ride open/close/test, ride create, name ride/guest/staff. Those are the ones that have moved to our new code and may be causing new desyncs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment