#gamedev #networking #rollback #ggpo

ggrs

GGRS (good game rollback system) is a reimagination of the GGPO network SDK

14 releases (4 breaking)

0.5.0 Sep 13, 2021
0.4.4 Sep 1, 2021
0.4.3 Aug 16, 2021
0.4.0 Jul 29, 2021
0.1.0 Jun 15, 2021

#51 in Game dev

Download history 14/week @ 2021-06-13 2/week @ 2021-06-20 22/week @ 2021-07-11 78/week @ 2021-07-18 52/week @ 2021-07-25 39/week @ 2021-08-01 29/week @ 2021-08-08 49/week @ 2021-08-15 10/week @ 2021-08-22 25/week @ 2021-08-29 7/week @ 2021-09-05 35/week @ 2021-09-12 35/week @ 2021-09-19

108 downloads per month
Used in 2 crates

MIT/Apache

745KB
2.5K SLoC

GGRS LOGO

crates.io GitHub Workflow Status

P2P Rollback Networking in Rust

GGRS (good game rollback system) is a reimagination of the GGPO network SDK written in 100% safe Rust 🦀. The callback-style API from the original library has been replaced with a much saner, simpler control flow. Instead of registering callback functions, GGRS returns a list of requests for the user to fulfill.

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!

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 repository includes a full running demo you can try right now. The matchbox sockets are compatible with GGRS through a feature flag:

Godot Wrapper

marcello505 is currently developing a wrapper for Godot. Find the repository here:

Other Rollback Implementations in Rust

Also take a look at the awesome

Licensing

GGRS is dual-licensed under either

at your option.

Dependencies

~1.5–2.4MB
~50K SLoC