question

marcos avatar image
marcos asked

More Complex Player Data

Hello. We are planning a migration of our game backend to Playfab. We're doing R&D right now, running basic tests and everything looks great so far.

I have a fundamental question regarding data management: is not possible in Playfab to store data other than in key/value pairs, in the predefined places?

We have hard title data, and we also persist mutable player information. Progression, unlocked content, and so on, a sort of live "savegame" which means we have tables of arbitrary lenght, containing data such as lists of stuff, non-linear story progression, etc. Not that complex, but far exceeds what a single table of keys and values can offer.

There is no alternative to this? Whats the idea for cases like this, to have a separate database aside from Playfab?

Also one more question: there are no data import procedures that we can make use of? I noted that the official recommendation is to migrate the data through the game client, that remains the same?

Thanks in advance for any assistance.

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

·
brendan avatar image
brendan answered

Yes, we have Entity Objects and Entity Files in the newer data system (https://docs.microsoft.com/en-us/gaming/playfab/features/data/entities/index). Given the description of your player data, it sounds like an Entity FIle would most likely be what you want to use - that can be any arbitrary file type, including binary.

As to data import, yes, you would either use a custom game server, a script (Azure Functions would be my recommendation - we'll be rolling out an integration with that early in 2020), or let the client be authoritative about the data (only if you don't have any concerns about cheating).

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

marcos avatar image marcos commented ·

Hello there, thanks for the answer.

It may seem the entity objects are what we would need, given that in our current configuration we already have Restful endpoints receiving and returning json data, but the scope of those in Playfab seems fairly limited. I have found some information on this, but can you clarify what are the limitations of the entity objects for the paid tiers?

If I understand correctly, instead you propose we download files, and work with them, then update the entire file again. Im getting this correctly? This is something that no one coming from modern restful world would do.

I feel like Im missing the idea or philosophy Playfab proposes. Our case is not rare, we have multiple and constant flux of information from server to client and viceversa, but it feels like beyond what is hardwired in Playfab (like the economy or inventory management), every direction we move we stomp into hard constraints.

Remains unclear for me if its because we dont get the underlying approach we should be taking.

I guess Im asking what is the solution playfab proposes to games with database needs? Where you have custom data, requiring atomic transactions?

Hope it makes sense! Thanks again.

0 Likes 0 ·
brendan avatar image brendan marcos commented ·

The limits in this post are still accurate: https://community.playfab.com/questions/13455/limits-for-pro-tier.html. If your data can fit in the space available for Objects, then yes, that would be the way to go - it just sounded like you had more in mind than that.

The two things I would highlight about the Object system are:

1. They're kept to a limited number and size specifically because they are passed back in the context of profiles as well - so, with leaderboards, for instance. So we need to be able to manage a potentially large number of them with minimal query time and cost.

2. The "max" is not what you see in the limits. That's the limit set for paid tier titles in general, in order to help keep costs down (so that we can continue offering the tiers we have right now). In an Enterprise agreement, we can set that higher.

But as to your broader question, PlayFab is fundamentally designed to prevent the need for developers to have their own 24/7 ops team, as much as possible. We don't provide open query databases because that goes counter to that philosophy. Where you own queries, you would have to own monitoring alerts and responding to issues.

0 Likes 0 ·
marcos avatar image marcos commented ·

Hello @Brendan left a comment, can you elaborate on that? Thank you.

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.