Content Manager

The content item administration [DVTL-UTW-04]

This page includes everything needed to use this tool window with the "Beamable SDK for Unity".

The purpose of this Tool Window is to allow front-end administration of player Content by the game maker.

📘

Related Guides

A common use case for the feature is covered in the guides.

The User Interface

Here is the user interface of the Beamable "Content Manager" tool window.

701

The Beamable "Content Manager"

To open the Content Manager, select it from the Beamable Button.



Advanced

This section contains any advanced configuration options and workflows.

Content Types

See Content - Overview (Content Types) for more info.

Content Status Bar

701

The "Status Bar" indicates the status of content

Status Levels

NameDetail
Synced• Item is properly synced on client and server
Added• Item exists on client only
Modified• Item modified on client
Removed• Item removed on client only

Refresh

The refresh process compares the local content to the Beamable back-end. It downloads the manifest file from the relevant Realm. The local content is now synchronized.

The Content Manager window icons indicate the state of local content.

  • Local content which matches back-end
  • Local content which does not match back-end
  • Local content which is unpublished

Publish


The publish process compares the local content to the Beamable back-end. It uploads the appropriate changes to the relevant Realm. The back-end content is now synchronized.

The publish confirmation window shows the summary of changes.

  • Content Additions
  • Content Deletions
  • Content Modifications

Once published, development can safely continue within the game maker's Unity Editor and within the Unity Editor of other team-members. Any players connected to that Realm receive the updated content as well.

📘

Best Practice

These hints make efficent use of concepts and workflows.

When collaborating on a team of game makers, a safe process will limit potential content conflicts.

  1. Click the "Refresh" button in the Content Manager
  2. Make a content change
  3. Save the Unity Project
  4. Commit to version control
  5. Click the "Publish" button in the Content Manager

Storage Location of Content Types

Each content object derives from Unity's ScriptableObject, is an asset file written to disk, and is therefore persistent between sessions.

While all content objects must go in this location, game makers may choose to create custom subfolders within.

Development (Unity Editor)

/Assets/Beamable/Editor/content/

Deployment (On-device)
The development location is not included in the built game project. Instead, when the player loads the game, a fresh copy of all content is retrieved from the Beamable back-end and stored on-device. This allows Beamable to serve dynamic content to the game project. By default, this is a Lazy loading operation. Each of Beamable's Feature prefabs show a loading progress indicator UI automatically.

Content is stored on-device in a within Unity's Application.persistentDataPath.

 Application.persistentDataPath + $"/content/{contentId}.json";

Local Content Mode

In Beamable 1.7.0, you can enable Local Content Mode. The Content Manager's status bar will show you if you are in "Remote Mode" (default), or "Local Mode". You can click the label, and the Project Settings page will open to the Beamable/Content section. Enable the "Enable Local Content Mode" option and the Content Manager will change to "Local Mode".

Local Mode allows you to skip the publish and download steps when testing custom content. When you enter playmode, content will be fetched from your local scriptable objects on disk instead of the remote realm's content. This enables you to iterate much faster on custom content objects.

🚧

Beamable Services don't know about Local Content!

Remember, if you're using Local Content Mode, Beamable Services such as Inventory, Commerce, Announcements, etc, won't know about your local content on disk. You need to be careful when enabling Local Content Mode to remember that Beamable cannot take advantage of your local content. It is best to use local content only to develop custom content objects.

📘

FAQ

Here are highlights from the Beamable FAQ: See FAQ for more info.

Content