Apex Legends is a fantastic take on the battle royale genre, but a deep dive into Apex's netcode by YouTuber Battle(non)sense has revealed some significant issues. Battle(non)sense digs into problems with the way hit registration is handled, and delays in everything from damage to movement, even with low ping and no packet loss. The most obvious problem is with how the game handles hit authentication. If you've ever been shot while behind cover, that might be your culprit.
You can watch the full video above. Below, we'll cover some of the most important points for Apex players. For a primer, you might want to read our guide to how netcode works, and what makes "good" netcode, written by Battle(non)sense himself.
In his analysis, Battle(non)sense shows that Apex Legends runs at a server tick rate of 20Hz, fairly common (but not ideal) in online games. For comparison, Battlefield 5 servers run at a tick rate of 60Hz and Halo: The Master Chief Collection just upgraded its servers to a 60Hz tick rate, while Fortnite, a comparable battle royale, runs at 30Hz. The higher the tick rate, the faster the server processes what's going on in the game. It actually looks like Apex's server data send rate fluctuates wildly, but on closer examination Battle(non)sense figured out that's not exactly the case. The culprit for this is the way the data that comes out of each simulation step on the server is handled, with each step producing so much data per tick that it has to be split up into multiple packets.
This large amount of data is most visible in the amount of downstream bandwidth used (as high as 1.1Mbit/s), an average six times over that of rival Fortnite. Splitting that much data into multiple packets creates issues with wireless or similar connections, where packet loss becomes more likely and ping will quickly suffer. As Battle(non)sense says, “The question now is why the server has to send that much data with every update. Maybe the developers have to further optimize what data clients need to receive.”
Battle(non)sense points out as well that with no in-game network diagnostics or other tools, it can even be difficult to tell you're having connection problems, let alone diagnose what kind. Knowing your ping would be a good start.
More problematic for quality shooting is how hit authentication is handled. Apex Legends goes with an approach that purely favors the shooter (regardless of their ping), and that can create frustrating situations. If you have ever experienced being shot while in cover, or seeming to take far too much damage in a very short time, you’ve probably experienced the effects of this design decision.
Battle(non)sense gives a concrete example with a client that he ran at a high ping of 325 milliseconds. "In Battlefield 1 and Battlefield 5, the shooter would now have to lead his shots to compensate for his high ping, in order to mitigate how his bad connection to the server affects the experience of the player he is shooting at. But not in Apex Legends. The server will always confirm a hit, no matter how high the ping of the shooter is. The game does not care about how the bad connection of the shooter results in an infuriating experience for the player with the low ping who is on the receiving end of that shot."
Respawn hasn’t introduced any fixes so far, but it's been methodical about making updates to Apex Legends since launch. And there is certainly precedent for other developers improving their online games' network performance over time. And Respawn is currently hiring for jobs including a senior network engineer for Apex Legends. Not a bad sign.