LeoTube
gameplay recording soon

Evertide — a pirate world running on WebGPU

— viewsbuilding

Leo Brando

@leo_brando_

Third-person sailing, multiplayer cannon combat

A pirate world in the browser. You sail a living wind in third person, fight other crews with cannons, and take damage that actually means something.

No HP bars: the hull damage model is spatial. Cannonballs punch holes, holes flood, and a flooding ship handles worse until someone patches it. Around that sits a physical loot loop, tiered seas with storms and world bosses, faction war, crews, accounts and progression.

Server-authoritative throughout, strict TypeScript everywhere, rendered on WebGPU.

How it's put together: · packages/shared — pure deterministic game logic (waves, wind, ship sim, hull, loot, bots, world events) with zero dependencies and a zod WebSocket protocol. Unit-tested, and the reason client prediction matches the server. · apps/client — Vite + React 19 + react-three-fiber on a WebGPURenderer, with a TSL ocean, a filmic post pipeline, and snapshot-interpolation netcode. · apps/server — authoritative uWebSockets.js: single room, 20 Hz simulation, 10 Hz snapshots, argon2id + JWT auth, PostgreSQL via Drizzle.

Art is procedural low-poly plus Kenney CC0 kits.

  • uWebSockets.js
  • React 19
  • react-three-fiber
  • WebGPU
  • PostgreSQL
  • Drizzle

2 comments

  • @javier 5 days ago

    el barco inundándose cambia todo el combate, no lo esperaba

    17

  • @anon_dev 3 days ago

    WebGPU in production already? how is browser support treating you

    11