Effects of ping/latency on animation lock and ability to perform rotations normally. (2024)

The FFXIV subreddit r/ffxiv just posted their interview with Producer/Director Naoki Yoshida (Link), where they asked him this question:

/r/ffxiv: Currently players with higher ping experience longer animation locks on their abilities, causing problems with double weaving or weaving in fast windows like Hypercharge. Are there any plans to reduce the influence ping has on the length of the animation lock?

This was Yoshida's response

Yoshida: I'm afraid there is not enough information in terms of how bad the latency is. So if possible could that person provide us with more information on the official forums like where they live, who their internet service provider is, what world they are connecting to, and any sort of ping information they can gather? Or else I'm afraid it is difficult to provide an accurate answer to that. Would you happen to have any information on-hand right now?

r/ffxiv's followup:

/r/ffxiv response: For example, I live in east coast Canada and if I’m playing Machinist and I use Hypercharge, and I try to weave an oGCD, it usually clips. It's about 120 ping.

And Yoshida's reply:

Yoshida: At 120ms it shouldn't be causing an issue so we suspect something like packet loss. And the developers do also simulate some of these environments by intentionally causing latency but they haven't really experienced anything at 120ms. We would love to get further information so we can analyze it better.

But I understand the frustration that you feel though like playing as a Black Mage and using a potion and then the animation lock comes in and it's like so irritating. It is a very tough element to address for sure; some people expect different things out of the franchise like skipping all the animations and that begs the question like what even is the point of animations?

But that being said with the battle system and any other older system that we have onboard I do believe that we should be improving on those that tend to become an issue. I do think there are possibilities moving forward and there are elements we need to look at and address as well.

Yoshida's response seems to indicate that he doesn't really quite understand the issue on a crucial level, so I'm going to explain how animation lock works in Final Fantasy XIV and give Yoshida the information he requested.

In Final Fantasy XIV, when you press an instant-cast action, the game client (on your local hardware), applies 500 milliseconds (ms) i.e. half a second of animation lock to your character, which prevents you from using any other actions. The client also sends information to the game server, to let it know the client has used that action.

This information travels to the server, where the server processes it, and sends information back to the client to let it know things like the damage of the attack. This information from the server also contains animation lock data for the skill that was used. The game client takes the animation lock value given by the server and applies it AGAIN to your character, overwriting any time remaining on the initial 500ms. This new animation lock value is typically around 600ms, but some actions have more.

What does this mean for gameplay? Characters cannot use any actions until their current animation lock has expired. This has consequences on the act of "weaving" i.e. using off-global cooldown abilities during the wait time between GCD spins. If your character is still in animation lock when your GCD spin is ready, you cannot use your next GCD until the animation lock is over. This is called "clipping" your GCD, and it causes all sorts of problems regarding your character's DPS output and how their cooldowns align. Plus, it just feels bad.

So, how does latency come into it? Well, receiving information from the server is not instantaneous. It takes time for the information sent by the game client to reach the server, it takes time for the server to process that information, and it takes time for the server's reply to make its way back to your computer. This time is called latency, or ping. The further away you are from the servers, and the longer and more complicated the electrical "route" taken by those information packets, the more of a delay there is between you pressing a button in-game and then seeing the result.

So, when you press an action in game, you are automatically put into animation lock by the game itself. Then, you must wait for the server's response. The server's response contains additional animation lock data, which the game client then applies again, at the time of the game receiving that information. Any time you spent waiting for the server's response, is simply additional animation lock time.

Imagine a player who lives right next door to the servers. He has 1ms of latency. He uses an action, and the game locks him. The server responds in 1 millisecond, because it's right next door, and the game uses that server's response to apply the new animation lock data, which is 600ms. So 600ms of animation lock, plus the 1 millisecond he had to wait, means 601 milliseconds of animation lock. This player therefore ends animation lock after 601 milliseconds, and can use his next action at that point.

Now let's imagine a player who lives a few thousand miles away from the server. She has 160ms of latency. She uses the same action as the previous player, and the game animation locks her while awaiting the server's reply. It takes 160 milliseconds for her to receive a response from the server. The game then applies the animation lock data in the server's reply, which is 600ms. So this player spent 160ms in animation lock while waiting for the server to respond, and then an additional 600ms from the server's response. Total animation lock: 760ms. Her animation lock ends after 760ms, and she can use her next action at that point. 159 milliseconds later than the next-door player was able to use his.

Now let's see how this causes issues in gameplay.

The Machinist action Heat Blast has a fixed recast time of 1.5 seconds. During this time, it is highly recommended that Machinists use the off-global cooldown ability Gauss Round or Ricochet, as using Heat Blast will reduce the remaining cooldown of these actions. If you do not use Gause Round or Ricochet after Heat Blast, you might already have full charges of these skills, thereby wasting the cooldown reduction effect granted by Heat Blast, leading to a severe loss in damage dealt.

However, if you use Gauss Round or Ricochet too late, and this causes you to clip your next GCD, the added delay may cause the Hypercharge window (that allows you to use Heat Blast) to expire, meaning you are only able to use 4 Heat Blasts instead of the ideal 5.

Let's use the previous example players. Player A, with 1ms of latency, uses Heat Blast at time = 0. 601 milliseconds later, the animation lock for Heat Blast is expired, and he can use his next action: Gauss Round. After another 601 milliseconds, the animation lock for Gauss Round expires. 1202 milliseconds have passed since the player first used Heat Blast. Since Heat Blast's recast time is 1.5 seconds (1500 milliseconds), this player can comfortably use his next Heat Blast without any worry of clipping.

Player B, with 160ms of latency, also uses Heat Blast at time = 0. However, because of her latency, her animation lock doesn't expire until 760 milliseconds later. After 760 milliseconds have passed, the player is out of the animation lock for Heat Blast and is able to use her next action, Gauss Round. Using Gauss Round causes her to suffer another 760 milliseconds of animation lock. By the time this animation lock has expired, 1520 milliseconds have passed since the player first used Heat Blast. MORE than the 1500 millisecond recast time of Heat Blast, meaning the player has clipped Heat Blast by 20 milliseconds.

This might not seem like a big deal, but it quickly adds up, and there is also another factor to consider.

The server does not always send its reply immediately after receiving information from the client. Due to processing and network demands, there is a variable amount of additional random delay on every interaction between the client and server. This delay can be a low as 0ms, but typically averages around 40ms. This is an additional 40ms of delay, and therefore animation lock, added on to every action request you make to the server. Thus to reliably weave abilities without clipping, your latency must be low enough not only to compensate for the distance to the server, but also this random additional delay.

From this, we can see that Player B, with 160ms of latency, would actually average around a 200ms response time from the server, and therefore 800ms of animation lock on most actions. This would cause them to clip Heat Blast by 0.1 seconds any time they attempted to weave an ability during its recast time. If they did this 4 times in a row, their rotation would be delayed by 0.4 seconds, which is enough to completely prevent them from fitting a 5th Heat Blast in the Hypercharge buff window.

From this information, we can calculate approximate levels of ping needed to weave or double weave reliably on various jobs at various levels of GCD recast times. To weave one ability during actions with a 1.5 second recast time, such as Heat Blast, Ninjutsus, Enchanted Riposte/Zwerchau, and Technical/Standard Finish, one's ping would need to be at most 110ms. Ideally 100ms or less just to be on the safe side.

For jobs with fast GCD speeds such as Ninja and Samurai, being able to double-weave (two off-GCD actions in one GCD spin without clipping) on these jobs requires latency values as low as 50 or 60ms. Even less if you have lots of Skill Speed. For Monk, double weaving is essentially impossible unless your latency is in the single-digits.

As you can see, this makes playing several jobs the way they were intended to be played extremely difficult for players with higher latencies. There is almost no way they can adjust their playstyle to get the same damage output as someone who can weave reliably without worrying about latency causing them to clip. They're at a strong disadvantage, and frankly, it makes playing certain jobs very unenjoyable (Machinist, Ninja and Gunbreaker come to mind).

This concludes the explanation. My question to Yoshida is this: Why is it exactly that the game client must wait to receive animation lock data from the server? Why is the animation lock information for each action not simply programmed directly into the client? The client itself is what has to apply the server's value anyway, and this value can be tampered with by hackers, so it's not for the sake of anti-cheat.

Let's assume there is a good reason it works this way. Why can the game client not be programmed to subtract the server's response time from the animation lock value they receive from the server? This would give everyone the experience of playing jobs at 0ms ping regardless of where they live. If the answer is because this kind of system could be tampered with, that is already possible with the way the game currently works, as FFXIV has no anti-cheat functionality to determine if game data has been modified.

I do not understand why the game is set up this way to make it inherently less playable for users further from the servers. Naturally, there will always be some disadvantage caused by latency, such as not seeing boss AoE telegraphs until a bit later due to the latency delay time. However this system of animation lock has been intentionally programmed into the game in a way that makes it affected by latency, when it doesn't seem like there is any design reason for it.

This is not simply a matter of getting better internet or moving house or using a VPN. The game is DESIGNED this way, this is a function of the game's programming. Theoretically it should be possible to change the game itself to make this not an issue. So why don't they?

This is what the original question asked by r/ffxiv was getting at. I would one day really like to get an answer.

Effects of ping/latency on animation lock and ability to perform rotations normally. (2024)
Top Articles
Latest Posts
Article information

Author: Madonna Wisozk

Last Updated:

Views: 6326

Rating: 4.8 / 5 (68 voted)

Reviews: 91% of readers found this page helpful

Author information

Name: Madonna Wisozk

Birthday: 2001-02-23

Address: 656 Gerhold Summit, Sidneyberg, FL 78179-2512

Phone: +6742282696652

Job: Customer Banking Liaison

Hobby: Flower arranging, Yo-yoing, Tai chi, Rowing, Macrame, Urban exploration, Knife making

Introduction: My name is Madonna Wisozk, I am a attractive, healthy, thoughtful, faithful, open, vivacious, zany person who loves writing and wants to share my knowledge and understanding with you.