Pragma Engine 0.0.22


Features #

  • Multiplay capacity provider support
  • UnrealSDK
    • LobbyService
      • Fixed an issue where accepting an invite would ignore the next details update.
      • Fixed an issue where after creating a lobby the first details update would not fire events.
      • Non-packaged builds could crash after exiting play mode when using the rich LobbyService impl.
      • Cleaned up disconnect messaging so it only prints once, and only as an error if it’s actually an error.
      • Fixed an issue where LobbyData was not cleaned up on disconnect.
  • Unity/C#
    • We now have a non-unity C# SDK!
    • Fixed a bug where failed UpdateBackendConfig would never call OnComplete callback (e.g. on Logging in).
    • Fixed a bug where failed Http message responses would never fire the response callback.
    • Can now opt-into using Http for all platform calls such as on a game server with no websocket connection. (Note: notifications not supported in this mode)
      • Set SdkConfig.protocolType to ProtocolType.Http
  • Logged in users metric is now more accurate
    • HTTP sessions are expired are a configurable timeout, therefore will no longer permanently pollute the logged in users metric

Improvements and Fixes #

  • CLI command for standalone db migration functionality is restored

New or Updated RPCs #

  • MatchEndV2Request
    • PlayerMatchEnd.itemUpdates - update stackables and instanced items
  • MatchProcessedV1Notification - Inventory Delta tags field is now populated for all inventory types (previously only populated for stackables)
  • UpdateItemV2
    • Replaces upgradeItemV1 and updateItemV1
    • Uses the same list of ItemUpdate objects from MatchEnd
  • UpdateItemsV0 - plural form of UpdateItemV2 to update items in bulk.
  • OperatorGrantRewardsV0 - Operator endpoint that directly grants RewardGrant(s) to a playerId for testing and player support
  • StorePurchaseV3 - uses new standard formatted params comparable to UpdateItemV2 etc.

Integration Notes #

  • LobbyStrategy.buildExtensionMatchmakingRequest (returns a pair of values, an ExtensionEnterMatchmakingV1Request and a MatchmakingKey) has been deleted, in favor of the following two functions:
    • LobbyStrategy.buildExtensionEnterMatchmakingV1Request
    • LobbyStrategy.buildMatchmakingKey
    • Note: extLobbyInfo (the parameter for the previous call) is available from lobbyModel.extLobbyInfo
  • InstancedDataProviderPlugin.newInstanced() was updated to take the full Catalog.InstancedEntry instead of just the catalogId for the new instanced item.

Deprecations #

  • Inventory.upgradeItemV1
    • Use updateItemV2
  • Inventory.updateItemV1
    • Use updateItemV2
  • MatchFoundV1Notification
    • Use MatchConnectionDetailsV1Notification
  • PlayerMatchEnd.stackable_updates
    • Use item_updates

Removed #

  • Catalog.InstancedEntry.instance_defaults replaced by ExtensionInstancedEntry.ext
  • Removed (were unused)
    • StackableEntryUpdate
    • InstancedEntryUpdate
    • InventoryUpdateV1Notification
  • Removed in favor of new variants
    • MatchEndV1Request
      • Use MatchEndV2Request
    • MatchEndV1Notification
      • Use MatchEndV2Notification
  • UnrealSDK
    • UPragmaConnection::OnDisconnected
      • Use UPragmaConnection::OnDisconnectedV2.
    • TPragmaResult::UnknownErrorCode.
      • Use FPragmaError::UnknownError.