Строительный блок сеанса Matchmaker
Реализуйте в проекте многопользовательский Matchmaker Unity с помощью готовых элементов UI этого Unity Building Block. Узнайте, что такое Matchmaker, как его настроить, что представляют собой очереди Matchmaker и как подключаться к пакетам netcode от Unity.
Введение
Строительный блок Matchmaker Session помогает вам интегрировать UnityМатчмейкер Этот строительный блок может служить отправной точкой для ваших многопользовательских проектов, или как быстрая интеграция Matchmaker во время разработки.
В этом блоке создания показано, как выполнить следующие действия:
- Управление конфигурацией очереди Matchmaker из вашего проекта Unity.
- Разверните такой ресурс очереди в облачных службах, чтобы использовать его в режиме воспроизведения.
- Соедините игроков через службу Matchmaker, используя список правил.
Модуль Matchmaker Session Building Block включает пример Scene, UIToolkit UI и предварительную конфигурацию очереди Matchmaker с основными правилами для соединения игроков. Если вам нужна синхронизация игры, вы можете добавить Netcode, используя Unity Netcode for GameObjects или Netcode for Entities.
Предварительные условия
- Установите Unity Строительный блок — Сеанс Matchmaker от Unity Asset Store.
- Связать ваш проект Unity Editor с облачным проектом.
Первоначальная настройка
Разверните ассет MatchmakerQueue для использования функциональных возможностей этого блока создания.
- В редакторе в разделе Ассеты > Blocks > MatchmakerSession > Настройкивыберите файл ассета
MatchmakerQueue. - В окне Inspector выберите Просмотр в окне развертывания.
- В окне Развертывание выберите файл
MatchmakerQueueв группеBlocks.MatchmakerSession, затем щелкните правой кнопкой мыши и выберите Развертывание, чтобы настроить очередь.
Чтобы проверить правильность установки строительного блока, откройте включенную примерную сцену:
- Откройте примерную сцену, расположенную в папке Ассеты > Blocks > MatchmakerSession > Сцены.
- Перейдите в режим воспроизведения и убедитесь, что вход в систему был успешным, а конечные точки службы доступны.
Unity Матчмейкер
Матчмейкинг в Unity автоматически группирует игроков в многопользовательские сессии на основе правил, включающих навыки, регион, режим игры и размер группы.
Общие концепции
- Билеты/очередь: игроки отправляют запрос и ждут соответствия.
- Атрибуты: Умение, регион, устройство ввода, размер группы, режим игры.
- Балансировка команды: Распределение игроков для достижения справедливых команд.
- Латентность или регион маршрутизации: размещение игроков на близлежащих серверах.
Типичный поток
- Игрок создает запрос на присоединение.
- Служба помещает запрос в очередь и выполняет поиск по правилам.
- При соответствии создается сеанс.
- Игроки получают информацию о подключении и присоединятся к сессии.
Включенные сцены
| Имя ассета | Описание |
|---|---|
| Матчмейкер | Соединяет пользователей с совместимыми игроками на основе установленных критериев. Настройки могут быть добавлены для оптимизации матчей. |
Матчмейкер
JoinSessionByMatchmaking UXML:
MatchmakeButton: Запускает Matchmake с указанным именем очереди.CancelButton: Отменяет текущий запрос Matchmake.SessionConnectingTimerLabel: Отображает, как долго была активна попытка Matchmake.
CurrentSession UXML:
SessionNameLabel: Отображает имя наблюдаемого сеанса.PlayerCountLabel: Отображает количество игроков в наблюдаемой сессии.PlayerNameLabel: Отображает имя игрока.CopySessionCodeElement: Отображает код присоединения для сессии, чтобы его можно было скопировать.PlayerListView: Отображает список игроков, которые присоединились к сессии.LeaveSessionButton: Выберите, чтобы покинуть присоединенный сеанс.
Очередка Matchmaker
A Очередка Matchmaker Очередка обеспечивает выполнение вашей конфигурации: необходимые атрибуты, регионы, режимы, размеры команд, роли и приоритеты, например, честность против скорости. Очередка собирает совместимые билеты в матчи и обрабатывает ограничение скорости, возвращая данные о присоединении при создании действительного матча.
Этот Building Block содержит простую конфигурацию очереди Matchmaker, которая сопоставляет две команды от одного до двух игроков в каждой команде и не имеет других ограничений. Он также имеет правило релаксации после 20 секунд, которое уменьшает количество команд, требуемых до одной, так что один присоединившийся игрок успешно присоединяется к сессии через 20 секунд.
Для более уточненных правил вы можете изменить уже развернутую очередь Matchmaker на панели управления и получить доступ к полному набору настраиваемых правил Matchmaking.
Различия между поиском соперников и быстрым присоединением
Многопользовательские Сервисы Matchmake API имеют как Быстрое Присоединение, так и Matchmake опции. Быстрое Присоединение — это простое действие, которое находит любое доступное лобби, в то время как Matchmake — это процесс, основанный на правилах, который нацелен на лучший возможный матч, а не только на первый доступный.
Быстрое присоединение
- Самый быстрый способ войти в любое открытое лобби.
- Минимальные правила; приоритет скорости над качеством.
- Лучше всего подходит для обычной игры с низкими ставками или для небольших лобби.
Матчмейкинг
- Очередное, основанное на правилах размещение, например, навыки, регион, режим, размер партии.
- Цели для справедливых команд, низкая задержка и правильное распределение серверов.
- Поддержка backfill, cross-play фильтров и выделенных серверов.
Используйте Быстрое Присоединение для непосредственности. Используйте Matchmaking, когда баланс, задержка, ограничения ролей или оркестрация сервера имеют значение. См. Строительный блок мультиплеерной сессии для примера Быстрого Присоединения.
Тестирование матчей локально
Для проверки настройки локально вы можете использовать Multiplayer Play Mode.
Добавление сетевого кода к сеансу
Чтобы интегрировать либо Netcode for GameObjects, либо Netcode for Entities в ваши сессии, выполните следующие действия:
- Установите пакет Netcode по вашему выбору, используя Package Manager (Окно > Управление пакетами > Package Manager).
- Установить либо Unity Netcode for GameObjects или Netcode for Entities
- Включить Создать сетевой сеанс в
SessionSettings.- В вашем
SessionSettingsScriptableObject найдите и включите опцию Создать сетевой сеанс, которая позволяет распознавать ваши сессии и управлять ими выбранным решением Netcode.
- В вашем
- Изменить Тип сети в
SessionSettings.- Корректировка Тип сети внутри вашего
SessionSettingsчтобы соответствовать предполагаемой архитектуре сети. Можно выбрать из следующих вариантов:- Ретрансляция: для облачных служб ретрансляции.
- Распределённые полномочия: для работы с распределёнными полномочиями Netcode for GameObjects.
- Прямое: Для прямых соединений, использующих IP Адрес и Порт.
- Корректировка Тип сети внутри вашего
Чтобы больше узнать о различных NetworkTypes, см. Управление сетевыми подключениями.
Устранение неполадок
Многопользовательские услуги недоступны
- Многопользовательские Сервисы должны быть инициализованы. Вы можете инициализировать свои собственные сцены с настройками по умолчанию, добавив компоненты ServicesInitialization и PlayerAuthentication.
Сбой аутентификации
- Убедитесь, что Matchmaker включена в Unity панели для правильного Project ID.
- Убедитесь, что вы вошли в редактор с правильной организацией и средой.
Ошибки Matchmaker (404 или невозможно найти соответствие)
- Проверьте состояние развертывания очереди.
MatchmakerQueueассет внутри Активы > Блоки > MatchmakerSession > Настройки и подтвердить, что Inspector дисплеи На текущий момент с зеленым значком в заголовке файла. - Проверьте, что
MatchmakeButtonв вашем UXML ссылается на правильный ассетMatchmakerQueue. - Проверьте конфигурацию очереди, убедившись, что в ресурсе
MatchmakerQueueминимальное количество команд и игроков соответствует количеству клиентов, к которым вы пытаетесь подключиться. При изменении конфигурации очереди в вашем проекте, вам нужно развернуть ее снова через окно развертывания, чтобы она работала в режиме Play.
UI не показывает данные
- Проверьте, что каждый
VisualElementв вашем UXML имеет свойSessionTypeустановлен правильно.
- Unity Услуги: Мультиплеер SDK
- Unity Netcode for GameObjects
- Unity Netcode for Entities
- Правила Matchmaker