P2P Rollback Networking in Rust
GGRS (good game rollback system) is a reimagination of the GGPO network SDK written in 100% safe Rust
If you are interested in integrating rollback networking into your game or just want to chat with other rollback developers (not limited to Rust), check out the GGPO Developers Discord!
Live Demonstrations
GGRS has two demo apps you can try in the browser! One written with macroquad, the other written with bevy. Both use matchbox. Try it out with a friend! Just click the link and match with another player! (You can also open the link in two separate windows to play against yourself)
Projects using GGRS
Getting Started
To get started with GGRS, check out the following resources:
Development Status
GGRS is in an early stage, but the main functionality for multiple players and spectators should be quite stable. See the Changelog for the latest changes, even those yet unreleased on crates.io! If you want to contribute, check out existing issues, as well as the contribution guide!
Useful Links
Bevy Plugin
The authors of GGRS are also maintaining a bevy plugin. Check it out:
WASM support through WebRTC sockets
If you are interested to run a GGRS application in your browser, check the amazing Matchbox project! The matchbox sockets are compatible with GGRS through a feature flag:
Godot Wrapper
Godot is a popular open-source game engine. marcello505 is developing a wrapper for GGRS. Find the repository here:
Other Rollback Implementations in Rust
Also take a look at the awesome backroll project, a completely async rollback library. Special thanks to james7132 for a lot of inspiration and fruitful discussion.
Licensing
GGRS is dual-licensed under either
- MIT License: Also available online
- Apache License, Version 2.0: Also available online
at your option.