I am trying to create a trophy system with the following specifications:
1) there are 12 trophies based on various statistics (games played, games won etc.)
2) each trophy has 4 steps (Bronze, Silver, Gold, Platinum) with increasing values to reach
3) players receive a different reward for each step
4) trophies are based on a season (typically 3 months), at the end of the season all trophies are reset
5) system should keep tracking of old seasons (at least which trophies have been obtained by the players)
6) players could view which trophies other players obtained in the current season
so, my idea is to create 48 achievements (12 trophies for the 4 steps) and 12 leaderboard (one for each trophy), partitioned based on current season (id of the season or a simple index). The achievement should be Repeatable to be achieved in different seasons. The achievement should be triggered by the relative leaderboard, with a different filter based on the relative step.
My question is: how achievement trigger deal with leaderboard partition? Only the partition selected in the event is considered?
I think this could be the simplest way to achieve this behaviour, alternatively I could use a runtime to store older season, but I should find a way to "reset" leaderboard and/or achievement to start a new count for the new season.
Thats definitely an interesting way of achieving this I mean using achievements for the ranks, you could partition your leaderboard by Season/Date, GamesPlayed and GamesWon then use that to trigger your achievements.
I don't know if you have seen this but this is also an option, this one works without achievements but could trigger them easily from the cloud code if you need to:
Thank you for the answer.
It could be interesting to know if, from a performance point of view, it's better to create a single partition with many segmentations and query among them or create multiple leaderboard and make multiple requests to update/query them.