Pragma Engine 0.0.76

July 19th, 2022

Features #

  • Added server authoritative token refresh to prevent players from bypassing restrictions for limited access events.

    • Description: With the added server authoritative token refresh, the platform keeps track of how long the session should be open for. If a user does not refresh their session, they will be disconnected when their session expires. This is to avoid situations where a user could hack the game client to skip limited access events’ expiration logic for user sessions.
  • You can now allocate players in the same party to different, custom teams during matchmaking.

    • Description: Players in the same party can be allocated to different teams during matchmaking to allow for custom teams within a party. To override the default behavior and allow for custom teams, you can set the value of the teamNumber property stored for each player in the MatchmakingParty.playerInfoList list. When the teamNumber is empty, the matchmaking system will decide which team a player should be on. Setting the property to a value will override the typical matchmaking system, which allows for custom teams.
  • Portal: Added search and filter options in Player Support.

    • Description: Visit Player Support > Players. You can now search and filter through player accounts.
  • Unreal: Code generation can now use FName instead of FString by using the export_as_key field option in protos.

    • Description: To improve code performance by reducing string operations in some proto messages, you can now use Unreal code generation to generate FName instead of FString. This works for fields tagged with the custom option export_as_key. Note that you may need to Reload All Maven Projects before the new option is recognized in Intellij.
  • Unreal: Pragma-provided subsystems can now initialize their PragmaSession with a custom SdkConfig.

    • Description: You can now use the Pragma-provided PragmaSessionLocalPlayerSubsystem and PragmaSessionGameServerSubsystem with custom runtime configurations instead of needing to manage your own PragmaSession pointer.

Integrations #

  • Migrate all GameDataStrategyPlugin logic in the new LoginDataPlugin.
    • Description: The GameDataStrategyPlugin has been removed in favor of a new plugin, LoginDataPlugin, which defines the dependent jobs to be run to collect login data.
    • Integration step:
      • Migrate all your custom logic from GameDataStrategyPlugin into LoginDataPlugin. While GameDataStrategyPlugin and LoginDataPlugin are both designed to accomplish the same tasks, their structures are different, so you cannot simply copy your existing code over.

Bugs and Fixes #

  • Unity: Fixed race condition in WebSocket send causing silent disconnect with no reconnect.

Docs #

  • [New Services Guide] New Portal Services section is now live!
    • Description: A new Services section about the Portal has been added. This includes an overview, getting started steps, and customization using portlets.