View Issue Details

IDProjectCategoryLast Update
0023729AI War 2Graphical BugNov 13, 2020 2:57 pm
ReporterChris_McElligottPark Assigned ToChris_McElligottPark  
Severityminor 
Status resolvedResolutionfixed 
Product Version2.505 Multiplayer Alpha Starts, Take Two 
Fixed in Version2.631 Multiplayer Swaps And Performance 
Summary0023729: Multiplayer: planet sync data is 10x what any other kind of sync data is.
DescriptionThis is by far the largest amount of data, well above even ship correction data. It's more than all the other data combined, to a ludicrous degree. So just what the heck are we syncing, and does this need to be time-sliced or what? If so, it probably needs to be on its own time-slice compared to everything else so that we don't slow down the other types of syncs too much,
TagsNo tags attached.

Activities

Chris_McElligottPark

Nov 13, 2020 2:57 pm

administrator   ~0059591

Finally got to this!

* Previously, we had a system where ALL of the various types of network sync repair work shared one large time-slice.
** This really only worked when we had fewer types of sync repair, and when they didn't also internally have lots of time-slicing happening.
** As we have added more types of sync repair, and have started wanting to time-slice those, this would otherwise mean that the really core stuff -- namely ships/units -- could fall further and further behind, which is not good.
** Therefore, we've moved both the "ship sync checks" and the "divergent ship fixes" out of the central time slice group, and they are handled every sim frame instead.
*** For ships, these were already time-sliced, and so those happen over the course of a couple of seconds. Probably closer to 2 seconds now, rather than 4, but it depends on the number of ships in the game.
*** For divergent ship fixes, those now don't wait on anything, and just get sent to clients asap after we realize that it is needed. This makes that far more reactive in a good way, and ultimately the data is small enough not to be concerning.
**** As we get to fewer PKID conflicts in the future, this will dwindle even further, but having it be nice and reactive is good.

* Now that we don't have to share the time-slicing with the time-sensitive ship fixes, we can make some of the rest of the sync repair data happen on a more relaxed schedule.
** This actually is a dramatic reduction in the amount of data transferred, and even more importantly is a dramatic reduction in the amount of CPU processing on clients required to handle this.
** Planet Faction sync is by far the slowest stuff to sync, and has the most data, so we're time-slicing it over 20 frames now, which is about 2 seconds, rather than 4 frames like earlier in this build (before this build, it all happened in a single frame every two seconds or so).
** Planet other-data sync is not exactly small, either, so it's being time-sliced over 8 frames now instead of 4 frames like earlier in this same build. Again, prior to this build this AND the planet-faction data was all in a single giant laggy frame every 2 seconds in large games.
** The data on these things is just not all that visible or important in this sort of time schedule, so cutting it down in this fashion keeps things from drifting over long periods of time without impacting game performance like it previously was.
** We may add in extra time-slicing in the future if it really becomes needed, but at this stage it is seeming to be a good balance between keeping things up to date quickly and not draining performance.
** Thanks to crawlers and Deadwood for providing an MP savegame where basically the performance was stop-and-start laggy; in this new version, we can run it at full sim speed with no waiting on the client, which is really awesome!

Issue History

Date Modified Username Field Change
Sep 14, 2020 6:54 pm Chris_McElligottPark New Issue
Sep 14, 2020 6:54 pm Chris_McElligottPark Status new => assigned
Sep 14, 2020 6:54 pm Chris_McElligottPark Assigned To => Chris_McElligottPark
Nov 13, 2020 2:57 pm Chris_McElligottPark Status assigned => resolved
Nov 13, 2020 2:57 pm Chris_McElligottPark Resolution open => fixed
Nov 13, 2020 2:57 pm Chris_McElligottPark Fixed in Version => 2.631 Multiplayer Swaps And Performance
Nov 13, 2020 2:57 pm Chris_McElligottPark Note Added: 0059591