A mini multiplayer game written entirely in Rust โ featuring an async Tokio TCP server, WGPU-based GUI client, and a CLI client alternative. Designed to be real-time, modular, and highly testable.
Features:
- โ๏ธ Lobby system
- โ๏ธ Hider/Seeker role logic
- โ๏ธ Custom JSON protocol
- โ๏ธ Procedurally generated map
- โ๏ธ Full async & multithreaded code
- โ๏ธ Unit & integration tested
- โ๏ธ Ingame Chat (CLI only so far)
You can download the latest release here
Run server
rust_multiplayer serverStart client (new player):
rust_multiplayer playerPlayers who connect are placed in the lobby. Once all click Ready, the game begins:
One player is randomly selected as the Seeker. The Seeker left-clicks entities to uncover hidden players:
- โ A wrong guess costs a heart
- ๐ก Finding a real hider uncovers them
- ๐ Game ends when time or lives run out
Server:
- Async TCP server built with [Tokio]
- 2 main tasks loops:
- networking handling incomming connections, handling requests, forming responses
- game world managing game states, updating entities
- Players are decoupled from entities (ECS-style)
Client:
- Abstractian over TCP request-responses
- Multithreading friendly
- WGPU frontend
Tests:
- Unit tests coves complex logic
- Integration tests covers cleint-server requersts and state transition
Run:
- server mode
rust_multiplayer.exe server, server will be exposed on default address, - client mode
rust_multiplayer.exe player, client will be conencted to server, server assigns random player name - cli mode
rust_multiplayer.exe client, in development, executing requests
[Tokio] โ async runtime [Serde] โ serialization [WGPU] โ GPU rendering [Clap] โ command-line parsing [thiserror] โ error handling

