Skip to content

Releases: clavierhaus/gnubg-android

0.11.4 — position editor fits, Start-pos preset

Choose a tag to compare

@clavierhaus clavierhaus released this 11 Jul 15:48

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

Choose a tag to compare

@clavierhaus clavierhaus released this 11 Jul 15:24

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

Choose a tag to compare

@clavierhaus clavierhaus released this 11 Jul 09:22

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 .sgf at 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. See docs/THREADING.md for 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

v0.11.1 Pre-release
Pre-release

Choose a tag to compare

@clavierhaus clavierhaus released this 11 Jul 09:06

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 .sgf at 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. See docs/THREADING.md for 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

Choose a tag to compare

@clavierhaus clavierhaus released this 11 Jul 08:29

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 .sgf at 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. See docs/THREADING.md for 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

Choose a tag to compare

@clavierhaus clavierhaus released this 11 Jul 08:10

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.sh as a guard.
  • The release build is signed, so its APK installs.

0.10.0 position setup, match save, match review

Choose a tag to compare

@clavierhaus clavierhaus released this 10 Jul 19:50

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 .sgf at any point, via the Android file picker — opens in desktop gnubg.
  • Review a match move by move. Open a saved .sgf and 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

Choose a tag to compare

@clavierhaus clavierhaus released this 08 Jul 21:58

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.