-
Couldn't load subscription status.
- Fork 575
feat: NetworkTransforms throughout project optimized where possible [MTT-6312] #836
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat: NetworkTransforms throughout project optimized where possible [MTT-6312] #836
Conversation
|
This looks about right with only synchronizing x and z position axis and the y rotation axis. Just using half float precision for this scenario is the right choice. You should get a 6 byte reduction for the 3 axis (2 bytes per as opposed to 4), but will get an additional 1 byte hit due to the m_BitSet flag values set with half float compression enabled and how that is being compressed...which should get you 5 bytes per NT savings. (which makes me think that I should possibly re-arrange where those bits are being set to try and avoid that hit) |
Description
This PR upgrades NetworkTransforms inside the project to reduce bandwidth cost.
Prefabs/ scene objects that had Synchronize Transform enabled inside their NetworkObject component that didn't need to synchronize position have now that flag disabled. This is particularly useful if the NetworkObject is used more for management related tasks and has no spatial synchronization needs. This will reduce initial synchronization payloads.
CharacterPrefab prefab which all PCs & NPCs derive from now have on their NetworkTransform:
The savings as seen from a client are as follows:
Pre:

Only syncing x and z positions explicitly:

Only syncing x and z positions, y rotation, and half float precision enabled:

Only syncinc x and z positions, half float precision enabled, quat syncing and quat compression enabled:

Bandwidth costs considered, since only the y position is modified per frame in a worst case scenario, it is more cost efficient to only: sync x and z positions, y rotation, and enable half float precision. Individual NetworkTransform packet sizes are reduced from 21 bytes down to 16 bytes with this optimization.
Issue Number(s)
MTT-6312
Contribution checklist