I am consulting for a group that is working on educational games. They would like "school pride" boards that would break down the leaderboards by school district and grade. This serves two purposes as you can image:
1. It encourages the players to learn better to get better scores.
2. It encourages the school districts to buy district licenses.
I do not understand the limits well enough to know the best way to approach this. At a quick crud glance, we could end up with 1/4 million leaderboards with thousands of players in each. Is this a problem? How could I structure the leaderboards to avoid problems?
Answer by Brendan · May 03, 2017 at 08:06 PM
From a high level, what's the intended use for the leaderboards? Having a separate statistic for each school (and each grade within that school) would indeed require a very large number of statistics - far more than are available in our regular tiers of service, though we could work with you on a custom contract that provides that. But since they'd be distinct stats, they're not something you could compare to each other. And I have to imagine that part of the goal would be to compare the students from one school with the students of another school (at least).
What it sounds like you really want is a way to store the player score along with other metadata, and then be able to use that metadata to do a variety of filters on the scores. So, show a leaderboard of all 9th graders who are in a particular district, state, etc., for example. If that's the case, you may want to approach this more as an analytics issue, using one of our integrated analytics partners or the event archive in order to process the data to get all the different views you need.
Yes, I am starting to think of it as more of an analytics system. We could still do Cloud Script calls into that system to place the data in the game UI. It really feels like something that is beyond the scope of the current leaderboard system.
Yes, the leaderboard system is designed for the more normal leaderboard type of design - a single statistic which is used to create a ranked list of the set of all players in it. Filtering that for friends is a common need, and one that we provide, but more complex arbitrary filters would rapidly increase the cost due to having to add more indices or do more complex result processing. Not that that's unattainable - it's just not something we've had requests for, so far. My own approach this what you're describing would indeed be to approach it as an analytics problem. That'll allow you to design for any set of complex needs, in terms of the queries you need to do.