Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rollback Example #78

Draft
wants to merge 89 commits into
base: main
Choose a base branch
from
Draft

Rollback Example #78

wants to merge 89 commits into from

Conversation

Giesch
Copy link
Collaborator

@Giesch Giesch commented Nov 9, 2024

This adds a rollback netcode example based on the Guilty Gear Strive pseudocode docs here. This version is reliant on TCP for message ordering and handling packet loss; we can modify it to use an unreliable socket in the future. This now uses an unreliable channel and tries to account for missing or out-of-order input messages, but I haven't properly tested it with remote players.

Remaining work:

  • resolve in-code todo re: tickOnce
  • use a non-empty list or ringbuffer type for inputs
  • docs
  • fix roc_panic message handling
  • duplicate recent messages each frame
  • handle out-of-order messages
  • message instead of crash on desync
  • switch to unreliable channel, mitigate packet loss
  • test more, discover more bugs
    • address __checkstk_ms windows linking bug

@Giesch Giesch marked this pull request as ready for review November 10, 2024 02:52
@Giesch Giesch marked this pull request as draft November 10, 2024 06:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant