Is an Open Group the best way to generate the list of online players (and rank it according to a statistic)?

would like to display in game list of online players with their ‘ELO’ statistic as ranking metric for the list.

Is an Open Group to which you add all players when they connect and disconnect them when they leave the right approach?
Tried my best on the documentation…

Hello @Ploulack

When you say “list of online players”, do you mean ALL players connected at that moment in your game? Or only in your group/party?

If it’s the former, then yes, an Open Group that all players connect to automatically when logging in would be the best approach for this.

I’m assuming that your number of players is still relatively low, and you want them to be able to find each other. This approach would need some optimizations if the number of connected players is very high, like thousands of them.

Thank you.
Yes, I do mean all players connected with a cap at 100.
Great that Open Group will work.

Is there a better way to get a statistic for each one in the group? So that if, say, we have 200 online, we can get the 50 above and the 50 below the user based on the user’s ranking?

Hello @Ploulack

Sorry for the delay, I have been busy traveling.

Being able to see all your possible opponents and be able to choose who to face from a list seems like a viable solution only if the number of connected players is extremely low, as we already mentioned.

If the number of concurrent users begins to grow, it is better to use systems like Matchmaking, which are precisely systems specialized in finding fair games between players.

Maintaining an always-updated list of all the online players who enter and exit the game and their statistics can be very expensive in terms of API calls. You may also encounter frequent list desynchronization issues.

So my recommendation would be, use that Open Group for now so all players can see each other, but think about implementing a matchmaking system to create fair matches using player rankings.

Sorry for the delay, I have been busy traveling.
No problem, this is a longish term discussion.

Can the matchmaking send back a list? Say I have 1000 connected players (the dream in VR… :slight_smile: ), and I want to display to my user the 20 users above and below their league points, can matchmaking be used for getting that list?

Because there’s a big difference between a queue and clicking on a list, checking profile and various stats before sending out an invite or clicking to where that player is (we have an ‘open play area’).

I have to try to awake this thread again.
Use case feels genuine and useful.
Instead of putting the players a queue i want to let them pick who they want to challenge. And for that display in game for each users what are the X closest (in terms of leaderboard metric) online players.

Hello @Ploulack

I’m thinking about using Matchmaking to get that list of Online users that are within X range of ranking, but without creating a session/match, but I’m not sure if this is possible, or in case it’s possible if it would give your desired result.

We still have the problem of Volume of users. If there are 800 Online users within your Ranking range, it would be quite problematic to query and mantain that online list of users. You still need somehow to segment that amount of users, and limit it to 25 or 50 users max.

Question: Why are you not using Matchmaking? Matchmaking is the tool to connect players together withing certaing range of Ranking. What is the purpose of having that “public player list” to challenge manually? It would be great to have more information about this.

The 25-50 limitation is not a pb, it’s actually the target length of that list.

Matchmaking is

  • anonymous until the match
  • with necessary search expansion rules you don’t really control who you end up playing with
  • you don’t ‘see’ that ‘there’s this users that I played with two days ago, I’ll invite that user’
  • all the criterias need to be embedded in the search whereas when you display a list you can also display the social reputation, the ping, etc. without having to enter complex matching algo.