The desyncs that happen from just running the game in the background described in #1968 should be highest priority. There are also issues with game command ghosts affecting peep behavior on client only, like placing paths, that will cause desync. Anytime scenario_rand is called it will affect the rest of the game state, so util_rand needed to be used instead. ![]() The flag was determining if scenario_rand would be called. This was not only being affected by asynchronicity but also whether the player had sound on or off in their config. Another example was in climate.c, a flag was being set based on if the thunder sound was playing. There could also be asynchronous data affecting the game, such as the playback position of ride music which was causing a desync, since that runs in a different thread and might be different for each client.Look at _guestGenerationProbability for an example that had to be added to scenario_save_network/game_load_network. The game logic can be affected by variables or memory outside of the game save state. ![]() I will describe some of the things that I have found can cause them: I think I found about five of them but it is really hard and it would be good to have more people to search. There should be an undertaking to find the root source of the desyncs and fix that.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |