Open MaxCWhitehead opened 1 month ago
It seems likely this is timeout related - I found can reproduce by pausing the game on one client before round transition. Need to make network interrupts recoverable - or keep ggrs session live / let it sync even when game is paused? Maybe in online play should not be able to actually pause game, only open the menu?
Disconnects in game should now notify player instead of just hanging. Net debug window (once update bones version) should show synchronization status / if any players are disconnected, so if do end up in a hung state, a screenshot / review of net debug window + logs could still be some useful context. The pause menu causing disconnect is also fixed.
The open question is still why might fail to synchronize / why get a disconnect on map transitions. Next step is probably to get more info next time reproduce, or review the the timeouts in ggrs involved and see if they are reasonable. It seems likely will no longer hang but indicate a disconnect in UI instead, but will see.
Description
I've repro'd this 2 or 3 times, sometimes when screen goes black during map transition, it gets stuck for all clients. Not easy to repro when I want it - but also not super rare it seems.
It is black while new ggrs session is synchronizing clients, before first advance of net session runner + map loads. I have seen this occur after both clients ggrs logged that they are synchronized, but something seems to go wrong. I suspect GGRS is still returning
NotSynchronized
, likely due to a disconnect.Need to log disconnects by default to help see, but I'm not sure it's quite that simple. I tried interrupting network during map transition, and I saw a warning that socket timed out, but ggrs never actually give a disconnect event after the 2s threshold.
I think action items are:
To Reproduce
Play network games, see if it gets stuck on map transition.
Expected Behavior
No response
Additional Context
No response
Log Messages
No response