Evertide — a pirate world running on WebGPU
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