Система запуска комнат/игровых серверов
Данная система позволяет запускать ваши игровые сервера в любой точке мира. Например, вы запустили мастер сервер в Англии, но хотите, чтобы игроки из США, России, Японии и Китая могли играть в вашу игру в их стране. Для этого вы запускаете 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.