Hello Unity Team,
I’ve noticed that some games, such as Fortnite, send information about networked entities at varying rates based on the entity and data type.
EG:
- Predicted characters in Fortnite receive information at a high rate for both transformations and attributes (e.g., health, speed).
- Nearby Interpolated characters have a high rate for transformation data but a much lower rate for attributes, approximately 2 updates per second.
- Far away interpolated characters receive both transformation and attribute data at a very low rate.
I’m curious if you have any plans to implement a similar feature in the netcode package ?
Because the way the snapshot system work we can’t specify a “send rate”, neither on a per component nor on per entity. We are using prioritisation for sending entities (and that is what actually affect the perceived send rate in the end).
Reducing the “send rate” of far away entities is achievable today by using a custom scaling function for the chunk and setting the priority lower than then the MinDistanceScaledSendImportance. But requires some manual work and tuning.
For components itself, reducing the send rate of certain data based on some user configurable param requires some changes in the current implementation, that aren’t complex by per se, we already have all the necessary machinery technically speaking.
There was some plans to introduce what we can call “Network LOD”, that would allowed to specify what components to send based on some configurable level of details (on a per entity and distance) but we didn’t finalise that yet.