Skip to content

Sh4rK/dontfall

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Don't Fall

Real-time, server-authoritative multiplayer arena game. Move across a floating grid of tiles that shake then fall; dash to bump opponents off the map. Last player alive wins. Backend is Deno; frontend is HTML + ES Modules with Three.js. 2–8 players per room, no bundlers required.

Quickstart

Requirements: Deno (latest stable).

Start the server:

deno run -A backend/server.ts

Then open http://localhost:8000/ in a browser. Optionally pass a room with ?roomId=custom. Health check at /health. WebSocket endpoint at /ws?roomId=.

Controls: Arrow keys to move, Space to dash.

Backend (brief)

Single-process, server-authoritative simulation that also serves the static frontend.

  • HTTP: serves files from frontend/ with entry at frontend/index.html
  • WebSocket: upgrade at GET /ws?roomId= for gameplay
  • Health: GET /health
  • Loops: fixed tick TICK_RATE for simulation and STATE_SNAPSHOT_RATE for snapshots

Key files:

See details in backend/README.md.

Frontend (brief)

Single-page client using Three.js, ES modules, and light prediction/reconciliation. Connects via WebSocket to the backend.

Key files:

See details in frontend/README.md.

Project structure

  • backend/ — HTTP + WebSocket server, simulation, validation, leaderboard
  • frontend/ — HTML + ES modules client
  • SPEC.md — product and technical specification
  • README.md — this document

Development

  • Run tests:
deno test -A backend/game_test.ts
  • Server constants live in backend/config.ts and are mirrored client-side in frontend/constants.js. The server remains authoritative.
  • Edit frontend files and refresh the page; no build step needed.

About

A simple multiplayer game vibe coded in a few hours.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published