Мы предоставляем API/настройки для управления тем, как мы подбираем игрокам серверы в вашей игре, и позволяем направлять игроков на новые серверы для поддержки сценариев игр-хабов.
Параметры подбора игроков
Режим заполнения:
All Out размещает серверы по всему миру, чтобы обеспечить игрокам игру с низкой задержкой; однако, если ваша игра только начинает развиваться, вы можете пойти на компромисс по задержке, чтобы игроки могли играть вместе на одном сервере. Режимы заполнения описаны на главной странице портала Creator и могут быть изменены в любое время.
Приоритет экземпляра + режим требования высокого приоритета
Существует специальный режим подбора игроков, который позволяет избегать отправки игроков на определённые серверы с помощью кода.
Игры могут задавать уровень «приоритета» для каждого экземпляра в зависимости от статуса раунда, количества игроков и т. д. с помощью Server.set_matchmaking_priority(priority).
При желании вы можете запросить включение режима «Требовать высокий приоритет» для вашей игры, который будет только направлять игроков в экземпляры с приоритетом, установленным в ноль, и будет запускать новые серверы если таких нет.
Это может быть полезно, если у вас игра по раундам, и вы не хотите, чтобы новые игроки присоединялись к уже идущим играм.
Эта функция доступна только по запросу, поскольку если вашим экземплярам никогда/редко не присваивается приоритет 0, будет запускаться огромное количество серверов! Пожалуйста, свяжитесь с нами!
Хаб-игры
Хаб-игры — это распространённый подход, который позволяет игрокам встречаться и вместе становиться в очередь на игру по раундам. Примеры:
Лобби для Red Sun, которое позволяет игрокам становиться в очередь на совместную игру и покупать улучшения в ожидании
Хаб Bed Wars, который позволяет выбирать между режимами игры (например, классы/или классический)
Справочник API
Server::struct{// Перевести игрока в другую игру (хаб -> матч, матч -> хаб и т. д.).transfer_player_to_game::proc(player:Player,game_id:string);// Установить приоритет подбора игроков для этого экземпляра (0 = наивысший приоритет).set_matchmaking_priority::proc(priority:int);// Кикнуть игрока с сервера.kick_player::proc(player:Player,reason:string="Kicked.");// Система очередей для пользовательского подбора игроков. Эти API в настоящее время устарели, но могут вернуться. Предпочитайте API transfer_player_to_game. queue_add_player::proc(queue:string,player:Player);queue_remove_player::proc(queue:string,player:Player);queue_set_server_available::proc(queue:string,available:bool);// Идентификатор сервера.get_id::proc()->string;get_private_server_host_id::proc()->string,bool;}
Это серверные API. Вызывайте их из Game.is_server() кода.
Пример: отправить игрока в другую игру
В настоящее время нет способа передать дополнительную информацию при переводе игрока в новую игру, а также нет способа динамически настраивать серверы при запуске. Если вы хотите иметь разные режимы (например, 1v1 и 2v2), вам нужно будет создать отдельные игры и связать их с системой родительских игр.
Мы рекомендуем включить Кросс-игровые продукты/данныепри использовании API телепортации/хаба, чтобы покупки игроков и данные сохранения можно было легко повторно использовать между ними.