Data Structures

The player is represented by an edict_t just like any other object in the world. In addition to this, the player has a pointer to a gclient_s structure. In figure 3, you can see the data linked to the gclient_s structure. The gclient_s structure contains data about aiming direction, ping time, respawn info, current weapon, etc.

The most peculiar structures are the player_state_t and pmove_state_t. These are used for client movement prediction. The client frequently updates the Quake server with movement information, like buttons pressed, and movement direction.