[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
New backgammon engine: wildbg
From: |
Carsten Wenderdel |
Subject: |
New backgammon engine: wildbg |
Date: |
Mon, 13 Nov 2023 20:20:39 +0000 |
Hello,
I’m about to send an email proposing some HTTP API for communicating between
backgammon engines and clients like GUIs or bots.
For context, I do some advertisement first.
I have started work on a new backgammon engine:
https://github.com/carsten-wenderdel/wildbg
The current strength is roughly 1800 ELO or an error rate mEMG of roughly 7.5
when being analyzed with GnuBG.
So far only the classic TD-Gammon inputs have been implemented, the expert
features from Hans Berliner are missing.
It’s also still learning without expert features, so I’m optimistic that there
is lots of room for improvement.
You can play against it on FIBS (bot name is wildbg).
If you are interested in particular positions, try out
https://wildbg.shuttleapp.rs/swagger-ui/
Wildbg is doing many things similar as GnuBG, which is really a great project.
Some things however are done differently:
1. MIT/Apache 2 instead of GPL
It seams, some commercial apps have copied GnuBG source code and it seems it
was not followed up.
On the other hand, legally GPL is not allowed on Apple’s App Store because of
license issues, even if the app is free of charge and source code is provided.
Sometimes I have the impression that the GPL is not giving the protection
someone would like, but makes it difficult for some honest people.
I don’t want to start a discussion here, but only explain my choice. There are
very good reasons for GPL and against MIT too.
2. Rust instead of C
Rust has the features other modern languages like Kotlin or Swift provide which
allow high level programming.
At the same time Rust allows very fast code without a tracing garbage
collector. This is important when being embedded as a library in another app or
in the web (via web assembly).
3. HTTP/json API instead of own GUI
Both engine and GUI are already quite big undertakings. The chess community has
always separated those two, I think the backgammon community should too.
4. Usage of 3rd party machine learning libraries instead of self written neural
nets
This allows usage of for example PyTorch and the ONNX format. Changing the
topology of the nets (ReLu instead of sigmoid, adding hidden layers) becomes
very easy.
All these choices are based on opinions, I very much understand if someone
disagrees with them.
So my hope is that these choices can grow the number of contributors to
computer backgammon.
Some people prefer C, some prefer Rust. Some people prefer GPL, others prefer
MIT.
I’d be super happy if wildbg would evolve into a community project similar to
GnuBG.
I don’t want to abuse this mailing list too much; if you are interested please
join this Discord server:
https://discord.gg/Ckvf7y8nGz
All the best,
Carsten
- New backgammon engine: wildbg,
Carsten Wenderdel <=