Skip to content

Releases: gschup/ggrs

v0.11.0

19 Dec 10:29
Compare
Choose a tag to compare

What's Changed

  • Added NieR Automata: Online as project using ggrs by @jasper310899 in #78
  • Fix/Feature: Lockstep by @gschup in #79
  • Bump example game macroquad to 0.4 by @caspark in #81
  • feat: Remove GameStateCell's T: Clone requirement by @caspark in #80
  • Expose current frame in synctest and spectator sessions by @caspark in #84
  • Allow reading P2PSession's current desync detection mode by @caspark in #85
  • Only panic when sending large packets if in debug mode by @caspark in #87
  • Fix desync detection false positive caused by a rollback by @caspark in #86
  • RFC: feat: Input type must be Default+Serde but not POD by @caspark in #82
  • fix: avoid panicking when local frame adv exceeds i8 range by @caspark in #91
  • Fix max rollback and lockstep handling by @caspark in #88
  • Add changelog entry for bytemuck removal by @caspark in #92
  • Add tracing for logging by @caspark in #93

New Contributors

Full Changelog: v0.10.2...v0.11.0

v0.10.2

23 Apr 15:29
Compare
Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.10.1...v0.10.2

v0.10.1

27 Feb 07:06
Compare
Choose a tag to compare

What's Changed

  • Report which frames checksums failed for in synctest sessions by @johanhelsing in #66

Full Changelog: v0.10.0...v0.10.1

v0.10.0

10 Nov 09:09
Compare
Choose a tag to compare

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

30 Mar 07:39
Compare
Choose a tag to compare

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

10 Jan 11:56
Compare
Choose a tag to compare

Changelog

  • added support for fieldless enums in PlayerInput

v0.9.2

17 Aug 13:07
Compare
Choose a tag to compare

Changelog:

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

v0.9.1

21 Feb 10:23
Compare
Choose a tag to compare

Changelog:

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

v0.9.0

13 Feb 21:08
Compare
Choose a tag to compare

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

17 Jan 09:16
Compare
Choose a tag to compare

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.