Changes

Jump to: navigation, search

Chess Engine Communication Protocol

13,208 bytes added, 21:23, 17 May 2018
Created page with "'''Home * Protocols * Chess Engine Communication Protocol''' The '''Chess Engine Communication Protocol''', also dubbed the '''XBoard''' or '''WinBoard''' p..."
'''[[Main Page|Home]] * [[Protocols]] * Chess Engine Communication Protocol'''

The '''Chess Engine Communication Protocol''', also dubbed the '''XBoard''' or '''WinBoard''' protocol after the eponymous [[XBoard]] or [[WinBoard]] [[GUI|graphical user interfaces]] (GUI), is an open [https://en.wikipedia.org/wiki/Communication_protocol communication protocol] for chess engines to play [[Chess Game|games]] automatically, that is to communicate with other chess playing entities.

=GUI=
A [[GUI]] supporting the protocol is known as [[XBoard]] or [[WinBoard]], being for [[Unix]] (Posix) or [[Windows]] operating systems, respectively. Many other GUIs support the protocol, which is based on text commands, while requiring the engine to keep the state of the game internally. While the [[UCI|Universal Chess Interface]] is somewhat more popular today, the Chess Engine Communication Protocol protocol is preferred by some because it allows greater flexibility for the engine (for instance, in [[Pondering|pondering]]).

=How it began=
[[Tim Mann]] in an Interview by [[Frank Quisinsky]], April 2000 <ref>[http://tim-mann.org/history.html XBoard Project History]</ref>:
Originally, xboard and WinBoard were simply graphical user interfaces for [[GNU Chess]], then for GNU Chess and [[Chess Server|Internet chess servers]]. Because the [[GUI]] and the chess engine are separate programs, several people thought of the idea of connecting their own chess programs in place of GNU Chess, and they began to email me asking how to do it. I think the first person to ask was [[Shay Bushinsky]], in November 1994. Over the years I received so many requests for this information that I was more or less forced into documenting and extending the ad-hoc engine protocol to support them. The document that exists now (chess-engines.html) evolved directly from the original email reply I sent to Shay. Unfortunately, because the protocol was never really designed, but just grew out of documenting the existing communication with GNU Chess, there are still several bugs and deficiencies in it today. It would be nice to make some major revisions, but then of course it would (at best) take a long time for the existing engines to convert over to the new protocol, so both would have to be supported, probably forever.

<span id="UMLStates"></span>
=UML State diagram=
[[FILE:xboard.gif|none|border|text-bottom|link=http://walkofmind.com/programming/chess/xboard.htm]]
WinBoard/XBoard protocol [https://en.wikipedia.org/wiki/UML_state_machine UML state diagram] by [[Alessandro Scotti]] <ref>[http://walkofmind.com/programming/chess/xboard.htm Winboard/XBoard UML state diagram] by [[Alessandro Scotti]]</ref>

=Version 2=
[[Harm Geert Muller]] established a protocol Version 2 in September, 2009 <ref>[http://home.hccnet.nl/h.g.muller/engine-intf.html Chess Engine Communication Protocol] by [[Tim Mann]] & [[Harm Geert Muller|H.G. Muller]]</ref>, also covering [[Games|Chess Variants]] and different board sizes.

=Engines=
* [[WinBoard Engines]]
* [[XBoard Engines]]
<span id="GUI"></span>
=GUIs=
==Native==
* [[WinBoard]]
* [[XBoard]]
==Compatible==
* [[Arena]]
* [[ChessGUI]]
* [[ChessPartner]]
* [[ChessX]]
* [[Cute Chess]]
* [[EBoard]]
* [[jose]]
* [[PyChess]]
* [[SCID]]
* [[Scid vs. PC]]
* [[Scidb]]

=Utilities=
* [[InBetween]]
* [[PolyGlot]]
* [[Wb2UCI]]
* [[UCI2WB]]

=See also=
* [[CPW-Engine_com]]
* [[Engine Testing]]
* [[GNU Chess]]
* [[icsdrone]]
* [[Pondering]]
* [[UCI]]
* [[Vice#CECP|Vice XBoard/WiBoard-Videos]]

=Forum Posts=
==1990 ...==
* [http://groups.google.com/group/gnu.chess/browse_frm/thread/40206c9937414b0d xboard datapoint] by Paul Vaughan, [[GNU Chess#NewsGroup|gnu.chess]], January 29, 1991
* [http://groups.google.com/group/gnu.chess/browse_frm/thread/28d5826a078d091d xboard v1.2] by Chris Sears, [[GNU Chess#NewsGroup|gnu.chess]], June 14, 1991
* [http://groups.google.com/group/gnu.chess/browse_frm/thread/4dc93bfa82e41a08 reading in a position and playing in xboard] by [[Lewis Stiller]], [[GNU Chess#NewsGroup|gnu.chess]], February 20, 1992
* [http://groups.google.com/group/gnu.chess/browse_frm/thread/a7d8892d10f66aff Re: Accessing remote computers with WinBoard] by [[Tim Mann]], [[GNU Chess#NewsGroup|gnu.chess]], November 7, 1993
==1995 ...==
* [http://groups.google.com/group/rec.games.board/browse_frm/thread/63700b0fcfa8b39e XBoard and WinBoard 3.4, patchlevel 1] by [[Tim Mann]], [[Computer Chess Forums|rec.games.board]], December 13 1995
* [https://groups.google.com/d/msg/rec.games.chess.misc/M-NkXvEu1DM/XeESczC85o0J XBoard and WinBoard, version 3.6.0] by [[Tim Mann]], [[Computer Chess Forums|rgc]], May 09, 1997
* [https://www.stmintz.com/ccc/index.php?id=26696 new autoplayer interface standard] by [[Robert Hyatt]], [[CCC]], September 15, 1998
* [https://www.stmintz.com/ccc/index.php?id=62577 WinBoard and pondering under W98] by [[Frank Phillips]], [[CCC]], July 28, 1999 » [[Pondering]], [[WinBoard]]
==2000 ...==
* [https://groups.google.com/d/msg/rec.games.chess.computer/r5-Kdb4p4bE/tKCt-SwZKlgJ Winboard for Dummies] by [[Russell Reagan]], [[Computer Chess Forums|rgcc]], June 30, 2001
* [http://groups.google.com/group/gnu.chess/browse_frm/thread/3fffd13e5ba818aa xboard and WinBoard 4.2.4 released] by [[Tim Mann]], [[GNU Chess#NewsGroup|gnu.chess]], December 10, 2001
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=18&t=39184 what is the importance of the ping command?] by [[Uri Blass]], [[Computer Chess Forums|Winboard Forum]], September 24, 2002
* [https://www.stmintz.com/ccc/index.php?id=389667 Kiwi for Win98 and input-reading stuff] by [[Alessandro Scotti]], [[CCC]], September 29, 2004 » [[Kiwi]], [[Windows]], [[Cpp|C++]], [[Thread]]
==2005 ...==
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=1622 Safe I/O (repeated)] by [[Fabien Letouzey]], [[Computer Chess Forums|Winboard Forum]], February 11, 2005
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=2&t=1693&p=7809 A question about kibitz] by [[Niyaz Khasanov]], [[Computer Chess Forums|Winboard Forum]], February 18, 2005
* [http://lists.gnu.org/archive/html/info-gnu-chess/2006-05/msg00004.html Re: gnuchess/xboard protocol] by [[Hans Eric Sandström]], [[GNU Chess#NewsGroup|gnu.org]], May 19, 2006
* [http://www.talkchess.com/forum/viewtopic.php?t=24327 Authors of WinBoard SMP engines, take note!] by [[Harm Geert Muller]], [[CCC]], October 11, 2008 » [[Parallel Search]], [[SMP]], [[SMP Engines]]
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=19&t=50429 UCI protocol in winboard] by [[Engin Üstün]], [[Computer Chess Forums|Winboard Forum]], September 24, 2009 » [[UCI]], [[WinBoard]]
* [http://www.talkchess.com/forum/viewtopic.php?t=30088 Adapter for non-standard chess engine to Winboard] by [[Carey Bloodworth|Carey]], [[CCC]], October 10, 2009
==2010 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=32254 XBoard and epd tournament] by [[Vlad Stamate]], [[CCC]], January 31, 2010 » [[Engine Testing]]
* [http://www.talkchess.com/forum/viewtopic.php?t=32952 Aquarium (other GUIs too?) and WB support => I am shocked] by [[Miguel A. Ballicora]], [[CCC]], February 27, 2010
'''2011'''
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=24&t=51739 WinBoard protocol driver] by [[Harm Geert Muller]], [[Computer Chess Forums|Winboard Forum - Chess Programming Lessons]], April 30, 2011
* [http://www.open-aurec.com/wbforum/viewtopic.php?f=4&t=52093 Starting to use the Winboard Protocol] by [[Reinhard Scharnagl]], [[Computer Chess Forums|Winboard Forum]], December 11, 2011
'''2012'''
* [http://www.talkchess.com/forum/viewtopic.php?t=42834 XBoard / WinBoard 4.6.0 released] by [[Harm Geert Muller]], [[CCC]], March 11, 2012
* [http://www.talkchess.com/forum/viewtopic.php?t=45325 Winboard protocol and fractional increments] by [[Jon Dart]], [[CCC]], September 25, 2012 » [[Time Management]]
'''2013'''
* [http://www.talkchess.com/forum/viewtopic.php?t=46780 A few questions about CECP] by [[Martin Sedlak]], [[CCC]], January 05, 2013
* [http://www.talkchess.com/forum/viewtopic.php?t=49683 WB protocol: describing how a piece moves] by [[Harm Geert Muller]], [[CCC]], October 12, 2013
'''2014'''
* [http://www.talkchess.com/forum/viewtopic.php?t=50903 WB protocol extension: thinking output] by [[Harm Geert Muller]], [[CCC]], January 14, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=53265 Handling xboard new game race condition in protover 1 engine] by [[Matthew Lai]], [[CCC]], August 12, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=53734 for Chess-variant authors] by [[Harm Geert Muller]], [[CCC]], September 17, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=54124 XBoard and chess variants] by [[Evert Glebbeek]], [[CCC]], October 28, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=54162 UCCI2WB] by [[Harm Geert Muller]], [[CCC]], October 27, 2014
* [http://www.talkchess.com/forum/viewtopic.php?t=54629 WB protocol specs] by [[Harm Geert Muller]], [[CCC]], December 12, 2014
==2015 ...==
* [http://www.talkchess.com/forum/viewtopic.php?t=57082 xboard softquit] by [[Matthew Lai]], [[CCC]], July 26, 2015
* [http://www.open-chess.org/viewtopic.php?f=5&t=2871&p=22300 Winboard 2 state diagram] by thevinenator, [[Computer Chess Forums|OpenChess Forum]], August 26, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=57430 XBoard for Mac: Zippy problems] by [[Steven Edwards]], [[CCC]], August 29, 2015 » [[Mac OS]]
* [http://www.talkchess.com/forum/viewtopic.php?t=57446 Suggestions for XBoard documentation] by [[Steven Edwards]], [[CCC]], August 30, 2015
* [http://www.talkchess.com/forum/viewtopic.php?t=58714 CECP ('WB protocol') specs] by [[Harm Geert Muller]], [[CCC]], December 28, 2015
'''2016'''
* [http://www.talkchess.com/forum/viewtopic.php?t=59784 Release of XBoard 4.9.0 soon] by [[Harm Geert Muller]], [[CCC]], April 07, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=59905 Chess on Android] by [[Pedro Castro]], [[CCC]], April 19, 2016 » [[Chess for Android]], [[DanaSah]]
* [http://www.talkchess.com/forum/viewtopic.php?t=60239 CECP: Chess variants with dice] by [[Harm Geert Muller]], [[CCC]], May 22, 2016
* [http://www.talkchess.com/forum/viewtopic.php?t=61823 ChessGUI Timer Problem] by [[Dennis Sceviour]], [[CCC]], October 24, 2016 » [[ChessGUI]]
'''2017'''
* [http://www.talkchess.com/forum/viewtopic.php?t=63525 Winboard variants online] by [[Erin Dame]], [[CCC]], March 22, 2017 » [[Chess#Variants|Chess Variants]]
* [http://www.talkchess.com/forum/viewtopic.php?t=64411 Winboard questions] by [[Ed Schroder]], [[CCC]], June 26, 2017
* [http://www.talkchess.com/forum/viewtopic.php?t=64432 Winboard: Resigning?] by [[Rasmus Althoff]], [[CCC]], June 27, 2017
'''2018'''
* [http://www.talkchess.com/forum/viewtopic.php?t=66745 UCI vs Winboard question] by [[Michael Sherwin]], [[CCC]], March 05, 2018 » [[UCI]]

=External Links=
* [https://en.wikipedia.org/wiki/Chess_Engine_Communication_Protocol Chess Engine Communication Protocol from Wikipedia]
* [http://hgm.nubati.net/CECP.html Chess-Engine Communication Protocol] by [[Harm Geert Muller]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=58714 CECP ('WB protocol') specs] by [[Harm Geert Muller]], [[CCC]], December 28, 2015</ref>
* [http://home.hccnet.nl/h.g.muller/engine-intf.html Chess Engine Communication Protocol] by [[Tim Mann]] & [[Harm Geert Muller]]
* [http://hgm.nubati.net/newspecs.html Chess Engine Communication Protocol - New Specs] by [[Harm Geert Muller]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=54629 WB protocol specs] by [[Harm Geert Muller]], [[CCC]], December 12, 2014</ref>
* [http://hgm.nubati.net/news.html XBoard News] by [[Harm Geert Muller]]
: [http://hgm.nubati.net/XB-4.9.0/ What is new in XBoard/WinBoard 4.9.0?] by [[Harm Geert Muller|H.G. Muller]]
* [http://timmann.server269.com/xboard.html Tim Mann's Chess Pages, XBoard and WinBoard]
: [http://www.tim-mann.org/winboard/rshd-readme.txt rshd-readme.txt] by [[Dan Newman]] <ref>[https://en.wikipedia.org/wiki/Remote_Shell Remote Shell from Wikipedia]</ref> <ref>[http://rshd.sourceforge.net/ Windows Implementation of RSHD]</ref>
* [http://www.mail-archive.com/bug-xboard@gnu.org/maillist.html bug-xboard mail archive]
* [http://walkofmind.com/programming/chess/winboard_x.htm Tinkering with Winboard...] by [[Alessandro Scotti]]
: [http://walkofmind.com/programming/chess/xboard.htm Winboard/XBoard UML state diagram] by [[Alessandro Scotti]]
* [http://www.horizonchess.com/FAQ/Winboard/index.html FAQ on Winboard and Chess Engines] by [[Aaron Tay]]
* [http://www.reocities.com/lyapko/winboard.htm Lyapko George's WinBoard related page] (outdated) by [[George Lyapko]] <ref>[http://www.talkchess.com/forum/viewtopic.php?t=46721 Tool to recreate PGN from winboard.debug?] by [[Sven Schüle]], [[CCC]], January 01, 2013</ref>
* [http://computer-chess.org/doku.php?id=winboard:faq:index Winboard and Chess Engines FAQ] from [[Ron Murawski|Ron Murawski's]] [http://computer-chess.org/doku.php?id=home Computer-Chess Wiki]
* [http://www.open-aurec.com/wbforum/viewforum.php?f=19 WinBoard development and bugfixing Forum]

=References=
<references />

'''[[Protocols|Up one Level]]'''

Navigation menu