About Asynchronous Chess

Asynchronous Chess is very similar to standard chess, with one key difference:  players do not have to wait for one another in order to make a move.  From this simple change comes a rich environment in which to explore methods for time-critical reasoning.  AChess is not intended to be a human playable game.  Instead, the focus of this project is to develop intelligent agents which reason not only about the current state of the chess board, but about the likelihood that their opponent will move in a specific amount of time, the cost and value of reasoning, the speed and movement of pieces, etc.

The Rules

  1. The players of AChess each have the standard chess pieces.
  2. The pieces are arrange according to the standard starting layout in normal chess.
  3. Players may move any piece at anytime with the following restrictions:
    • Each movement must adhere to the standard chess movements for the piece.
    • Pieces move at a specific rate which is defined as millisecond per space.
    • Once a piece is in motion, its path cannot be changed.
    • Pieces stop moving when they reach their destination or intersect with another piece.
  4. If a players piece attempts to move into a space already occupied by one of its piece, that piece stops moving.
  5. If a player moves a piece into a space occupied by its opponent, the opponent's piece is killed.
  6. If a player tries to move two or more pieces into an unoccupied space, one of the pieces is randomly chosen to move into the space, and all others are stopped.
  7. If a player tries to move a piece into a space that its opponent is also moving into then one of the pieces is chosen at random to take the space and the other is killed.
  8. Play continues until one of the kings is killed.

Server Deconfliction Method

To enforce the rules of the game, the AChess server does the following:

  1. First, the server calculates all of the pieces moving into each space at the specified time.
  2. The server then deconflicts all conflicts where a single player is moving multiple pieces into one space.  This leaves at most one pending move into a space per player.
  3. The server then deconflicts all conflicts where a player is moving a piece into a space occupied by one of its own pieces by stopping the move.  This may remove one of the pending moves.  The effects of this action are chained if necessary.
  4. Next the server randomly chooses one of the remaining moves to move into the space.  All other others are killed.
  5. The server then checks to ensure that the move is legal (prevents pawns from capturing forward).
  6. The piece is ten moved into the space, killing any immobile piece within it.
  7. If the opponents king was killed, the game is declared over.

Last revised: 01/19/05