Multiplayer catching game.
This project is currently in a hiatus due to a lack of time. Hopefully, development will continue at some point...
Currently compiles only with older versions of rustc, e.g. nightly-2018-04-10
works for me.
This video shows where we are at: https://vimeo.com/267324565.
Multiplayer synchronization works similarly to e.g. Quake 3:
- Clients periodically send their input to the server.
- The server periodically simulates the game using the inputs and then sends snapshots of the game state to all clients.
- For a smoother display, clients interpolate between the received snapshots.
- Clients can perform local prediction. (This is roughly implemented, but still feels quite derpy due to the dynamicity of the hooks.)
We have the following library crates:
hooks_util
hooks_game
: Crate shared betweenhooks_server
andhooks_client
.hooks_show
: Display the game state with ggez.
Binary crates:
I've tested only on Ubuntu 16.04 so far.
We use make
for simplicity:
make run-release
: Run bothhooks_server
andhooks_client
locally. Requirestmux
to be installed.make run-server-release
: Start only the server.make run-client-release
: Start only the client, connecting tolocalhost
.make fmt
:cargo fmt
all crates.