Pragma Engine 0.0.67

May 10th, 2022

Features #

  • Cross-content validation for Inventory service content available.

    • Description: Inventory service Content now has additional validation across content types, which is performed during the ContentData apply command.

    For example, a StoreEntry might reference other content by CatalogId via its receivedQuantityByCatalogId or costByCatalogId fields. These CatalogIds are now checked during ContentData apply to ensure that they refer to valid inventory entries.

    This validation can be added to your own custom content by implementing the ContentData<*>.validateWithAllContent(contentByType: mapOf<String, ContentData<*>>) function on the ContentHandler.

    Note that this initial rollout of cross-content validation does not validate anything nested under an ext message.

  • Upgraded Portal now live!

    • Description: The Portal has been upgraded to be faster and more modular. It can be found at platform/web/portal. If you don’t have custom modules, the Portal is backwards compatible, and can still be found at platform/web/portal-base.

    View the file in platform/web for more information about the new Portal.

    • Related note: Integration may be required. View the related integration note below.

Integrations #

  • Update Portal build directory and update custom modules if necessary.
    • Description: The new Portal is now available at platform/web/portal. If you don’t have custom modules, the Portal is backwards compatible, and can still be found at platform/web/portal-base. If you do have custom modules, you’ll need to follow the integration steps.
    • Integration steps:
      • You may need to update the build directory if you have a custom build step.
      • Custom Portal modules may need to be individually integrated. Contact us if you have custom Portal development and have not yet received help with integration.
    • Related note: see feature announcement for more information on the new Portal.
  • Update the ContentDataProxy class primary constructor if necessary.
    • Description: The kClass param has been removed from the ContentDataProxy class’s primary constructor.
    • Integration steps:
      • If you are using this class with custom content, you will need to remove the kClass param as shown below. No action is required otherwise.
class ContentDataProxy<ContentProto : GeneratedMessageV3>(
    private val kClass: KClass<ContentProto>,
    private val resourcePath: String,
) : ContentData<ContentProto>
class ContentDataProxy<ContentProto : GeneratedMessageV3>(
      private val resourcePath: String,
) : ContentData<ContentProto>
  • Rename InMemSocialIT.yml and InMemGameIT.yml.
    • Description: Certain files have been renamed due to the removal of the in-memory database driver.
    • Integration steps:
      • The Makefile has been updated to copy InMemSocialIT.yml and InMemGameIT.yml over. If you are using a custom Makefile, please update it.
      • Merge the contents of your existing InMemSocialIT.yml and InMemGameIT.yml files into the new files.
  • Use PragmaJwtSigner instead of TokenUtils::createPragmaJWT.
    • Description: TokenUtils::createPragmaJWT has been replaced by PragmaJwtSigner.
    • Integration steps:
      • Use PragmaJwtSigner instead of TokenUtils::createPragmaJWT.
  • Update the Makefile to reflect changes to the relevant gen-sdk-types-<ENGINE> targets.
    • Description: The SDK type generation targets have been fixed to also build Pragma protos.
    • Integration steps:
      • If you have your own copy of the Makefile, ensure that the relevant gen-sdk-types-<ENGINE> also depends on the protos step.
gen-sdk-types-unreal4: ext-protosgen-sdk-types-unreal4: protos ext-protos

Bugs and Fixes #

  • Pragma Platform console output during startup has been cleaned up.
    • Description:
      • PragmaNode config output during startup was previously too verbose, making it difficult to see the most relevant information. However, if the PragmaNode fails to start and the entire config object has been loaded, it will be printed out to assist with troubleshooting.
      • The config can be viewed via the SystemReporterNodeServicePB.GetConfigV1Request RPC.
  • Portal display name searches now handle the underscore _ and percent % characters properly.
  • Fixed BackgroundableTicker warnings and strict Include-What-You-Use (IWYU) compilation in Unreal 5.

Docs #