Pragma Engine 0.0.72
June 14th, 2022
Features #
- New Party plugin function added to manage player ready states.
- Description: The new Party plugin function canChangeReady which is called when players attempt to call SetReadyState. Return true to accept the update, and false to deny it.
- Related notes: See ready state integration note and docs note.
- Unity: The Unity game server now reports match capacity usage.
- Description: The Unity game server now uses ReportCapacityPolling to communicate match capacity usage to Pragma Engine from when a match has been allocated until the match is complete.
- Portal: Pragma Portal can now grant items and reward tables to players.
- Description: You can now grant items and reward tables to players via the Pragma Portal. This can be found in the Player Support on a player’s page, under Inventory for a specific game. There are now buttons for granting rewards and items.
- Portal: Now contains a richer view of player inventory.
- Description: You can now view player inventory items with details, filtering, and sorting. This can be found in Player Support on a player’s page under Games > Inventory.
Deprecations #
- Reimplement all
GameDataStrategyPluginlogic in the newLoginDataPlugin.- Description: The
GameDataStrategyPluginis being removed in favor of a new plugin,LoginDataPlugin, which defines the dependent jobs to be run to collect login data. - Integration steps:
- Reimplement all your custom logic from
GameDataStrategyPluginintoLoginDataPlugin. WhileGameDataStrategyPluginandLoginDataPluginare both designed to accomplish the same tasks, their structures are different, so you cannot simply copy your existing code over.Original Replacement Removal Patch GameDataStrategyPluginLoginDataPlugin0.0.74
- Reimplement all your custom logic from
- Description: The
Integrations #
Rename methods and objects in implementations of
MatchEndPlugin.Description:
MatchEndPluginhas been modified. The changes are mostly cosmetic, with new names for objects that reflect their nature more clearly. The most substantive change is that access to theDependentJobContext(oldMatchEndContext) and theThreadsafeMutable(oldConcurrentNotificationBuilder) are now provided on the method signature of theDependentJob(oldMatchEndBuilder) instead of injected on construction.Integration steps:- Rename the following items:
Original Replacement MatchEndPlugin.getMatchEndBuildersMatchEndPlugin.getMatchEndJobsMatchEndContextDependentJobContextConcurrentNotificationBuilderThreadsafeMutableMatchEndBuilderMatchEndDependentJob- Access
DependentJobContextandThreadsafeMutablevia the methods onMatchEndDependentJob.
Add
canChangeReadyimplementation to Party plugin.- Description: Implementing this function is required for the new ready state feature.
- Integration step: Add this function to Party plugin implementations to compile.
- Related notes: See ready state feature note and docs note.
Update references to Inventory service’s
matchEndV1andmatchEndV2endpoints tomatchEndV4.Description: The Service endpoints
InventoryService.matchEndV1andInventoryService.matchEndV2have been replaced withInventoryService.matchEndV4, along with related protos.
These calls only require integration if you’re calling them from a custom service. Pragma Engine handles all version bumps for Pragma-owned services.Integration steps:
- Update references to the following:
Original Replacement InventoryService.matchEndV1InventoryService.matchEndV2InventoryService.matchEndV4InventoryRpc.MatchEndV1RequestInventoryRpc.MatchEndV1ResponseInventoryRpc.MatchEndV2RequestInventoryRpc.MatchEndV2ResponseInventoryRpc.MatchEndV4RequestInventoryRpc.MatchEndV4Response
Update references to Inventory service’s
deletePlayerInventoryV1endpoint todeletePlayerInventoryV2.Description: The dev-only endpoint Player endpoint
InventoryService.deletePlayerInventoryV1has been replaced withInventoryService.deletePlayerInventoryV2, along with related protos.Integration steps:
- Update references to the following:
Original Replacement InventoryService.deletePlayerInventoryV1InventoryService.deletePlayerInventoryV2InventoryRpc.DeletePlayerInventoryV1InventoryRpc.DeletePlayerInventoryV2
Update references to Lobby service’s endpoint
lockV1tolockV2.Description: The Service endpoint
LobbyService.lockV1has been replaced withLobbyService.lockV2, along with related protos.
These calls only require integration if you’re calling them from a custom service. Pragma Engine handles all version bumps for Pragma-owned services.Integration step:
- Update references to the following:
Original Replacement LobbyService.lockV1LobbyService.lockV2LobbyRpc.LockV1RequestLobbyRpc.LockV1ResponseLobbyRpc.LockV2RequestLobbyRpc.LockV2Response
Update references to Match Lifecycle service’s
matchendV3tomatchEndV4.Description: The Partner endpoint
MatchlifecycleService.matchEndV3has been replaced withMatchlifecycleService.matchEndV4, along with related protos.
The new endpoint does not include any Progression-related data fields on the payload.
Note thatmatchEndV4can still sendMatchEndNotificationV2messages, which have Progression-related fields, as theMatchEndNotificationV2deprecation is still in progress.Integration step:
- Update references to the following:
Original Replacement MatchlifecycleService.matchEndV3MatchlifecycleService.matchEndV4MatchlifecycleRpc.MatchEndV3RequestMatchlifecycleRpc.MatchEndV3ResponseMatchlifecycleRpc.MatchEndV4RequestMatchlifecycleRpc.MatchEndV4Response
Modify all custom
IdentityProvidersto returnIdProviderAccountinstead ofPragmaResult<IdProviderAccount, PragmaError>.- Description: The validate function in
IdentityProviderPluginshas been changed to either return anIdProviderAccounton success or to throw aPragmaExceptionotherwise. - Integration step:
- Modify any custom
IdentityProvidersto return anIdProviderAccountwhere they would return aPragmaResultcontaining theIdProviderAccount, and to throw aPragmaExceptionwhen they would return aPragmaResultcontaining an error.
Original Replacement PragmaResult<IdProviderAccount, PragmaError>containing anIdProviderAccountIdProviderAccountPragmaResult<IdProviderAccount, PragmaError>containing aPragmaErrorThrow a PragmaException - Modify any custom
- Description: The validate function in
Unreal: Update references to
UpdateLoadoutin Party service toUpdatePlayerSelections.- Description: These renames will make the SDK interfaces better conform to the RPC endpoints.
- Integration step:
- Update references in the Unreal SDK’s Party service to the following:
Original Replacement UpdateLoadoutV1UpdatePlayerSelectionsV1CanUpdateLoadoutV1CanUpdatePlayerSelectionsV1
Docs #
- [New Services Guide] New Content Data landing page is now live!
- Description: The brand new Content Data landing page contains everything you need to understand the Content Data system, from adding content to accessing and leveraging that content.
- [Updated Services Guide] Hidden Inventory summary and related quick guide have been added to the Items Services page.
- [Updated Services Guide] Steam authentication quick guide has been updated on the Authentication Services page.
- [Updated Services Guide] Ready state quick guide has been updated on the Party Services page.
- Related notes: See ready state feature note and integration note.
- [Updated Getting Started Guide] Added Postman reminder to Initial Setup page.
- Description: Remember to occasionally pull the latest Postman collection after new releases to ensure you’re getting updated calls.