Skip to main content
Version: 29.1.19

Real-Time First Time User Experience

It is recommended to implement game tutorial and synchronous bot matches for the first time user experience (FTUE). A new player is directed to play two of these matches before being allowed to explore other parts of the app. This ensures they have a firm enough grasp of the game mechanics in order to enjoy the game. In all instances where you use bots for this purpose, the player should be alerted to the fact that he or she is playing a bot. Additionally, the player will not be allowed to compete for prizes during these practice matches.

Skillz has developed optimal paths for new users arriving in the game who do not yet know how to play, such that they are provided with valuable learning experience and grow confident in their abilities to compete.

Real-Time First Time User Experience (FTUE) Options​

There are a few options to consider when choosing how FTUE will be handled in your real-time game.

In order to provide the player with greater familiarity, it is recommended that you include a bot match and a mechanics tutorial as a part of the FTUE. This will ensure the player has a grasp of the gameplay before they compete in a competitive match, or a match for a prize. The player must be alerted to the fact that he or she is entering a bot match. An explanation of how to set this up is included below.

Real-Time Games (FTUE)​

By default, a player will play a standard real-time match for their first match.

Optionally a developer can create:

  • A real-time, practice bot match (not for prizes) (recommended).
  • A mechanics tutorial to instruct players how to play your game (recommended).
  • A play-and-compare game mode.

Real-Time and Play-and-Compare Games (Hybrid)​

If your game has both play-and-compare and real-time game modes, the player can be placed in a play-and-compare match during the FTUE.

Skillz can then control:

  • (Default) Whether the player is to play a real-time match as their first match.
  • Whether players are forced to play a play-and-compare match as their first match, followed by another play-and-compare match.
  • Whether the player is forced to play a play-and-compare, followed by a real-time match. -- where you can specify more than one real-time matches to be played after the first

Note: Currently the system only works with one type of match for play-and-compare and real-time -- so you cannot force the new player to play several different game modes in a row, for example.

Mechanics Tutorial​

A Mechanics Tutorial, is a short explanation of the core mechanics of which is implemented by the developer outside of the FTUE flow governed by the Skillz SDK.

Many games like to put a short tutorial portion before the Skillz SDK initializes. In this tutorial you can either lead players through a subset of the game, or create a tutorial version of a full match -- it varies from game to game.

How to Implement a First-Time User Experience​

note

Real-time bot opponents are only permitted during the First Time User Experience, which consists of the mandatory Z tournaments a player goes through after a new install. Z tournaments are free tournaments and do not include entry fees or prizes. The primary goal of the Real-time bot opponents is to educate the players on the game mechanics while also giving them an idea of the in-game experience. The player will be alerted to the fact that he or she is facing a bot opponent.

Implementing a Mechanics Tutorial​

If this is the first time thinking about how players will progress through their first encounter with your game. We recommend that you read this article which describes how to implement a play-and-compare FTUE.

Implementing a Practice, Bot Match for FTUEs​

Overview​

  • Indicate that a given build has support for a bot match in the Skillz settings.
  • The Skillz SDK will be passing a Match object to the On Match Will Begin delegate containing special flags for the real-time FTUE match. The Match object has a Customer Server Connection Info with a new flag called IsBotMatch.
  • Your OnMatchWillBegin callback should watch for the IsBotMatch flag in order to trigger the bot match.
  • either into their own server for the bot match, or to run the bot match locally

Skillz Settings​

You will need to indicate that a given build has support for a practice bot match. If you do not, we will NOT send the player through the real-time FTUE and they will instead always see the play-and-compare FTUE.

A checkbox labeled Has Synchronous Bot can be checked under Skillz Settings. Simply check this box, and the Unity Skillz Wrapper will handle exporting the flags properly for each platform. This box is unchecked by default.

API for Bot Matches​

public void OnMatchWillBegin(SkillzSDK.Match match)
{
if ( match.CustomServerConnectionInfo.IsBotMatch )
{
// custom code to launch bot match
}
}

The match object can also be retrieved from the SkillzCrossPlatform API:

if ( SkillzCrossPlatform.GetMatchInfo().CustomServerConnectionInfo.IsBotMatch )
{
// custom code for bot match
}

Reporting Score for Bot Matches​

When your player has finished their FTUE real-time match, you will need to submit scores to return back to the Skillz SDK. We have added new methods to submit scores for bot matches.

/// <summary>
/// Call this method when a player's score is finalized to report their score to the Skillz server.
/// This methods does not return control to the Skillz SDK.
/// </summary>
///
/// <param name="score">The player's score as an integer.</param>
/// <param name="successCallback">A callback function that is invoked when the score submit completes successfully</param>
/// <param name="failureCallback">A callback function that is invoked when the score submit fails. It is invoked with an error message parameter.</param>
public static void SubmitScore(int score, Action successCallback, Action<string> failureCallback)

Creating a Bot Match​

This step will be unique to each game. The specific implementation will depend on the type of game and specific gameplay requirements. Generally, an opponent's actions will need to be simulated in some way and displayed to the user as if the opponent was a real player. These matches are tutorial in nature and do not involve entry fees or prizes.

Real-Time Tutorial Best Practices​

If a game features a real-time mode, the tutorial - regardless of the configuration - should include a section at the end explaining that it is possible to play a real-time match with a human opponent. This information should appear in both the play-and-compare tutorial and the real-time tutorial. In fact, unless there is an explicit need to call out real-time only functionality, we recommend only implementing the initial mechanics tutorial before the first match. If it is determined that the real-time mode absolutely must include different information than the play-and-compare mode, match info can be used to dynamically determine which tutorial to show.

Data shows that players that experience real-time play early on are much more likely to engage with pro tournaments. Any opportunity to remind players that real-time play is supported will positively impact a game’s metrics.

For real-time games using a FTUE flow, we also recommend notifying the player that they can play real-time games against a human opponent as soon as they complete their last match of the FTUE flows. Currently, the best time to relay this information is immediately upon completion of that second practice match and before the results screen (where the player presses Submit Score), as once the results screen appears, the player must be transitioned directly back to the SDK.

Example of Real-Time Flow - Diamond Strike​

Below is one example of what the system can do using the Skillz game Diamond Strike with the Real-Time FTUE flows. In this flow for Diamond Strike we see that two configurations have been chosen: 2 games for real-time, and 2 games with a Hybrid First Time User Experience (FTUE) including both Play-and-Compare and Real-Time.

ftue flow

  • Note that the first step, the Mechanics Tutorial, is a short explanation of the core mechanics of Diamond Strike which is implemented by the developer outside of the FTUE flow governed by the Skillz SDK
    • Many games like to put a short tutorial portion before the Skillz SDK initializes
    • In this tutorial you can either lead players through a subset of the game, or create a tutorial version of a full match -- it varies from game to game
  • Some developers choose to skip the mechanics tutorial and go straight to an play-and-compare match where they explain the rules to players while they play against a real opponent
    • This depends on the type of game, and what works for you and your players!
    • This can be done with real-time as well.
  • Once the Skillz SDK initializes, however, you should follow the guidelines on this page to provide the different play-and-compare and real-time modes for it to call into