A DIORAMA GAME · BY CHRIS COOLEY
Salvo Bay.
Sink what you can't see.
A ship-hunting duel on a cutaway tabletop: two glass trays of water, a dock, a fort and a lighthouse. Hide your fleet, then trade shells across the table.
01 HOW TO PLAY
Place. Fire. Sink. Win.
- 01
PLACE
Hide your fleet
Pick a ship on the dock, then a cell in your bay. R turns it, RANDOM deals a fleet. Four ships on the classic 8 × 8 bay, five on the big bay.
- 02
FIRE
Call a cell
Tap a cell in the enemy bay. The shell arcs over the table: a splash and a white peg is a miss, a fireball and a red peg is a hit.
- 03
SINK
Finish what you hit
Hit every cell of a ship and it rolls over and settles on the bottom, where you can still see it through the water.
- 04
WIN
Clear the bay
Sink their whole fleet before they sink yours. The end card has your shots, accuracy, best streak and time.
arrows move the cursor · Enter places or fires · R turns a ship · X random fleet · S start · V view · L log · P pause · M mute. Phones: tap a ship, tap a cell; drag to orbit, pinch to zoom.
02 WHAT'S IN THE BOX
A whole harbour on one table.
Three bots
Easy fires at random. Normal hunts on a checkerboard. Hard counts every place your ships could still be. Measured over 300 matches each, to sink a classic fleet they take 41.7, 33.4 and 29.0 shots.
Pass and play
Two people, one screen. A curtain hides each fleet while you hand over, and the table turns to whoever is firing.
Online
Two screens over a room server, with an invite code and a link to send. Fleets never cross the wire until the end, when each is checked against the hash it locked in and every answer it gave.
Two bays
Classic: 8 × 8 and four ships. Big bay: 10 × 10 and five, with the Walrus.
Night watch
Switch to night and the lighthouse sweeps the bay. Orbit the table with a drag, pinch to zoom, or pick a view.
Shot log and stats
Every shot in the log, a turn banner, rematch, and your record against each bot on this device.
03 BUILT ON FIZLET
No libraries. No engine but a tiny one.
The whole table, every ship, shell, splash and the lighthouse's beam, is software 3D on a plain 2D canvas, from Fizlet's bricks. No runtime dependencies, no WebGL, no images.
@fzlt/core/kernelthe fixed-step loop, settle and Recall@fzlt/core/dioramashapes, the depth sort, shadows, picking@fzlt/core/soundthe cues@fzlt/core/presencethe room for online play@fzlt/core/uithe Board UI keys and cards
MEASURED · GZIP
- The whole game
- 47.6 KB
- This hero
- 41.0 KB
Built 2026-11-13, from dist/ in the repo. The game's step allocates nothing: 0 young GCs over 200,000 sim steps.