Releases: gschup/ggrs
Releases · gschup/ggrs
v0.11.0
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
- @jasper310899 made their first contribution in #78
- @caspark made their first contribution in #81
Full Changelog: v0.10.2...v0.11.0
v0.10.2
What's Changed
- fix: Fix result error type for bitfield-rle update to 0.2.1 by @MaxCWhitehead in #73
- update parking_lot to 0.12 by @nelson137 in #71
New Contributors
- @MaxCWhitehead made their first contribution in #73
- @nelson137 made their first contribution in #71
Full Changelog: v0.10.1...v0.10.2
v0.10.1
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
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
v0.9.3
v0.9.2
v0.9.1
v0.9.0
Changelog:
- removed
GameState
from the public API. - removed
PlayerInput
from the public API.AdvanceFrame
requests will now hand over a tuple with theInputStatus
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 callingadvance_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
toPlayerInput
- the user now has to explicitly create a socket themselves before creating a session
v0.8.0
Changelog:
GameState
now is a genericGameState<T: Clone = Vec<u8>>
, so serialization of game state to save and load is no longer requiredtrait NonBlockingSocket
now is a genericNonBlockingSocket<A>
, whereA
generalizes the address that the socket uses to send a packet.