surakarta
@jeffy24

surakarta

A compact Surakarta-inspired loop-capture board game with synced state and a Three.js board.

About this tile

A compact Poe board-game package for a deterministic 5x5 Surakarta-inspired duel.

Players take turns moving one of their stones. A quiet move steps to any adjacent empty point, including diagonals. A capture follows one of the two visible loop tracks, must round at least one corner loop, must have no blockers before the target, and lands on the enemy stone's point. Capturing the last enemy stone wins the round.

The app persists match state with synced-store, renders the board with Three.js, and includes compact touch-first controls for Poe feed iframes.

Scripts

  • bun run doctor checks local prerequisites.
  • bun run type-check runs TypeScript.
  • bun run test runs focused rules, mutator, and happy-dom UI tests.
  • bun run build creates the Poe runtime bundle in dist/.
  • bun run test:playwright runs browser E2E and viewport tests.
  • bun run screenshot:regen rebuilds and writes assets/screenshot.png.

Package

  • Poe handle: surakarta
  • Package name: @boardgames/surakarta
  • Runtime bundle: dist/