Развертывание из UGS
Следуйте этому руководству, если хотите сохранить Unity Matchmaker и развернуть серверы в Edgegap.
Начало работы
Это руководство посвящено добавлению хостинга серверов Edgegap в качестве поставщика хостинга, предполагая, что:
у вас есть рабочая настройка Unity Matchmaking,
вы зарегистрировались в Edgegap и загрузили сборку вашего Unity-сервера.
Пожалуйста, обратитесь к документации Unity Matchmaking по вопросам матчмейкинга.
Выбор правильного расположения для вашего сервера может снизить задержку в среднем до 58%!
В этом руководстве мы рассмотрим:
сборку и развертывание
EdgegapAllocatorмодуля cloud script для вашего Matchmaker,получение публичных IP-адресов игроков, используемых для оптимального размещения сервера,
реализацию обработчика webhook в UGS cloud script и получение назначения сервера.
Edgegap Allocator
Начните с загрузки исходного кода с EdgegapAllocator репозитория поставщиков хостинга.
Это наш cloud script используется для запуска новых серверов, запускаемых Unity Matchmaker, как только матч собран. Это официальная интеграция, одобренная Unity.
Обязательные секреты
Сначала добавьте эти секреты в панели управления Unity в разделе Администрирование > Секреты:
EDGEGAP_API_TOKEN- Ваш API-токен Edgegap.
Найдите свой токен в панели управления Edgegap.
Необходимые изменения кода
Отредактируйте Project/EdgegapAllocator.cs и обновите эти константы:
Замените на имя вашего приложения Edgegap из списка приложений.
Замените на имя версии вашего приложения Edgegap, которую вы хотите использовать.
Замените на имя порта версии вашего приложения Edgegap, которое будет использоваться для подключения игроков.
Разверните модуль
Получение IP игрока
Чтобы по запросу предоставлять оптимальное расположение сервера для каждого матча, Edgegap требует указывать IP-адреса игроков при создании развертывания. Хотя Unity не предоставляет эту возможность, вы можете использовать наш C#-фрагмент, чтобы реализовать это в ваших клиентских играх с помощью бесплатного сервиса ipify:
Ожидается, что каждый игрок будет указывать свой публичный IP-адрес с помощью пользовательских данных в своих тикетах:
Получение назначения
Назначение можно получить с помощью стандартных методов Unity matchmaking.
В нашем примере обработка назначений для вас будет выполняться с помощью Status API, ограниченного до 20 запросов/с.
Этого достаточно для большинства игр. Если вы ожидаете более 50 000 CCU, рассмотрите альтернативные методы.
Альтернативное назначение
После того как матч создан и ваш cloud script запрашивает новое развертывание, в ответе пока не будет данных для подключения. Вместо этого вы получите форму квитанции — ID развертывания.
Ваша функция allocator должна сохранить этот ID развертывания в ваших UGS Game Data вместе с ID сопоставленных игроков, чтобы вы могли позже найти игроков и предоставить данные для подключения.
Теперь вам нужно создать еще одну функцию cloud script AssignmentProcessor с общедоступным URL. Этот URL должен быть включен в запрос на развертывание вашего Allocator как webhook_on_ready .
После того как Edgegap развернет ваш игровой сервер, он отправит событие webhook HTTP, включающее все данные для подключения, такие как FQDN (URL) и внешний порт для подключения клиентов, обратно в ваш новый cloud script. Ваш AssignmentProcessor должен будет найти ID развертывания и сохранить рядом с ним данные для подключения.
Ваши игровые клиенты должны опрашивать эти игровые данные и пытаться подключиться, как только будут получены FQDN и внешний порт.

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

