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

Развертывание из UGS

Следуйте этому руководству, если хотите продолжать использовать Unity Matchmaker и развертывать серверы в Edgegap.

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

Это руководство сосредоточено на добавлении хостинга серверов Edgegap в качестве поставщика хостинга, предполагая, что:

Пожалуйста, обратитесь к документации Unity по Matchmaking по вопросам матчмейкинга.

См. Переход с Multiplay для сравнения и сопоставления концепций Multiplay с хостингом Edgegap.

Правильный выбор расположения для вашего сервера может снизить задержку в среднем до 58%!

В этом руководстве мы рассмотрим:

  • сборку и развертывание EdgegapAllocator модуль cloud script для вашего Matchmaker,

  • получение публичных IP-адресов игроков, используемых для оптимального размещения сервера,

  • реализацию слушателя webhook в UGS cloud script и получение назначения сервера.

Edgegap Allocator

Начните с загрузки исходного кода репозитория с EdgegapAllocator .

Это наш cloud script используемый для запуска новых серверов, который запускается Unity matchmaker после того, как матч собран. Это официальная интеграция, одобренная Unity.

Необходимые секреты

Сначала добавьте эти секреты в Unity Dashboard в разделе Администрирование > Секреты:

  • EDGEGAP_API_TOKEN — ваш токен API Edgegap.

Найдите свой токен в Edgegap Dashboard.

Необходимые изменения кода

Отредактируйте Project/EdgegapAllocator.cs и обновите эти константы:

Замените на имя вашего приложения Edgegap из списка приложений.

Замените на имя версии вашего приложения Edgegap, которую вы хотите использовать.

Замените на имя порта версии вашего приложения Edgegap, которое будет использоваться для подключения игроков.

Разверните модуль

Следуйте официальным инструкциям Unity, чтобы развернуть ваш настроенный модуль с помощью CLI или Editor.

Получение IP игрока

Чтобы по запросу предоставлять оптимальное расположение сервера для каждого матча, Edgegap требует указывать IP-адреса игроков при создании развертывания. Хотя Unity не предоставляет эту функцию, вы можете использовать наш фрагмент C#, чтобы реализовать это в клиентских приложениях вашей игры с помощью бесплатного сервиса ipify:

Ожидается, что каждый игрок предоставит свой публичный IP-адрес, используя пользовательские данные в своих билетах:

Получение назначения

Назначение можно получить с помощью стандартных методов Unity matchmaking.

Наш пример будет обрабатывать назначения за вас с помощью Status API, ограниченного до 20 запросов/с.

Этого достаточно для большинства игр. Если вы ожидаете более 50 000 CCU, рассмотрите альтернативные методы.

Альтернативное назначение

Для крупных мировых запусков доступна более масштабируемая альтернатива с использованием Webhook'ов доступна.

После того как матч создан и ваш cloud script запрашивает новое развертывание, ваш ответ еще не будет содержать данные подключения. Вместо этого вы получите своего рода квитанцию — идентификатор развертывания.

Ваша функция allocator должна сохранить этот идентификатор развертывания в ваших UGS Game Data вместе с идентификаторами сопоставленных игроков, чтобы позже вы могли найти игроков и предоставить данные подключения.

Теперь вам нужно создать еще одну функцию cloud script AssignmentProcessor с общедоступным URL. Этот URL должен быть включен в запрос на развертывание вашего Allocator как webhook_on_ready .

После того как Edgegap развернет ваш игровой сервер, он отправит HTTP-событие webhook со всеми данными подключения, такими как FQDN (URL) и внешний порт для подключения клиентов, обратно в ваш новый cloud script. Ваш AssignmentProcessor должен будет найти идентификатор развертывания и сохранить данные подключения вместе с ним.

Ваши игровые клиенты должны опрашивать эти игровые данные и пытаться подключиться, как только будут получены FQDN и внешний порт.

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

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