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’sisReady
value is automatically set totrue
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.