gschup / ggrs

GGRS is a reimagination of GGPO, enabling P2P rollback networking in Rust. Rollback to the future!
Other
507 stars 25 forks source link

Report which frames checksums failed for in synctest sessions #66

Closed johanhelsing closed 9 months ago

johanhelsing commented 10 months ago

And also report all mismatched frames, not just the first one.

This makes it much easier to debug desyncs, as it tells you exactly which frame(s) you should look into.

Synctest checksum errors now look like this:

Detected checksum mismatch during rollback on frame 308, mismatched frames: [305, 306]
johanhelsing commented 10 months ago

Or maybe not... We've been through that frame before multiple times already. It's getting a bit late here.

johanhelsing commented 9 months ago

Having worked on a couple of hard desync issues in bevy_xpbd, I've come to the conclusion that this is really useful after all.

I changed it to be very explicit. It now reports which frame it did the checksumming (current_frame), and also all frames that didn't pass the check (mismatched_frames).