Taylor Bockman
7 years ago
3 changed files with 56 additions and 2 deletions
@ -0,0 +1,12 @@ |
|||||||
|
[package] |
||||||
|
name = "uci" |
||||||
|
version = "0.1.0" |
||||||
|
authors = ["Taylor Bockman <angrygoats@protonmail.com>"] |
||||||
|
description = "An implementation of the UCI specification in Rust" |
||||||
|
repository = "https://github.com/angrygoats/uci" |
||||||
|
readme = "README.md" |
||||||
|
keywords = ["uci", "universal chess interface", "chess", "engine", "chess engine"] |
||||||
|
categories = ["games", "game-engines", "api-bindings", "config", "development-tools"] |
||||||
|
license = "GPL-3.0" |
||||||
|
|
||||||
|
[dependencies] |
@ -1,2 +1,37 @@ |
|||||||
# uci |
# UCI |
||||||
An implementation of the Universal Chess Interface in Rust |
|
||||||
|
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. |
||||||
|
Loading…
Reference in new issue