question

erkki avatar image
erkki asked

How to create tournament for 200 players?

We want to implement simple tournament system to our game, and here are the requirements for that tournament:

  • There is 24-hour period when players can enter the tournament
  • When entering a tournament player will be put into a group of 199 other players
  • After joining the players have 24 hours to improve their score
  • After the tournament ends we reward players depended on their rank


I have tried to think of the best way to implement this feature using PlayFab, but every time I think I have found a way, I run into a problem. I will list all the ways I have thought so far and what is the problem with them.

1) Update tournament statistic

  • Every player would be in the same leaderboard ( we don't want that )
  • Will eventually always have cheaters on top
  • Would reset the same time for everybody

2) Shared group data

  • This would be too many players accessing that data at the same time
  • The data is neither sharded nor cached so accessing the whole list is not optimal
  • Deciding what group player gets is not easy, when you have 200 join requests happening simultaneously
    • There might be overflow happening for groups

3) Friend list ( with statistic )

  • Every friend would have to be added 1 at a time (making it hundreds of API calls / user)
  • It might be impossible to add facebook friends or steam friends to the same tournaments
  • We would have to remove the friends when tournament ends (hundreds of API calls / user again)
  • Would reset the same time for everybody

4) Matchmaking

  • We would have to implement Photon to the game
  • Would be extreme amount of work to make it happen

5) Unique statistic for 200 players

  • There is limitation of 300 statistic name (so wouldn't work for over 60 000 players)
  • Deciding what statistic player gets is not easy
    • There might be overflow happening for groups

So as we can see all the possible solutions I came up with have few or more problems that prevent us from using that as a solution. What would PlayFab recommend us to use to achieve this kind of tournament we want? It would be lovely to use all the features already made for PlayFab leaderboards.

We just want to show the player the top 5 players and something like 10 players around him during the tournament. We can even let the player decide their reward rank, because most players who find a way to hack this will hack our game anyway.

It is also really important that we can split our players into groups of 100-200 and limit the time for those groups to be exactly 24hours.

Leaderboards and StatisticsShared Group DataFriends
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

1 Answer

·
brendan avatar image
brendan answered

We would recommend using an external data system to track on which players are in which groups, and to have separate leaderboards for those groups.

Simply put, you are correct that Shared Group Data is not going to be viable, as it is only meant for use with small groups of players. Likewise, you can't have each player hammering the service with hundreds of calls at a time. Either of those things would be violations of our fair use policy. We are about to introduce a new data model which can allow more players to interact with the data, but that still isn't going to provide the type of bucketized leaderboard system you want.

Now, we do plan to do a lot more with leaderboards later this year, and having the ability to bucket players into smaller-sized groups, as well as promote/demote them to higher/lower leaderboard buckets when you reset the statistic. But that isn't available in the service right now, so if you need this in the short term, using an external data system would be the way to go.

We strive to provide as many features as possible, all in a managed model so that you don't ever have to worry about the specifics of the queries and can know that things will simply scale up to any number of players. But since folks will always be coming up with new backend features, we won't ever have 100% of the things you can think of. For those cases, building external systems will sometimes be necessary (though we provide Cloud Script - and soon, more server-hosted logic options) to provide as much flexibility as we can.

7 comments
10 |1200

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.

erkki avatar image erkki commented ·

What do you mean by "...and to have separate leaderboards for those groups." ?

Because if you mean we can use PlayFab for that amount of leaderboards, that would be great. But I'm pretty sure it said that the statistics are limited to 300 unique names. And if we stick them all together in one statistic it will again be hundreds of calls to get your brackets top players.

That said, we would love to be able to use PlayFabs leaderboards with thousands of unique statistic names, guaranteeing us to be able to support million players with our tournaments.

0 Likes 0 ·
brendan avatar image brendan erkki commented ·

I mean that if you want to represent the total number of people in each leaderboard as 200, and be able to have thousands or millions of players, you'll need to use external data tables for that right now, as you cannot create thousands of leaderboards (as you pointed out) in PlayFab.

As I said, in future we'll have support for that. Right now, if you want to use our existing leaderboard system, it would be all the players in one leaderboard per statistic, and you can query by position or around a given PlayFab ID, and you can filter on global or friends leaderboards.

1 Like 1 ·
rgodart avatar image rgodart commented ·

Hi @Brendan,

about this:

"Now, we do plan to do a lot more with leaderboards later this year, and having the ability to bucket players into smaller-sized groups, as well as promote/demote them to higher/lower leaderboard buckets when you reset the statistic."

Do you already have a timeframe in mind for the release of this feature? We are also interested in it.

Thanks

0 Likes 0 ·
brendan avatar image brendan rgodart commented ·

We're working on putting together a roadmap that we can share publicly. We hope to have that on the site in the next few weeks.

0 Likes 0 ·
Valerii avatar image Valerii commented ·

Hey @Brendan

Is there any update with these features?

0 Likes 0 ·
brendan avatar image brendan Valerii commented ·

The roadmap was what we posted to our blog, here: https://blog.playfab.com/blog/playfab-roadmap-2018-q3-july-september-edition. We'll be posting our latest roadmap to the site as soon as we can. I'd recommend keeping an eye on our blog in general, as in addition to the posts on our roadmap, we post there when any major feature update occurs. Basically, every key item that can be shared publicly will be posted there first. For this specific feature, we do want to add it as soon as we can, but there are a few things ahead of it on the priority list.

0 Likes 0 ·
yalladask avatar image yalladask commented ·

Hey @Brendan

Is there any update with these features?

0 Likes 0 ·

Write an Answer

Hint: Notify or tag a user in this post by typing @username.

Up to 2 attachments (including images) can be used with a maximum of 512.0 KiB each and 1.0 MiB total.