Hi,
We have a specific setup for our game "catalog" and "inventories", we have something working great with player data yet I'm wondering how would be the best way to implement it through PlayFab api. I've looked at different answers on the subject but didn't find my answer.
We have a large "catalog" of items, (around 1000 but could grow more) these items are characters, equipments, skills, buffs, etc... They can have components that are c# serialized data with $type infos from Json.net. This catalog is for now stored in a json file in the server assets.
Effective binary size of these items in the catalog can greatly vary from a simple set of key/pair values to a much complexe structure with several serialized components and other items references.
Then an inventory is created that reference those catalogs items. They themselves have custom data over the catalog items, like progression components (xp component and equipment component for characters for instance) and so on. These inventories are stored in the player data title. We split them so they can fit within the Player data value size limit.
Now this is working well, but we feel it's a bit hacky and that it could be enhanced to better fit the PlayFab model, like being able to update inventory items individually.
So basically the questions are :
- Should we keep using player data ?
- Should we instead create PlayFab catalog items with ours and use the inventory + characters API ? => I feel we're going to be stuck by limits of Inventory item data key size / Inventory item data value size, and update limite rates at initialization.
- Or should we go to PlayFab entities files instead of player data? So we won't have to bother spliting the inventory anymore (as there files seems to handle large amount of data, and the sum of all player data will hardly reach 50go of json data), is it efficient enough though? Any thottling on files API ?
We basically update the inventories when changing the teams composition or equipments (as we change the attached components), when we loot/gain xp at the end of a game and when the player sells/buy things. So nothing realtime.
Thank you.