bug-gnubg
[Top][All Lists]
Advanced

[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





reply via email to

[Prev in Thread] Current Thread [Next in Thread]