Pragma Engine 0.0.44

2021-11-09

Features:

  • Many protos related to Inventory have been relocated to make the system more understandable for a designer. CONSULT INTEGRATION NOTES.
  • CreatePartnerTokenV1 has been updated to return a Partner Social token
  • Enabled server authoritative item update flow on match end. New ExtInstancedItemServerUpdate added to inventoryRpcExt.proto.
  • Added new operator RPC UpdateGameTitleV1 for editing a game title name or description. Part of the featureset for Portal Game Management.
  • Added new operator RPC CreateGameTitleV1 for creating a new game title with a name and description.
  • Added new operator RPC ViewGameTitlesV1 for listing all game titles and their game shards.
  • Added new operator RPC ViewGameTitleV1 for retrieving a single game title and its game shard by id.

Integration Notes #

  • You will also need to sim-ship your client and server code when adopting this release. We try to avoid these sorts of breaking changes, so we would like to call specific attention to that.

  • Update 5-ext/ext-server/pom.xml - remove the dependency with:

    • groupId: pragma
    • artifactId: server
  • Within all Kotlin/proto code:

    • Relocate ExtCraftRequest from inventoryExt.proto to inventoryRpcExt.proto
    • Add new message definition to inventoryRpcExt.proto in 5-ext:
      • message ExtInstancedItemServerUpdate { }
    • Relocate all protos from both catalogExt.proto and storeContentExt.proto to inventoryContentExt.proto.
    • Delete catalogExt.proto
    • Delete storeContentExt.proto
    • Replace all references from CatalogContent.GameCatalog to InventoryContent.ItemCatalog
    • Replace all references from both pragma.catalog.CatalogContent and pragma.store.StoreContent to pragma.inventory.InventoryContent
    • Replace all references from pragma.InventoryTestFactory.gameCatalog to pragma.InventoryTestFactory.itemCatalog
    • Replace all import namespaces references from both pragma.catalog and pragma.store to pragma.inventory
    • Update all references from GameCatalog to ItemCatalog when handling LoginData, GetLoginDataV1Response, or GetCatalogOperatorV1Response protos
    • Rebuild all protos and SDK types
  • Within your Unreal game:

    • Replace all references from Dto/PragmaCatalogContentDto.h to Dto/PragmaInventoryContentDto.h
    • Replace all references from FPragma_Catalog_GameCatalog to FPragma_Inventory_ItemCatalog
    • Replace all references from FPragma_Catalog_StackableSpec to FPragma_Inventory_StackableSpec
    • Replace all references from FPragma_Catalog_InstancedSpec to FPragma_Inventory_InstancedSpec
    • Replace all references from FPragma_Store_Store to FPragma_Inventory_Store
    • Replace all references from FPragma_Store_StoreEntry to FPragma_Inventory_StoreEntry
    • Replace all references from FPragma_Store_PurchaseRequirements to FPragma_Inventory_PurchaseRequirements
    • Replace all references from FPragma_Store_CraftingEntry to FPragma_Inventory_CraftingEntry
    • Replace all references from FPragma_Store_CostEntry to FPragma_Inventory_CostEntry
    • Replace all references from FPragma_Store_UpdateEntry to FPragma_Inventory_UpdateEntry
    • Replace all references from FPragma_Catalog_ExtStackableSpec to FPragma_Inventory_ExtStackableSpec
    • Replace all references from FPragma_Catalog_ExtInstancedSpec to FPragma_Inventory_ExtInstancedSpec
    • Replace all references from FPragma_Store_ExtPurchaseRequirements to FPragma_Inventory_ExtPurchaseRequirements
    • Replace all references from FPragma_Store_ExtUpdateEntry to FPragma_Inventory_ExtUpdateEntry
    • Replace all references from FPragma_Store_ExtCraftingEntry to FPragma_Inventory_ExtCraftingEntry
    • Replace all references from FPragma_GameData_GetLoginDataV1Response.Payload().LoginData.GameCatalog to FPragma_GameData_GetLoginDataV1Response.Payload().LoginData.ItemCatalog
  • Within your Unity game:

    • Delete any broken using statements and import new references after regenerating SDK types.
    • Update references from GameCatalog to ItemCatalog.
  • Use PlayerMatchEndV2.server_item_updates instead of PlayerMatchEndV2.item_updates

  • Migrate existing InstancedDataProviderPlugin implementations to new name InstancedItemPlugin

    • Use the single new newInstanced method for all instanced item creation. Presence of the requestExt indicates server or client pathway.
    • The update method now has a requestExt for either a server or client pathway.
    • Change the parameter names of plugin implementations to match those found on the interface.
    • Update plugin configuration with new name
      • InventoryService.instancedItemPlugin: class: "YourPluginName"
    • Remove old plugin configuration item InventoryService.defaultInstancedDataProviderPlugin

Deprecations #

- `PlayerMatchEndV2.item_updates` deprecated.
- `getDisplayNameForPragmaPlayerIdForPartnerV1` deprecated. Use match data for player display names.
- Renamed operator RPC `ViewGamesV0` to `ViewGameTitlesV1`. No change in behavior.