Some interesting developments lately. I decided to scrap the tag system as it resulted in too many API calls. The user would log in, tag himself as online and repeat the tagging process every 4 minutes and a half. When a friend would login and query PlayFab for his friends, only users who have tagged themselves in the past 5 minutes would be returned as online. Everyone else would be set offline by the user that last queried PlayFab.
While this works in practice, it results in a lot of API calls which, in the end, means more cost for us, the developers.
I explored the possibility of using SinalR but instead opted to make my own service. I had yet to program outside of Unity so I set out to find a written guide to aid in my endeavour. It took some digging but I found a very interesting paper by Tom Weiland. It was very well written and while I do not fully understand all of it just yet, it is a very good starting point.
The service is a C# Core TCP server. It’s purpose is to allow players to relay PlayFab information to one another. For instance, the Party system’s chat and VoIP functionality is intended to be used before, during and after the game. I do not think it was intended to be used as a chat system. Yet we can do just that with this service, bringing extra functionality to PlayFab.
It could be argued that this would bring even more cost to the table and that might be true. Further research is needed.