boltРазвертывания

Узнайте о развертываниях и их жизненном цикле — концепции и лучшие практики для более глубокого понимания.

🗺️ Оркестрация

Запускайте новые серверы за считанные секунды, чтобы соответствовать требованиям по мощности, используя наш облачно-нативный подход к edge-вычислениям. Мы рассматриваем серверы как скот, а не домашних питомцевarrow-up-right - полностью заменяя неисправные экземпляры вместо ручного восстановления каждого.

circle-info

Ваш выбор оркестрации повлияет на ваши расходы на девопс, стоимость серверов и масштабируемость.

circle-check

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

Привязка к матчу

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

👍 Преимущества

  • Лучшая экономическая эффективность — масштабирование в реальном времени для удовлетворения спроса игроков минуту за минутой.

  • Низкие затраты на девопс благодаря хостингу без привязки к регионам — Edgegap автоматизирует 99% задач.

  • Нижний пинг благодаря более чем 615 площадкам в публичной облачной инфраструктуре Edgegap.

  • Самое быстрое масштабирование (burst-ability) в случае внезапного всплеска трафика.

  • Высочайший уровень безопасности и предотвращения читерства игроков (сервер-авторитет).

  • Минимальное влияние неожиданного падения сервера на игроков — затронут только один матч.

👎 Недостатки

  • Принятие новой ментальной модели оркестрации требует некоторого времени на освоение вначале.

  • Серверы, работающие более 24 часов, будут автоматически завершены.

🧩 Лучше всего подходит для

  • Чувствительных к задержкам игр — когда оптимизация сетевого кода не может преодолеть высокий пинг:

    • Шутеры от первого лица, файтинги, VR и XR (виртуальная и расширенная реальность), …

  • Игры с встроенным верхним ограничением продолжительности матча,

    • Королевская битва, PvPvE, кооперативные шутеры, MOBA, спортивные игры, ARPG и dungeon-crawler’ы, …

🔎 Обнаружимость

circle-info

Edgegap автоматически масштабирует все 615+ локаций серверов вверх/вниз в зависимости от активности игроков в каждом регионе. Готовьтесь к успеху — бесшовно масштабироваться до 14 миллионов одновременных пользователей за 60 минутarrow-up-right.

Региональный резерв

Традиционная модель для постоянных миров с контентом, создаваемым пользователями, и социальных MMO-игр.

👍 Преимущества

  • Знакомый и понятный старый подход для закалённых ветеранов.

  • Высочайший уровень безопасности и предотвращения читерства игроков (сервер-авторитет).

  • Простая предсказуемая стоимость на основе ежемесячных обязательств.

👎 Недостатки

  • Более высокая стоимость хостинга — каждый регион требует одного или нескольких простаивающих резервных серверов (burst-ёмкость).

  • Более высокие затраты на девопс — масштабирование, операции и обслуживание дублируются для каждого региона.

  • Регионы с меньшей базой игроков испытывают высокий пинг из-за присоединения к серверам, находящимся далеко.

🧩 Лучше всего подходит для

  • Постоянные миры с пользовательским контентом, хранящимся на сервере даже когда игроки оффлайн.

    • MMO, песочницы с постройкой баз или размещением объектов, extraction-шутеры, ...

  • Игры, терпимые к задержкам - когда сервер-авторитетная физика в реальном времени не требуется:

    • мобильные игры, кооперативные игры, TCG/CCG, пошаговые стратегии, …

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

    • гонки против «призраков», набег на базу врага за добычей, игры с таймером на строительство/ферму, …

  • приложения с длительной инициализацией — когда подготовка серверов занимает минуты.

🔎 Обнаружимость

circle-info

См. Управляемые кластеры для самохостинга ваших микросервисов и бэкенд-сервисов на Edgegap.

Peer-to-Peer

Перенесите усилия по разработке с выделенных серверов на релейный сетевой код для неконкурентных игр.

Связанные темы: listen-серверы, авторитет игрока-хоста, NAT punch-through.

👍 Преимущества

  • Минимальная стоимость хостинга — требуются только релейные серверы для решения пробивания NAT.

  • Низкие затраты на девопс — обслуживание требуется только для билдов клиента и каналов распространения.

  • Минимальное влияние неожиданного падения сервера на игроков — затронут только один матч.

  • Просто внедряется и быстро позволяет создавать прототипы, без необходимости разработки бэкенда.

👎 Недостатки

  • Увеличенные усилия по разработке P2P-сетевого кода, требующие навыков конкурентного программирования.

  • Худшие показатели пинга и наибольшая чувствительность к неблагоприятным сетевым условиям (например, мобильный интернет).

  • Самая слабая безопасность, уязвимость к атакам «man-in-the-middle» и перехвату сессий.

  • Риск прерывания сессий, когда хост покидает игру, если не реализовать собственную миграцию хоста.

🧩 Лучше всего подходит для

  • Кооперативные и казуальные игры - когда читерство не портит удовольствие и не ломает игру,

    • Детские игры, исследовательские игры, приключения, …

🔎 Обнаружимость

circle-check

📍 Размещение серверов

Независимо от выбранного метода оркестрации, выбор правильного местоположения сервера для группы игроков критичен для обеспечения наилучшего пинга и оптимального игрового опыта. Узнайте о различных стратегиях размещения серверов и о том, как они влияют на ваших игроков.

circle-info

Ваша стратегия размещения серверов повлияет на опыт игроков, удержание и обзоры вашей игры.

circle-check
circle-info

См. Развертывания на анализировать размещение серверов в реальном времени, в масштабе.

Оценка сервера

Стратегия оценки сервера использует запатентованную методологию Edgegap, которая оптимизирует размещение серверов для каждого матча индивидуально. Выполняет ненавязчивую телеметрию для приближённого определения сетевой близости каждого игрока к нашим локациям серверов и выбора сервера, который обеспечивает лучшее:

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

  • справедливость - обеспечивает сбалансированный и справедливый пинг для всех игроков.

circle-check

Нереспонсивное размещение - сервер далеко, высокий пинг для всех игроков:

Несправедливое размещение - неравномерный пинг, один игрок в невыгодном положении:

Пример хорошего размещения - отзывчивый и справедливый пинг для всех игроков:

circle-info

Эта стратегия особенно эффективна для хостинга группы игроков, находящихся далеко друг от друга (Северная Америка против Европы, или западное побережье против восточного), что часто встречается в заранее собранных лобби.

Геолокация

В качестве альтернативы, предоставьте широту и долготу игроков или координаты предпочитаемой локации сервера вместо использования автоматизированной телеметрии. Этот подход требует дополнительной реализации гео-lookup на стороне клиента и полностью полагается на решение разработчика игры.

circle-exclamation
circle-check

Региональная блокировка

Серверы могут размещаться с использованием грубо обобщённого параметра региона, либо:

  • автоматически выбранного для игрока на основе его метаданных (база данных аккаунтов игроков), либо

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

triangle-exclamation
circle-check

🟢 Качество соединения

Некоторые игры (и некоторые игроки) более чувствительны к задержкам или лагам, чем другие. Хотя сообщения игроков — отличный индикатор инцидентов или регрессий в масштабе, игрокам может не хватать глубокого понимания сетевых концепций и они быстро склонны обвинять студии, сетевой код или серверы.

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

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

Низкая задержка

Задержка игрока — это сочетание задержек при передаче данных между:

  • физическими устройствами - физический сигнал, путешествующий через топологию сетей Интернетarrow-up-right,

  • хост к хосту - возникающая из протокола, транспортного уровня и мер безопасности,

  • процесс к процессу - возникающая из упаковки/распаковки и обработки данных в клиенте/сервере.

Edgegap уменьшает физическую задержку, размещая серверы ближе к вашим игрокам для более коротких откликов и меньшего числа сетевых хопов. С локациями у 17 облачных и bare-metal провайдеров вы получаете лучший в своём классе пинг для игроков в любой точке мира.

Покрытие серверов и интернета в мире (не только у Edgegap) ограничено факторами, такими как:

  • доступность инфраструктуры - качество интернет-соединения в конкретном регионе может быть недостаточным,

  • природные факторы - крайне сложные стойки серверов требуют в основном стабильной окружающей среды.

Высокая доступность

Доступность серверов в разных локациях мира будет меняться со временем, изменяясь несколько раз в течение дня. Edgegap автоматически масштабирует вверх/вниз локации по требованию, учитывая:

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

  • требования к vCPU - больше vCPU на развертывание увеличивает общий спрос на конкретную локацию,

  • предложения провайдеров - в некоторых отдалённых локациях доступно меньше вариантов провайдеров,

  • наличие машин - в некоторых локациях могут предлагаться только машины с 4 vCPU или 8 vCPU,

  • запросы студий на тестирование, обеспечение качества, ранний доступ, закрытые беты или турниры.

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

circle-check

Разрешение проблем игроков

Проблемы игроков могут быть вызваны ошибками сервера или инцидентами у провайдера, но также могут возникать из-за третьих сторон, таких как локальные ISP, игровые сервисы, ошибки в низкоуровневых библиотеках, провайдеры инфраструктуры или другие источники.

При отладке жалоб игроков или инцидентов учитывайте следующие факторы:

  • качество матчмейкинга - игроки должны быть близки друг к другу (в одном регионе), чтобы Развертывания давать наилучшие результаты:

  • региональные проблемы:

    • локальные провайдеры интернет-услуг (ISP) могут временно решать инцидент,

    • некоторые регионы (например, Китай, Россия) могут быть ограничены из-за локализованных санкций,

  • уровень кэширования - Edgegap отдает приоритет быстрым развертываниям в кэшированных локациях:

  • максимальное время на развертывание - развертывания могут не пройти из-за медленного и тяжелого процесса инициализации:

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

    • отложите шаги инициализации до самой крайней необходимости,

  • проблемы с образом сервера или интеграцией.

circle-check
circle-info

Уведомляйте пользователей о массовых багах, временных проблемах и простоях, чтобы смягчить негативное восприятие.

🔄 Жизненный цикл развертывания

Развертывания Edgegap проходят несколько этапов жизненного цикла, обозначаемых статусом развертывания.

1. Запустить развертывание

Развертывание для тестовых целей может быть запущено с помощью:

Развертывание для рабочая среда продакшн должна запускаться с помощью:

circle-check
circle-info

При тестировании с Deploy APIarrow-up-rightвы можете переопределить стандартную команду Dockerfile CMD на пользовательскую команду.

2. Разворачивание

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

  • Телеметрия — мы измеряем сетевую отзывчивость от доступных дата-центров до каждого игрока,

  • Развертывание — мы резервируем ёмкость и готовимся запустить ваш контейнер сервера,

  • Запуск контейнера — мы стартуем контейнер, устанавливаем зависимости и инициализируем,

  • Постобработка — мы добавляем хранение логов, мониторинг и завершаем развертывание.

circle-exclamation

3. Развертывание готово

Ваш контейнер полностью инициализирован и ваш сервер сейчас запускается. В течение нескольких секунд до минуты сервер может всё ещё инициализироваться и не отвечать на запросы игроков, пока игровой движок (или кастомный рантайм) полностью не будет готов принимать подключения игроков.

circle-check

4. Ошибка развертывания

Ваше развертывание может перейти в состояние Ошибка в любой момент по неожиданным причинам. Это более вероятно при тестировании интеграции или новых сборок сервера.

С вас не взимается плата за развертывания в состоянии Ошибка, которые автоматически останавливаются через 24 часа.

Шаги по устранению неполадок:

circle-check

5. Развертывание остановлено

Мы никогда не останавливаем ваши серверы без вашего указания, чтобы не повлиять негативно на опыт ваших игроков. Ваше развертывание может быть остановлено по следующим причинам:

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

    • см. Unreal Engine и Unity руководства по правильной остановке развертываний,

  • Остановка с вашего бэкенда - ваш бэкенд остановил это развертывание, используя Deployments APIarrow-up-right,

  • Максимальная длительность игры - выделенное время в вашем Приложения и версии истекло,

  • Частные флоты Хост, на котором запускалось ваше развертывание, был удалён через запланированное действие.

circle-info

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

👀 Наблюдаемость

Позвольте игровым серверам взаимодействовать со сторонними сервисами и получайте операционные данные.

Обнаружимость

После того как развертывание готово, ему присваивается URL (fqdnarrow-up-right) и внешний порт для каждого внутреннего порта.

circle-check
circle-info

Исходящий трафик (к клиентам или бэкенду) с ваших игровых серверов никогда не блокируется и не фильтруется.

WebSocket (WS) и Secure WebSocket (WSS)

Чтобы использовать сетевой код на базе WebSocket с Edgegap, у вас есть два варианта:

  • управляемый сертификат, настраиваемый за 1 минуту без написания кода:

    • сконфигурируйте ваш Приложения и версии на используйте WebSocket (WS) и включите Upgrade TLS,

    • используйте URL Edgegap для подключения клиентов (например https://5fa53fa00a57.pr.edgegap.net/)

  • самоуправляемый сертификат, если вы хотите использовать собственный домен:

triangle-exclamation

Внедрённые переменные

Игровым серверам часто требуется дополнительная информация, такая как IP сервера, значения внутренних портов или другое. Внедрение переменных окружения только для чтения — надёжный облачно-агностичный способ передачи параметров.

circle-check
circle-info

См. Переменные версии приложения и Переменные матчмейкера в дополнение к переменным развертывания ниже.

Пользовательские переменные

Определите до 20 пользовательских переменных для каждого развертывания, каждая может содержать до 4 КБ строковых данных.

circle-exclamation

Получайте важную информацию, читая переменные, внедрённые Edgegap в ваши серверы:

Идентификаторы

  • ARBITRIUM_REQUEST_ID - например, f68e011bfb01 .

    • Уникальный ID развертывания, также именуемый request ID. Используется для получения дополнительной информации.

    • URL развертываний всегда имеют формат {ARBITRIUM_REQUEST_ID}.pr.edgegap.net.

  • ARBITRIUM_PUBLIC_IP - например, 162.254.141.66 .

    • Публичный IP-адрес этого хоста, может использоваться для подключения вместо URL.

  • ARBITRIUM_HOST_ID - например, alpha-north-america-70364ef8 .

    • Уникальный идентификатор машины, хостящей ваше развертывание, общий с другими развертываниями.

  • ARBITRIUM_DEPLOYMENT_TAGS - например, tag1,tag2 .

  • ARBITRIUM_PRIVATE_FLEET_ID - например, PUBLIC_CLOUD , или ID флота, если размещено на Частные флоты.

Спецификации ресурсов

  • ARBITRIUM_HOST_IN_PRIVATE_FLEET - например, false , указывающее размещение в Частные флоты.

  • ARBITRIUM_HOST_BASE_CLOCK_FREQUENCY - например, 2000 , частоту процессора в МГц.

  • ARBITRIUM_DEPLOYMENT_VCPU_UNITS - например, 256, выделенные единицы vCPU (1024 = 1 vCPU).

  • ARBITRIUM_DEPLOYMENT_MEMORY_MB - например, 512, выделенная оперативная память в МБ (1024 = 1 ГБ).

Управление жизненным циклом

  • ARBITRIUM_DELETE_URL - например, https://api.edgegap.com/v1/self/stop/9f511e17/660.

  • ARBITRIUM_DELETE_TOKEN - например, 7df4cd933df87084b34ae80d8abde293.

  • ARBITRIUM_CONTEXT_URL - например, https://api.edgegap.com/v1/context/9170f5211e17/17.

    • Вызывается только из развертывания, возвращает дополнительные детали развертывания.

    • Требуется уникальный ARBITRIUM_CONTEXT_TOKEN в заголовке Authorization .

  • ARBITRIUM_CONTEXT_TOKEN - например, dfaf50b9333b9ee07b22ed247e4a17e6.

Обнаружимость

  • ARBITRIUM_PORT_GAMEPORT_INTERNAL - например, 7777 , внутренний порт для прослушивающего сервера.

  • ARBITRIUM_PORT_GAMEPORT_EXTERNAL - например, 31504 , внешний порт для подключений клиентов.

    • Значения внешних портов рандомизируются для каждого развертывания в целях безопасности.

  • ARBITRIUM_PORT_GAMEPORT_PROTOCOL - например, UDP , протокол транспортного уровня вашего сетевого кода.

circle-check
  • ARBITRIUM_BEACON_ENABLED - например, true, если развертывание производится на Частные флоты с Ping-маячки.

  • ARBITRIUM_HOST_BEACON_PUBLIC_IP - например, 139.177.198.69 , публичным IP ближайшего маяка.

  • ARBITRIUM_HOST_BEACON_PORT_UDP_EXTERNAL - например, 30199, для измерения пинга по UDP.

  • ARBITRIUM_HOST_BEACON_PORT_TCP_EXTERNAL - например, 30456, для измерения пинга по TCP.

Структурированная информация (JSON в виде строки)

circle-info

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

chevron-rightARBITRIUM_DEPLOYMENT_LOCATION: - Подробная информация о локации развертывания.hashtag
chevron-rightARBITRIUM_PORTS_MAPPING: - Подробная информация о ваших внутренних и внешних портах.hashtag

Мониторинг панели управления

Наш Панель управленияarrow-up-right предоставляет инструменты для мониторинга масштабируемости вашего сервера и помощи в операциях.

Аналитика

circle-check

🌟 Обновитесь до тарифа Pay as You Goarrow-up-right чтобы открыть подробные метрики и аналитические данные о производительности сервера:

  • Общие сведения: отслеживайте релизы с живым количеством серверов по версиям + обзор использования ресурсов,

  • Информация о ЦП: устраняйте задержки на серверах из-за операций с высокой нагрузкой на процессор,

  • Информация о памяти: снижайте перезапуски сервера из-за превышения выделенной памяти,

  • Сетевая аналитика: обнаруживайте неэффективные сетевые шаблоны и оптимизируйте сетевой код.

Карта развертывания

Просмотрите расположение развертывания, доступные локации и предполагаемое расположение игроков на карте:

Точки балансировки развертывания

circle-check

Просмотрите карту плотности точек балансировки развертывания и фильтруйте по Приложения и версии. Точки балансировки — это приблизительные местоположения с равной сетевой близостью к каждому игроку в данном развертывании:

circle-exclamation

Журналы развертываний

Журналы развертываний отображают информацию о Развертывания:

Журналы контейнеров

Просматривайте журналы вашего игрового сервера в случае проблем или при отладке:

circle-exclamation

Метрики контейнера

Просмотрите метрики контейнера (процессор, память, сеть), чтобы:

  • выявлять распространённые проблемы с подключением при Развертывания,

  • обнаруживать неэффективные шаблоны реализации, вызывающие всплески использования ресурсов,

  • определять неэффективное использование ресурсов в конкретных сценариях,

  • проверять изменения в использовании ресурсов вашего сервера во время оптимизации,

  • оценивать потребление ресурсов и длительность инициализации сервера при бенчмаркинге.

Исторические метрики отображают средние значения с периодом 1 минута, доступны в бесплатном тарифе.

🌟 Обновитесь до тарифа Pay as You Goarrow-up-right чтобы открыть точные метрики с интервалом 1 секунда.

circle-info

Свяжитесь с намиenvelope перед вашим релизом, чтобы запросить поддержку живого хостинга для масштабных релизов.

Контекст и статус

Дополнительную информацию о развертывании можно получить в формате JSON:

circle-info

API контекста (из развертывания) требует токен Context API, тогда как Status API использует ваш Edgegap токен.

circle-exclamation

Фильтровать развертывания

Чтобы быстро искать среди всех развертываний, вы можете использовать нашу панель управленияarrow-up-right:

Список развертываний через APIarrow-up-right и применять фильтры с интеграциями бэкенда:

Атрибут развертывания
Операторы
Пример значения

eq или neq

"ready" или "error"

eq

"7e709a0d8efd"

в или nin

[ "7e709a0d8efd", "4ba353100b4b" ]

eq или neq

"tagA"

в или nin

[ "tagA", "tagB" ]

eq или neq

"my-app"

в или nin

[ "my-app", "my-other-app" ]

eq или neq

"1.0.0"

в или nin

[ "1.0.0", "prod" ]

eq

true или false

eq или neq или

lt или lte или

gt или gte

5

circle-info

Каждый атрибут может иметь не более одного оператора фильтра в одном запросе. См. Справочник API для получения дополнительной информации.

Сортируйте результаты по нескольким полям в порядке, в котором они указаны в запросе:

Атрибут развертывания
Порядок

asc или desc

Примеры запросов с фильтрами:

chevron-rightСписок Развертывания с ошибкой для устранения неполадок и удаления.hashtag

Закодированный URL:

Отформатированный JSON-запрос:

chevron-rightСписок Развертывания с устаревшей версией приложения чтобы подтвердить, что релиз завершён.hashtag

Закодированный URL:

Отформатированный JSON-запрос:

circle-check

Вебхуки и постбеки

Получайте простые HTTP-уведомления в вашем игровом бэкенде о изменениях в Развертывания указав URL вебхука в вашем запросе к API развертыванияarrow-up-right. Доступно для:

  • При готовности: контейнер развертывания запущен успешно (после этого сервер начинает инициализацию),

  • При ошибке: запуск развертывания не удался и произошла Развертывания ошибка,

  • При завершении: Развертывания и игровой сервер больше недоступен.

Вебхуки Ready и Error никогда не будут срабатывать для одного и того же развертывания.

chevron-rightПример полезной нагрузки вебхукаhashtag
circle-exclamation
circle-info

Вебхуки отслеживают жизненный цикл развертывания, но не знают о состоянии инициализации вашей сцены/уровня. Чтобы отслеживать прогресс загрузки сцены/уровня, реализуйте пользовательский вебхук в вашем игровом сервере.

🚨 Устранение неполадок

При устранении неполадок развертываний:

  1. убедитесь, что в вашем Развертывания и Развертывания,

  2. запустите сервер локально, чтобы исключить ошибки интеграции,

  3. просмотрите шаги по устранению неполадок на этой странице,

  4. свяжитесь с нами в Сообществе Discordarrow-up-right и укажите ваш ID развертывания.

circle-info

См. Развертывания для наших рекомендаций по работе с отзывами сообщества игроков.

chevron-rightНе удаётся подключить клиентов к серверу - Истёкло время ожидания запроса., Запрос превысил время ожидания , ConnectionFailed , или Проверка порта не удалась.hashtag
  • Во-первых, убедитесь, что развертывание готово, и в журнале развертывания нет исключений или ошибок времени выполнения. Если ваше развертывание остановлено, просмотрите журналы в нашем Панель управленияarrow-up-right.

  • Если вы используете сетевой код Mirror, необходимо включить "Auto Start Server”arrow-up-right в выбранном NetworkManager , пересоберите, отправьте и снова разверните сервер.

  • Если вы используете сетевой код FishNet, необходимо включить “Start on Headless”arrow-up-right в вашем ServerManager, пересоберите, отправьте и снова разверните сервер.

  • Если вы используете Photon Fusion 2, убедитесь, что ваш сервер передаёт публичный IP развертывания, внешний порт и roomCode на сервере, и тот же код комнаты в клиенте в параметреarrow-up-right “NeworkRunner.StartGame” StartGameArgs. ID развертывания (например b63e6003b19f) — отличный выбор, так как он глобально уникален и легко доступен клиенту через Матчмейкер назначение и Подробный обзор.

  • Далее, пожалуйста, убедитесь, что настройка порта в сетевых настройках сборки сервера соответствует внутреннему порту в вашем версии приложенияarrow-up-right. Вы можете изменить сопоставление портов, отредактировав версии приложенияarrow-up-right без пересборки. Найдите ваш протокол в интеграции сетевого кода.

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

  • Если вы используете защищённый Websocket (WSS) в интеграции сетевого кода, убедитесь, что версии приложенияarrow-up-right конфигурация порта для WSS имеет включённый TLS Upgrade.

  • Находитесь ли вы в Китае и используете Smart Fleetsarrow-up-right? Ваше соединение может быть заблокировано Великой файерволом. Рассмотрите добавление сервера, расположенного в Китае, в ваш флит или использование VPN для подключения.

chevron-rightМоё развертывание остановилось/перезапустилось, и я больше не могу получить доступ к его журналам.hashtag
  • Если процесс сервера аварийно завершился из-за исключения, наша система попытается автоматически перезапустить сервер. Рассмотрите возможность тестирования сервера локально, чтобы выявить первопричину.

  • Мы храним журналы только в течение времени работы развертывания; если вы хотите просмотреть журналы после остановки развертывания, пожалуйста, интегрируйте стороннее хранилище журналовarrow-up-right.

  • См. Развертывания чтобы обнаружить все причины остановки вашего развертывания.

chevron-rightМоё развертывание автоматически остановилось через X минут.hashtag
  • Развертывания в бесплатном тарифе имеют лимит в 60 минут; рассмотрите обновление аккаунта.

  • Все развертывания будут завершены через 24 часа работы в соответствии с нашей политикой очистки серверов для обслуживания инфраструктуры и предотвращения неожиданных расходов, если развертывание не было корректно остановлено. Для долгоживущих серверов рассмотрите использование Частные флоты с Устойчивость (Persistence).

  • См. Развертывания чтобы обнаружить все причины остановки вашего развертывания.

chevron-rightМоё развертывание готово, но я не могу подключиться в течение нескольких минут после этого.hashtag
  • После того как развертывание готово, начинается инициализация игрового движка. Этот процесс может занять от нескольких секунд до минут, и сервер не принимает подключений игроков в этот период.

  • Рассмотрите оптимизацию инициализации сервера, чтобы сократить этот период.

  • Игровые клиенты должны повторять попытки подключения с интервалом 1 секунда в течение ограниченного времени (в зависимости от длительности инициализации), после чего возвращаться к матчмейкингу.

  • Рассмотрите добавление сцены загрузки, чтобы сервер мог выполнять инициализацию (и переходы в случае Unreal Engine) одновременно с клиентами, синхронизируя состояние обоих.

chevron-rightУстройство Meta Quest выдаёт у меня HTTP 0: Невозможно разрешить хост назначения .hashtag
  • При сборке приложений Unity для Android права доступа в Интернет могут быть автоматически удалены из выходного APK клиента.

  • Добавьте права снова (требуется последующая пересборка клиента):

    • Project Settings / OpenXR / ⚙️ Meta Quest Support / Force Remove Internet Permissions (снимите галочку).

    • Player Settings / Internet Access (установите на require).

chevron-rightЧто произойдёт, если игрок покинет моё развертывание?hashtag
  • По умолчанию серверы не отвергают подключения игроков. Аутентификация игроков остаётся за вашими разработчиками, так как можно использовать разные методы и провайдеров аутентификации.

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

  • Чтобы позволить игрокам присоединяться к уже начатым играм, рассмотрите использование Подробный обзор или Сессийarrow-up-right.

chevron-rightМой сервер показывает 100% загрузку ЦП после готовности.hashtag
  • Это может не быть проблемой, так как игровые движки обычно выполняют ресурсоёмкие операции ЦП во время инициализации сервера. Если использование ЦП не уменьшается через 2–3 минуты после старта развертывания, возможно, вам нужно оптимизировать сервер или увеличить ресурсы версии приложения.

  • Снижение частоты тиков может повлиять на использование ЦП, так как сервер выполняет меньше операций обмена сообщениями.

  • Если вы используете сетевой код Mirror, необходимо включить "Auto Start Server”arrow-up-right в выбранном NetworkManager , пересоберите, отправьте и снова разверните сервер.

  • Если вы используете сетевой код FishNet, необходимо включить “Start on Headless”arrow-up-right в вашем ServerManager, пересоберите, отправьте и снова разверните сервер.

  • В бесплатном тарифе вам доступно до 1.5 vCPU и 3 ГБ памяти (RAM).

  • Вы можете увеличить выделенные ресурсы при создании новой версии приложения. Вы можете дублировать вашу версию приложения в панели управления и при необходимости скорректировать эти значения без пересборки сервера или образа.

chevron-rightМоё развертывание постоянно перезапускается и показывает ошибку `OOM kill`.hashtag
  • Такое поведение вызвано превышением выделенного объёма памяти. Рассмотрите оптимизацию использования памяти с помощью пула объектов, сжатия или удаления ненужных объектов в вашей сцене.

  • Убедитесь, что ваш проект загружает сцену по умолчанию, содержащую ваши NetworkManager и сцена включена в настройки сборки Unity.

  • В бесплатном тарифе вам доступно до 1.5 vCPU и 3 ГБ памяти (RAM).

  • Вы можете увеличить выделенные ресурсы при создании новой версии приложения. Вы можете дублировать вашу версию приложения в панели управления и при необходимости скорректировать эти значения без пересборки сервера или образа.

chevron-rightИногда использование памяти (RAM) сервера резко увеличивается до высокого значения — это проблема?hashtag
  • Пока вы не превышаете выделенный объём памяти версии приложения, это не является проблемой.

  • Превышение выделенного объёма памяти версии приложения приведёт к `OOM kill` (см. выше).

chevron-rightПовлияет ли производительность моего сервера наличие других серверов на той же машине?hashtag
  • Нет, наша платформа гарантирует, что выделенные ресурсы не будут использованы другими студиями или другими серверами на общей инфраструктуре. С Edgegap нет «шумных соседей».

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

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