bevy_ggrs icon indicating copy to clipboard operation
bevy_ggrs copied to clipboard

Sprite Component doesn't get respawned after rollback

Open PraxTube opened this issue 8 months ago • 5 comments

Describe the bug The Sprite component doesn't seem to be respawned when despawning an entity with .despawn_recursive(). Other components like Transform and custom Components get properly respawned. The issue results in the entity fully functioning but being invisible (as there is no sprite).

I fully expect this to be my fault for overlooking something, but I just can't think of anything I would be doing wrong. Are there any known pitfalls for using Sprite? Any issues with rollbacks with them?

To Reproduce The setup to reproduce this rather cumbersome as you need to despawn an entity and rollback right after. The way I consistenly do this is by setting a high ping (>100ms) and then almost kill one player but save him in the last second. This results in the receiving client mispredicting and despawning the player and then rolling back and respawning him.

Expected behavior The Sprite should be respawned as well.

Screenshots I don't expect anyone to try to reproduce this, so instead here is a video showing what I mean. The perspective is from the still (orange) player. The sprite shows normally on the other player (as he doesn't mispredict his own input).

output

Desktop

  • OS: Linux (Ubuntu 16 based)

Additional context Note that I am also using matchbox in my game and it might be caused by matchbox instead of bevy_ggrs, however I believe it is a rollback issue and so I suspect the bug to be in bevy_ggrs (if there is a bug at all, totally possible that I am just missing something).

Again, I am not asking for anyone to do my work and debug my own game, I am just wondering if there are any known issues with the Sprite component.

PraxTube avatar Oct 18 '23 08:10 PraxTube