Steamworks Matchmaking with UE4 OnlineSubsystem not supported?

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.