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

Netfox does not seem to be able to recover from a clock desync #332

Closed
Riordan-DC opened this issue Nov 18, 2024 · 3 comments
Closed

Netfox does not seem to be able to recover from a clock desync #332

Riordan-DC opened this issue Nov 18, 2024 · 3 comments
Labels
bug Something isn't working

Comments

@Riordan-DC
Copy link
Contributor

✨ Description

I noticed that if I unfocus my client game window (on another computer) the time becomes out of sync. Thats ok, but netfox cant resync. It seems the time synchroniser can never fully catch back up once the time desync is outside of the history window. What appears to happen is the player sends out of date inputs (which the server ignores) and the server sends back new frames that the client cant rollback to because the history window is not large enough.

I propose a feature that is a reset which occurs when this happens. Netfox can already detect the issue, then it needs to ignore rollback and just resync the clocks, and restart history.

Use case

When would this feature be used? How is it useful to the user?

This makes netfox more robust for all multiplayer games. This issue is essentially a crash since the multiplayer system cannot work in this state.

Distribution

Where would this feature live?

  • I think the resync could be automatically done inside the TimeSynchroniser. It could perhaps trigger a signal which the roll back nodes listen for and clear their histories. Or perhaps the rollback nodes could notify the TimeSynchroniser.

Notes

I am new to the concept of rollback and perhaps I dont understand how this is meant to be solved. Happy to be corrected on this issue.

@Riordan-DC Riordan-DC added the feature New feature or request label Nov 18, 2024
@Riordan-DC
Copy link
Contributor Author

It seems there is already code in the TimeSynchronizer for panic resetting when the rtt offset is too high but this doesnt not resync with the main clock, just adjust for latency.

@elementbound elementbound added bug Something isn't working and removed feature New feature or request labels Nov 19, 2024
@elementbound
Copy link
Contributor

It's entirely possible something's broken around this. It's difficult to detect / manage external interruptions like pauses and unfocusing with networked time.

@Riordan-DC
Copy link
Contributor Author

Ill have to do more testing to see exactly when it happens. Sorry for the lack of details at the moment.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants