Star Citizen: Around the Verse - Serialized Variables

There seems to be three parts to this. They are using all the tricks in the book, the degree of optimization is extreme.

Serialization

This is the process of turning stuff in memory into bytes on the network - the video explains this pretty well. This is used in basically all software. Even the original CryEngine netcode would have done this (albeit, poorly).

This is not only extremely common in games (even single player ones, as serialization is used for save files too) but also applications - e.g. a .doc file is a serialized copy of what you are editing in Word.

Efficient representation

Best explained by example. SC uses 64-bit coordinates. With a naive (CryEngine) implementation, you would always send 3 x 64 bits (3 x 8 bytes = 24 bytes) over the network for position information. Imagine you represent all numbers with 5 decimal digits - even for a small number such as 12 you have to send 00012 over the network. Efficient representation allows you to use fewer digits (bits for computers) to send small values. Wikipedia. You're pinching pennies, but the savings rapidly add up.

This is very common in applications (especially when you are writing cloud servers), but games have been a bit slow on the uptake. Probably because most games don't have the bandwidth problems faced by SC.

Delta Encoding

This is where you only send things that have changed.

This is quite common in games but quite rare in applications.

/r/starcitizen Thread Parent Link - youtube.com