Smallest Replicable Values; Optimizing for Distributed Information

What is the cost of replicating a single, non-unit, non-elementary CFrame? (Like a camera orientation)

Could a boolean be conveyed with a single bit?

How about approximating Positions? Shearing off anything past the thousandths could cut the digits in half, and preserve most of the position?

The recommendation is to not exceed 50Kb/s, but many projects exceed this. What really is the threshold, and is it not more of a gradual rise in disconnects.

The usage of unique remoteEvents and Functions to avoid string specifiers for the requested action? Less code processes to sort the stuff, but how about the actual replication cost?

I have a lot of questions, generally like these, but for a single response given I ask: Can I remoteEvent a single bit worth of information? (on top of what internal data must go on; an empty event wouldn’t really be weightless, after all.)

You can efficiently encode your data as Base64 using BitBuffer:
BitBuffer Module - For binary data manipulation
Stravant’s BitBuffer Module - Compact Storage Of Data [Tutorial]

You can encode any number with however many bits of precision you decide that you need.

This is a really good example of how you could use BitBuffer to more efficiently send data. The benefits get bigger the more data you send at once though, and you can never send less than 1 byte/char at once. You obviously loose precision, and Roblox might have some optimizations for sending e.g. integer component vectors anyway.

You’ve gotta send that string over the network, so unless you encode it then each character is one more byte for every invokation or firing. You could represent each “type of request” with an int instead of a string, and then roll your own Enum wrapper to still get readable code.

At least 12 32-bit floats = 48 bytes = 384 bits for the actual information, but probably more for encoding the data type and other stuff maybe?


All of this is also great for storing more info in a datastore.

1 Like