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 |
||||
An implementation of the Universal Chess Interface in Rust |
||||
# 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. |
||||
|
Loading…
Reference in new issue