Original Post — Direct link

So i read this article on why they refused to increase the tickrate above 20 from server to client.

https://www.ea.com/en-gb/games/apex-legends/news/servers-netcode-developer-deep-dive

Currently, interpolation is based off of data points 50ms apart (1 second—or 1,000ms—divided by 20 tickrate) that may not seem like much and in a lot scenarios is not a big deal (shooting a target that is ADS and strafing) or shooting a target moving in a straight line. However targets such as Bangalore that has the passive speed boost when fired at if they rapidly change directions while sprinting getting a hit on them based off of their model is nearly impossible and can cause some rubber banding issues even for people who would have a stable connection. Another case can be found with pathfinders who can grapple jump effectively and gain a lot of speed and doing a quick small air strafe. Finally falling players can also cause some desync issues especially pathfinders who use the grapple while falling.

This issue becomes significantly worse with higher client ping, which is common due to matchmaking.

Bearing in mind that most weapons aren't hit scan and servers need to calculate projectiles, this can also lead to a pretty significant delay and further add to the above mentioned issues with bullets hitting a model and not registering the delay may be just enough for the intended target to start moving away from where you were firing at (this issue would affect most noticeably sniper rifles). This also works in reverse where new projectiles won't be rendered until the next server update + ping time making it much harder to dodge shots.

Being as hit reg is client side, you only deal with the consequences of this up to 0.5 or a full second (depending on all the different elements in the chain that add latency) after they've already happened. This is why splatter with no damage, getting shot through cover or behind doors is a huge issue when players can react faster than the time it's displayed on their screen and although this is done via interpolation, since interpolation is directly tied to server tick rate the minimum interpolation is higher the lower the tick rate creating this same issue with less accurate information.

Example:

20tick server , 25ms ping

50ms of interpolation + 25ms of packet travel time = 75ms of delay from what the server sees

40tick server, 25ms ping

25ms of interpolation + 25ms of packet travel time = 50ms of delay from what the server sees

Now who did you think would have better hit registration? Obviously the 40 tick server player because they're seeing more relevant information and they're shooting at a target with about 25ms less delay.

This also means that a 20tick server player with a typical 25ms is treated roughly the same as a 40 tick server player with 50ms ping in terms of hit registration. Technically speaking though, hit registration would still be better on a 40 tick server due to more accurate interpolation on a client to begin with.

To some it may seem a bit nitpicky when you're talking moving from 20 tick to 40 tick (25ms difference between server updates) but when you're trying to hit a target the size of a head hitbox, or just trying to hit a fast moving target, or hitting 2-3 more shots in general in a 15 round spray it actually makes a substantial difference.

Obviously this is just one part of the problem. Given the interpolation, lag compensation, matchmaking, accommodating inferior processing (crossplay), users ISP and both our and their network ect.. Although we get diminishing returns the higher tickrate we go, i don't think it's unreasonable for them to increase from current 20, if costs is the main reason for not doing so.

Edit: They pay tiny amounts for the data like $0.001 or 0.002 per gigabyte. Feel free to do the maths.

https://aws.amazon.com/free

https://azure.microsoft.com/en-gb/pricing/calculator/

There's no reason why they can't improve the server tickrate imo.

External link →
over 2 years ago - /u/ricklesauceur - Direct link

Originally posted by COAGULOPATH

You're consistently assuming that the player's input occurs on the worst part of the tick, delaying every movement by 50ms. This isn't the case: the delay's just as likely to be 0 as it is 50.

Imagine mail is picked up on Wednesday. You might send a letter on Thursday and wait 6 days, or you might send a letter Wednesday morning and wait no time at all. The week-long delay is the worst case scenario.

If we assume that on average 20hz tickrate delays input by ~25ms...I don't think there's any movement that's meaningfully affected by an amount of time that small. Visual reaction time for a pro player is about 150-200ms.

Samy Duc didn't say why the increased bandwidth is band, but I assume it has something to do with congestion - maybe pumping 2x the traffic through to a server might cause lag or slowdowns or something.

Your connection quality is not a constant. The higher bandwidth usage you have, the more chance you have to hit on one frame, a packet loss, a little congestion that would not be really noticeable except this time you were in a close fight and you died because of this micro stutter / delay induced. The less bandwidth we use, the more consistency you have in your experience.