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
GameDataStrategyPlugin
logic in the newLoginDataPlugin
.- Description: The
GameDataStrategyPlugin
is 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
GameDataStrategyPlugin
intoLoginDataPlugin
. WhileGameDataStrategyPlugin
andLoginDataPlugin
are both designed to accomplish the same tasks, their structures are different, so you cannot simply copy your existing code over.Original Replacement Removal Patch GameDataStrategyPlugin
LoginDataPlugin
0.0.74
- Reimplement all your custom logic from
- Description: The
Integrations #
Rename methods and objects in implementations of
MatchEndPlugin
.Description:
MatchEndPlugin
has 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.getMatchEndBuilders
MatchEndPlugin.getMatchEndJobs
MatchEndContext
DependentJobContext
ConcurrentNotificationBuilder
ThreadsafeMutable
MatchEndBuilder
MatchEndDependentJob
- Access
DependentJobContext
andThreadsafeMutable
via the methods onMatchEndDependentJob
.
Add
canChangeReady
implementation 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
matchEndV1
andmatchEndV2
endpoints tomatchEndV4
.Description: The Service endpoints
InventoryService.matchEndV1
andInventoryService.matchEndV2
have 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.matchEndV1
InventoryService.matchEndV2
InventoryService.matchEndV4
InventoryRpc.MatchEndV1Request
InventoryRpc.MatchEndV1Response
InventoryRpc.MatchEndV2Request
InventoryRpc.MatchEndV2Response
InventoryRpc.MatchEndV4Request
InventoryRpc.MatchEndV4Response
Update references to Inventory service’s
deletePlayerInventoryV1
endpoint todeletePlayerInventoryV2
.Description: The dev-only endpoint Player endpoint
InventoryService.deletePlayerInventoryV1
has been replaced withInventoryService.deletePlayerInventoryV2
, along with related protos.Integration steps:
- Update references to the following:
Original Replacement InventoryService.deletePlayerInventoryV1
InventoryService.deletePlayerInventoryV2
InventoryRpc.DeletePlayerInventoryV1
InventoryRpc.DeletePlayerInventoryV2
Update references to Lobby service’s endpoint
lockV1
tolockV2
.Description: The Service endpoint
LobbyService.lockV1
has 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.lockV1
LobbyService.lockV2
LobbyRpc.LockV1Request
LobbyRpc.LockV1Response
LobbyRpc.LockV2Request
LobbyRpc.LockV2Response
Update references to Match Lifecycle service’s
matchendV3
tomatchEndV4
.Description: The Partner endpoint
MatchlifecycleService.matchEndV3
has been replaced withMatchlifecycleService.matchEndV4
, along with related protos.
The new endpoint does not include any Progression-related data fields on the payload.
Note thatmatchEndV4
can still sendMatchEndNotificationV2
messages, which have Progression-related fields, as theMatchEndNotificationV2
deprecation is still in progress.Integration step:
- Update references to the following:
Original Replacement MatchlifecycleService.matchEndV3
MatchlifecycleService.matchEndV4
MatchlifecycleRpc.MatchEndV3Request
MatchlifecycleRpc.MatchEndV3Response
MatchlifecycleRpc.MatchEndV4Request
MatchlifecycleRpc.MatchEndV4Response
Modify all custom
IdentityProviders
to returnIdProviderAccount
instead ofPragmaResult<IdProviderAccount, PragmaError>
.- Description: The validate function in
IdentityProviderPlugins
has been changed to either return anIdProviderAccount
on success or to throw aPragmaException
otherwise. - Integration step:
- Modify any custom
IdentityProviders
to return anIdProviderAccount
where they would return aPragmaResult
containing theIdProviderAccount
, and to throw aPragmaException
when they would return aPragmaResult
containing an error.
Original Replacement PragmaResult<IdProviderAccount, PragmaError>
containing anIdProviderAccount
IdProviderAccount
PragmaResult<IdProviderAccount, PragmaError>
containing aPragmaError
Throw a PragmaException
- Modify any custom
- Description: The validate function in
Unreal: Update references to
UpdateLoadout
in 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 UpdateLoadoutV1
UpdatePlayerSelectionsV1
CanUpdateLoadoutV1
CanUpdatePlayerSelectionsV1
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.