The lockstep protocol is a partial solution to the look-ahead cheating problem in peer-to-peer architecture multiplayer games, in which a cheating client delays his own actions to await the messages of other players. A client can do so by acting as if he is suffering from high latency; the outgoing packet is forged by attaching a time stamp that is prior to the actual moment the packet is sent.
To avoid this method of cheating, the lockstep protocol requires each player to first announce a "commitment" (e.g. hash value of the action); this commitment is a representation of an action that:
- Cannot be used to infer the action; and
- Easily compares whether an action corresponds with a commitment.
Once all players have received the commitments, they reveal their actions, which are compared with the corresponding commitments to ensure that the commitment is indeed the sent action.
As all players must wait for all commitments to arrive before sending their actions, the game progresses as slowly as the player with the highest latency. Although this may not be noticeable in a turn-based game, real-time online games, such as first person shooters, require much faster reactions.
This can be acquired by placing a limit on the time in which a player can announce his action. If no action is sent within this period, other players do not announce their actions to that player and ignore any action that arrives too late.
Asynchronous lockstep protocol
To overcome the obvious drawback of the simple lockstep protocol, an asynchronous variant of the protocol exists wherein players advance in time free of any negotiations with other players until interaction between players exists, known as a "lockstep mode." This mode may be defined by a certain area around a player, such as a sphere, in which the game world may be affected by the player.
Such an interaction can only occur when, for example, the areas of influence surrounding two players intersect.
- Algorithms and Networking for Computer Games, Jouni Smed and Harri Hakonen
- "Cheat-Proof Playout for Centralized and Distributed Online Games", Baughman and Levine, 2001