compassОбзор серверов

Добро пожаловать в Edgegap Server Browser ОТКРЫТАЯ БЕТА. Надеемся, вам понравится возможность опробовать наш новый сервис и помочь сформировать его будущее через круглые столы в нашем Discord.

Server Browser — это управляемый сервис для Развертывания и постоянных серверов:

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

  • 📢 прогревать новые серверы чтобы обслуживать глобальный спрос в масштабе и предотвращать раздражающие очереди;

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

circle-info

Элементы, отмеченные значком 📢, — это функции, запланированные для первоначального запуска и далее (пока недоступны).

circle-check

✔️ Подготовка

Тестирование этого сервиса полностью бесплатно, кредитная карта не требуется.

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

В этом руководстве предполагается, что вы уже:

Сетевые потоки

Архитектура Server Browser

При использовании Server Browser существует четыре (4) важных потока данных:

  1. Deployments API используется для развертывания, масштабирования и управления вашими выделенными серверами.

    1. Используйте v2/deploy API для сессий, привязанных к матчам продолжительностью менее 24 часов.

    2. 📢 Используйте Hot Standby для автоматического масштабирования по правилам и поддержки объединения сетей.

  2. Server API используется выделенными серверами для объявления о доступности и управления емкостью.

  3. Seat Reservation API используется игровыми клиентами для обнаружения и подключения к выделенным серверам.

  4. Транспортные протоколы сетевого кода используются для общения между игровыми клиентами и выделенными серверами.

circle-info

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

▶️ Начать просмотр

Узнайте о жизненном цикле сервера/игрока и их обязанностях, чтобы обеспечить эффективное использование серверов.

Аутентификация

В дополнение к существующей аутентификации клиента игры через ваш игровой бэкенд, все запросы к Matchmaker должны отправлять Заголовок Authorization HTTP с вашим секретом Токен аутентификации:

Authorization: xxxxxxxx-e458-4592-b607-c2c28afd8b62
circle-exclamation

Server Browser автоматически генерирует два типа токенов:

  • Токен сервера - требуется для Server API методов, может быть внедрен как переменная версии приложения.

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

  • Токен клиента - требуется для Мониторинг и методы Seat Reservation API методы, используемые игровыми клиентами.

    • Мы рекомендуем хранить этот токен в стороннем хранилище секретов, чтобы облегчить ротацию токенов.

Обнаружить экземпляр

Deployments API используется для развертывания, масштабирования и управления вашими выделенными серверами.

Когда вы запускаете новый Развертывания, уведомьте Server Browser о новом экземпляре и установите любое количество опциональных параметров метаданных полезных для фильтрации, сортировки и просмотра игроками:

  • информация о слотах — вместимость команды и метаданные, специфичные для команды (например, название команды),

    • требуется как минимум один слот на экземпляр для управления вместимостью игроков;

  • название и теги — настраиваемые, уникальные, читаемые человеком и ищущиеся метки;

  • подробности подключения — URL, IP, внешние порты или другие параметры;

  • данные совместимости — версия сервера или поддерживаемые версии клиента;

  • квалификаторы задержки — идентификаторы города и региона, и назначенные добавлены и обновлены советы по использованию подробности;

  • игровые параметры — уровень/сцена/карта, режим игры, сложность, используемые моды;

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

circle-info

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

Метаданные поддерживают строковые ключи и значения типа строка, число, логический или массив строк.

circle-check

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

Экземпляры серверов должны периодически отправлять сигнал поддержания (heartbeat) чтобы подтвердить свою текущую доступность и предотвратить попытки игроков подключиться к упавшим или офлайн-серверам. Отсутствие heartbeat в течение 30 секунд автоматически удалит экземпляр и любые ожидающие резервирования мест.

📢 Серверы могут переводить свой экземпляр в «режим гибернации» перед остановкой (масштабированием вниз), чтобы оставаться обнаруживаемыми без дальнейших heartbeat-запросов. Когда игрок запрашивает Обзор серверов для экземпляра в гибернации, Server Browser автоматически повторно развернет ваш сервер.

circle-info

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

Поиск и просмотр

Игроки могут перечислять экземпляры серверов и постранично просматривать результаты чтобы найти сервер, к которому они хотят присоединиться. Чтобы отображать данные пинга (задержки), прочитайте добавлены и обновлены советы по использованию подробности каждого экземпляра и измерьте задержку.

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

Параметр
Операторы
Пример фильтра (на основе простого примера)

"joinable_seats"

eq или ne или

lt или le или

gt или ge

"string" (метаданные)

eq или ne или

lt или le или

gt или ge или contains

"int" , или "float"

(метаданные)

eq или ne или

lt или le или

gt или ge

"bool" (метаданные)

eq или ne

circle-check
circle-info

Узнайте о постраничной навигации с указателем (cursor-based) Обзор серверов чтобы позволить пользователям получать больше результатов.

Резервирование мест

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

Резервации, превышающие вместимость присоединяемых мест слота, будут автоматически отклонены (409 Conflictarrow-up-right). Присоединяемые места — это любые доступные места, которые еще не были зарезервированы другими игроками.

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

После успешного создания резервации (200 OKarrow-up-right) игроки должны попытаться подключиться немедленно. Ожидающие резервации истекут через 30 секунд, если они не будут подтверждены вашим сервером.

circle-info

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

Подключиться к серверу

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

Чтобы подключиться из PIE (Editor) во время разработки и тестирования, нажмите клавишу тильда ~ и введите open {URL}:{port} и дождитесь, пока ваш редактор загрузит карту.

circle-check

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

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

  • назначение истёкших резервов игроков их предпочитаемому слоту,

  • список неизвестных идентификаторов игроков.

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

Покинуть сервер

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

circle-check

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

Читайте о Сохранение состояния чтобы предотвратить раздражающие откаты состояния постоянных серверов.

⚙️ Конфигурация

Server Browser API генерируется из JSON-конфигурации, указанной при создании нового (или быстрого перезапуска) Server Browser. Вы можете указать время жизни серверов и слотов, а также пользовательские метаданные:

chevron-right🍀 Простой примерhashtag
circle-info

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

☁️ Кластер хостинга

Server Browser удобно размещается и управляется Edgegap круглосуточно 24/7.

Выберите вариант хостинга, который лучше всего соответствует вашей цели:

  • Бесплатный кластер (общий) чтобы протестировать все функции и исследовать синергии с вашим дизайном,

    • автоматически отключается через 3 часа, для продолжения тестирования требуется перезапуск.

  • Приватный кластер (выделенный) чтобы обеспечить стабильную среду для ваших производственных нужд,

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

Уровни приватного кластера

В настоящее время мы предлагаем 3 уровня частных кластеровarrow-up-right чтобы удовлетворить потребности всех:

Уровень
Уровень для любителей (Hobbyist)
Уровень Studio
Корпоративный уровень (Enterprise)

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

энтузиасты, одиночные разработчики

коммерческие релизы

запуски с высоким трафиком

Ресурсы

1 vCPU + 2 ГБ ОЗУ

6 vCPU + 12 ГБ ОЗУ

18 vCPU + 48 ГБ ОЗУ

Резервирование

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

3 виртуальных узла

3 виртуальных узла

Ограничение скорости (запросов/с)

200

750

2,000

Цена, почасово

$0.0312

$0.146

$0.548

Цена за 30 дней (беспрерывное использование)

$22.464

$105.12

$394.56

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

Требования к ресурсам для вашего экземпляра будут зависеть от факторов:

  • количество игроков - больше игроков приводит к большему количеству API-запросов,

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

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

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

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

circle-info

Наши кластеры используют облачные машины с процессорами AMD/Intel с тактовой частотой 2,4 - 3,2 ГГц.

📗 API

Игровые клиенты и выделенные серверы отправляют API-запросы на протяжении всего своего жизненного цикла в Server Browser.

circle-info

Unity/Android — рассмотрите возможность использования подстановки в сырой строкеarrow-up-right чтобы предотвратить удаление кода жестко заданных JSON-файлов.

circle-check

Импортируйте спецификацию API в Scalar API Web Clientarrow-up-right или Swagger Editorarrow-up-right чтобы просмотреть подробности.

Пагинация

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

circle-info

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

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

🔖 Журнал изменений

Семантическое версионирование

Наш свах использует официальные Семантическое версионированиеarrow-up-right руководства. Каждый JSON конфигурации привязан к определённой версии сервиса. Версия сервиса определяет, какие правила и настройки доступны в вашей конфигурации и API. После выпуска версия больше никогда не изменится.

circle-info

Последняя версия серверного браузера — 0.0.4 . Следите за обновлениями и объявлениями.

0.0.4 (05 янв. 2026)

0.0.3 (28 нояб. 2025)

  • Первоначальный выпуск сервиса Server Browser запущен в ЗАКРЫТОЙ БЕТЕ.

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

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

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

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