Blip β a pirate-themed deduction game for ages 9β12. Six hidden sea creatures lurk on a 4Γ7 grid. Fire cannonballs to find them all before you run out of shots.
- Serve locally (see below) and open
http://localhost:3000. - Pick a level: n00b, ninja, or hacker.
- Tap any cell to fire a cannonball β a creature pops up on a hit, a β marks a miss.
- Find all 6 beasts to win. Run out of shots and it's game over.
| Level | Shots | Beasts hide⦠| Hints? |
|---|---|---|---|
| n00b | 22 | In straight lines | No |
| ninja | 16 | Anywhere (scattered) | Yes β Captain Blip whispers a row or column after each miss |
| hacker | 12 | Anywhere (scattered) | No |
No timer β it's all about the shots.
With Bun:
bun run devWith Docker:
docker build -t blip .
docker run -p 3000:3000 blipThen open http://localhost:3000.
Note: The game uses ES modules (
type="module"), so openingindex.htmldirectly viafile://won't work. A local server is required.
bun testblip/
βββ index.html
βββ server.js # Bun static file server
βββ tests/
β βββ game.test.js # unit tests (bun:test)
βββ public/
βββ css/style.css
βββ js/
βββ game.js # pure logic β board building, hints, constants
βββ main.js # UI β 5-screen state machine, DOM, events
βββ matrix.js # Matrix rain canvas (unused, kept for later)
βββ sound.js # Web Audio sound effects
- Vanilla JS (ES modules, no build step, no dependencies)
- Web Audio API for procedural sound effects
- Pure CSS/HTML Captain Blip mascot (pirate face, 3 moods)
- Fonts: Bangers + Patrick Hand via Google Fonts
- Unit tests (game logic β board placement, hints, adjacency)
- Mobile touch support
- Multiple creatures with per-type colours
- Pirate/comic-book redesign with Captain Blip mascot
- End-to-end tests (Playwright)
- Dockerfile for containerised deployment
- Makefile with
dev,test,build, anddockertargets - CI workflow (GitHub Actions β build and push image to Docker Hub)
- Custom favicon (Captain Blip)
- Early-loss rule: end the game when shots remaining < beasts remaining (unwinnable state)
- Per-level theming: distinct background/palette for ninja and hacker to reflect increasing danger
- Center the game layout on all screen sizes (mobile and large desktop)
