Развертывание из UGS
Следуйте этому руководству, если хотите продолжать использовать Unity Matchmaker и развертывать серверы в Edgegap.
Ищете альтернативы? Рассмотрите наш управляемый Подбор игроков с интеграцией SDK и примерами.
Начало работы
Это руководство сосредоточено на добавлении хостинга серверов Edgegap в качестве поставщика хостинга, предполагая, что:
у вас есть рабочая настройка Unity Matchmaking,
вы зарегистрированы в Edgegap и загрузили вашу сборку сервера Unity.
Пожалуйста, обратитесь к документации 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, которое будет использоваться для подключения игроков.
Разверните модуль
Получение IP игрока
Если IP-адрес игрока не указан, ваши развертывания по умолчанию используют локацию Los Alamos.
Чтобы по запросу предоставлять оптимальное расположение сервера для каждого матча, 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 и внешний порт.

Последнее обновление
Это было полезно?

