Tileborne is an open-source platform for tilemap authoring, plugin-driven game tooling, and local-first multiplayer playtest.
Build maps in the Electron editor, extend behavior with plugins, and run deterministic battle-royale matches on your machine — no cloud account required for v0.1.0.
Release 0.0.1 is source-only; desktop binary distribution remains NO-GO and no desktop artifact is published.
The creator/game Ship vertical has committed evidence, while the desktop editor remains unavailable for distribution. macOS arm64 is the sole desktop 1.0 candidate; Windows, Linux, macOS x64, automatic updates, and remote crash reporting are unsupported. See the desktop release runbook.
Prerequisites: Node.js 22+ and pnpm 11+ (Corepack recommended).
git clone https://github.com/tileborne/tileborne.git
cd tileborne
corepack enable
pnpm install
pnpm --filter @tileborne/desktop dev:cdpdev:cdp launches the Electron editor with Chrome DevTools Protocol enabled for automation and debugging. For a plain dev session without CDP, use pnpm --filter @tileborne/desktop dev.
Run the full workspace gate before opening a PR:
pnpm typecheck && pnpm lint && pnpm test:boundaries┌─────────────────────────────────────────────────────────────┐
│ Electron desktop (apps/desktop) │
│ ┌──────────────┐ typed IPC ┌──────────────────────────┐ │
│ │ Main process │◄────────────►│ Renderer (React + Pixi) │ │
│ └──────────────┘ └──────────────────────────┘ │
└───────────────────────────────┬─────────────────────────────┘
│
┌───────────────────────┼───────────────────────┐
▼ ▼ ▼
@tileborne/ui @tileborne/ipc-contracts @tileborne/sdk-tileset
@tileborne/core @tileborne/plugin-api @tileborne/asset-pipeline
@tileborne/runtime @tileborne/cli @tileborne/services-*
│ │
▼ ▼
plugin-battle-royale apps/game-host (miniflare DO template)
| Layer | Role |
|---|---|
| Electron main | Window lifecycle, filesystem, plugin host, IPC bridge |
| Renderer | React shell, map editor, tileset palette, playtest viewport |
| SDK packages | Domain models, tileset parser, runtime ECS, typed IPC |
| Battle Royale plugin | Deterministic BR loop with zone, combat, loot, and replay |
| Game host | Local miniflare Worker + Durable Object for multiplayer playtest |
See Architecture spec for the full product boundary and invariants.
| Package | Description |
|---|---|
@tileborne/core |
Domain models, IDs, map/project schemas |
@tileborne/sdk-tileset |
Canonical tileset parser — autotiles, variants, animations, collision |
@tileborne/runtime |
ECS simulation, networking helpers, Pixi renderer adapter |
@tileborne/plugin-api |
Plugin manifest schema and contribution registry |
@tileborne/ipc-contracts |
Typed desktop IPC channels (Effect Schema) |
@tileborne/cli |
tileborne CLI — project, asset, map, plugin, playtest |
@tileborne/ui |
Editor React shell and declarative plugin UI |
@tileborne/plugin-battle-royale |
Official battle royale plugin demo |
@tileborne/asset-pipeline |
Asset import, license reporting, path guards |
@tileborne/desktop |
Electron editor app |
@tileborne/game-host |
Cloudflare Worker + DO playtest template (local miniflare) |
The @tileborne/plugin-battle-royale package ships a complete local-first battle royale loop:
- Perimeter spawn points, deterministic movement, and projectile combat
- Authoritative shrink zone with damage outside the safe radius
- Tiered loot crates and a single
MatchWonemission point - Deterministic replay — same seed and inputs produce identical snapshots
Open the editor, import your own redistributable tileset, and start a multiplayer playtest to try it.
Run pnpm --filter @tileborne/desktop dev:cdp to explore the editor locally.
- Contributing
- Changelog
- Security
- Docs site — build with
pnpm docs:dev - Release readiness
- Desktop release and rollback
We welcome issues and pull requests. See CONTRIBUTING.md for dev setup, testing conventions, PlanDB workflow, and PR guidelines.
MIT — see LICENSE.
CC0 sample fixtures under packages/test-fixtures/fixtures/ include per-directory PROVENANCE.md attribution. Third-party art assets are intentionally not bundled in the OSS repository.