For the complete documentation index, see llms.txt. This page is also available as Markdown.

Подбор игроков

Этот SDK — это необязательный стартовый набор для пользователей Unity, который позже можно расширять и настраивать.

💡 Возможности

  • Полные примеры

  • Автоматизация пинга

  • Тикеты, группы, команды

  • Переменные сопоставления

  • Определения типов (C#)

  • Локальное тестирование разработки

  • Кроссплатформенность

  • Легко настраивается

  • Автоматический повтор

✔️ Подготовка

🍀 Начало работы

В этом руководстве предполагается базовое знание Подбор игроков концепций и работающего Matchmaker.

Обзор

Этот пакет включает:

  • Файлы среды выполнения — будут скомпилированы и включены в сборки клиента и сервера:

    • Утилиты, специфичные для сервиса:

      • Подбор игроков - полная интеграция клиента для повторного использования/расширения.

      • Функции API — определения конечных точек, обработка ошибок и автоматизация логирования.

    • Специфично для сервиса DTO - типизированные контейнеры данных для API подбора игроков.

    • Общие утилиты — логирование, HTTP, ping, observables и т. д...

    • Общие DTO - используются несколькими сервисами Edgegap для передачи данных.

  • Файлы примеров — включаются в сборку и компилируются ТОЛЬКО если импортированы в ваш проект:

Клиент группы

Автоматизация ping, управление тикетами и получение хоста выполняются клиентом группы.

После создания, родительский Monobehaviour агента (обработчик) должен инициализировать клиент и предоставить:

  • onMonitorUpdate callback — отслеживать изменения состояния сервиса,

  • onAssignmentUpdate callback — отслеживать и реагировать на изменения назначения хоста.

После инициализации этот клиент автоматически выполняет проверки и подключает наблюдателей логирования, завершаясь одним вызовом конечной точки API мониторинга для указания состояния сервиса.

Ожидается, что обработчик клиента возьмёт управление на себя и будет вызывать функции клиента отсюда:

  • Маяки для получения списка доступных Маяки Ping,

  • MeasureBeaconsRoundTripTime для выполнения измерений ping по заданному набору маяков,

  • CreateGroup для лидера лобби, чтобы создать присоединяемую группу, в которую можно приглашать друзей,

  • JoinGroup для присоединения к существующей группе с использованием ID группы, переданного через сторонний lobby/backend,

  • SetReady для отметки владельца группы и участников как готовых и начала поиска матчей,

  • ResumeMatchmaking загрузить кэшированную группу и продолжить поиск в случае сбоя клиента,

  • StopMatchmaking чтобы удалить тикет (если матч не найден) и покинуть очередь,

  • Статус для проверки состояния сервиса Server Browser.

Когда устанавливается новое подключение игрока, ожидается, что игрок отправит свой ID тикета на игровой сервер с использованием вашего netcode, чтобы связать подключения с Подробный обзор.

🧪 Примеры

Начните работу с примерами, включая полную рабочую интеграцию как для сервера, так и для клиента.

Простой пример

Включает полную реализацию жизненного цикла игрока с измерением ping, управлением тикетами и получением назначения хоста. Демонстрирует, как читать внедрённые переменные матча на стороне сервера.

Изменяйте атрибуты подбора игроков, чтобы легко расширить этот пример и адаптировать его к любой конфигурации.

Выбор региона

У некоторых игроков (или групп) есть особые локализованные условия (например, ISP блокировка, общенациональная блокировка, или другие) и они могут предпочесть выбирать регион вручную, а не только на основе ping.

Изучите наш пример выбора региона и почерпните идеи для реализации UI подбора игроков.

⚙️ Настройка

Этот SDK предназначен для расширения и модификации, хотя некоторые изменения могут быть рискованными:

✅ Обработчик — безопасно подключайте наблюдателей UI и вносите небольшие дополнения или изменения,

⚠️ Агент — изменяйте управление жизненным циклом игрока на свой страх и риск,

⚠️ API — напишите собственную интеграцию с нуля, используя выбранные утилиты.

Обработчики могут отслеживать любые события, генерируемые агентами Server и Client, как описано ниже.

Отслеживать события

Клиент группы генерирует события (действия) для наблюдения и обработки родительским обработчиком.

Предварительный просмотр событий, генерируемых наблюдаемым Монитор :

Тип действия
Сообщение события
Описание

🟢 Обновление

исправно

Все системы в порядке.

🟢 Обновление

неисправно

Неожиданная проблема.

🔴 Ошибка

не удалось получить монитор

Неверная конфигурация или неожиданная проблема.

🔴 Ошибка

не удалось получить маяки

Неожиданная проблема.

Предварительный просмотр событий, генерируемых наблюдаемым Группа:

Тип действия
Сообщение события
Описание

🟢 Обновление

создана

Группа успешно создана.

🔴 Ошибка

не удалось создать группу

Не удалось создать группу.

🟢 Обновление

присоединено

Группа успешно присоединена.

🔴 Ошибка

не удалось присоединиться к группе

Не удалось присоединиться к группе.

🟢 Обновление

возобновлено

Группа успешно возобновлена.

🔴 Ошибка

группа не найдена

Не является участником группы, или группа истекла.

🔴 Ошибка

конфликт, покиньте и перезапустите

Пожалуйста, покиньте текущую группу, прежде чем пытаться создать/присоединиться к новой группе.

🟢 Обновление

участник обновлён [{ready}]

Участник обновлён со значением Ready.

🔴 Ошибка

не удалось обновить участника

Не удалось обновить участника группы.

🔵 Уведомление

опрос [{consecutive}/{maximum}]

Клиент инициировал опрос статуса группы.

🔵 Уведомление

опрос остановлен

Клиент остановил опрос статуса тикета.

🔴 Ошибка

опрос не удался, достигнут максимум повторных попыток

Клиент исчерпал максимальное число последовательных повторных попыток опроса. Проверьте состояние сервиса.

🔴 Ошибка

опрос не удался

Клиент получил ошибку, не подлежащую повторной попытке, во время опроса. Проверьте состояние сервиса.

🟢 Обновление

группа обновлена [{status}]

Обнаружено изменение статуса группы во время опроса.

🟢 Обновление

покинута

Тикет успешно удалён.

🟢 Обновление

покинуть не удалось (не найдено)

Клиент не смог найти тикет для удаления, возможно, он истёк.

🟡 Предупр.

покинуть не удалось (уже сопоставлено)

Клиент не смог удалить сопоставленную группу. Отключите покидание или Backfill-матч чтобы заменить игрока.

🔴 Ошибка

покинуть не удалось

Не удалось удалить группу или участника.

🟢 Обновление

удалено

Группа истекла, локальная ссылка удалена.

Последнее обновление

Это было полезно?