Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Universal Chess Interface
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{short description|Communication protocol for chess software}} The '''Universal Chess Interface''' ('''UCI''') is an open [[communication protocol]] that enables [[chess engine]]s to communicate with [[user interface]]s.<ref name="bwor_Busi">{{Cite web| title = Chess engines| work = Business World Online| date = 2017-04-06| access-date = 2018-06-14| url = http://www.bworldonline.com/content.php?id=143346}}</ref><ref name="slas_Lich">{{Cite web| title = Lichess embraces blind players with new chess site features| author = Torres, JC| work = SlashGear| date = 2014-06-23| access-date = 2018-06-14| url = https://www.slashgear.com/lichess-embraces-blind-players-with-new-chess-site-features-23334731/}}</ref> ==History== In November 2000, the UCI protocol was released. Designed by Rudolf Huber and [[Stefan Meyer-Kahlen]], the author of [[Shredder (chess)|Shredder]], UCI rivals the older "Chess Engine Communication Protocol" introduced with [[XBoard|XBoard/WinBoard]]. In 2002, [[Chessbase]], the chess software company which markets [[Fritz (chess)|Fritz]], began to support UCI, which had previously been supported by only a few interfaces and engines. {{As of|2021}}, 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.{{citation needed|date=July 2016}} Most notably, the [[opening book]] is usually expected to be handled by the [[User interface|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|date=July 2016}} While the UI can also take responsibility for handling [[endgame tablebase]]s, this is arguably better handled in the engine itself, as having tablebase information can be useful for considering possible future positions.<ref>{{cite book|title=Chess Life|url=https://books.google.com/books?id=w2JLAAAAYAAJ|year=2003|publisher=United States Chess Federation}}</ref> Stefan-Meyer Kahlen's UCI protocol in Shredder uses a variation of [[Algebraic notation (chess)#Long algebraic notation|long algebraic notation]] for moves. A "nullmove" from an engine to a GUI should be sent as 0000.<ref name="wbec_UCIp">{{Cite web| title = UCI protocol| work = www.wbec-ridderkerk.nl| access-date = 2018-06-14| url = http://www.wbec-ridderkerk.nl/html/UCIProtocol.html}}</ref> ;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 system|Elo rating]] at which the engine will aim to play. Engines that have implemented uci_elo include [[Delfi (chess)|Delfi]], [[Fritz (chess)|Fritz]], [[Hiarcs]], [[Houdini (chess)|Houdini]], [[Junior (chess program)|Junior]], [[Rybka]], [[Shredder (software)|Shredder]], [[Sjeng (software)|Sjeng]] and [[Stockfish (chess)|Stockfish]]. ==Variants== The UCI has been modified to play some other games, and [[chess variant]]s. Some of these are:<ref name=evert>{{cite web |last1=Evert |title=UCI protocol for chess variants |url=http://www.talkchess.com/forum3/viewtopic.php?t=54167 |website=TalkChess.com}}</ref> * Universal Shogi Interface (USI), a dialect for [[shogi]];<ref>{{cite web |title=The Universal Shogi Interface (USI) |url=http://hgm.nubati.net/usi.html |website=hgm.nubati.net}}</ref> * Universal Chinese Chess Interface (UCCI), a dialect for [[xiangqi]].<ref>{{cite web |title=中国象棋电脑应用规范(五):中国象棋通用引擎协议 |url=https://www.xqbase.com/protocol/cchess_ucci.htm |website=www.xqbase.com}}</ref> Each of these protocols may also define variants of [[Portable Game Notation|Portable Game Notation (PGN)]] and [[Forsyth–Edwards_Notation|Forsyth–Edwards Notation (FEN)]]. The XBoard CECP is said to require far fewer changes to support variants.<ref name=evert/> == See also == *[[Chess Engine Communication Protocol]] (XBoard protocol) *[[Shredder (chess)|Shredder]] *[[XBoard]] ==References== {{reflist}} == External links == *[https://www.chessprogramming.org/Category:UCI List of UCI Engines (continuously updated)] *[https://www.shredderchess.com/chess-info/features/uci-universal-chess-interface.html UCI technical specification download page] [[Category:Computer chess]] {{chess-stub}} {{board-videogame-stub}}
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:As of
(
edit
)
Template:Asbox
(
edit
)
Template:Board-videogame-stub
(
edit
)
Template:Chess-stub
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite book
(
edit
)
Template:Cite web
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)