Easter Networking Changes

It just so happened that we’ve enabled a lot of networking changes yesterday and today. Specifically:

  • Tweaks to new instance replication reduce the join bandwidth by up to 10% depending on the game (-300 KB on ALONE)
  • Terrain replication format has been changed completely, yielding large bandwidth savings for joining games (-1 MB on Jailbreak)
  • Several large server-side CPU performance issues were fixed when StreamingEnabled is active; games like Fantastic Frontier will see much better server performance, especially when players join and streaming is most active
  • Physics motion replication prioritization is now using a new algorithm that more efficiently distributes bandwidth between different objects; object motion should be smoother as a result
  • A series of changes to the physics data replication reduce physics data bandwidth up to 2x, which in many cases means that we can send 2x more object updates in the same packet size
  • On large maps, character respawning should be faster now (less CPU load on the server)

All of these are active in new servers (started within last hour or so); some of these are active in old servers as well. Please let us know if you experience any networking issues that you haven’t seen before and seem related to any of these (post a link to the game, a description of the problem and when you first heard about it to this thread).

98 Likes

Thank you :smiley:

2 Likes

@Widgeon You might wanna see how much your orbital mechanics test can handle now.

2 Likes

This is great. Glad to see SteamingEnabled becoming better and better, it really makes a huge difference.

17 Likes

We found an issue with replication yesterday in the egg-hunt. I believe it’s related to this change.

At the start of the game, the server would parent a model to a folder inside of ReplicatedStorage (which was originally parented to Workspace). Upon connecting, clients would call WaitForChild on this folder in order to wait for the model. The problem itself comes from the fact that while the server had correctly parented the model, this change was not replicated. Any clients that connected would actually find the model under its original parent of workspace.

@Lilly_S was able to get me into a game with this issue and I was able to verify that the server had correctly parented the model to the folder within ReplicatedStorage, while the client would continuously hang waiting for it.

Server:

Client:

4 Likes

I’ve had this issue several times while parenting items to ReplicatedStorage, StarterCharacterScripts, and StarterPlayerScripts at the start of a server.

I’d like to note, however, that I did not experience this bug until about a month ago.

Do you know when precisely this started? I don’t think this particular flow should have been affected at all, but I’m not sure.

It would be difficult to give you an exact time. I believe the first report that I saw would have been around 1am PST on the 29th.

Yeah - out of the listed changes, only physics prioritization & streaming optimizations were enabled before that. I think this must have been an earlier regression, similarly to what @devSparkle was saying. I’ll follow up. How often does this happen in Egg Hunt?

Thank you!!

2 Likes

Is this the physics update you guys were waiting for to make the jb train replicate well?

3 Likes

Afraid not although I wouldn’t be surprised if these improvements helped trains! We’re still working with Khanovich and others on that. Trains are really hard to do in Roblox on a large scale and they run rougher on slow servers. These networking changes are always welcome! The more efficient the game runs, the better.

6 Likes

Sounds amazing! I’ve been having some weird replication bugs with scripts not working for some players, and hats not loading or body parts stuck on weird places. So I hope this fixes it! (but It could also just be my bad scripting :stuck_out_tongue:)

We fixed the problem early this morning since it was causing problems in the game, we are now waiting on both Workspace as well as the folder inside of ReplicatedStorage. I am not certain how often it was happening, I’d hazard a guess and say it was 1 in every 10 servers, but that could be way off.