Pragma Engine 0.6.x #
March 2025
Highlights #
Players can sign in with Meta Quest
We added support for login with Meta Quest. You can link your Meta Quest account to your Pragma Account. See Set Up Identity Providers for details.
Configure ability for players to unlink their own accounts
Players can now fully manage their accounts in the Player Portal, including linking and unlinking providers such as Steam, Twitch, or Xbox. We added new linking restrictions like time cooldowns and limiting unique accounts. In addition, we manage removing purchases to prevent fraud. See Set Account Linking Restrictions for details.
Player Data can be cleared from the Game Operator Portal
You can clear all data from the Player Support page, and you can clear out a player’s data from their Player Data page.
Additional Features #
[Social ] Cancel friend invites via the SDK
#
Players can now cancel sent friend invites using the CancelFriendInvite()
method in the Friend API for Unreal and Unity.
[Multiplayer ] Create game instances from the game server
#
The game server can now create and link to a game instance using the Match API for Unreal and Unity.
[Multiplayer ] Simplified player events for matchmaking
#
Players will receive one of the following Game Instance API SDK events at the end of matchmaking:
OnAddedToGameInstance
: fired when a player’s party is matched into a new or existing game instance.OnLeftMatchmaking
: fired if a player leaves a party while in matchmaking, or if the party leader leaves matchmaking on behalf of the party. Previously, this would fire any time a party was removed from matchmaking, including when a match was found or a plugin error occurred.OnMatchmakingFailed
: fired when there is an error during matchmaking.
See Update matchmaking event listeners for integration instructions.
[Multiplayer ] Game servers can unlink from game instances
#
You can now unlink a game server from a game instance without destroying the game instance. This allows you to support scenarios such as spinning down an unused server without destroying the game instance.
To support this new functionality, we added the MatchApi.Unlink()
SDK method, ExtGameServerUnlinkRequest
proto, and GameInstancePlugin.handleGameServerUnlinkRequest()
plugin method.
[Multiplayer ] Custom error handling for game instance termination
#
You can define custom error handling logic in the following Game Instance Plugin methods when Pragma Engine attempts to terminate a game instance due to game server connection/expiration errors:
onGameServerAllocationFailed()
onGameServerDisconnected()
onGameServerFailedToConnectInitialPlayers()
onGameInstanceExpired()
[Multiplayer ] New Outcomes added to the Matchmaking Outcomes graph
#
We added the following metrics to the Grafana matchmaking dashboard’s Player Matchmaking Outcomes per Minute graph:
- PlayerRequested signifies that a party leader has elected to leave matchmaking.
- Left now signifies that a player is no longer in the party (left, disconnected, kicked) or that a game instance was removed from matchmaking.
- GameServerVersionNoLongerCompatible signifies a party was removed because its game server version is no longer compatible with matchmaking.
- PluginError signifies a party was involved in a match or end of loop plugin exception.
- FailedSendingToGameInstance signifies a party’s players were unable to join a new or existing game instance due to a failure in the game instance service.
[Accounts ] Manage Limited Access Mode and Player Groups using new endpoints
#
We added new Service and Partner endpoints to manage your limited access mode and player groups.
[Portal ] Customize Portal with new navigation and portlet options
#
We redesigned the Portal navigation and added new customization options for custom portlets. The services dropdown in the Portal has been replaced with a new top level navigation and dropdowns. See Portlets and Pages for details.
[Portal ] Clear out Player Data
#
You can now clear out Player Data from the Game Operator Portal.
- You can clear out all the data from the Player Support page. This endpoint is guarded by a feature flag in the
PlayerDataServiceConfig
.
Example configuration for your Pragma Project. You should set this flag per environment.
game:
serviceConfigs:
PlayerDataServiceConfig:
enableDeleteAllPlayerData: true
- You can clear out an individual player’s data from their Player Data page. This endpoint is not guarded by configuration.
Fixes & Improvements #
- We improved Portal packaging and developer experience. You can now manage your external dependencies through a package manager in the
package.json
file. In addition we added hot module reloading for both the app and tests. - The
MatchApi.ConnectPlayers()
andMatchApi.ConnectMorePlayers()
methods now function the same. You no longer have to specify whether you are connecting initial players or additional players, and can simply invokeMatchApi.ConnectPlayers()
for either instance. - Previously, calling the
GetSocialIdentities
andGetSocialIdentitiesByProviderAccountIds
endpoints when there were no IDs would return a SQL format error. Now these endpoints return an empty list instead. If your code is expecting a Service Error when no IDs are found, you may need to update it to handle an empty list instead. - We fixed a bug that caused Portal pages to flash an error message when the authentication token expired. Now users are immediately redirected to the sign-in page.
- We fixed a bug in ktor metrics that caused the creation of multiple route timers for routes that were not configured. This no longer causes memory size to increase over time as the platform runs.
- Removing an identity provider plugin config no longer throws an error if a user already had that identity provider linked.
- Previously, only the first discriminator for a given display name would be used for calculating a new discriminator. Now, all used discriminators are collected and included in discriminator generation.
- New game server
onGameInstanceEnded
andonGameInstanceTerminated
events allow a game server to respond to game end and terminate events - We have moved Pragma’s custom Maven plugins out of Maven Central and into the main repository. These plugins can be found in your project under
pragma-engine/tools/
.
SDK Compatibility #
SDK | Verified Versions |
---|---|
Unreal Engine | 4.27, 5.0, 5.1, 5.2, 5.3, 5.4, 5.5 |
Unity | 2021.3.16f1 |
Patches #
For information on updating to the latest Pragma version see Update Pragma Engine.
0.6.1 #
Updated Pragma CLI to fix portal packaging errors in deployments