Idea

Wayne Karo avatar image
Wayne Karo suggested

Hide Players in Leaderboard

Please add a way to filter out certain players from the leaderboard.  Google Play's leaderboard API has limits and hide player, both of which would be useful.

We have 2 use cases:

1) Filter out (or only show) devs, testers, publishers, or players

2) Filter outliers from abuse (e.g. a hacker manages to grant himself the highest score)

10 |1200

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

5 Comments

·
eric@begoodi.fr avatar image
eric@begoodi.fr commented

Perhaps the best solution is to filter the leaderboard based on a key/value attached to the user, so it can cover all cases.

POST https://{
                {TitleID}}.playfabapi.com/Client/GetLeaderboard
Content-Type: application/json;
X-Authentication: <user_session_ticket_value>{
  "StatisticName": "Kills",
  "StartPosition": 0,
  "MaxResultsCount": 20,
"FilterKey": {"playerType" : "devs") }
10 |1200

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

Wayne Karo avatar image
Wayne Karo commented

That could be a solution for case #1.

For case #2, checking limits before returning the results is a validation step that automatically catches bad data that might not be flagged yet.  This is probably best implemented with it's own parameters and not part of the FilterKey solutions that @Eric proposes.

POST https://{
                {TitleID}}.playfabapi.com/Client/GetLeaderboard
Content-Type: application/json;
X-Authentication: <user_session_ticket_value>{
  "StatisticName": "Kills",
  "StartPosition": 0,
  "MaxResultsCount": 20,
"MinValue" : 0,
"MaxValue" : 1000000,
"FilterKey": {"playerType" : "devs"} }

But this may be acceptable too, although I personally find it a little awkward since you aren't really filtering out MinValue and MaxValue:
POST https://{
                {TitleID}}.playfabapi.com/Client/GetLeaderboard
Content-Type: application/json;
X-Authentication: <user_session_ticket_value>{
  "StatisticName": "Kills",
  "StartPosition": 0,
  "MaxResultsCount": 20,
"Filter": {"playerType" : "devs",
"minValue" : 0,
"maxValue" : 10000000} }
10 |1200

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

eric@begoodi.fr avatar image
eric@begoodi.fr commented

Ah OK Wayne, I see what you mean.

I thought that when you see a hacker, you manually ban him from the leaderboard by defining isHacker to true for example, and then 

POST https://{
                {TitleID}}.playfabapi.com/Client/GetLeaderboard
Content-Type: application/json;
X-Authentication: <user_session_ticket_value>{
  "StatisticName": "Kills",
  "StartPosition": 0,
  "MaxResultsCount": 20,
"FilterKey": {"isHacker" : "false") }

It does not seem always obvious to determine a max value beyond which it's a hacker and below which it's not...

 

10 |1200

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

Wayne Karo avatar image
Wayne Karo commented

Eric, that could be one way to do it.  And in fact you probably both want limits and the flag. For example, you want to filter out a hacker that didn't ever hack the high scores, or you want to filter out an impossibly high score where the player didn't yet get flagged as a hacker.

True, that limits might be hard to determine, and may be case by case for the game, and most likely they would change over time.  So if limits are implemented, they probably should be set in the dashboard or with a server call, instead of in a client request.

 

10 |1200

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

eric@begoodi.fr avatar image
eric@begoodi.fr commented

I agree, it can be useful also, the more options we have the more good games we can develop !

10 |1200

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

Write a Comment

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

Your Opinion Counts

Share your great idea, or help out by voting for other people's ideas.

Related Ideas