Hi,
We'd like to use PlayFab for one of our projects currently in development, and we have a few questions on some of our specific use-cases. Most importantly, if we can use PlayFab for our scenario as well as perhaps some help in best practices.
Use Case
Our current project features a collection of mini-games. These mini-games also contain leaderboards to show how well the user did & to add a competition element. In addition, we allow the player to select their specific region (you could think of it as a country) which we would like to also have its own sub/child leaderboard. These leaderboards would reset after a period of time, and give the player that was in the "top 10" an "achievement-like" reward. This achievement contains information of:
- The specific minigame
- Bronze/silver/gold "medal" (or 10/100/500), for a specific region!
- The period at which the achievement was achieved (example: April)
Problems / Questions
Now the obvious solution to this is to make the leaderboards in question, add prize tables & make items. However, upon researching this we ran into some trouble:
1. There is a leaderboard limit of 300
Making a simple calculation here, our initial estimate for the amount of leaderboards we need based on the region & mini-game requirement would be at around ~200. This would be enough for now, but as we make more mini-games this could exceed the 300 mark. Note that this number assumes we need a new leaderboard per mini-game, per region.
Is there a hard-cap at this amount? Can you think of a different solution which would solve the same use-case?
2. Leaderboards are made beforehand, manually
Even if this limit can exceeded, making 200 leaderboards is quite the chore. In the past (other games), we've implemented our own solution for leaderboards using Azure & Redis Cache. There, you can make a whole lot of sorted set containers by just changing the "leaderboardid" string based on parameters & letting it create the container.
As far as I can see, there is currently no way to generate leaderboards... is that correct?
3. Items are made beforehand, not dynamic
Our initial idea was to give the player an item using the leaderboard "prize tables", which does roughly what we want. However, the problem here is that the "item" is an achievement which will always be dynamic because of the data we need from it. (when was it given to the player?)
Looking at other avenues to do this, we found that we could a CloudScript triggered by Task Scheduler which Updates / Adds player data to those who got "top 10". This data could then contain the date & be read-only for the client to parse into a visual "achievement" item. Does this sound like a good solution?
Hoping to find out some answers, as you see in our use case these are crucial for our game!