question

Rodrigo avatar image
Rodrigo asked

Cross-platform leaderboard vs Multiple products / Leaderboard versions

Hello, we are currently developing a tittle which will be available for Steam, Xbox, PS4 and Nintendo Switch.

Initially we had considered using playfab since it was a system which allowed for cross-platform implementations. But after some analysis of guidelines requirements from the platforms a few trick situations appeared.

The basic idea is that we would need to discover from which platform each player is, I think it is possible but honestly have not confirmed in the API, so just throwing this here. The other and biggest issue is that beyond having a cross platform leaderboard, for Sony we would have to also implement a exclusive PSN users ranking. Not sure how would you recommend filtering that?

We are considering here to simplify things and give up on the cross-platform feature and make for each platform its exclusive leaderboard. We consider the best approach to this would be to create a product for each platform with its own leaderboard ID so the data are all correctly separated, would you agree this is the best idea? Also, being honest, this would be a more economic approach for us as well, as we would distribute the users between different products and therefore avoid reaching the free limit sooner.

If we follow this approach, there is no way in the future that we can try to migrate the data from each product into a single one or trying to call multiple products/leaderboards and mixing them together to show a global cross-platform score right?

Basically our game is a platformer with something like 32 levels, each with its own leaderboard. We are considering creating a leaderboard for each update of a level we have to make in patches so we can still keep track of previous leaderboards for previous versions and still allow for users without patches to send and compete with leaderboard from previous versions forever. Not sure if this is clear.. Basically an ideal feature would be if we could use the leaderboard version feature from PlayFab and still allow users to send scores to previous versions, but for what I've read this is only possible for a short period of time right?

Well, there are a lot of points in my "question", but I hope some thoughts can be given based on my situation and how to handle it the best way possible. Will try to just summarize things.

1. Can I discover from which platform a player is so I can display a custom image next to a player rank?

2. Can I filter a cross-platform leaderboards to retrieve only results of a specific platform and get its addapted rank? (Like, in a global situation a user is 1900th, but in a platform exclusive competition he is in 800th)

3. If not cross-platform is creating several products for the same game but for each platform the best approach?

4. If starting as not cross-platform, is there any possibility of mixing them into a cross-platform leaderboard later?

5. Best approach for keeping multiple versions of a leaderboard still alowing users to update previous leaderboard versions even if they are not the most up to date one.

Leaderboards and Statistics
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

·
Sarah Zhang avatar image
Sarah Zhang answered

>> 1. Can I discover from which platform a player is so I can display a custom image next to a player rank?

Yes, you can add the field ProfileConstraints to the request body of Client API GetLeaderboard to discover from which platforms the players link to. The JSON of the request body would something like this.

{

"StatisticName": "Kill",

"ProfileConstraints":{

"ShowLinkedAccounts":true

},

"StartPosition": 0,

"MaxResultsCount": 20

}

>> 2. Can I filter a cross-platform leaderboards to retrieve only results of a specific platform and get its addapted rank? (Like, in a global situation a user is 1900th, but in a platform exclusive competition he is in 800th)

PlayFab does not natively support filtering the leaderboards based on the linked platforms. But you can request the global cross-platform leaderboard through the above API request first, then filter the leaderboards on clients based on the Platform field which being returned.

>> 3. If not cross-platform is creating several products for the same game but for each platform the best approach?

You can consider creating separate titles for each platform or creating several leaderboards for each platform in the same title. They are both feasible but suitable for different application scenarios. If the back-end game data of different platforms is highly separated, creating separate titles for each platform would be more appropriate. But if you want to simplify the synchronization of back-end game data, we would suggest creating several leaderboards for each platform in the same title. In this situation, you can also create a global cross-platform leaderboard to store the players’ global ranking.

>> 4. If starting as not cross-platform, is there any possibility of mixing them into a cross-platform leaderboard later?

If you create separate titles for different platforms, it would be difficult to merge the ranking from different titles to one leaderboard. As we discussed in the third question, to simplify the merging of the back-end data, you can consider creating several leaderboards for each platform in the same title.

>> 5. Best approach for keeping multiple versions of a leaderboard still alowing users to update previous leaderboard versions even if they are not the most up to date one.

The Leaderboard’s version is designed for the different tournament seasons. The expired Statistic Version would be no longer accepting updates. So this approach is not feasible. We would suggest you creating new leaderboards for every patch.

2 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.

Rodrigo avatar image Rodrigo commented ·

Hey @Sarah Zhang! Thanks for the answers, they were quite helpfull.

The main issue is that with the solution in 2 of filtering based on the account, playfab from what I've seen does not make it easy for me.. Because I can request only 100 entries per time and I would need to have all the entries to be able to recalculate the leaderboard only for that platform right.

Like player 300 from the global score can be the first of his platform, but will not appear if I request only the top of the global leaderboards..

0 Likes 0 ·
Sarah Zhang avatar image Sarah Zhang Rodrigo commented ·

Yes, the loading mechanism of PlayFab Leaderboard is designed as pagination loading to reduce the pressure of servers. For such a situation, you can try to use a loop to load and cache the entire leaderboard in advance before you filter it.

Creating different leaderboards for different platforms is more recommended. This solution is easier to operate and manage.

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.