Dead Wake Engine · the full source · one zip
A co-op shooter you can read, run and build on.
Dead Wake is the 4-player zombie shooter aboard a cruise ship that you can play on this site. This is everything it is made of: the three.js client, the server-authoritative WebSocket room server, the tests and the pipelines. For builders who want a working co-op browser game to learn from or start from, not a template.
- $89once
- 48,968 linesTypeScript
- 4 playersserver authoritative
Stripe takes the card. Your download appears on this page the moment the payment clears, and the same link arrives by mail.
Measured on 4 November 2026
What is in the zip, counted
One repository, src/ and server/, as it stands on the commit you download. The counts are from the repo, not a brochure.
48,968
lines
TypeScript across src/ and server/
1,020
tests
vitest, in 98 files
403
commits
since 15 October 2026
15 Hz
snapshots
the room to every player
The part worth the price
How a shot travels
The room is the authority. A client sends what it intends, the room runs the horde on the real ship data and decides what happened, and every player gets the same snapshot 15 times a second. The client predicts its own movement so it never waits, and takes the server's word on damage, magazines and reloads.
Client intent to screen
01
Client intent
Move, aim, fire, reload, interact. Movement is predicted locally.
02
Room sim
The horde, rounds, doors, barricades, pickups, downs and revives, on the server.
03
Snapshot
15 a second. Players as packed arrays, zombies as binary rows.
04
Client interp
Smooth between snapshots; damage, magazines and reloads confirmed by the room.
One zombie in one snapshot · a cell is a byte
A zombie that changed
29 bytes
the full row, sent in the tick a zombie changed
A zombie that only moved
10 bytes
the motion row, sent when nothing else about it changed
15 snapshots a second · players as packed arrays · about 6 KB/s per player early, 17 KB/s with 40 zombies on deck
Room rules the server enforces
| Rule | Value |
|---|---|
| Players per room | 4 |
| Revive a downed teammate | hold 3 s |
| Bleed-out after a down | 30 s |
| Dropped seat kept for rejoin | 5 min |
| Snapshot rate | 15 a second |
| Bandwidth per player | about 6 KB/s early, 17 KB/s with 40 zombies |
What is inside
The whole game, with its tooling
The co-op room server
server/rooms.ts and src/net/world.ts. The room runs the horde on the real ship data: rounds, doors, barricades, pickups, points per player, downs, revives and bleed-out.
Client prediction
Movement is predicted on the client; damage, magazines and reloads are confirmed by the server.
Voice chat
Teammates talk in the room, with a volume per teammate.
Rejoin from the invite link
A dropped player comes back to the same run; the room keeps the seat 5 minutes.
A global leaderboard service
The service the live game reports to, with the client code that talks to it.
A GPU-tier boot plan
Four quality tiers picked at boot, and a frame governor with dynamic resolution.
The horde renderer
Near zombies on skinned rigs, the far crowd on a vertex-animation texture.
20 guns
Each with its recoil and ADS code.
Procedural audio
No audio files. Every sound and the music are synthesised with the Web Audio API.
The QA harness
scripts/qa: Playwright, with multi-browser co-op tests.
The Blender pipeline
scripts/blender: converts Mixamo characters and bakes the far LOD.
1,020 tests
vitest, in 98 files, run with one command.
What is not inside
The Mixamo characters and clips
The six zombie characters, the four survivor characters and the 36 animation clips come from Adobe's Mixamo, and Mixamo's terms forbid redistributing them. They are not in the zip. You download them free from mixamo.com with your own Adobe account and run the included convert script; the zip's README documents the step.
Assets
| Asset | In the zip | Licence |
|---|---|---|
| Poly Haven textures and HDRI | yes | CC0 |
| Oswald and Inter fonts | yes | OFL |
| Generated voice lines | yes | included |
| 6 Mixamo zombie characters | no, you download them | Mixamo terms |
| 4 Mixamo survivor characters | no, you download them | Mixamo terms |
| 36 Mixamo clips | no, you download them | Mixamo terms |
Licence
Personal, paid once
- One buyer. Use it in as many of your own projects as you like.
- Commercial use is allowed: ship and sell what you build on it.
- No resale or redistribution of the source, or of a substantial part of it, as a kit, template or starter.
How delivery works
Pay, then the download is on this page
01 Stripe takes the card and sends you back here. The page checks the order and shows the download.
02 The receipt mail carries the same link. Keep it: the URL is your personal access.
03 The link always serves the current zip. When Dead Wake ships, the zip is replaced and your link keeps working.
Price
$89, once
$89
One payment, personal licence, the full source as a zip, updates at the same link. No subscription, no seat count, no key to lose.
Questions
Before you buy
- Can I get a refund?
- Within 14 days, if it does not run for you. Mail alex@alexsssaint.com with your order reference and what you tried.
- What happens when Dead Wake updates?
- The zip behind your link is replaced when Dead Wake ships. Your link keeps working; download again and you have the current source.
- Is there support?
- None promised beyond the README. It documents the install, the room server and the Mixamo step, and the tests say what every part is meant to do.
- Can I ship a game built on it?
- Yes, commercially, under your own name. What you cannot do is sell or give away the source itself, or a substantial part of it, as a kit or template.