HOME

TheInfoList



OR:

The Universal Chess Interface (UCI) is an open communication protocol that enables
chess engine In computer chess, a chess engine is a computer program that analyzes chess or chess variant positions, and generates a move or list of moves that it regards as strongest. A chess engine is usually a back end with a command-line interface with ...
s to communicate with
user interface In the industrial design field of human–computer interaction, a user interface (UI) is the space where interactions between humans and machines occur. The goal of this interaction is to allow effective operation and control of the machine f ...
s.


History

In November 2000, the UCI protocol was released. Designed by Rudolf Huber and Stefan Meyer-Kahlen, the author of Shredder, UCI rivals the older "Chess Engine Communication Protocol" introduced with XBoard/WinBoard. In 2002, Chessbase, the chess software company which markets Fritz, began to support UCI, which had previously been supported by only a few interfaces and engines. , well over 300 engines are known to directly support UCI.


Design

By design, UCI assigns some tasks to the user interface (i.e., presentation layer) which have traditionally been handled by the engine (at the business layer) itself. Most notably, the opening book is usually expected to be handled by the UI, by simply selecting moves to play until it is out of book, and only then starting up the engine for calculation in the resulting position. UCI does not specify any on-disk format for the opening book. Different UIs usually have their own proprietary formats. While the UI can also take responsibility for handling endgame tablebases, this is arguably better handled in the engine itself, as having tablebase information can be useful for considering possible future positions. Stefan-Meyer Kahlen's UCI protocol in Shredder uses a variation of long algebraic notation for moves. A "nullmove" from the Engine to the GUI should be sent as 0000. ;Examples: *e2e4 *e7e5 *e1g1 (white short castling) *e7e8q (for promotion)


Features

The uci_limitstrength parameter tells engines with this feature to play at a lower level. The uci_elo parameter specifies the Elo rating at which the engine will aim to play. Engines that have implemented uci_elo include Delfi, Fritz, Hiarcs, Houdini, Junior, Rybka, Shredder, Sjeng and Stockfish.


Variants

The UCI has been modified to play some
chess variant A chess variant is a game related to, derived from, or inspired by chess. Such variants can differ from chess in many different ways. "International" or "Western" chess itself is one of a family of games which have related origins and could be c ...
s. Some of these are: * Universal Shogi Interface (USI), a dialect for shogi; * Universal Chinese Chess Interface (UCCI), a dialect for
xiangqi ''Xiangqi'' (; ), also called Chinese chess or elephant chess, is a strategy board game for two players. It is the most popular board game in China. ''Xiangqi'' is in the same family of games as ''shogi'', ''janggi'', Western chess, '' chat ...
. Each of these protocols may also define variants of PGN and FEN. The XBoard CECP is said to require far fewer changes to support variants.


See also

* Chess Engine Communication Protocol (XBoard protocol) * Shredder * XBoard


References


External links


List of UCI Engines (continuously updated)
Computer chess {{board-videogame-stub