Overview & Quick Start

Tabletop is a reusable browser engine for card games, board games, and hybrid tabletop games. It powers a polished React SPA deployed at /games/, but the engine itself is framework-agnostic TypeScript you could drop into any renderer.

Capabilities

Quick start (development)

cd games
npm install
npm run dev          # http://localhost:5173/games/

Then:

  1. Open the gallery, pick a game, choose seats (humans/bots), Start game.
  2. Or click Online, Create room, copy the link, and open it in a second browser tab to play multiplayer locally with zero setup.

Quick start (play the engine in code)

import { createMatch, applyAction } from './src/engine';
import { crownRush } from './src/games/crown-rush';

let match = createMatch(crownRush, {
  seed: 'demo',
  players: [
    { id: 'p0', name: 'Ann' },
    { id: 'p1', name: 'Bo' },
  ],
});

const result = applyAction(crownRush, match, {
  type: 'DRAW',
  payload: { from: 'stock' },
});
if (result.ok) match = result.state;

Everything else — UI, networking, persistence — is layered on top of these two functions. Continue to Architecture.