Ggrs Versions Save

GGRS is a reimagination of GGPO, enabling P2P rollback networking in Rust. Rollback to the future!

v0.10.2

3 weeks ago

What's Changed

New Contributors

Full Changelog: https://github.com/gschup/ggrs/compare/v0.10.1...v0.10.2

v0.10.1

2 months ago

What's Changed

Full Changelog: https://github.com/gschup/ggrs/compare/v0.10.0...v0.10.1

v0.10.0

6 months ago

Changelog

  • Rename types with GGRS prefix to match rust naming conventions
  • Removed deprecated GgrsError variants
  • GameStateCell now implements debug.
  • fixed a bug where checksums of unconfirmed frames were compared during desync detection.
  • You can now trigger a desync manually in the example game by pressing SPACE.

v0.9.4

1 year ago

Changelog

  • SessionBuilder now implements debug. This requires Config::Address to have Debug
  • Optional desync detection for p2p sessions. This feature can be used by using with_desync_detection_mode in the SessionBuilder.

v0.9.3

1 year ago

Changelog

  • added support for fieldless enums in PlayerInput

v0.9.2

1 year ago

Changelog:

  • fixed a bug where sync would not work with RTT higher than SYNC_RETRY_INTERVAL

v0.9.1

2 years ago

Changelog:

  • fixed multiple local players, added example documentation for it
  • fixed save and advance request ordering during a rollback in P2PSessions

v0.9.0

2 years ago

Changelog:

  • removed GameState from the public API.
  • removed PlayerInput from the public API. AdvanceFrame requests will now hand over a tuple with the InputStatus and status of that input
  • added InputStatus enum to distinguish the status of given inputs
  • users now have to call add_local_input(..) for every local player before calling advance_frame()
  • enabled multiple players per endpoint
  • sessions are now constructed through a unified SessionBuilder
  • overhauled all generics
  • provided inputs are now generic. The user has to only supply a POD struct instead of serialized input
  • added a Config trait with types to bundle all generic options
  • renamed GameInput to PlayerInput
  • the user now has to explicitly create a socket themselves before creating a session

v0.8.0

2 years ago

Changelog:

  • GameState now is a generic GameState<T: Clone = Vec<u8>>, so serialization of game state to save and load is no longer required
  • trait NonBlockingSocket now is a generic NonBlockingSocket<A>, where A generalizes the address that the socket uses to send a packet.

v0.7.2

2 years ago

Changelog:

  • massively improved performance by improving input packet handling