Nodrog's Fortress · build 9904584 · published
Sync Demon Hunting:
- The hunt continued for any and all sources of floating point inconsistencies in the simulation code. I can announce that we have had a very successful hunt, discovering that Map Tiles and Map Objects had their Virtual Transform relying on their Unity Transform for initial positions without reinitializing to the correct fixed point coordinates. I had thought this was fine but any float initialized fixed position is a ticking time bomb for inconsistency, especially since Map Objects and other spawns rely on the Map Tile's Virtual Transform fixed position for their own initializations. Now all objects are using correctly derived fixed point positions which should greatly improve the chances matches run exactly the same on each Client. Again, I will continue my patrols, but this greatly moves the ball forward towards fully eliminating sync errors in Multiplayer!
Performance:
- During the hunt above I discovered many places in the code that could use a cleanup/simplification and did many small things to address these areas. Also, there were some older sections that hadn't received a pass to eliminate garbage production or were instantiating new objects when we could just reuse that memory instead. This gave us more consistent frame times and probably even more speed during intense action.
UI:
- When choosing teams online with 3 or more entries, the teams should no longer get obstructed by chat.
- The Team Controller's 'Show Map Info' and 'Manual Action Cam' toggles were enlarged for easier use.