An implementation of the Universal Chess Interface in Rust.
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
# UCI
|
|
|
|
|
|
|
|
UCI is an acronym for **U**niversal **C**hess **I**nterface. It is a standard for communication that competes with
|
|
|
|
XBoard/Winboard. [http://wbec-ridderkerk.nl/html/UCIProtocol.html](UCI) makes communication a little easier, but
|
|
|
|
it seems there's a nearly religious debate on which is better.
|
|
|
|
|
|
|
|
Here are some benefits to using UCI:
|
|
|
|
|
|
|
|
* It works with Chessbase 14
|
|
|
|
* Simple to use
|
|
|
|
* Fewer bugs in code
|
|
|
|
* Built from scratch rather than ad-hoc
|
|
|
|
* Flexible time controls
|
|
|
|
* Additional search information can be displayed
|
|
|
|
|
|
|
|
and to be fair, some downsides:
|
|
|
|
|
|
|
|
* Stateless
|
|
|
|
* Delegates some important decisions to the GUI
|
|
|
|
* Difficult to add new features on top of it
|
|
|
|
* Sends the whole move list each turn
|
|
|
|
|
|
|
|
Overall, UCI seems to be fairly popular and is worth considering for your next engine.
|
|
|
|
|
|
|
|
## Why
|
|
|
|
|
|
|
|
People shouldn't waste their time implementing protocols that really should be libraries. With this, you can
|
|
|
|
include it in your project, build your engine on top of it, and be able to focus on what matters - beating Stockfish.
|
|
|
|
|
|
|
|
## Will You Implement Winboard?
|
|
|
|
|
|
|
|
Yeah, probably.
|
|
|
|
|
|
|
|
## Why GPL 3.0?
|
|
|
|
|
|
|
|
I have noticed that there are no good _free_ solutions so that anyone can build a chess engine. Since UCI is
|
|
|
|
a common format, and something all engines (should) implement, making this chunk of it free makes _total_ sense.
|