Networking Optimizations
We found that at high player counts, processing time for building and sending delta snapshots for networked objects - including any Sync Vars they have - would be really high.
I spent a lot of time profiling and optimizing this path, bringing frame times down significantly. Previously with 30 players and a lot of networked objects, we'd see upwards of 30-40ms. After these optimizations, I've managed to reduce that by nearly 60%.
Granular Network Refresh
Previously you could only Network Refresh an entire networked object - this would serialize the entire hierarchy and send it to clients, which would then create any missing children and components.
I've added new overloads to Network.Refresh
to let you pass in a GameObject
or Component
that exists in the hierarchy - this will send only that descendant/component and create or destroy it for other clients appropriately.
Notable Changes
When joining a server, it used to make you download the latest version of the game - this could cause various issues and conflicts. Now joining a server will download the exact version of the game that the server is running.
Is this the first devblog where Matt wrote Summary?
I wonder who discovered this exploit 🤔🤭
It's fantastic to see it added to S&box.