5 years ago
Tickrate Stuff
I think it's kind of safe to say that the tickrate for Apex is around 60Hz. Clients send their updates 60 times per second, while servers send game data up to 60 times per second. "Wait, but everyo...
@DoYaSeeMe , as a fellow engineer, I'd like to quote a couple things that may not be (necessarily) true, an also a couple that may worth some clarification or warning:
"Wait, but everyone says that the potato servers are at 20Hz, why are you lying?!?" 20Hz, or 20 times per second is the minimum limit for the server to send an entire game update to the clients. The thing is, game updates are big for Apex, so they need to be split into multiple packets and sent throughout multiple ticks.
Warning: splitting into multiple packets has a downside: loosing a packet means loosing everything sometimes. Games are most of the times coded to discard the entire sequence, sometimes just the packet depending on how good their "netcode" is. This is specially crucial for games with long ttk/ttd like Apex, because you need more shots to kill a guy (or die). The you extend the fight, the worse it gets. Respawn realized this in the past, lowering ttk by introducing evo shields. In the first time, this was an attempt to easily solve the infamous "NO DAMAGE REGISTERED" issue, and it worked. Sadly, several complains appeared from lower ranked players that got easily killed, and since they are a majority, Respawn took this back, and we are where we are now: Long fights, packets lost (mostly on server side), damage not registering properly, and people mad about it.
"Raise it to 120 - 28Hz, what are you waiting for?!?" Doubling the data rate simply requires twice the bandwidth and probably twice as many servers. This doesn't just double the bill, it also makes the game more unstable, with more packets dropped or lost. All this while the majority of players don't actually have devices that support more than 60Hz (some may even be at 30Hz).
Not entirely true: PS and XBOX run at 60hz, which is the baseline for the whole civilized world. Nowadays we have more and more PCs running at 120hz or more, actually any pro-player is running insane hardware at 240hz. You have 2 options here: Having 2 times the hardware or having 2 times optimized netcode. I believe you can compromise in the middle, increase your hardware by 50%, and improve your netcode another 50%. In fact, I strongly believe that may be a ton of things that can be done to improve netcode performance before putting hands on the hardware. Besides, it is a complete lie to say this would make the game more unstable, you know it: Not even bandwidth is a problem nowadays, when the ugliest connection is above 50Mb even in the farthest places of earth. Apex roughly consumes 6-8Mb, I've been monitoring this in my own connection.
"Ok then, reduce the data, make an update fit into a single packet.or at least twice as few as it is now" I am pretty sure that devs continuously work on optimizing this, but we are asking for a 2x-5x reduction, while the game keeps adding stuff. The data that's being sent is also pretty basic: coordinates, action id's, animation states,flags. Nothing that can be cut without getting serious issues like players teleporting or stuff vanishing. Using a very powerful compression can probably make that data smaller, but all that gain gets lost an then some, as both the server and the clients need time & power to compress and then decompress.
Not true: The game is not adding new functionality that needs to travel differently around the network, neither is adding weird objects nor anything (although it did added those useless prowlers in the Bloodhound event which managed to live until today). At this point, again, i believe there must be lot of optimizing that can be done, i can make a separate post about it.
About the data that's currently being sent: I'm pretty sure it must be very basic by now, but one of the KEY measures has not to do with what you actually send, but WHEN you send it and WHY you do it. For example: I don't need my teammate footsteps when aiming down sights on a triple take, which means i don't need their data (but for positioning on the mini map), neither the obituary, nor anything that's away and I'm not looking at, etc. They have to get rid of everything that's not required in the exact moment each client requires it. By doing this, they may reduce network traffic a lot.
About teleporting players: We do have this issue nowadays. Every game I see at least 1 or 2 guys teleporting around. Sometimes they are impossible to hit. So, something is not right today, and I'm not sure it is because of reducing packets... it may be the opposite...
"Damn, you're so negative! They should increase the packet size then, bam!" I believe the size limitations are set to meet the network standards. There are many tons of old and low quality hardware across the millions of miles of wire, they are to blame. Upgrading all these is probably a matter of trillions of $.
I think you are right here: Increasing packet size could be an actual disaster. Can you imagine if the current servers lose a packet that's twice the current size? They cannot handle all the current ones so I wouldn't even think about making them bigger. Besides, is not in the power of EA/Respawn to modify the world's internet infrastructure.
If you got this far, i want to thank you, because i know this was long and takes time.
And please, do not take my comments personal, in the end this is just a game business, and EA/Respawn are on the "end of lifecycle" for this product. That's why I don't think they even care about us discussing this, or even fixing the issue.
Best.