Unity: Matchmaking #

This tutorial uses Unity 2021.3 with Pragma Engine 0.4.0 to demonstrate integrating Pragma Engine party functionality with a third-party game engine. This guide assumes you are proficient with Unity.

We’ve previously built the party flow up until the point players enter matchmaking: players can create a new party, join a party with an invite code, and select their game mode and characters. In this tutorial, we’ll expand the PragmaManager.cs file to implement matchmaking functionality.

Update PragmaSDK for Unity #

Whenever you make changes to Pragma Engine or update the code, you’ll want to update the PragmaSDK Unity plugin folder. Re-run the update script command from your project’s root directory:

update-pragma-sdk.sh

Enter matchmaking #

Goal #

Allow parties to enter matchmaking using the WarmBodyMatchmaking plugin.

Steps #

In PragmaManager.cs, add an EnterMatchmaking() method:

public void EnterMatchmaking() { Player.PartyApi.EnterMatchmaking(result => { if (result.IsSuccessful) { Debug.Log(“Pragma – Party entered matchmaking”); } else { Debug.Log(“Pragma – Party could not enter matchmaking”); } }); }

As long as the two players are in different parties and both parties are set to the same game mode, the WarmbodyMatchmakingPlugin will match the two parties, create a game instance, and send the two parties to the game instance.

Players cannot enter matchmaking without being in the “ready” state. A player’s isReady value is automatically set to true when they make a character selection. See Make character selections.

Display game instance information #

Goal #

Alert a player that they have been added to a game instance. This will verify the matchmaking process has succeeded.

The Pragma SDK for Unity provides an OnAddedToGameInstance event that fires when a player has been added to a game instance. We can use this event to trigger a handler function for matchmaking and game instance updates. For now, our HandleOnAddedToGameInstance() function simply print a log entry.

Steps #

Test matchmaking functionality #