Sovereign Storm is a pirate-era naval blockade game: browser-first, multiplayer, and turn-based. Captains plan a round of moves and cannon fire in secret, submit, and watch the server resolve every ship’s actions simultaneously into a single deterministic replay. It is built as a TypeScript monorepo with a Phaser 3 client, a server-authoritative Colyseus game server, and a shared wire-contract package, and ships five distinct match modes spanning team PvP, co-op expeditions, a boss fight, and free-for-all.

This wiki is a portfolio-level tour of how the game is designed and built. The source code lives in a private repository; this documentation describes the architecture and mechanics without exposing secrets or operational credentials.

  • Game Design — the simultaneous-turn combat loop, vessels, and what makes each round a planning puzzle.
  • Match Modes — Blockade, Voyage, Hunt, Free-for-All, and The Odyssey.
  • The Odyssey — the themed PvE expedition mode and its looter-shooter future.
  • Architecture — the monorepo layout and the three packages.
  • Multiplayer & Netcode — server-authoritative resolution and the plan/submit/resolve/replay flow.
  • Developer Guide — running the project, hosting a session, and testing.

Key Facts

What it isTurn-based, multiplayer naval combat — plan moves and cannons in secret, resolve simultaneously.
GenreNaval tactics / simultaneous-turn strategy
StackTypeScript, Phaser 3, Colyseus, Node, Vite, pnpm workspace monorepo
ArchitectureServer-authoritative — one room resolves the round and ships a full replay to clients that only animate.
ModesBlockade · Voyage · Hunt · Free-for-All · The Odyssey
HostingSelf-host with a one-command Cloudflare quick tunnel to share with friends.
StatusPre-playtest; core loop and all five modes playable.

Source of Truth

The canonical design and code live in the main repository: github.com/blamechris/sovereign-storm. This wiki mirrors that source; when a documented behaviour changes there, the relevant page here is updated to match.