Nitrox
Nitrox copied to clipboard
Join queue despaghettification
- The join queue logic is now centralized in a single async method and no longer relies on fallible callbacks
- It is now impossible for the queue to get stuck even if a player crashes their game while connecting
- Players enter the queue once the base game has finished loading to reduce unnecessary delays
I agree, this PR needs a dedicated UI screen to be production-ready. I think we should go ahead and add it now because it's bad practice to merge a PR that says "Finish me later with another PR."
Would like to hear about where this is going. Should we try to restrict the scope of this PR (e.g. postpone early loading which needs more work as said above) to at least have the fixes merged ?
I think so, adding new menus sounds more like a beta feature. We do need to add at least some kind of additional UI to the loading screen, however.
How's this going ?
I took a very long break from this project because I was busy and my interests had changed, so I haven't been keeping up with things very closely. Actually, I was thinking of getting back into Nitrox, and this is a good time to do it. This PR is functional (last time I checked) but to be "polished" it still needs some sort of UI on the loading screen to show progress, or just to modify the vanilla progress bar. That would be better suited for a separate PR. Other than that, it should work (I just need to fix the conflicts).
It still works!
Would this make sense to be merge before or after #2023 ?
I don't think it matters. They shouldn't break each other, right?
The PR is ready for review now. Just one thing - currently, if the client is in the queue, the loading screen disappears and they can play as normal. However, when they start syncing it reappears and anything they did is undone. This is unintentional, but I left it in for now since it's nice to be able to jump/swim around while waiting instead of just looking at a static image on a loading screen. Should we keep this in? Maybe add something to the queue enter message to let the player know what is happening?