A P2P multiplayer 2D real-time engine: games run authoritatively in a Web Worker in the room creator's browser tab, clients connect over WebRTC. Game rules themselves are not part of this repo — they live in separately published, dynamically loaded game plugins.
- P2P: the authoritative host is a Web Worker in the room creator's browser tab (a Rust simulation core compiled to WASM: Rapier 2D physics at ~120 Hz, bots, binary snapshots at 30 packets/sec); clients connect over WebRTC.
- Master server: Node.js + Express +
ws— lobby, WebRTC signaling, map catalog. - Accounts: OAuth login and a global nick via a central auth service, JWT identity verified by the host, per-game rank/state synced across any master domain.
- Client: PixiJS, snapshot interpolation, client-side prediction, procedural textures, spatial audio (Howler).
- Gameplay: game rules (teams, weapons, bots, votes, chat, statistics, etc.) live in a separately published, dynamically loaded game plugin — see vimp-tanks for the reference tank-battle game.
git clone https://github.com/lgick/vimp.git
cd vimp
npm install
npm link @vimp-games/tanks # or another game plugin — see its own setup docs
npm run devDevelopment requires local HTTPS certificates (mkcert) and, only if you're changing this repo's own Rust crate, the Rust toolchain — see docs/en/getting-started.md. Playing a match needs a game plugin package installed/linked (this repo no longer ships one) — see docs/en/extending.md in that plugin's own repository.
Full documentation lives in docs/en/:
- Local setup
- Architecture
- Master server · Central auth service · Browser host · Rust core
- Client modules
- Network protocol
- Configuration
- Plugin API (engine ↔ game contract)
- Deployment
Game rules and content-authoring docs (gameplay, extending) live in the active game plugin's own repository, e.g. vimp-tanks/docs/en/.
If you find this project useful and want to support its development, starring the project on GitHub is a great way to show your appreciation!
Donations are also welcome via Bitcoin. Every contribution helps sustain the project and is greatly appreciated.
| Currency | Address | QR Code |
|---|---|---|
| BTC | bc1q0fnakv2jean57p3rjqzhq826jklygpj6gc7evu |

