Joining a full server should be queue-based instead of first-come first-serve

The Problem

As a Roblox player it can be very frustrating to join a full server due to how the join retry system currently behaves. Yesterday I was rejoining a friend in an experience that became full because I was switching into VR mode. Because the server was so tightly packed, it took me around 20-30 minutes to actually get back into the experience.

The problem right now is that Roblox doesn’t keep a queue of who is trying to join the server. When a slot opens up, it will accept the next received request to join the server, regardless of how long another person has been waiting in the retry buffer to join.

This wouldn’t be such an issue if the retry counter had a ceiling for the amount of time it backs off from retrying. As of right now, it just keeps waiting longer and longer for each retry. By the time you reach 10 retries, it becomes very likely someone else will slide into the server before your client has a chance to retry.

Empirical Proof

In attempting to prove this is how the system works, I performed an experiment with 3 accounts on a 2-player server.

After leaving the left instance retrying for a couple dozen rounds, I leave and quickly rejoin with the right instance. The right instance gets accepted in immediately. I do get in the second time because the retry happens before the other account can rejoin, but the point is moot when compared to a 40 player server that has more than a few people trying to join.


Solution?

Instead of having clients blindly keep retrying, they should instead be put into a queue where the server keeps pinging back their position in line, and they are let into the server once they reach the front of the line. This would better communicate to the user how busy the server is and would also be a more fair system for people who stay in line to join.

105 Likes

The title/most of post is currently written as a proposed solution rather than a problem; be careful with that since the proposed solution may not be the best one (ref: About the Feature Requests category)

The actual problem here seems to be that when you leave or disconnect from a session, it is hard to get back into that session and continue playing with friends / co-developers / etc if the server is near-full.

The proposed solution may not be the best one and could harm user experience in other ways (for other players). Other solutions could be:

  • Keep the slot reserved for a couple minutes to give disconnected players a chance to rejoin into the same server they just left.
  • Allow switching to/from VR mode while in-game.
  • Dynamically change server size so friends / previous players in server can keep (re)joining.
  • Notify players that your friend joined another server and prompt to switch servers, or have parties and pull your whole party into a different server.
  • etc.

This is why it’s important to highlight the problem in the title rather than a solution. Other developers can easily find the issue in search and contribute that way. (not needing to file another thread for their proposed solution)

3 Likes

That’s all true, but also the problem being described here (that is, that Roblox server joining behaviour is not queue-like) is still valid. From many of the reactions to Max’s tweets about this on Twitter, it’s immediately clear that the vast majority of people expect this feature to work as a queue, or at minimum, not to get less likely to join a server over time. While there likely is a lot Roblox could do to improve the experience of rejoining a server which would address this symptom, the root problem here is that the way users think of rejoining does not line up with the reality of rejoining, and thus I think this post is perfectly fine as-is, though perhaps some spin-off ideas could also be extracted.

9 Likes

It’s fine to propose a solution as part of the feature request, but to improve the ability for the feedback to actually be addressed, the posts should focus on the problem first and the proposed solution second!

1 Like