August 23rd, 2022

Features #

Added Keep Alive Heartbeats feature in Match Lifecycle that sets a heartbeat to determine if matches need to be forcibly ended.

  • Description: You can configure the Keep Alive loop by setting the MatchLifecyleServiceConfig.enableKeepAlive to true in the config. keepAliveIntervalMillis determines the interval of heartbeats. missedKeepAlivesBeforeCleanup determines how many heartbeats can be dropped before Pragma Engine ends the match.
  • Details: Your game servers must use the newest Pragma Engine SDK and the new MatchLifecycleService.MatchReady and MatchLifecycleService.MatchEnd SDK functions.

Added Unreal and Unity SDK raw bindings for InventoryService.ApplyInventoryOperationsPartnerV1.

Added the ability to process player match ends prior to the end of the match.

  • Description: Player match ends can now be processed prior to match end via the new Partner endpoint MatchLifecycleRpc.PlayerLeaveV1.

Portal: Users can now create an account and log in with Google.

  • Description: We’ve implemented Google OAuth using an implicit grant flow to allow users to log in to Portal using Google. We’ve removed access_token and refresh_token from the backend as cleanup.

Integrations #

In the Match Lifecycle service config, update your configuration to not include enablePartyRecreate.

  • Description: The config option MatchLifecycleServiceConfig.enablePartyRecreate has been deleted due to rearchitecture of the game loop flow.
  • If this disrupts your intended Party flow, please reach out to us directly so we can help you resolve it.
  • Integration steps:
    • Update configuration to not include MatchLifecycleServiceConfig.enablePartyRecreate if set.
    • Ensure client SDKs are compatible with the behavior of the platform–that players stay in a party during a match, and are released from the game loop after MatchEnd.

Migrate any usages of the StartReportCapacityPolling that does not take in a GameServerZone to the new StartReportCapacityPolling that does.

  • Description: The version of the MatchCapacityService.StartReportCapacityPolling function in the SDKs that does not take in a GameServerZone has been removed in favor of a version that does.
  • Integration steps:
    • Migrate any usages to the StartReportCapacityPolling function that is able to take in a GameServerZone.
      originalreplacement
      Unity: public void StartReportCapacityPolling(string serverId, string gameVersion, float timeout, MatchAllocatedDelegate onComplete)Unity: public void StartReportCapacityPolling(string serverId, string gameVersion, string gameServerZone, float timeout, MatchAllocatedDelegate onComplete)
      Unreal: void UPragmaMatchCapacityService::StartReportCapacityPolling(FString ServerId, FString GameVersion, float Timeout,const FMatchAllocatedDelegate& OnComplete)Unreal: void UPragmaMatchCapacityService::StartReportCapacityPolling(FString ServerId, FString GameVersion, FString GameServerZone, float Timeout, const FMatchAllocatedDelegate& OnComplete)
    • If you don’t use GameServerZone, you can pass an empty string into these methods.

Unity: If your tests use any of the helpers listed below, update your using imports to include the new helpers folder.

  • Description: A few test helper files in the Unity SDK have been moved into a helpers directory for better organization. The new folder is tests/helpers and contains the following files:
    • AsyncTest.cs
    • ControllableFireAndForget.cs
    • PartyTestHelpers.cs
    • PragmaSessionTestFixture.cs
    • RetryTracker.cs
    • test_messsages.proto
    • TestMessages.generated.cs
  • Integration step:
    • If your tests were using any of the listed helpers, update your using imports to include the new helpers folder (i.e. using test.helpers.AsyncTest).

Bugs and Fixes #

A new file has been generated: platform/5-ext/buildkite/engine-ci.yml. You may safely commit this file. It will be used in a future release.

Docs #

[New Tech Blog video] Creating Stackable Items video is now live! The video is embedded in the Creating Stackable Items article and available via YouTube and the Pragma Blog.

[Updated Services Guide] Added a new Cancellations section on the Concurrency page.

[New User Guide] Added a new section on Creating A Test for the Echo service in the Custom Services guide.

[Revamped Services Guides] Overhauled the Game Services guide and renamed the category from Game to Game Flow.

  • Description: All pages in this category from Party to Matchmaking to Game Server Management have been rewritten for clarity.