gschup / ggrs
GGRS is a reimagination of GGPO, enabling P2P rollback networking in Rust. Rollback to the future!
AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing gschup/ggrs in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewP2P 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! Live Demonstrations GGRS has two demo apps — one written with macroquad, the other with bevy. Both use matchbox for WebRTC-based matchmaking. > **Note:** The hosted matchmaking server is currently offline, so the links below will not find opponents automatically. You can still open the link in two separate browser windows on the same machine to test locally. • Bevy Demo (Repository) • Macroquad Demo (Repository) Projects using GGRS • Jumpy • Gamercade • NES-bundler • Girls with Swords (gameplay footage) • NieR Automata: Online (Youtube) Getting Started To get started with GGRS, check out the following resources: • Docs — guide covering setup, sessions, the main loop, requests/events, time sync, and more • Examples — runnable P2P, spectator, and sync-test demos • API Documentation Development Status GGRS is fairly stable. The core functionality for multiple players and spectators has not changed significantly in recent versions. See the Changelog for the latest changes, including those not yet published to crates.io. If you want to contribute, check out existing issues and the contribution guide! • Changelog • Issues • Contribution Guide Useful Links Bevy Plugin The authors of GGRS are also maintaining a bevy plugin. Check it out: • Bevy GGRS 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: • Matchbox Godot Wrapper Godot is a popular open-source game engine. marcello505 is developing a wrapper for GGRS. Find the repository here: • Godot GGRS Wrapper 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. • backroll-rs Licensing GGRS is dual-licensed under either • MIT License: Also available online • Apache License, Version 2.0: Also available online at your option.