wildbg
is a backgammon engine based on neural networks. Currently, it's in alpha stage.
As of November 2023, it reaches an ELO rating of roughly 1800 and an error rate mEMG of roughly 7.5 when being analyzed with GnuBG.
For discussions, please join the Discord Server Computer Backgammon .
- Provide source code and documentation to train neural nets from zero to super human strength.
- Implement logic to evaluate all kind of backgammon positions: cubeless and cubeful equities, multi-ply evaluation, rollouts, etc.
- Make the backgammon engine accessible via an easy-to-use HTTP JSON API.
A graphical user interface (GUI) is not part of this project.
Thanks to @oysteijo you can play against wildbg
on the backgammon server FIBS. As FIBS client I recommend JavaFibs.
Thanks to @tslocum you can play against BOT_wildbg
on his new backgammon server https://bgammon.org.
The source code of the bot can be found here.
You can access the API and see yourself how wildbg
would move: https://wildbg.shuttleapp.rs/swagger-ui/
An example for the starting position and rolling 3 and 1: https://wildbg.shuttleapp.rs/move?die1=3&die2=1&p24=2&p19=-5&p17=-3&p13=5&p12=-5&p8=3&p6=5&p1=-2
Install Rust on your machine and then execute cargo run
or cargo run --release
.
A web server will be started which you can access via http://localhost:8080/swagger-ui/
Beware that the networks committed to this repository are very small networks just for demonstration purposes. You can find the latest training progress and networks here: https://github.com/carsten-wenderdel/wildbg-training
- HTTP API: https://wildbg.shuttleapp.rs/swagger-ui/
- C API: docs/user/wildbg-c.md
- Code structure: docs/dev/architecture.md
- Engine: docs/dev/engine.md
- Training process: docs/dev/training.md
Also see the CHANGELOG for a list of changes.
Help is more than welcome! There are some smaller tasks but also bigger ones, see https://github.com/carsten-wenderdel/wildbg/issues. Currently, most needed is:
- Documentation of backgammon metrics / neural net inputs: carsten-wenderdel#4
- Proper cube handling: carsten-wenderdel#17
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.