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
