|This article needs additional citations for verification. (May 2016) (Learn how and when to remove this template message)|
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.
Basically, a player is running, the enemy decides to shoot, and when he shoots then the runner's actual position will show itself. Sometimes this looks like teleportation. other times they just speed up and look like variances of super human levels of speed depending on how strong this is set to. Usually a player can only combat this through teamwork and fighting from a distance to avoid quick maneuvers to get behind you.
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