Server tick
Introduction
Server tick is a term used to describe the 1 Hertz client to server functionality in EVE Online. The goal of the server is for a server tick to run exactly once per second. Thus creating little sub-second gaps between the player's order to the client and the server activation.
It also creates a rounded up mechanics to full second activation. For example, a 1.2s locking time will be rounded up to a 2 server ticks, thus 2 seconds.
Almost every action is under the restriction of this mechanic.
Mechanics
The server tick has some unique limitations to it: It can’t do anything that would require directly talking to most of the database servers, since those can have long lags. (A typical server node handles hundreds of systems, so even though there's a tick every second for each grid, it might only have 1/100th of a second or less to do all the work for the tick for a single grid. That's not enough time to talk to a database!)
So most heavy lifting in the code is done by queuing some work to be done on other threads; when that task is finished, the results are reported at the next tick.
Although, the client will usually process the commands immediately, showing the player the action is currently taking place, but won't be actually effective towards the server itself until the next tick.
Some tasks are completely disassociated from the server tick and can happen at any time, they are subject only to the latency between the client and the server.
Examples
- If you’re trying to jump through gate, it will mark you as “jumping through the gate” the instant that it receives the message, and will send back an acknowledgement right away that you’re jumping. However, everyone else on the grid won’t know that you’ve started jumping until the next server tick.
- If you activate a turret module, it’ll immediately calculate the damage, and immediately apply it to the target. It’ll send back a packet right away, telling you, “I activated this module for you.” However, you won’t receive information about how much damage was dealt until the next tick -- and neither will the target. Yes, this means you can be dead for up to a second (or up to 10 seconds, in the case of severe TiDi) and not know it yet! This is also how Eve handles weapons that can fire more than once per tick; it simulates them properly, and then both shots appear on the next tick.
- If you activate a warp scrambler, it’ll immediately tackle the target. But the “X has warp scrambled Y” global notification won’t appear until the next tick.
- This example shows the two outcomes of a confrontation between a Travelceptor and an Instalocker, one of the most subsequent examples on daily basis server tick limitations.
See also
- Gatecamps For the mechanics around Gatecamping, a highly influenced server tick feature.
- Time Dilation For the mechanics that revolve around Time Dilation on highly populated systems and combats.
- TMC Article on the server tick.