Развёртывания

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

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

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

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

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

По-матчу

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

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

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

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

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

  • Самое быстрое масштабирование вверх (возможность «взрыва») при неожиданном всплеске трафика.

  • Самый высокий стандарт безопасности и предотвращения читерства (server authority).

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

👎 Недостатки

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

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

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

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

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

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

    • Королевская битва, PvPvE, кооперативные шутеры, MOBA, спортивные игры, ARPG и «данжен-краулеры», …

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

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

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

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

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

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

  • Самый высокий стандарт безопасности и предотвращения читерства (server authority).

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

👎 Недостатки

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

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

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

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

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

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

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

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

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

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

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

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

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

Peer to Peer

Сместите усилия разработки с выделенных серверов на relay-неткод для не соревновательных игр.

Связанные темы: listen-серверы, player-host authority, NAT punch-through.

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

  • Самая низкая стоимость хостинга — требуются только Relay-серверы для решения NAT punch-through.

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

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

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

👎 Недостатки

  • Повышенные усилия на разработку peer-to-peer неткода, требующие навыков конкурентного программирования.

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

  • Самая слабая безопасность, уязвимость к атакам «человек посередине» и угону сессий.

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

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

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

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

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

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

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

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

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

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

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

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

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

Нечувствительное (медленное) размещение — сервер далеко, высокий пинг у всех игроков:

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

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

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

Геолокация

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

Блокировка по региону

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

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

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

🟢 Качество подключения

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

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

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

Если вам нужна помощь, пожалуйста, свяжитесь с нами в Discord. Для поддержки по живым играм смотрите наш систему тикетов.

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

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

  • физическими устройствами — физический сигнал, проходящий через топологию сети Интернет,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

При устранении неполадок по отчётам игроков или инцидентам учитывайте факторы:

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

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

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

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

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

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

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

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

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

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

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

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

1. Запуск развёртывания

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

  • Unreal Engine — Docker Extension или плагин для проектов Unreal Engine,

  • Unity — плагин для проектов Unity,

  • Веб‑панель Dashboard — простой веб-интерфейс для тестирования интеграции сервера.

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

При тестировании с Deploy API, вы можете переопределить стандартную CMD в Dockerfile пользовательской командой.

2. Развёртывание

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

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

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

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

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

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

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

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

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

С вас не взимается плата за развёртывания в состоянии Error — они автоматически останавливаются через 24 часа.

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

Если вам нужна помощь, пожалуйста, свяжитесь с нами в Discord. Для поддержки по живым играм смотрите наш систему тикетов.

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

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

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

  • Остановка с вашего бэкенда — ваш бэкенд остановил это развёртывание через Deployments API,

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

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

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

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

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

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

После Ready развёртыванию назначается URL (fqdn) и внешний порт для каждого внутреннего порта.

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

WebSocket (WS) и безопасные WebSocket (WSS)

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

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

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

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

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

    • настройте ваш Приложения и версии на используйте Secure WebSocket (WSS),

    • настройте собственный процесс TLS‑сертификата с пользовательской DNS‑записью (напр., на Cloudflare).

Инжектируемые переменные

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

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

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

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

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

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

  • ARBITRIUM_REQUEST_ID — напр., f68e011bfb01 .

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

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

  • ARBITRIUM_HOST_ID — напр., alpha-north-america-70364ef8 .

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

  • ARBITRIUM_PUBLIC_IP — напр., 162.254.141.66 .

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

  • ARBITRIUM_DEPLOYMENT_TAGS — напр., tag1,tag2 .

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

  • ARBITRIUM_HOST_BASE_CLOCK_FREQUENCY — напр., 2000 , частота процессора в МГц.

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

  • ARBITRIUM_DEPLOYMENT_MEMORY_MB — напр., 512, выделенная RAM в МБ (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 , протокол транспорта вашего неткода.

  • 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 как строка)

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

ARBITRIUM_DEPLOYMENT_LOCATION: - Детальная информация о локации развёртывания.
ARBITRIUM_PORTS_MAPPING: - Детальная информация о ваших внутренних и внешних портах.

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

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

Аналитика

🌟 Перейдите на тариф Оплата по мере использования чтобы открыть доступ к подробным метрикам и инсайтам по производительности сервера:

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

  • Информация о CPU: устраняйте отставания серверов из‑за операций, нагружающих процессор,

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

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

Карта развёртываний

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

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

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

Логи развёртывания

Логи развёртывания отображают информацию о Развёртывания:

Логи контейнера

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

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

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

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

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

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

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

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

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

🌟 Перейдите на тариф Оплата по мере использования чтобы открыть точные метрики с интервалами в 1 секунду.

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

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

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

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

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

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

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

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

eq или neq

"ready" или "error"

eq

"7e709a0d8efd"

в или nin

[ "7e709a0d8efd", "4ba353100b4b" ]

eq или neq

"tagA"

в или nin

[ "tagA", "tagB" ]

eq или lte или gte

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

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

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

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

asc или desc

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

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

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

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

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

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

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

Список Развёртывания с доступной ёмкостью Session socket для присоединения.

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

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

Вебхуки и обратные вызовы (Postbacks)

Если вам нужно получать простое HTTP-уведомление, когда развёртывание становится Ready или Error, вы можете указать URL вебхука в вашем запросе к API развёртывания.

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

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

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

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

  2. нет ошибок,

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

  4. ознакомьтесь с шагами по устранению неполадок на этой странице, свяжитесь с нами в сообществе Discord

См. Развёртывания и укажите ваш ID развёртывания.

для наших рекомендаций по работе с отзывами от сообщества игроков. Клиенты не могут подключиться к серверу -, Истекло время ожидания запроса. , 请求超时 ConnectionFailed , или.
  • Проверка порта не удалась Панель управления.

  • Сначала убедитесь, что развёртывание имеет статус Ready и в логах развёртывания нет исключений или ошибок. Если ваше развёртывание остановилось, проверьте логи в нашем Если вы используете Mirror netcode, вам нужно выбрать "Auto Start Server” в вашем NetworkManager

  • , пересоберите, отправьте и повторно разверните ваш сервер. Если вы используете FishNet netcode, вам нужно включить в вашем “Start on Headless”NetworkManager

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

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

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

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

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

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

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

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

Моё развёртывание автоматически остановилось через X минут.
  • Развёртывания в бесплатном тарифе ограничены 60 минутами, пожалуйста, рассмотрите возможность апгрейда аккаунта.

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

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

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

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

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

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

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

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

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

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

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

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

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

Мой сервер показывает 100% загрузку CPU после перехода в состояние Ready.
  • Это может не быть проблемой, так как игровые движки склонны выполнять тяжёлые операции на CPU во время инициализации сервера. Если использование CPU не падает через 2–3 минуты после старта развёртывания, возможно, потребуется оптимизировать сервер или увеличить ресурсы версии приложения.

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

  • Сначала убедитесь, что развёртывание имеет статус Ready и в логах развёртывания нет исключений или ошибок. Если ваше развёртывание остановилось, проверьте логи в нашем Если вы используете Mirror netcode, вам нужно выбрать "Auto Start Server” в вашем NetworkManager

  • , пересоберите, отправьте и повторно разверните ваш сервер. Если вы используете FishNet netcode, вам нужно включить в вашем “Start on Headless”NetworkManager

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

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

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

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

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

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

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

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

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

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

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