Skip to main content

Match creation UI - Create joinable sessions with dedicated servers - (Unity module)

Last updated on October 24, 2024

What's on the menu

A Unity user interface (UI) prefab for creating a match session has been prepared for you. In this tutorial, you will learn how to implement creating match sessions by coding it into the provided prefab. The prefab is available in the Resources section and consists of the following files:

  • MatchSessionHandler.cs: This script is designed to handle UI functionality related to selecting a match type for creating a match session. It features a Button UI element and logic to process the selected server type.

    • CS file: Assets/Resources/Modules/MatchSession/Scripts/MatchSessionHandler.cs
  • MatchSessionHandler.prefab: A GameObject prefab that is created based on the Canvas Panel UI GameObject.

    • Prefab file: Assets/Resources/Modules/MatchSession/Prefabs/MatchSessionHandler.prefab
  • MatchSessionServerTypeSelection.cs: This script is designed to handle UI functionality related to selecting a server type for creating a match session. It features a Button UI element and logic to process the selected server type.

    • CS file: Assets/Resources/Modules/MatchSession/Scripts/MatchSessionServerTypeSelection.cs
  • MatchSessionServerTypeSelection.prefab: A GameObject prefab that is created based on the Canvas Panel UI GameObject.

    • Prefab file: Assets/Resources/Modules/MatchSession/Prefabs/MatchSessionServerTypeSelection.prefab
  • CreateMatchSessionDSHandler_Starter.cs: A C# script that contains most of the match session implementation. This class connects the UI and the AccelByte Gaming Services (AGS) Game SDK service wrapper class to call its API.

    • CS file: Assets/Resources/Modules/MatchSessionDS/Scripts/UI/CreateMatchSessionDSHandler_Starter.cs
  • CreateMatchSessionDSHandler_Starter.prefab: A GameObject prefab that acts as container for CreateMatchSessionDSHandler_Starter.cs.

    • Prefab file: Assets/Resources/Modules/MatchSessionDS/Prefabs/CreateMatchSessionDSHandler_Starter.prefab

Create match session canvas

The MatchSessionHandler.prefab is used as a menu for game mode options and the MatchSessionServerTypeSelection.prefab is used for network type options. Both menus will display UI elements with these options, holding values for the game mode and network type, which are later passed to CreateMatchSessionDSHandler_Starter.cs as the UI handler.

Select game mode state

The MatchSessionHandler.prefab includes states that allow the player to select one of the offered game modes: Elimination or Team Deathmatch.

Preview of the select game mode state Unity Byte Wars joinable sessions dedicated server

Select network type state

The MatchSessionServerTypeSelection.prefab includes states that allow the player to select one of the network types the session will use. In this module, you will implement the dedicated server network type.

Preview of the select network type state Unity Byte Wars joinable sessions dedicated server

Ready the UI

The prefab you will use to implement creating match sessions is CreateMatchSessionDSHandler_Starter.prefab, which has a CreateMatchSessionDSHandler_Starter.cs C# script. You need to implement the UI functionality before calling the AGS Game SDK API to create match sessions. Follow these steps to do this:

  1. Open the CreateMatchSessionDSHandler_Starter.cs. You will implement creating a match session with the Elimination game mode using the dedicated server. Modify the CreateMatchSessionDSHandler_Starter.cs.ClickDedicatedServerButton method as shown below.

    public void ClickDedicatedServerButton()
    {
    BytewarsLogger.Log("Creating a match with a dedicated server is not implemented");
    }
  2. In Unity, go to Assets/Resources/Modules/MatchSessionDS/MatchSessionWithDSAssetConfig.asset. There, you will find an asset config called MatchSessionWithDSAssetConfig.asset. Open it and enable Is Starter Active. This will activate the starter UI, allowing you to navigate through it when you play the game.

    Image of the Is Starter Active option in the MatchSessionWithDSAssetConfig file in the Unity Inspector Unity Byte Wars joinable sessions dedicated server

  3. Play the game in the Editor. If your implementation was successful, you will be able to navigate to the server selection panel from the Create Match>Create Elimination and see the following log when you click DEDICATED SERVER:

    [CreateMatchSessionDSHandler_Starter.cs] [ClickDedicatedServerButton] [Log] [linenumber] - Creating a match with a dedicated server is not implemented

Resources