Universal Chess Interface

From Wikipedia, the free encyclopedia
Jump to: navigation, search

The Universal Chess Interface (UCI) is an open communication protocol that enables a chess program's engine to communicate with its user interface.[citation needed]

History[edit]

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. Both protocols have been free to use without license fees.[citation needed]

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.[citation needed]

As of 2007, well over 100 engines are known to directly support UCI.[citation needed]

Design[edit]

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.[citation needed]

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.[citation needed]

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.[citation needed]

The move format is in long algebraic notation.[citation needed]

A "nullmove" from the Engine to the GUI should be sent as 0000.[citation needed]

Examples:[citation needed]

  • e2e4
  • e7e5
  • e1g1 (white short castling)
  • e7e8q (for promotion)

See also[edit]

References[edit]

Bibliography[edit]

External links[edit]