Releases: clavierhaus/gnubg-android
Release list
0.11.4 — position editor fits, Start-pos preset
GNU Backgammon for Android 0.11.4
Fixed
- The cube row in the position editor was cut off the bottom of the screen on
taller phones, and couldn't be reached (issue #1). The editor now fits: "On
roll" and "Dice" share one row, the redundant instruction line is gone, and the
spacing is tighter — measured to clear the buttons with room to spare across the
supported aspect-ratio range.
Added
- A "Start pos" button in the position editor fills the standard opening
position, so you don't have to place all 30 checkers by hand (issue #1).
0.11.3 — leave an unfinished match to change parameters
GNU Backgammon for Android 0.11.3
Fixed
- You can now leave a match that isn't finished. Mid-match, "Home" ends the
current match (after confirming) and returns to the home screen — where you can
start a new match with different strength and length. Before, leaving mid-match
dropped you back into the same game with no way to change parameters short of
playing it out.
0.11.2 — first full release: position setup, match save, match review with verdicts
GNU Backgammon for Android 0.11.0
The first real release — the successor to the 0.9.1 preview. It makes the app
a comprehensive backgammon companion: play at gnubg strength, set up and analyse
any position, save matches, and review them. (Versions 0.10.0 and 0.10.1 were
internal steps and never shipped an APK; everything in them is included here.)
Added
- Set up any position and analyse it. A board editor: tap points and the bar
to place checkers, tap the bear-off tray to clear, then set dice, cube, score,
match length, and who is on roll. Dice set → gnubg's ranked chequer plays; no
dice → gnubg's cube decision (double/take/drop with equities). The GNU BG ID is
shown and copyable, and IDs/XGIDs paste in. - Save the match to
.sgfat any point, through the Android file picker;
opens in desktop gnubg. - Review a saved match, stepping game by game and move by move on gnubg's own
board — with gnubg's verdict on every move: what was played, what gnubg
preferred, the equity difference, the rank among all legal plays, and gnubg's
own classification (doubtful / bad / very bad) when the move deserves one. - Seven playing levels. The original four (0-ply with descending noise) plus
Expert (0-ply, no noise), World class (2-ply) and Grandmaster
(3-ply), exposing gnubg's real strength. - A settings gear on every screen, over a single settings overlay; consistent
"Home" and "New match" throughout. - The engine's roll is visible while it thinks. gnubg rolls before it
searches; the board now shows those dice grayed the moment they land (with
"Rolled 5-3. Thinking..." in the panel), so you can start reading the position
during the wait -- exactly as desktop gnubg behaves.
Fixed
- Saved SGF names were swapped — the human was labelled "gnubg", the engine
"user". The port's player 0 is the human; the names now match ("You" / "GNU
Backgammon"). - The strongest level was not strong. The old "Advanced" is a
0-ply-with-noise preset and occasionally played a poor move (a 24/16 on an
opening 5-3 was reported). The per-player move filter was also never
initialised, which silently broke multi-ply evaluation; fixing it is what makes
the new 2-ply and 3-ply levels correct. - Start Match could vanish on short landscape phones, squeezed to zero height
by a weighted layout. It is now pinned. - The Analyse screen could hide its own output — the ranked plays, the
editor's Analyse button, and long labels fell off short panes. Regions are
pinned or bounded now; labels never wrap. - A fresh clone could not build — engine headers the Android build compiles
(sound.h,export.h,movefilters.inc,boarddim.h,progress.h,
openurl.h) were hidden by.gitignore. All tracked now, guarded by
tools/check_buildable_clone.sh. - The release build is signed, so its APK installs.
- Engine-fidelity fixes: answer the resignation GNU offers (a won game could not
be finished); read each die from gnubg's move list rather than guessing; repair
EVALSETUP_2PLY/GetEvalMoveFilter(25 build warnings to zero); tap and
highlight along gnubg's own legal-move list.
Notes
- Thinking time. A Grandmaster (3-ply) move takes about 7-9 seconds on a
current phone, a 2-ply move about 2. This is the honest single-core cost of a
strong search: gnubg already prunes and runs its neural-net evaluation with ARM
NEON SIMD, so any app at this strength on this hardware pays the same. It is not
a defect. Seedocs/THREADING.mdfor why the move cannot be threaded (gnubg
parallelises rollouts and analysis, not a single live search) and the
conditions under which multi-core support arrives for those. The per-move
review verdict runs at gnubg's 2-ply analysis setting, so each step is quick.
v0.11.1
GNU Backgammon for Android 0.11.0
The first real release — the successor to the 0.9.1 preview. It makes the app
a comprehensive backgammon companion: play at gnubg strength, set up and analyse
any position, save matches, and review them. (Versions 0.10.0 and 0.10.1 were
internal steps and never shipped an APK; everything in them is included here.)
Added
- Set up any position and analyse it. A board editor: tap points and the bar
to place checkers, tap the bear-off tray to clear, then set dice, cube, score,
match length, and who is on roll. Dice set → gnubg's ranked chequer plays; no
dice → gnubg's cube decision (double/take/drop with equities). The GNU BG ID is
shown and copyable, and IDs/XGIDs paste in. - Save the match to
.sgfat any point, through the Android file picker;
opens in desktop gnubg. - Review a saved match, stepping game by game and move by move on gnubg's own
board — with gnubg's verdict on every move: what was played, what gnubg
preferred, the equity difference, the rank among all legal plays, and gnubg's
own classification (doubtful / bad / very bad) when the move deserves one. - Seven playing levels. The original four (0-ply with descending noise) plus
Expert (0-ply, no noise), World class (2-ply) and Grandmaster
(3-ply), exposing gnubg's real strength. - A settings gear on every screen, over a single settings overlay; consistent
"Home" and "New match" throughout. - The engine's roll is visible while it thinks. gnubg rolls before it
searches; the board now shows those dice grayed the moment they land (with
"Rolled 5-3. Thinking..." in the panel), so you can start reading the position
during the wait -- exactly as desktop gnubg behaves.
Fixed
- Saved SGF names were swapped — the human was labelled "gnubg", the engine
"user". The port's player 0 is the human; the names now match ("You" / "GNU
Backgammon"). - The strongest level was not strong. The old "Advanced" is a
0-ply-with-noise preset and occasionally played a poor move (a 24/16 on an
opening 5-3 was reported). The per-player move filter was also never
initialised, which silently broke multi-ply evaluation; fixing it is what makes
the new 2-ply and 3-ply levels correct. - Start Match could vanish on short landscape phones, squeezed to zero height
by a weighted layout. It is now pinned. - The Analyse screen could hide its own output — the ranked plays, the
editor's Analyse button, and long labels fell off short panes. Regions are
pinned or bounded now; labels never wrap. - A fresh clone could not build — engine headers the Android build compiles
(sound.h,export.h,movefilters.inc,boarddim.h,progress.h,
openurl.h) were hidden by.gitignore. All tracked now, guarded by
tools/check_buildable_clone.sh. - The release build is signed, so its APK installs.
- Engine-fidelity fixes: answer the resignation GNU offers (a won game could not
be finished); read each die from gnubg's move list rather than guessing; repair
EVALSETUP_2PLY/GetEvalMoveFilter(25 build warnings to zero); tap and
highlight along gnubg's own legal-move list.
Notes
- Thinking time. A Grandmaster (3-ply) move takes about 7-9 seconds on a
current phone, a 2-ply move about 2. This is the honest single-core cost of a
strong search: gnubg already prunes and runs its neural-net evaluation with ARM
NEON SIMD, so any app at this strength on this hardware pays the same. It is not
a defect. Seedocs/THREADING.mdfor why the move cannot be threaded (gnubg
parallelises rollouts and analysis, not a single live search) and the
conditions under which multi-core support arrives for those. The per-move
review verdict runs at gnubg's 2-ply analysis setting, so each step is quick.
0.11.0 — first full release: position setup, match save, match review
GNU Backgammon for Android 0.11.0
The first real release — the successor to the 0.9.1 preview. It makes the app
a comprehensive backgammon companion: play at gnubg strength, set up and analyse
any position, save matches, and review them. (Versions 0.10.0 and 0.10.1 were
internal steps and never shipped an APK; everything in them is included here.)
Added
- Set up any position and analyse it. A board editor: tap points and the bar
to place checkers, tap the bear-off tray to clear, then set dice, cube, score,
match length, and who is on roll. Dice set → gnubg's ranked chequer plays; no
dice → gnubg's cube decision (double/take/drop with equities). The GNU BG ID is
shown and copyable, and IDs/XGIDs paste in. - Save the match to
.sgfat any point, through the Android file picker;
opens in desktop gnubg. - Review a saved match, stepping game by game and move by move on gnubg's own
board. - Seven playing levels. The original four (0-ply with descending noise) plus
Expert (0-ply, no noise), World class (2-ply) and Grandmaster
(3-ply), exposing gnubg's real strength. - A settings gear on every screen, over a single settings overlay; consistent
"Home" and "New match" throughout.
Fixed
- Saved SGF names were swapped — the human was labelled "gnubg", the engine
"user". The port's player 0 is the human; the names now match ("You" / "GNU
Backgammon"). - The strongest level was not strong. The old "Advanced" is a
0-ply-with-noise preset and occasionally played a poor move (a 24/16 on an
opening 5-3 was reported). The per-player move filter was also never
initialised, which silently broke multi-ply evaluation; fixing it is what makes
the new 2-ply and 3-ply levels correct. - Start Match could vanish on short landscape phones, squeezed to zero height
by a weighted layout. It is now pinned. - The Analyse screen could hide its own output — the ranked plays, the
editor's Analyse button, and long labels fell off short panes. Regions are
pinned or bounded now; labels never wrap. - A fresh clone could not build — engine headers the Android build compiles
(sound.h,export.h,movefilters.inc,boarddim.h,progress.h,
openurl.h) were hidden by.gitignore. All tracked now, guarded by
tools/check_buildable_clone.sh. - The release build is signed, so its APK installs.
- Engine-fidelity fixes: answer the resignation GNU offers (a won game could not
be finished); read each die from gnubg's move list rather than guessing; repair
EVALSETUP_2PLY/GetEvalMoveFilter(25 build warnings to zero); tap and
highlight along gnubg's own legal-move list.
Notes
- Thinking time. A Grandmaster (3-ply) move takes about 7-9 seconds on a
current phone, a 2-ply move about 2. This is the honest single-core cost of a
strong search: gnubg already prunes and runs its neural-net evaluation with ARM
NEON SIMD, so any app at this strength on this hardware pays the same. It is not
a defect. Seedocs/THREADING.mdfor why the move cannot be threaded (gnubg
parallelises rollouts and analysis, not a single live search) and the
conditions under which multi-core support arrives for those.
0.10.1 — field-report fixes and real strength levels
GNU Backgammon for Android 0.10.1
A follow-up to 0.10.0 with the fixes from the first field reports. Everything in
0.10.0 that had not yet reached a device is folded in here.
Added
- Three stronger playing levels — Expert (0-ply, no noise), World class
(2-ply), Grandmaster (3-ply) — exposing gnubg's real strength. The four
original levels are 0-ply with noise; the strongest of those still let an
occasional weak move through.
Fixed
- Saved SGF names were swapped: the human was written as "gnubg", the engine
as "user". The port's player 0 is the human; the names now match. - The strongest level was not strong. "Advanced" is a 0-ply-with-noise preset
and occasionally played a poor move (a 24/16 on an opening 53 was reported).
Underneath, the per-player move filter was never initialised, which silently
broke multi-ply evaluation; fixing it is what makes the new levels correct. - Start Match could vanish on short landscape phones, squeezed to zero height
by a weighted layout. It is now pinned. - The Analyse screen could hide its own output — the ranked plays, the
editor's Analyse button, and long labels fell off short panes. Regions are now
pinned or bounded; labels never wrap. - A fresh clone could not build: engine headers the Android build compiles
(sound.h,export.h,movefilters.inc,boarddim.h,progress.h,
openurl.h) were hidden by.gitignore. All tracked now, with
tools/check_buildable_clone.shas a guard. - The release build is signed, so its APK installs.
0.10.0 position setup, match save, match review
GNU Backgammon for Android 0.10.0 — the comprehensive-companion release
This release completes the three features the app set out to provide, each running on GNU Backgammon's own engine — not an app-side re-implementation:
- Set up any position and analyse it. Tap points and the bar to place checkers, tap the bear-off tray to clear the board, then set dice, cube, score, match length, and who is on roll. Dice set → gnubg's ranked chequer plays. No dice → gnubg's cube decision (double / take / drop with equities), exactly as gnubg's desktop edit mode treats a no-dice position. The GNU BG ID is shown and copyable. You can also paste a GNU BG ID or XGID from anywhere.
- Save the match to a file. The whole match written to a standard
.sgfat any point, via the Android file picker — opens in desktop gnubg. - Review a match move by move. Open a saved
.sgfand step through it, game by game and move by move, on gnubg's own board.
Also in 0.10.0:
- One-geometry board: a tap lands exactly where it is drawn, verified across aspect ratios from tablet to tall phone.
- Settings gear on every screen; consistent Home / New match everywhere.
- The repository now builds from a clean clone with no submodule setup.
Built for Android 12+ (arm64-v8a). GPL-3.0-or-later.
GNU Backgammon for Android - v0.9.1-preview
A faithful Android port of GNU Backgammon: it runs the actual gnubg engine, so the opponent's play, cube decisions, and analysis are gnubg's own — not a re-implementation.
What works in this preview
- Full matches against the gnubg engine, with four strength levels
- Doubling cube (offer / take / drop / redouble), decided by gnubg
- Tournament rules: Crawford, Jacoby, automatic doubles, beavers, and cube on/off
- A choice of match equity table for match-play cube decisions (Kazaross-XG2, Woolsey, Jacobs & Trice, Snowie, and more — the canonical gnubg tables)
- Live tutor analysis — gnubg's own equity evaluation of your moves as you play
- Three board/UI themes plus a System (Material You) option; settings persist across restarts
Requirements
Android 12 or newer (arm64).
Installing
Download the APK below and open it on your device. Because this is a sideloaded preview build, Android will warn about installing outside the Play Store and you may need to allow "install from unknown sources" — that's expected. This build is debug-signed; a future release may be signed with a proper release key, which would require a reinstall rather than an in-place update.
Notes
This is an early preview. The core game and engine are solid; deeper analysis features (a ranked candidate-move list, Performance Rating, position entry) and online play via FIBS are on the roadmap.
Source, license (GPL-3.0-or-later), and full provenance are in the repository.