Jump to content

"Out of sync" error still a "known issue"?


Imarok
 Share

Recommended Posts

Is the "out of sync" error still a "known issue"?

To me it seems like all tickets concerning this matter are closed.

Nearly every second game I play with friends and AI someone gets an out of sync...

 

Edited by Imarok
It was late ^^
Link to comment
Share on other sites

And does the OOS happens when somebody rejoins ? if yes, that's normal in the sense that rejoining with AI is not yet supported, i.e. the state after deserialization is not exactly the same as the one before.

Link to comment
Share on other sites

If you play multiplayergame with AI it will with 95% certainty be OOS, because the serialization of the AI has not been implemented (so do 1v1 or join the lobby and play with humans) or never rejoin (never become disconnected) when playing with the AI.

Also if you run into this situation, rejoinig again "refreshes" the current state (still not really useful as its broken after one or two seconds again).

  • Like 1
Link to comment
Share on other sites

There seems to be no ticket for this. Should one be created?

I would help implementing this. I can code in C++, but I have no experience with the 0AD project. So I don't know, if I would be a great help...

Link to comment
Share on other sites

elexis: your statement is a bit misleading. AI serialization is implemented (and works fine on singlePlayer games), but it is not fully "reproducible" in the sense that the state after serialization is not exactly the same as the one before. And your percentage also is misleading: playing multiplayergame with AI should have 0% chance to be OOS if you don't need to rejoin, and 100% when you rejoin.

imarok: yes, please, create a ticket. If you are willing to have a look at it, that would be great. I see 2 possible ways to work this out:

 - 1) make the AI serialization fully "reproducible". That's only Javascript code as all the AI is scripted. I know a few places where the code needs to be changed (so i could either guide you or try to implement it myself when i have time), but that's certainly not all what is needed to be changed, so further JS debugging would be needed.

 - 2) when a player rejoins with AIs, we could force an AI serialization/deserialization for all players. That should be mainly c++ code. But that may be just a temporary hack, as 1) would make it useless.

  • Like 2
Link to comment
Share on other sites

As i said, there are a few places where i know that the code has to be changed (and these i could do easily), but i'm pretty sure this will not be enough and that we will have to track all the possible remaining sources of differences (as some values which have been cached or whatever), and this could possibly need quite some time and tests.

Link to comment
Share on other sites

  • 6 years later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...