Content Data Architecture #
Pragma Engine’s Content Data system is designed for structured, versioned, content management. It includes versioned content packages that can be quickly promoted to multiple environments, ensuring production is set up identically to staging. Content Data works together with the Player Data and Inventory services to support live service game content with a comprehensive set of tools and workflows.
The Content Data system enables live update scenarios such as rebalancing weapons without game client or server patches. It also supports more complex schema migration scenarios in which new fields are added, removed, and renamed.
Live service games need to patch content constantly, requiring tools and patterns around data versioning and data migration. These must be coordinated across platforms and across multiple game client versions.
Content Data system overview.
In the sections below, we’ll take a look at how the pieces of the Content Data system fit together, and how to create, access, and leverage new content.
Provided vs Custom Content #
The Content Data system supports two categories of content definitions: provided and custom.
This is content used by the Pragma Engine Inventory service, such as instanced and stackable item specs. These can be customized by editing
ext fields in the
Custom content: This content is completely built by the user, who can define custom services, custom JSON, and custom proto definitions.
|init||- initializes a new type of content by creating empty JSON and metadata files|
- related proto and Content Handler must be defined
|plan||- prints a summary of changes that can be applied|
|apply||- applies and packages content changes made to the |
- prints a