I guess many of my questions have been asked/answered individually on the forum, but I would like to have a general idea about how can PlayFab solve all my backend/server requirements for our project.
I have used "custom" back-ends in the past and used Web-services for comunication, and I wonder how similar is PlayFab in that sense.
We will be using Unity + Photon (it's 100% multiplayer game).
I'm going to use Clash Royale as an example for the features we are looking for, since it's a well known game:
I will use the work OK on things I already know PlayFab supports perfectly.
1- User guest & Facebook/GameCenter login. (ok)
2- Virtual currency, both soft and hard currency. (ok)
3- DataBase: Does PlayFab provide a DataBase to store all the "items" the users get? In this case the items will be cards that represent the units, and chests where you get the cards from. To which stent can I access that DataBase, create my own tables and so on?
Each unit would have several fields for the stats (level, damage, speed etc.) and those stats would change whenever the player upgrades the unit.
4- Timed rewards like Chests, were oppening a chest takes X time depending on the type of chest. To avoid time-hacking this should be handled server-side as much as possible. Tycoon games use this feature a lot for construction times.
5- Cards/units are divided in Normal, Epic and Legendary, and they have different drop rates. All that should also be configured in the server-side. Every time a user opens a chest, the server will tell the client which items are inside that chest. Also different chests can drop different Units.
6- Daily or weekly events: Clash Royale sells different cards for soft currency every X time in the store. Could I configure that with PlayFab?
7- Player ELO ranking and matchmaking. If there are not available players in, lets say 20 seconds, the game will create a game against a bot (ideally player won't know it's a bot).
I would like to have different bots for different rankings (easy, medium and hard). The match will affect both players like in any other match. Bots will rise/decrease ELO ranking depending on their performance, but we should be able to modify their ELO manually.
Is there any way to have bots like if they were players? They would have name, items (units) etc. basically everything a normal player has and the matchmaking system will use one of them if no real player is found.
8- Friends and Custom Games. Since we are using Photon for the multiplayer, not sure if closed matches between friends would be handled by us manually with Photon (creating a room for them), or if PlayFab already provides this feature.
9- Scalability: If the game is being played by thousands of players simultaneously, does PlayFab has a good scalability system?
So I'm pretty sure everything I have mentioned above can be done in one way or another, but I would like to know if PlayFab can do it out of the box, or if there'd be need to code custom server logic. If custom server logic is needed, does PlayFab also provide a server? Should we get our own from Amazon? And in which programming lang. is the custom server logic programmed?