Skip to content

Repository files navigation

VIMP

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.

game video

  • 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.

Quick start

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 dev

Development 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.

Documentation

Full documentation lives in docs/en/:

Game rules and content-authoring docs (gameplay, extending) live in the active game plugin's own repository, e.g. vimp-tanks/docs/en/.

Русская версия

Interface

interface

❤️ Supporting the Project

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 BTC QR Code

About

Multiplayer 2D real-time action game engine powered by WebRTC P2P, authoritative browser host (Rust/WASM physics), and PixiJS.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages