question

Jeremy Rose avatar image
Jeremy Rose asked

Read Limits

I am working on a system for saving content for our game. I plan to save everything locally and periodically sync this to playfab.

I am currently creating Groups that store an Object with some meta information (small) and then a file that contains the main contents (bigger).

When I want to sync the local data I will need to read the all the meta data on playfab side.

1. List the groups for a player (PlayFabGroupsAPI.ListMembership)

2. For each group i would then retrieve that groups object (PlayFabDataAPI.GetObjects)

3. Once i have the meta data for each each object I will compare against the local version and then either upload/download the file data for that group or do nothing (most common case).

My main question is in the Limits section it only mentions Updates when describing limits. Is there a corresponding limit on reads?

ListMembership

GetObjects

GetFiles

I plan to sync the local data on startup, and when games are finished.

Also if the reads don't count, i can probably get some of the Meta information i am storing from the files GetFileMetadata with another read call.

Thanks

apisentitieslimits
10 |1200

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

brendan avatar image
brendan answered

There's no way to provide an infinite amount of any resource, so everything does have some kind of limit, ultimately. In the case of reads, there is a limit on the number of API calls that clients can make (and servers, though that's much higher, since they act on behalf of many players, potentially).

But given that all reads result in incrementing the read meters (https://docs.microsoft.com/en-us/gaming/playfab/features/pricing/meters/meters), I would recommend reviewing that information, as well as our best practices guide (https://docs.microsoft.com/en-us/gaming/playfab/features/pricing/consumption-best-practices) to inform how you want to approach using reads (and writes) in the service.

If you'd like to discuss the specifics of your game model, feel free to post the high-level experience you're looking to create for players and how you're currently thinking about data usage, and we can provide feedback and recommendations.

1 comment
10 |1200

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

Jeremy Rose avatar image Jeremy Rose commented ·

Is this the right way to look at possible costs expected during release while in development.

Comparing the numbers found here for the different plans

https://playfab.com/pricing/

And then comparing them to the numbers shown on the billing summary page?

https://developer.playfab.com/en-US/r/s/...../billing-summary

The rates show free, i assume because of development mode.

It would be really nice to be able to see pricing using the standard plan at least.

Or be able to select instead of just free.

Thanks

0 Likes 0 ·
Jeremy Rose avatar image
Jeremy Rose answered

Thanks Brendan, I will look those over some more but let me give you a high level outline of what I am wanting to store and see if you have any insights.

Basically our game the player is able to create some of their own content.

Lets call this a mission. These missions are arranged into scenarios the player can also create.

The scenarios contains some character data, while the mission contains the level, enemies etc.

My plan was to map each of these scenarios and missions to a Group Entity.

The player would own be the admin member for the group so i can get all of that players scenarios and missions.

Scenario 1 -
Mission 1
Mission 2

Scenario 2 -
Mission 1

I store some smaller meta information checksum, date, name as a group object. And then the actual data as a file attached to that group.

We are planning to have limits where players can have 5-10 scenarios and each scenarios could have maybe 5 missions.

I am not to worried about cheating with this data so keeping it stored locally is not an issue.

The thing we want to do though is allow the player to move between devices (mobile, pc) and have their content scenarios and missions go with them. Editing would be a bit easier on the PC for example.

So i need to be able to sync the local state to the cloud and back again. I liked the idea of having the data in a kind of finer level of storage (groups).

Vs the other option of just combine it all into a single file and upload it. But this means anytime anything changes i may have to upload/download a lot of unchanged data.

Another idea i had was to try and combine the meta information into a single file that can be saved on the Players entity, It can then compared to the local state. This would save a lot of GetGroup, GetObject, GetFIles calls.

So maybe something like this a better way while still keeping the content as a Group File.

Our hope is that missions would be around 200k-500k.

We have another idea of a mission template. But it would work the same with whatever works for above.

Thanks

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

Error rendering WebPanel (widgets/consolidation-widget.ftl): org.hibernate.hql.internal.ast.QuerySyntaxException: AvailableConsolidation is not mapped [from AvailableConsolidation up where up.node = :node]