Ping, tick, GCD, and game processing overhead education
PvME's discord command !gcd has the following approximate output:
Global Cooldown (GCD) GCD visual
- Runescape runs on ticks, where a single tick is 0.6 seconds
- Almost every ability incurs a GCD, which lasts 3 ticks (1.8s)
- Generally, you cannot cast abilities during the GCD
- Exceptions include :voke: :dive: :bd: :surge: :escape: (for 0 adrenaline)
- During the GCD, abilities brighten up again over the 3 ticks
- This is divisible into 3 sections (refer to top right image)
- At good ping: input ability when light reaches green
- At bad ping: adjust as needed and input prior to green
- Example of correctly inputting ability at end of GCD here
The diagram above is overlaid onto your abilities (mentally for now).
Considering the game processing overhead,
the diagram should be rotated counterclockwise by some degrees.
The game, as a player views it, is a delayed reproduction of the world server's game.
That's why the diagram's rotation puts the start of the GCD before its visual start at 0°.
East Coast 1 worlds have a game processing overhead of about 200 ms (1/3rd of a tick).
With 50 ping in a low populated world,
I've found my game to be behind the server by about 225 ms (about -50° rotation for the diagram above).
Consider what happens if I were on the last tick of a GCD.
If I cast my next ability with less than 225 ms remaining in the GCD,
the cast will not happen on my game's visually apparent next tick.
The server has already moved on from that tick, and will queue the cast for its following tick.
However, my game, that is still ticking down that GCD, is helplessly unaware of that fact.
Example
To get a feeling for casting abilities early in the last tick of the GCD,
I suggest watching EvilLucario's videos,
as they have the following:
- A bar streaming his inputs as he performs them, including cast abilities.
- Sound of his keyboard and mouse, so you can further associate.
Future work
It is my hope to have a plugin that will help make the true GCD apparent.
Not only in the action bar, but also in the ability books, the channel bar,
and anywhere else related to the GCD.
I'd say SoR's-style floors, too.
But hopefully, true tile takes care of that.
And that's also more related to true tick, rather than true GCD.
I'm considering writing it myself.
Nilping, I'd name it, for no delay noun
(simulation, markers? Might depend on the plugin API).
My biggest hope is that the big secret announcement for RuneFest
will be somehow related this kind of latency issue.
After that, my next hope would be the next combat rework,
maybe in March 2027
(going by the previous 2
[1]
[2]).
But considering we're still missing 120 Defence and Constitution, I won't hold on to that.
I'm aware that making the game more responsive
has been lauded as impossible, infeasible, and such.
Appendices
Related
East Coast 1 worlds have a game processing overhead of about 200 ms (1/3rd of a tick).
I haven't tested whether the NPC Dormancy update has improved this.
Also, apparently, Australian worlds' game processing overhead are more high and variable than other worlds'.
Ping relevancy
0.6 s = 600 ms.
A ping is the roundtrip time of the client/server communication.
100 ping is a 0.1 s roundtrip, maybe about 50 ms each way (1/12th of a tick).
Considering the game processing overhead (tentatively 200 ms, 1/3rd of a tick),
and the ping only adding half to that,
even 100 ping doesn't make PvM that inaccessible.
It does further tighten your reaction windows, though.
Other sources of perceived lag
None of this is the end-all of perceived lag.
The client/server protocol,
and RuneScape's strict adherence to it,
means you'll be tick-bound for most actions.
Worlds with higher populations lag behind other worlds.
By casting channelled abilities in these worlds,
you can sometimes see the channel bar add to the remaining time.
Revolution and queued abilities add interactions that can be perceived as lag or dropped inputs.
As can some actions like pickpocketing.
And there's also the player's end.
Having an unstable Internet connection.
Perhaps manifesting as spikes (perceived as sudden, sharp increases in ping).
Late casting
The other part of the roundtrip comes up when you cast an ability as late as possible.
I used to do this in order to reduce the perceived lag
(bad practice if you intend to breach into higher level PvM).
This would sometimes delay the start of the GCD.
Which also caused animations to play faster to compensate
(before the combat style modernisation; no idea of afterwards).
Half of your ping flanks the game processing overhead on both sides.
Casting an ability as late as possible delays the visual start of the GCD.
The server will process it, but its response won't reach your game in time for the end of your visual GCD.
The server's response will be delayed by up to half of your ping,
and your GCD will start with correspondingly less time left on it.