Kronos Matchmaking
Buy NowContact
  • About
    • Kronos LTS
    • Support
    • Accolades
  • Examples
    • Playable Demo
    • Sample Project
    • Example Content
  • Configuration
  • Testing & Debugging
  • Usage
    • Getting Started
    • Authentication
      • Authenticating Users
      • Customizing The Auth Widget
      • Creating Custom Auth Tasks
    • Matchmaking
      • Overview
      • Creating Matches
      • Starting Matchmaking
      • Canceling Matchmaking
      • Using Skill Ratings
      • Sending Match Invites
      • Joining Matches
      • Leaving Matches
    • Party
      • Overview
      • Creating Parties
      • Sending Party Invites
      • Joining Parties
      • Managing Party Players
      • Party Player Actors
      • Leaving Parties
    • Reservations
      • Overview
      • Using Reservations
      • The Host Reservation
      • Completing Reservations
    • Lobby
      • Overview
      • Lobby Setup
      • Set Players Ready
      • Lobby Player Data
      • Starting The Match
      • Updating Lobby Session
      • Leaving The Lobby
    • Widgets
  • Guides
    • Creating a Level Selector
    • Integrating with Lyra Game
    • Integrating with EIK
  • Advanced
    • Steam Sockets
    • Reconnect Parties
    • Custom Party Variables
    • Player Groups
  • Changelog
    • API Upgrades
    • Legacy
Powered by GitBook
On this page
  • What Is A Session?
  • The Matchmaking Process
  1. Usage
  2. Matchmaking

Overview

The matchmaking system of Kronos is a complex state machine that automatically handles creating, finding, and joining sessions using the Online Subsystem.

What Is A Session?

A session is the representation of an online room that exists on the online service's backend (e.g. the Steam servers). There are two types of sessions: Game Sessions representing online lobbies or matches, and Party Sessions representing online parties.

In C++ session types are referred to as SessionName.

Session have a number of small data blocks assigned to them in the form of Key-Value pairs. These small data blocks are what we call Session Settings. These session settings are used by the matchmaking system to filter out session that do not match our search criteria. Some of the settings that Kronos uses include: "Playlist", "MapName", and "Game Mode".

The Matchmaking Process

When matchmaking is started sessions will be queried first. If at least one session was found, the joining process starts. If no sessions were found, the matchmaking system will decide whether to start a new search, or whether it should switch over to hosting role - creating a new session.

The joining process consists of three steps. First we'll request a reservation for the session by establishing a lightweight connection with the session host, and asking him to reserve a spot for us in the session. This ensures that all party members will be able to join the session. Next we will attempt to join the session on the backend service (e.g. Steam servers) using the Online Subsystem. Once we've joined the session, we can connect to the session host. This is where the actual multiplayer stuff happens such as establishing the connection with the host, receiving the map to load, and spawning into the game.

Session creation is also part of the matchmaking process. It is pretty straight forward, first we'll create the session on the backend and then open a listen server for it.

PreviousMatchmakingNextCreating Matches

Last updated 10 months ago