I am working on my OnlineSubsystem again, doing a pass over of the different UE4 interfaces and seeing what I can work on, and have reached this point again where I get confused on PlayFab’s design. I’m not sure where I should use the Matchmaker API versus Server API and, I don’t see a reason for Matchmaker to have it’s own API at all... Let me explain how I see things, what I think should be changed, then you can tell me about how I have no clue what I’m talking about then correct me.
What I think I understand:
Matchmaker::StartGame should be called from a custom matchmaker when it wants to start a PlayFab game instance. Pretty simple, and then PlayFab will send back to the “External…Endpoint” when that session closes, with the corresponding ID.
Matchmaker::PlayerJoined should be called only when using a custom matchmaker? Maybe?
Matchmaker::PlayerLeft same as PlayerJoined
Matchmaker::AuthUser has no purpose? I mean, Server::RedeemMatchmakerTicket already checks the validity of session tickets…
Matchmaker::UserInfo is called by the custom matchmaker to get user info, honestly this should be a server function so servers can get the info. You’ll probably say servers can already do that, but, there doesn’t seem to be much of uniform in the functions when it comes to PlayFab player info… Matchmaker:UserInfo is the best function franky.
What I think should change:
Server::StartGame should have an optional “External…Endpoint” and then when playstream events occur for that game id, they get forwarded to the endpoint. Just this simple change, and, the Matchmaker API is gone, and that stops all the confusion of how the hell the custom matchmaker is supposed to work I believe.
But of course, I probably have misconceptions, so, that’s the point of this.