Skip to the log
The Wire Testthe.net.im

Run 04 · Diversions · field test

Backgammon: 44 rule checks passed, and a computer that is only honest company

We ran the rules engine's own self-test, read how the dice are drawn, and put the table beside GNU Backgammon and Backgammon Galaxy.

Screenshot of the labs.llc Backgammon page at desktop width: the headline 'Backgammon. Nothing hidden.' above three paragraphs on the enforced rules, playing the computer, and two-device games whose dice are rolled on the server.
EXHIBIT AThe top of the page as the local copy of build 537 served it for this log, at 1280 × 800.

Brief

What it is, and who it is for

Backgammon on labs.llc is a drawn board with the rules enforced: entering from the bar, hitting, the duty to use both dice (or the higher one when only one can be played), bearing off, gammons, backgammons and the doubling cube. Two people can share a screen, one can play the computer, or two devices can join through the site's own relay with an invite link and a spectator link.

There is no account; the match is saved in the browser. It is for casual players who want a correct game quickly, and friends who want one game across two phones.

Wiring

Where the work happens

Nothing is fetched from anyone else. The engine is a block of pure functions in app.js (lines 31–394) with its own self-test exposed as BG_SELFTEST(). Legal turns are generated so only plays that use the most dice are offered. At one screen the dice come from crypto.getRandomValues; the match lives in localStorage. Across two devices, backgammon-sync.php records moves one ply at a time and rolls the dice itself with PHP's random_int().

Sources it reads

  • None from outside labs.llc. The optional two-device mode uses the site's own relay, backgammon-sync.php.

Run table

The run, row by row

Seconds for our own probes; rival pages were logged to the minute.

Every probe in run 04, in time order, with what came back
#TimeProbeReturned
01Loaded /backgammon/ from the local copyHTTP 200, 56,162 bytes; app.js is 87,560 bytes.
02Cut the ENGINE:START–END span from app.js and ran selfTest() in JavaScriptCore{run: 44, failed: 0}. Opening pip count 167 for each side.
03Two-device relaynot runNot run: opening a game writes a file into the build tree, which this review may not change. Claims about it rest on the source.
04Read GNU Backgammon's siterival pageRated over 2000 on FIBS; rollouts with variance reduction; annotation; Python scripting.
05Read Backgammon Galaxy's siterival pageLive matches, friends, a computer AI; analysis reports; lessons; tournaments; rankings; iOS and Android.

Findings

The lengths it goes to

  1. The engine carries its own test battery that anyone can run from the browser console. We ran it outside a browser and all 44 checks passed.evidence · app.js 10–14, 196, 392; run row 02
  2. The dice are fair by construction: random bytes of 252 and above are thrown away and redrawn, so each face comes up exactly one time in six rather than nearly.evidence · app.js 415–424
  3. Across two devices the server throws the dice, because a roll made in one player's browser is a claim the other cannot check; a double-tapped Roll is refused by the one-ply-per-entry guard.evidence · backgammon-sync.php 5–22, 337
  4. House rules are printed, not buried: Crawford off, the cube capped at 64, gammons and backgammons read from the final position.evidence · index.html 783–792; app.js 584–591
  5. The computer chooses only from the same legal turns a person is offered, and the page calls it 'honest company, not a champion'.evidence · app.js 610–616; index.html 794–802

Against the field

Set beside 2 rivals

Rival 01read

GNU Backgammon

Free software for playing and analysing backgammon games and matches, with 2D and 3D boards, for POSIX systems and Windows.

Where it is ahead

  • A far stronger opponent and far better cube handling.
  • Rollouts and annotated analysis of every move and cube decision.
  • Match-file import and export, and scripting.

Where Backgammon goes further

  • Nothing to install: a correct board in any browser, phones included, with the match remembered.
  • Two-device play from a shared link, with dice neither player's browser can choose.
Rival 02read

Backgammon Galaxy

An online platform for live matches against people or an AI, with analysis, lessons, tournaments and apps.

Where it is ahead

  • A pool of live opponents, ratings and tournaments.
  • Engine analysis reports and lessons for getting better.
  • Native iOS and Android apps.

Where Backgammon goes further

  • No account at all, at one screen or over the wire.
  • A rules engine and self-test open to inspection from the console.

Faults

Where it falls short

  1. The computer is a hand-written heuristic with a pip-count rule for the cube — far below GNU Backgammon, which its site rates over 2000 on FIBS.
  2. No analysis: no hints, rollouts, error rates or reviewed games.
  3. No Crawford rule, which tournament match play expects.
  4. No ratings, tournaments, lessons or opponents to find; online play is one game between two people who share a link.

Sign-off

Log closed at

Held up
Every rule check passed, and the dice code does what its comments claim.
Fell short
A weak opponent and no analysis at all.
Reach for it when
You want a correct game with a friend, on one screen or two, without signing up.
Look elsewhere when
You want to get better or find opponents — GNU Backgammon or Backgammon Galaxy.