Eric WagonerandClaude Fable 5.1 0be89a1dfe Credibility pass: the code reads as one hand's work. Dead plumbing and copies removed, four claims the source does not support corrected, and inherited kit text re-read for this game
Engine: the facade re-exports the board in one block; describe() and the
dead letters preference, void ply, the King-taken line, the identity maps
and the unused imports are gone; SIDE_NAMES is the one spelling of a side;
the drake's hunter comment no longer claims only four kinds reach the air.
Prose: no shatranj and no sitting duck, which Gygax never wrote; the Thief
statistic and the Basilisk's "one trick" are gone; lessons say what the
board shows instead of repeating the panel; a Thief's leap counts four.
Browser: one keyboard walk, in BoardArtwork; the lesson board and page share
one game and one inspected piece; the chronicle's possessive is told, not
patched by a regex; the chronicle colours and the reading layout are global
rules instead of three copies; the guide and the about panel say what the
code and the article actually do.
Server and docs: the room server states that it is the kit's, kept whole;
the skills, the deploy README and the share card name files that exist.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01CCLa2PaEeCj8njQZSWGqHx
2026-10-26 22:38:00 -04:00
2026-10-26 16:08:50 -04:00
2026-10-26 16:08:50 -04:00
2026-10-26 16:08:50 -04:00
2026-10-26 16:08:50 -04:00
2026-10-26 16:08:50 -04:00
2026-10-26 16:08:50 -04:00
2026-10-26 16:08:50 -04:00

Wyrm

Gary Gygax's Dragonchess, from Dragon Magazine No. 100 (August 1985), for the browser: three boards of twelve by eight, Gold against Scarlet, 42 pieces a side, checkmate to win. Built from the game kit, so the hall, the tables, the Peanut Gallery, the ledgers and the ops tools are the kit's; docs/conventions.md is the house style they follow.

What is where

docs/source.md              the article, transcribed, and the readings the engine takes where it is unclear
src/lib/game/board.ts       the three boards and how every piece moves, on a bare array of cells
src/lib/game/index.ts       the game around them: seats, turns, check and the ends, the GameSpec
src/lib/game/bot.ts         the drake, the house player: alpha-beta over a fixed budget of nodes
src/lib/game/index.test.ts  every example move Gygax gives, the ends, and the drake
src/lib/source.ts           reads docs/source.md for the rules page, so the page and the engine share one text
src/lib/components/BoardArtwork.svelte   the boards drawn, shared by the table, the hall and the share card
src/lib/components/Board.svelte          the table: moving, the record, the talk
docs/og-card.html, docs/icon.html        the share card and the icon; screenshot them with the site running

Where it differs from the kit

  • The house player is a drake wherever the kit says "a bot", and its names are the dragons of old stories.
  • Board 3 is the air, 2 the land and 1 the underworld, following the piece descriptions and not the one paragraph that says otherwise. The other readings are listed under "Decisions" in docs/source.md and on the rules page.
  • The drake's search is bounded by a count of nodes, not a clock, so the same position always gives the same move and a ledger replays without asking it again.
  • The guide's figures are screenshots in static/guide/, taken from the running site at 960 pixels wide.

Running it

npm run dev:all       # the server on 8791 and the site on 5173
npm test              # the engine and the server
deploy/deploy.sh 159.203.115.252

The name is this site's. Dragonchess was Gygax's and TSR's, and a Canadian company holds a registered mark on "Dragon Chess" for an unrelated game.

S
Description
Wyrm: an unofficial rebuild of Gary Gygax’s 1985 Dragonchess, from Dragon Magazine No. 100, for Kestrel’s Hall
Readme
28 MiB
0 Stars 1 Watchers 0 Forks
Languages
TypeScript 52.9%
Svelte 36.4%
Shell 7%
Python 1.8%
CSS 0.9%
Other 1%