RPC and State Synchronization bandwidth decreasement

I’ve got a couple of questions:

  1. For example, would synching script (that does job synching transform), instead of transform itself be helpful?
  • 1.1) Script is using lossy compression of rotation quat and position vector into 2 integers.

  • 1.2) All booleans, floats, and other variables cut to required precision, decomposed to bits and packed into integers to minimize amount of transferred variables and bits.

  1. Is there any way to switch State Synchronization mode from Unreliable (when character is walking) to Reliable Delta Compressed (when character is idle) in authoritative server ? (using uLink)

  2. Does OnSerializeNetworkView BitStream order matter (think it does)? Or there is something that records variable name into the stream ?

#Please list everything else you know that might help.

If you have really big things to transfer you can use 7zip and compress the data then send it as a string using Convert.ToBase64String() this works well for things that do compress even with the overhead of creating a base 64 representation. For instance you can send pictures captured from a webcam this way and the bandwidth is significantly reduced - but the processor cost of compression is reasonably high.

I think conceptual compression - like sending things as smaller representations of the structure is interesting but really not sure it will always help - you would have to be sending a lot each time as network packets have minimum sizes.

  1. Maybe. If you only need to sync the position of a transform (1 vector3) you would be sending less then the full transform (2 vectors and a quaternion).
  2. Never used uLink.
  3. Yes of course order matters.