Appearance
Using the LiveOps Timeline
The LiveOps Dashboard uses a timeline view for monitoring and interacting with various time-related items, such as game events.
Appearance
The LiveOps Dashboard uses a timeline view for monitoring and interacting with various time-related items, such as game events.
WIP
This article is a work in progress as the timeline feature is still in active development. We are constantly adding new types of data to the timeline as well as improving the ways that you can interact with that data.
Running the LiveOps Dashboard locally - To follow along with this page, you should have access to an instance of the LiveOps Dashboard running on your local machine. Check out the Developing the LiveOps Dashboard guide for more details.
Knowledge of time-based events within the Metaplay SDK - The timeline visualizes several different types of time-based data, including LiveOps events, in-game offers, config-driven events, league seasons and scan jobs. Familiarity with these concepts will help you to understand the information that the timeline presents.
The LiveOps Timeline is a component in the dashboard that can display various time based items, such as game events and database scan jobs. The timeline not only shows you LiveOps related events but also server events, such as scan jobs. This can be useful in scheduling events or debugging issues with server performance during events.
Some types of items, like LiveOps Events, show up on the timeline automatically, but some types need to be explicitly configured. See Configuring Offer Groups for the Timeline and Configuring Config-Driven Events for the Timeline.
The timeline can be found on many pages of the dashboard that have to deal with time-related items: LiveOps Events, leagues, scan jobs, offers, and your custom config-driven game events.
The timeline is divided into sections based on those categories. Each section can contain multiple groups, which finally contain the rows on which the timeline elements appear. You can click on sections and groups to expand or collapse them to hide content you're not interested in. The timeline always contains the same sections, no matter which page it is on, but we automatically collapse the less relevant sections by default.
Since time extends forever and the timeline is only a small window, the timeline will stream in new data from the server as you scroll left and right.
You can click on any element (event, scan job, etc.) on the timeline to open an inspector that shows details about the element.
Items on the timeline include one or more icons: The icons have the following meanings:
You can always hover your mouse over the icons to see a tooltip that explains their meaning.
Some types of timeline items, such as LiveOps Events, can be scheduled either in UTC or in player-local time. UTC events have specific global start and end times, but player-local events happen at different times for different players. The timeline displays player-local events by stretching them to the left and right by the maximum possible time zone offets (14 hours to the left and 12 hours to the right). In other words, it displays the time span where the event may be active at least in some time zones. When two player-local events are next to each other, this can cause them to appear to overlap, even if they do not actually overlap for any given player.
Events implemented as documented in Implementing LiveOps Events can be organized directly on the timeline. Sections other than LiveOps Events are predefined in C# code or in Game Configs, and cannot be edited directly on the timeline.
To create a new group, hover over the LiveOps Events section and click the plus button. Similarly, to create a new row, hover over a group and click the plus button. Groups and rows can be removed with the trash bin icon. However, the group or row must be empty before it can be removed, and the initial row called Default Row cannot be removed, because that's where LiveOps Events go initially when created.
You can move groups and rows up and down via the inspector. Hover over the group or row and click on the cogwheel icon. In the inspector, you will find "Move Up" and "Move Down" buttons. For groups, you can also assign a color.
You can also move the events themselves up and down (to different rows). This likewise happens in the inspector. For events, you can open the inspector by clicking on the event on the timeline. An event's color can also be changed, but for now you need to do that via the Edit button on the LiveOps Event details page (reachable via the View Event button in the inspector).
Offer groups with a schedule, documented in Getting Started with In-Game Offers, can be configured to show up on the timeline. This is done in the game configs. You need to define the name of the row you want an offer group to appear on. You can also define a color.
You can add columns Timeline.Row
and Timeline.Color
in your existing offer group config sheet.
GroupId #key | DisplayName | Timeline.Row | Timeline.Color | Placement | Priority | Offers[0] | ... | Schedule.Start.Date | ... |
---|---|---|---|---|---|---|---|---|---|
MondayPack | Monday Pack | Weekdays | Shop | 1 | SmallGemPack | ... | 2021-10-04 | ... | |
TuesdayPack | Tuesday Pack | Weekdays | Shop | 1 | SmallGemPack | ... | 2021-10-05 | ... | |
WeekendSaleDefault | Weekend Sale (default) | Weekend Sale (default) | #aabbcc | Shop | 2 | SmallGemPack | ... | 2021-10-02 | ... |
WeekendSaleUpsell | Weekend Sale (upsell) | Weekend Sale (upsell) | Goldenrod | Shop | 1 | LargeGemPack | ... | 2021-10-02 | ... |
Timeline.Row
is required in order for the offer group to show up. It defines the name of the row on the timeline. You can put multiple offer groups on the same row by giving them the same row name. Here, MondayPack and TuesdayPack are on the same row.
For offer groups with a recurring schedule, each occurrence is shown as its own item on the timeline. Offer groups without a schedule are not shown, as they are potentially always enabled (depending only on targeting conditions or non-calendar-based timing).
Timeline.Color
is optional. It can be either a hexadecimal RGB color like #a1c
or #ab16c5
, or one of the predefined color names the timeline supports. The predefined colors are the same that can be seen in the color selection dropdown in the timeline group inspector:
If you have implemented config-driven events (as documented in Implementing Config-Driven Game Events), you can set up timeline visualizations for them. Besides events, this works the same way for any other activables you may have implemented (with config data types implementing the IMetaActivableConfigData<...>
interface).
First, make sure you have the Timeline
property in your IMetaActivableConfigData
type and its corresponding IGameConfigSourceItem
implementation:
[MetaSerializable]
public class HappyHourInfo : IMetaActivableConfigData<HappyHourId>
{
...
[MetaMember(...), ServerOnly] public MetaActivableTimelineSettings Timeline { get; private set; }
public HappyHourInfo(...)
public HappyHourInfo(..., MetaActivableTimelineSettings timeline)
{
...
Timeline = timeline;
}
}
public class HappyHourSourceConfigItem : IGameConfigSourceItem<HappyHourId, HappyHourInfo>
{
...
public MetaActivableTimelineSettings Timeline;
public HappyHourInfo ToConfigData(GameConfigBuildLog buildLog)
{
return new HappyHourInfo(
...);
...,
timeline: Timeline);
}
}
Now, you can add the Timeline.Row
and Timeline.Color
columns in your event's config sheet and configure them the same way as offer groups, as described in Configuring Offer Groups for the Timeline.