Hi!,
We develop Idle RPG games, we have already developed and published one game using PlayFab V1 Economy. Right now we're working on a second game and we have some doubts about Economy V2. We've tried to search similar questions but they don't answer the specific details.
Before asking the questions, here is a list of "economy entities" that our game will manage and how many of those as context.
First the list of what we think it could be a currency because they are not unique:
Classic soft and hard currencies (gold, gems, tickets). 10+
Character orbs for upgrading characters. 30+
Character shards for improving character ranks. 30+
Materials for upgrading characters equipment. 200+
Skill resources for upgrading characters skills. 4+
XP consumables for leveling up characters. 4+
XP points for Player globals (level, rank,...). 4+
Second the list of items because they are unique and only one can be granted to the user:
Characters. 30+
Avatars. 30+
Character Skins. 205+
In total more than 500 items. We'll be adding more as the game evolves, but we think it's really important to have a clear understanding of the economy systems right now to pick the right solutions.
What is now the difference between an Item and a Currency? It looks like they work the same way now under the hood, as you can stack both currencies and items. We don't know if there is any advantage in choosing one type over the other for each economic entity now.
The Catalog and the Inventory use has changed. In V1 we used to retrieve the full catalog and the full inventory in CloudScript, to process some items and maybe grab more data and give it all back to the player client. But right now, you can only retrieve both the inventory and catalog in chunks of 50 items with SearchItems, GetItems and GetInventoryItems. That would mean more than 10 requests for the catalog and potentially the same for the player inventory once they gather every different type of item in the game.
We'd be lookin at more than 20 requests for retrieving just the catalog and inventory every time the game starts. I don't know if it is intended to be used this way, but this raises some questions like maybe we should use other systems like TitleData + UserData to store some items and the amount for them that the player has, because you could read it all from a couple keys in a couple requests instead of 20. We'd appreciate it if you could explain in detail what we should be doing in this scenario, taking into account best practices.
Regarding the previous questions, we have doubts about the Economy API limits.
Let's say we go ahead and put everything in the catalog. By reading the documentation there is a limit for the Player (100 requests in 60 seconds) and for the Title(10.000 in 10 seconds).
Please correct me if I’m wrong, but we understand that if we use the PlayFab Unity SDK for SearchItems and GetInventoryItems, Player limits will apply. But what about if I perform the same request from Azure Functions, the Player limits can be targeted instead of the Title limits? We are asking because if there is a limit of 10.000 in 10 seconds for the Title, in a game with a lot of concurrent users (we have around 10K DAU in the other game), 20+ requests per user could potentially hit that limit. Around 500 players starting the game in less than 10 seconds doesn't sound crazy, especially during launch days.
This also makes us think about if it's a better idea to move some items outside of the catalog or inventory (specially those that will only be granted once and will never be removed,or modified), just to reduce the number of requests. Less requests should mean less risk of hitting the limits and faster loading times.
Any advice on how to approach these problems will be highly appreciated.
Thank you very much!!