Sorry for the confusion and apologies for lack of documentation.
The StartMatchmaking
function is an Xbox LIVE specific function that has no analogue on Steam.
Steam works with matchmaking as long as you use the Sessions APIs and the Create/Destroy/Update/JoinSession
calls.
Looking at the ShooterGame example, you should be able to see how sessions are created/updated/destroyed by a server and how they are found/joined by a client. There is also Start/EndSession
, but that is not quite as important on the Steam platform.
When you create the session settings and set FOnlineSessionSettings::bUsesPresence=true
, you will use Valve’s lobby APIs. If this is false, you will be using Valve’s GameServer APIs. Lobbies give you free authentication and also access to their newer/more straightforward matchmaking APIs. However, the GameServer APIs are required if you plan to do standalone dedicated servers. I would suggest you go the lobby route for now as it is newer and should save you some time.
Specific Steam implementations are found in
- OnlineSessionAsyncLobby.h/.cpp
- OnlineSessionAsyncServer.h/.cpp
As for leaderboards, again I believe WriteOnlinePlayerRatings
was some function written for one of the console platforms that may not have an analogue in Steam, or if it does, wasn’t implemented. That being said, leaderboards still should work without this. The function WriteLeaderboards
should do what you want.