Server Joining Priority


#1

This isn’t the first time this has been posted, but other suggestions are pretty old now and didn’t go very far in depth :wink:

As a Roblox developer, it is currently impossible to control what server a user goes to when they hit “Play”.

Background:

Allowing developers to set a priority for which servers should be joined before others would be extremely helpful for games with long rounds. For the most part, games with rounds that last > 30 minutes are almost unheard of on the front page. In general, games with rounds are rarely over 5 minutes.
While this works for some games, it won’t necessarily be fine for others. This limitation prevents many game genres, especially strategy, from reaching and staying on the front page.

One of my older games from last summer had rounds that lasted ~ 45 minutes, yet the average visit time stayed around 20. Many people didn’t get to playing the game because of this limitation, or spent a few minutes server hopping, hoping to get a server that would have a game starting soon.

While there are some solutions that can be done, they usually end up being unfriendly to the user and much less reliable. For example, one could have a datastore list of servers and a priority of joining each of them and redirect all joining users to a better server, but this would:

  • Cause double joining times
  • Likely have some issues with servers crashing (& require constant time/validity checks)
  • Use up datastore requests that shouldn’t be necessary
  • Be confusing to developers without knowledge on how to do this

Proposed solution:

Roblox developers should be able to set the priority of joining a specific server. For example, we could set …

game.ServerPriority = 10

… to have that server be joined before lower numbers when a user presses play. (Of course, this is just an example and that specific way of setting it probably isn’t that good of an idea)

Effects on games:

For developers:

  • Games would likely have a longer join time (even in games with short rounds, clicking ‘Play’ and instantly getting into a round would be great ;))
  • Games can have “soft shutdowns” for updates (instead of kicking everyone, new servers could be prioritized, letting the old ones die out)
  • More satisfied players
  • Move control over their games & freedom to have games > 30 mins

For players:

  • Less waiting time before being able to play
  • Larger variety of games (w/ new available genres & games with long rounds)

Thanks!


#2

Does it need to be a number property? Wouldn’t a boolean be enough? (whether players can join or not by clicking the Play button, unless they specifically request to join that server to i.e. follow a friend or similar)

For the case you mention where games take 30 minutes, you just set it to false right before the game starts and then turn it to true again 5 minutes before the game ends. If it were a number after all and the number priority slides up as the time remaining in the round goes down, then you still get the chance of random people joining mid-round who have to wait 15 minutes, which is not what you want.

It doesn’t really make sense to do that, I think a hard on/off switch is enough and maybe even better. I’m not convinced a number scale is needed by the given examples at least.


#3

A boolean would still definitely be an improvement over what we have now, but numbers would definitely be preferred.

Let’s use that example of a 30 player game again. Joining a game that’d have a new round starting in 5 minutes is good, but I’d still like to prioritize games that are, for example, waiting in an intermission and would start within a few seconds.

And under the example you gave, what’d happen if there were no games that would start within 5 minutes? With more options, I’d be able to prioritize games starting in 10 minutes if there were no 5 minute ones, then 15, etc.

If all we got for this feature was a bool, I’d still definitely use it, but numbers and more flexibility seems like a much better option.


#4

If there are no rounds starting within 5 minutes, start up a new server? I feel like making someone wait 10 minutes to play your game isn’t optimal here.


#5

I liked the OP, but because I like the idea of controlling matchmaking – not proposed implementation. A number priority would require every developer who wanted to use it to reimplement the same matchmaking over and over.

ROBLOX is already looking at ELO matchmaking which would allow us to do the same without reimplementing it from scratch. As for out of date servers, they should just not be joinable except by manual following to begin with.


#6

What would the Elo score be based on?


#7

#8

Sorry, I mean would the developer implement the Elo system through some ROBLOX API, or would ROBLOX control it through some other user statistics?


#9

The former of the two – ROBLOX doesn’t have enough information to automagically determine ELO rating for every game. You’d have to ask @spotco who managed client features on the Trello board for further details, as there weren’t any specifics mentioned.


#10

If rounds take long enough, and as the developer you don’t want people to be waiting, you should universes.

Using a universe, you can have a lobby place that waits for players and preps players for a round. When ready, the lobby will send the players to the gameplay place to play the round. The gameplay place can teleport all the players back to the lobby place when the match is over, or teleport individual players that get knocked out of the round if they wish to get back into another game.


#11

Problems with lobby place:

  • Players have to wait for game to be loaded when they’re ready to play the game instead of the game loading while they’re waiting
  • Players can’t join servers from the website i.e. view server list and select from there
  • Breaks up parties
  • Smaller, temporary bugs (e.g. sending new players to a 1-player-server in the process of shutting down)

Even years after the release of universes, there aren’t many successful games that use universes, and I don’t think it’s due to difficulty of implementation. Sword Burst is the only front page game I know of that uses universes, and it’s on top rated – not popular – with ratings only coming from players who purchased the game. None of the minigame places use universes, even though theoretically it’d improve player experience.