We used following tests and #monitor.
> someVariable = "Some shitty value";
>
> for "_i" from 0 to 999 step 1 do
> {
> publicVariable "someVariable";
> };
In this case we got following result:
> Server load: FPS 50, memory 287 MB, out: 15 Kbps in: 340 Kbps
Which is not really good, but is acceptable.
Now if we transmit same data as an array member:
> someVariable = ["Some shitty value"]
We get following:
> Server load: FPS 50, memory 287 MB, out: 10 Kbps in: 1730 Kbps
It is 5 times more data, which makes it impossible to use big arrays to sync data between clients.
For example we currently have a shopping array which much more complex than what we used here and it is broadcasted to all players affected. Which results in the following:
> Server load: FPS 50, memory 287 MB, out: 30 Kbps in: 7911 Kbps
> Server load: FPS 50, memory 287 MB, out: 26 Kbps in: 15674 Kbps
> Server load: FPS 50, memory 287 MB, out: 16 Kbps in: 15830 Kbps
> Server load: FPS 50, memory 287 MB, out: 24 Kbps in: 15319 Kbps
...
40 times more
...
> Server load: FPS 50, memory 287 MB, out: 13 Kbps in: 515 Kbps
This needs to be fixed.