Система запуска комнат/игровых серверов

Данная система позволяет запускать ваши игровые сервера в любой точке мира. Например, вы запустили мастер сервер в Англии, но хотите, чтобы игроки из США, России, Японии и Китая могли играть в вашу игру в их стране. Для этого вы запускаете VDS в этих странах и устанавливаете на них систему запуска ваших игровых серверов с указанным регионом. Регион нужен для выбора игрового сервера. После того, как вы запустите так называемые "спаунеры" они сразу же зарегистрируются в системе мастер сервера и будут доступны любому клиенту и готовы к запуску игровых серверов.

Клиентская часть

На стороне клиента существует несколько методов работы с "спаунером".

RequestSpawn()

Этот метод выполняет запрос на мастер сервер для запуска игрового сервера с указанными параметрами.

/// <summary>
/// Sends a request to master server, to spawn a process with given options
/// </summary>
/// <param name="options"></param>
public void RequestSpawn(MstProperties options)

/// <summary>
/// Sends a request to master server, to spawn a process in a given region, and with given options
/// </summary>
/// <param name="options"></param>
public void RequestSpawn(MstProperties options, string region)

/// <summary>
/// Sends a request to master server, to spawn a process in a given region, and with given options
/// </summary>
/// <param name="options"></param>
/// <param name="region"></param>
/// <param name="callback"></param>
public void RequestSpawn(MstProperties options, string region, SpawnRequestResultHandler callback)

/// <summary>
/// Sends a request to master server, to spawn a process in a given region, and with given options
/// </summary>
/// <param name="options"></param>
/// <param name="region"></param>
/// <param name="callback"></param>
public void RequestSpawn(MstProperties options, MstProperties customOptions, string region, SpawnRequestResultHandler callback)

/// <summary>
/// Sends a request to master server, to spawn a process in a given region, and with given options
/// </summary>
/// <param name="options"></param>
/// <param name="customOptions"></param>
/// <param name="region"></param>
/// <param name="callback"></param>
public void RequestSpawn(MstProperties options, MstProperties customOptions, string region, SpawnRequestResultHandler callback, IClientSocket connection)
  • options - этот параметр необходим для передачи каких-либо настроек или команд самому "спаунеру". Эти опции могут быть разными, в зависимости от того расширяли ли вы "спаунер" или пользуетесь уже готовым решением.
  • customOptions - это то, что будет передано прямиком в запускаемые процесс игрового сервера. В этот параметр необходимо записывать аргументы командной строки.
  • region - этот параметр необходим для указания региона, в котором будет запущен игровой сервер. Установка этого параметра необходима только если ваш "спаунер" зарегистрирован в каком-либо регионе. По умолчанию все "спаунеры" регистрируются как "международные", в таком случае параметр "region" должен быть пустым.
  • callback - в данном параметре указывается метод, который принимает два параметра:
    • сontroller - контроллер выполнения запускаемого процесса.
    • error - результат с ошибкой, если она имела место.

AbortSpawn()

Этот метод используется для остановки запускаемого процесса игрового сервера.

/// <summary>
/// Sends a request to abort spawn request, which was not yet finalized
/// </summary>
/// <param name="spawnTaskId"></param>
public void AbortSpawn(int spawnTaskId)

/// <summary>
/// Sends a request to abort spawn request, which was not yet finalized
/// </summary>
public void AbortSpawn(int spawnTaskId, SuccessCallback callback)

/// <summary>
/// Sends a request to abort spawn request, which was not yet finalized
/// </summary>
/// <param name="spawnTaskId"></param>
/// <param name="callback"></param>
/// <param name="connection"></param>
public void AbortSpawn(int spawnTaskId, SuccessCallback callback, IClientSocket connection)

Этот метод также имеет несколько параметров. Давайте их рассмотрим.

  • spawnTaskId - идентификатор запускаемой задачи. Этот идентификатор можно получить из контроллера, который отдает вам метод RequestSpawn в параметре callback.
  • callback - в данном параметре указывается метод, который возвращает вам результат выполнения операции завершения процесса.

GetFinalizationData()

Этот метод выполняет запрос на получения данных о завершении процесса запуска игрового сервера. Эти данные отдает "спаунер" мастер серверу.

/// <summary>
/// Retrieves data, which was given to master server by a spawned process,
/// which was finalized
/// </summary>
/// <param name="spawnId"></param>
/// <param name="callback"></param>
public void GetFinalizationData(int spawnId, FinalizationDataResultHandler callback)

/// <summary>
/// Retrieves data, which was given to master server by a spawned process,
/// which was finalized
/// </summary>
public void GetFinalizationData(int spawnId, FinalizationDataResultHandler callback, IClientSocket connection)

Данный метод имеет следующие параметры:

  • spawnId - идентификатор выполняемого процесса.
  • callback - в данном параметре указывается метод, который возвращает результат с данными.
    • data - список данных.
    • error - результат с ошибкой, если она имела место.

GetSpawnRequestController()

Этот метод необходим для получения контроллера запроса запуска игрового сервера.

/// <summary>
/// Retrieves a specific spawn request controller
/// </summary>
/// <param name="spawnId"></param>
/// <returns></returns>
public SpawnRequestController GetSpawnRequestController(int spawnId)

Данный метод принимает один параметр:

  • spawnId - идентификатор запущеного процесса.

И возвращает SpawnRequestController.