The creator-centric platform for building live games in Unity

Easily add social, commerce, and content management features to your live game with low-code, drag-and-drop prefabs fully integrated with your Unity workflow.

Tournament Flow

Allow game maker to set up a recurring tournament

Overview

The purpose of this feature is to allow the game maker to set up a recurring TournamentTournament - A recurring competition between all players within a game's community, based on score ranking, stage, and tier for players.

This page includes everything needed to use this feature in the "Beamable SDK for Unity". Or watch this video.

πŸ“˜

Live Events

Live events can have a significant multiplier effect on engagement and revenue. Beamable offers two out of the box features that support this.

β€’ 1. Events - A social/competitive feature that allows players to compete over a finite duration, where their in-game actions contribute a score to an event leaderboard. Events can have one or more phases, each with a defined duration. These phases can be interpreted by the game to mean whatever it wants. See Events for more info

β€’ 2. Tournaments - A social/competitive feature, but with an additional layer of meta game and progression. Unlike Events, Tournaments are cyclical. This means that you compete on a periodic basis, and the results of that cycle feed into progression into new Stages and Tiers (i.e. Leagues). Continue reading below for more info

The User Interface

When setup properly, the player's user interface in the game project will be as follows.

The Beamable "Tournament Flow" UI in the Unity Game Window

User Experience

When setup properly, the user experience in the game project will be as follows.

Glossary

Here is the glossary of TournamentTournament - A recurring competition between all players within a game's community, based on score ranking, stage, and tier terms.

Name

Detail

Cycle

The duration of time between each tournament reward phase (e.g. 24 Hrs)

Rank

The position of a player's score, relative to the game's community

Reward

The extrinsic payoff to the player, calculated by rank, stage, & tier

Note: Only Currency ContentContent - The primary data concept within the Beamable Content Manager may be rewarded. Support for other reward types is not yet available

Score

The in-game performance of a player, often represented as a number (e.g. "100" points)

Stage

An ordered grouping of ranks, relative to the game's community

Tournament

A recurring competition between all players within a game's community, based on score ranking, stage, and tier

Tournament Player

The unique identity of the person playing the game

Tournament Player Limit

The maximum number of tournament players per stage (e.g. 50)

Tier

An ordered grouping of stages, relative to the game's community

The User Interface (Details)

The layout is organized into separate tabs. The player may freely navigate.

Daily Tab (Default)

The player will see the most movement in their rank here, since small score changes more dramatically affect this tab than other tabs.

Tournament Flow - "Daily"

High Scores Tab

The player will see their rank compared to the highest global ranks.

Tournament Flow - "High Scores"

Champions Tab

The player will see a history of the highest global rank per day by date.

Tournament Flow - "Champions"

Info Tab

The player will see a multi-page explanation of how the in-game TournamentTournament - A recurring competition between all players within a game's community, based on score ranking, stage, and tier system works.

Steps

Follow these steps to get started.

Step

Detail

  1. Open the "Toolbox" Window

β€’ Unity β†’ Window β†’ Beamable β†’ Open Beamable Toolbox

  1. Add the "Tournament Flow" Prefab

β€’ Drag this Prefab from the Beamable Toolbox Window to the Unity Hierarchy Window

3 Open the Content Manager Window

β€’ Unity β†’ Window β†’ Beamable β†’ Open Content Manager

  1. Create the "Tournament" content
β€’ Select the content type in the list β€’ Press the "Create" button β€’ Populate the content name
  1. Open the Unity Project Window

‒ Unity → Window → General→ Project

  1. Select the "Tournament" asset

β€’ Search by the name given in step #4
β€’ View the asset in the Unity Inspector Window

  1. Populate all fields
  1. Save the Unity Project

β€’ Unity β†’ File β†’ Save Project

Best Practice: If you are working on a team, commit to version control in this step.

  1. Publish the content

β€’ Press the "Publish" button in the Content Manager Window

Here is the "Beamable" menu as seen in Unity.

The β€œBeamable” Menu

Here is the feature Prefab as seen in the Beamable Toolbox.

The Beamable "Tournament Flow" in the Beamable Toolbox Window

Advanced

Rewarding Tournament-Related Score

To appear in the tournament, a player must have a submitted tournament score.

Code

πŸ“˜

Beamable SDK Examples

β€’ This and all examples are available for download at GitHub.com/Beamable_SDK_Examples

using Beamable.Common.Tournaments;
using UnityEngine;

namespace Beamable.Examples.Services.TournamentService
{
    /// <summary>
    /// Demonstrates <see cref="TournamentService"/>.
    /// </summary>
    public class TournamentServiceExample : MonoBehaviour
    {
        [SerializeField] private TournamentRef _tournamentRef = null;
        [SerializeField] private double _score = 100;

        protected void Start()
        {
            Debug.Log("Start()");
            
            TournamentsSetScore(_tournamentRef.GetId(), _score);
        }

        private async void TournamentsSetScore(string id, double score)
        {
            var beamableAPI = await Beamable.API.Instance;
            
            long userId = beamableAPI.User.id;

            Debug.Log($"beamableAPI.User.id = {userId}");
            
            await beamableAPI.Tournaments.JoinTournament(id, 0);
            
            await beamableAPI.Tournaments.SetScore(id, userId, score);
            
            Debug.Log($"Tournaments.SetScore({id},{userId},{score})");
        }
    }
}

What Is Reset Each Cycle?

At the end of each cycle (e.g. 24 hrs), players are rewarded and the player rank is reset. The player stage and player tier are not reset.

Tournament vs Leaderboard

Beamable supports many social features including TournamentTournament - A recurring competition between all players within a game's community, based on score ranking, stage, and tiers and LeaderboardLeaderboard - A list of high scores by all players of a games. A game can incorporate either, none, or both. Both features help to build game community, encourage player competition, and increase player retention.

Comparison

  • Leaderboard - Simpler integration. Simpler user experience. No player rewards are given
  • Tournament - Deeper user experience. Player rewards are given

See LeaderboardLeaderboard - A list of high scores by all players of a game for more info.

🚧

GOTCHA

Here are hints to help explain some of the trickier concepts.

β€’ This Feature PrefabFeature Prefab - The drag-and-drop template for a specific Beamable product feature renders for landscape layout. Support for rendering portrait layout is not yet available

Updated 9 days ago


Tournament Flow


Allow game maker to set up a recurring tournament

Suggested Edits are limited on API Reference Pages

You can only suggest edits to Markdown body content, but not to the API spec.