Hey y’all. Recently, I’ve been on the mindset of “Keep Receiving data under 50 KBs”, but now that’s being messed with. I’ve been trying to make client replication a major thing by handling all the tweens on the client instead of the server to keep Receiving on a low number, but now I don’t think I really have to, besides being told I should. I understand for visuals I should handle it on the client of course, but what about certain things?
I’ve been joining games made by well-experienced developers like Attack on Titan Revolution, Jailbreak, Phantom Forces, Guts and BlackPowder, Ink game, and Jujutsu Infinite, and have noticed that all of these games have an abnormally high Receiving level. Ink game having the worst at averaging above 150 in my findings. It then makes me beg the question; how do some developers get away with high receiving levels? Are some things fine with being tweened on the server? If so, what? And why are some people I see so adamant on never doing tweening on the server? And finally, what is the realistic Receiving data I should be trying to stay under?
Honestly this is one of those things where unless you are building a system that intends to use a lot of data, just optimize things when it becomes a problem. Most tweens are client sided purely for the smoother animations. The actual data cost of updating a tween over the lifetime of a tween is relatively small. Unless you are doing a huge amount of tweens at the same time honestly it won’t matter all that much. Fundamentally roblox is handling a ton of replication stuff for you anyways and their systems are pretty optimized. Also if the measure you are recieving is only 150kb that’s nothing, streaming a movie can use like 50mbs for 4k (but they also don’t have as big of latency constraints, but it shows how good modern internet connections are). Gaming does tend to be on the lower side but until you are hitting at least 1-2mb it’s not even worth worrying about for the most part unless you measure an issue.
That’s an interesting take. I remember reading Mr. Chicken Rockets post and he said to keep it between 40 and 60, but even then a majority of Roblox players aren’t playing on the worst platforms imaginable. I like to try and optimize as much as I can for those with bad connection, but truthfully people with bad connection anyways won’t be playing Roblox.
But 1 MB you say? I know some games with horrendous connection don’t reach that I believe.
The actual number of 1Mb was a bit arbitrary. But it’s a relatively small number for internet connections. The larger issue is probably latency because the more data you send the higher the latency tends to be. But the major point is mostly just go until tests or users report problems and optimize when that happens. Ultimately you are building a game and not a networking subsystem so don’t get too lost in the details. Keeping things that can be optimized using an interface you can replace with a more optimal format later is about the most I’d recommend and that’s just for simplicity if you ever actually have to fix this, but it probably doesn’t matter all that much as the actual problems will most likely be local to a script and easy to fix anyways.