Module crystalorb::client::stage[][src]

Expand description

The Client undergoes several stages of initialization before it is ready to accept commands and be displayed to the player’s screen. The enums in this module provides access to different functionality depending on what stage the Client is at:

Stages

Stage 1 - Syncing Clock Stage

In this first stage, the Client tries to figure out the clock differences between the local machine and the server machine. The Client collects a handful of “clock offset” samples until it reaches the amount needed to make a good estimate. This timing difference is necessary so that the Client can talk to the Server about the timing of player commands and snapshots.

You can observe the clock syncing progress by checking the number of samples collected so far and comparing that number with the number of samples that are needed.

Stage 2 - Syncing Initial State Stage

The second stage is where the Client waits for the first Server snapshot to arrive, fastforwarded, and generally be fully processed through the client pipeline so that it can be shown on the screen, to flush out all the uninitialized simulation state.

Stage 3 - Ready Stage

The third and final stage is where the Client is now ready for its display state to be shown onto the screen, and where the Client is ready to accept commands from the user.

Structs

The client interface once the client is in the ready stage.

The client interface while the client is in the initial clock syncing stage.

The client interface while the client is in the initial state syncing stage.

Enums

This is the immutable view of the client’s stage that is returned by Client::stage.

This is the mutable view of the client’s stage that is returned by Client::stage_mut.