CoOp:Anything
Search any game and see how much of it you can play with friends: every co-op mod, its stage, quality and community rating.
Bold Blot: an experimental enterprise for backgammon software.
Translation pending
GamesGitHub @BoldBlotOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Backgammon PlyGround: an Android backgammon trainer. Play the PureTD engine, see every mistake, review every game. GPL-3.0.
Translation pending
Taken from the repository README
Loading the full README.
Read the full README ↗An Android backgammon trainer with three engines: PureTD (with Bold Blot's 4-ply search, cube-aware cube decisions and match play; see what we added), GNU Backgammon and Open Sage. The name is written exactly so: "Backgammon PlyGround", capital P and G. Play against the computer, get prompted when you make a mistake, see how big the mistake was and what the best plays were, track your statistics, and review every game move by move afterwards.
Errors and the Performance Rating (PR) follow the definitions published by eXtreme Gammon (see docs/PERFORMANCE_RATING.md).
.mat
files (from XG, GNU Backgammon or PlyGround itself). On import you pick which player
you are and whether the opponent's mistakes go on your blunder list too; the match is
analyzed in the background and left out of the statistics..mat file (the Jellyfish match format both programs
import) for cross-evaluation. For a game played after the Crawford game, export the
whole match: a .mat file cannot otherwise say that the Crawford game was played.A signed release APK is copied to dist/BackgammonPlyGround-<version>-build<N>.apk.
Copy it to the phone and open it (allow installing from that source), or:
adb install dist/BackgammonPlyGround-0.6-build26.apk
Requires Android 8.0 (API 26) or newer. Native code is built for arm64-v8a,
armeabi-v7a and x86_64, so it runs on current 64-bit-only phones.
Prerequisites: JDK 17+ (builds were tested with JDK 25), Android SDK with
platform 37, build-tools 37.0.0, NDK 29.0.14206865 and CMake 4.1.2
(local.properties must point sdk.dir at the SDK).
./gradlew :app:assembleDebug # debug APK
./gradlew :app:assembleRelease # release APK (see signing below)
./gradlew :app:bundleRelease # Play App Bundle: app/build/outputs/bundle/release/app-release.aab
scripts/host-tests.sh # engine C tests + all JVM unit tests against the real engine
scripts/check-mat.py # import the .mat files written by the tests into gnubg and compare
./gradlew :app:connectedDebugAndroidTest # database migration tests on a device/emulator
Signing. The release build reads signing.properties (not committed):
storeFile=keystore/release.jks
storePassword=…
keyAlias=…
keyPassword=…
Keep keystore/release.jks and signing.properties safe: Android only installs
updates signed with the same key. Without signing.properties the release build
is signed with the debug key. On Google Play this key is the upload key: Play App
Signing re-signs the bundle with Google's app signing key.
16 KB pages. Google Play requires 64-bit native libraries aligned to 16 KB pages. The
only native library is the engines' JNI bridge (libbgjni, with the C++ runtime linked in
statically for Open Sage). After
changing native code, check with llvm-readelf -lW that every arm64-v8a and x86_64 library
has LOAD alignment 0x4000.
Engine data. app/src/main/assets/puretd holds PureTD's two wide networks at full
(float32) precision: prob5_wide.ptw (cubeless win / gammon / backgammon chances) and
cubeful_wide.ptw (cubeful equity, used at the leaves of the cube search). They are exported
from PureTD's checkpoints with engine/tools/export_puretd.py. The bear-off database is built
on the phone at first start and cached; the match equity table is computed by the app
(core/CubeMath.kt). assets/gnubg holds GNU Backgammon's networks (gnubg.wd), one-sided
bear-off database and the Kazaross XG2 match equity table; the two-sided bear-off database is
left out to keep the app small. assets/sage holds Open Sage's production model (stage 11: 21
network files, some shared between game plans) and its one-sided bear-off database, unchanged
from its release.
| Path | Contents |
|---|---|
engine/puretd/ | PureTD's move generator and board encoding (unchanged, MIT) and our network evaluation and search (ptd.c); see its README |
engine/gnubg/, engine/compat/, engine/src/ | GNU Backgammon's evaluation code (unchanged, GPL v3), a small glib shim, and our C API over it (bgengine.c) |
engine/sage/ | Open Sage's engine library (unchanged, MPL 2.0, from bgsage commit 98a6d84) |
engine/tools/ | export_puretd.py: PureTD checkpoints to the app's .ptw network files |
app/src/main/cpp/ | JNI bridges for the three engines (one library, libbgjni) |
app/src/main/java/com/boldblot/backgammonplyground/core/ | Pure Kotlin: board, move generation, rules, match state machine, XG analysis and PR, statistics |
app/src/main/java/com/boldblot/backgammonplyground/engine/ | Kotlin side of the engines (one search over each engine's evaluation), engine threads (the game's, and the background analysis' with PureTD) |
app/src/main/java/com/boldblot/backgammonplyground/data/ | Room database, settings, statistics queries |
app/src/main/java/com/boldblot/backgammonplyground/ui/ | Jetpack Compose screens |
docs/ | Design notes |
See docs/ARCHITECTURE.md for details and CHANGELOG.md for the change history.
Backgammon PlyGround is free software under the GNU General Public License v3 or later (see LICENSE). It includes:
engine/puretd/LICENSE-PureTD);engine/gnubg/COPYING, engine/gnubg/AUTHORS);engine/sage/LICENSE-OpenSage; source: github.com/markbgsage/bgsage);app/src/main/assets/licenses/archivo-OFL.txt). eXtreme Gammon is a trademark of GameSite
2000 Ltd.; this project is not affiliated with it.