A browser-based online co-op wave-survival shooter for up to 8 players. Pick a sci-fi pixel fighter, share a room code with friends, and survive escalating waves of zombies and ghosts across a glowing alien landscape.
- Move:
WASD(or arrow keys) - Aim & shoot: mouse (hold left button)
- Ability:
Space(each character has a unique one)
Enemies come in two flavors: 🧟 zombies (slow, tough, hard-hitting) and 👻 ghosts (fast, fragile, floating). A monstrous alien boss shows up every 5th wave. Team shares a lives pool — when someone falls they respawn from the pool; run out and it's game over. Grab 💚 health and ⚡ power-up pickups between fights.
| Character | Profile | Ability | |
|---|---|---|---|
| 🦾 | Bionic | Fast, fragile, rapid fire | Dash — blink forward |
| 🤖 | Robot | Slow tank, heavy hits | Shield — temporary armor |
| 👾 | Android | Balanced all-rounder | Overclock — fire-rate burst |
| 🛸 | Drone | Glass cannon, very fast | Boost — speed burst |
| 🦿 | Mech | Toughest, hardest hitting | Slam — AoE damage |
npm install # first time only
npm start
Then open http://localhost:3000. (Or just double-click start-game.bat.)
This runs locally. Others can join if they can reach your machine:
- Same Wi-Fi / LAN: they open
http://<your-LAN-IP>:3000(e.g.http://192.168.0.63:3000). You may need to allow Node.js through Windows Firewall the first time. - Over the internet: use a tunnel such as ngrok —
ngrok http 3000— and share the public URL. (Deploying to a host like Render/Railway/Fly is a later step.)
- Client: HTML5 Canvas + vanilla JS, procedural pixel-art sprites (no asset files).
- Server: Node.js + Socket.IO, authoritative simulation at 30 Hz; clients send input and render interpolated snapshots.
- Files:
server.js(game server),public/(index.html,style.css,sprites.js,game.js,shared.js— shared constants/roster used by both sides).