Подробный обзор
Узнайте подробнее о концепциях безкодового матчмейкера Edgegap и настройте под ваши нужды.
✔️ Введение
Начните работу за 5 минут и протестируйте все функции бесплатно, без необходимости вводить данные кредитной карты.
Обновитесь, когда будете готовы к более мощному, приватному (выделенному) кластеру. Нативная интеграция с Edgegap Развертывания обеспечивает наилучший пинг, независимо от местоположения ваших игроков.
Бесплатный тариф позволяет 3 часа работы после каждой перезагрузки. Ваш матчмейкер будет работать на общей инфраструктуре с ограниченными ресурсами, подходящей для тестирования. После публичного релиза матчмейкер должен работать круглосуточно 24/7.
Каждому Matchmaker соответствуют три основные концепции:
Подробный обзор - базовая серверная инфраструктура, полностью управляемая и эксплуатируемая Edgegap.
Подробный обзор - набор правил и настроек, которые определяют работу матчмейкера.
🌐 Экземпляр сервиса - живой сервис матчмейкинга, работающий 24/7 в кластере, использующий Конфигурацию для объединения игроков и выдачи назначений на развертывания (сервера).
Часто обновляйте версию вашего матчмейкера чтобы воспользоваться новыми функциями и исправлениями ошибок.
▶️ Запустить матчмейкинг
Узнайте о процессе матчмейкинга, чтобы настроить, устранить неполадки и оптимизировать интеграцию вашей игры.

Аутентификация игрока - предотвращает выход в онлайн пиратских копий,
Создать лобби - присоединяйтесь к друзьям и делитесь предпочтениями игрока/матча,
Сформировать группу - зарегистрируйте своё Лобби как Группу матчмейкинга,
Найти матч - приготовьтесь и начните поиск матча (нового или существующего),
Назначить сервер и внедрить билеты - сервер автоматически назначается через несколько секунд,
Подключиться и аутентифицироваться - попытаться установить защищённое соединение с игровым сервером,
Подтвердить личность - сервер проверяет личность игрового клиента с помощью сторонних токенов,
Принять игрока или кикнуть игрока - сервер решает, разрешено ли игроку присоединиться.
Быстрый старт - добавьте наш стартовый пример матчмейкинга в вашу игру:
Аутентифицировать
Этот токен можно безопасно включить в клиент вашей игры, поскольку он не предоставляет доступ к API Edgegap.
Отдельных игроков можно идентифицировать по их ID билета, доступному на клиентах и сервере. При желании добавьте кастомную аутентификацию или ограничения с помощью собственного прокси, используя Сервер-сервер API.
Сформировать группу
Создание группы (пати) гарантирует, что игроки присоединятся к одной команде и серверу вместе с друзьями.
Создайте группу и пометьте её как готовую Подробный обзор быстро как соло-игрок без членов группы.

Лобби и группа
Используйте сервис Лобби, если дизайн вашей игры требует установки предпочтений матчмейкинга, управляемых игроком (например выбор персонажа, сложность, карта и т.д.). По мере того как игроки входят и выходят из Лобби, они также обновляют Группу матчмейкинга, готовясь к поиску матча позже.
Нет времени на сервис Лобби? Порекомендуйте игрокам делиться ID групп через Discord или личные сообщения.
приглашать друзей играть со мной
✅
✅
изменять мои предпочтения игрока/матча
✅
❌
просматривать предпочтения других участников лобби
✅
❌
хранить и управлять пользовательскими данными в формате ключ-значение
✅
❌
уведомлять членов группы, что я готов играть
❌
✅
показывать прогресс матчмейкинга и находить матч
❌
✅
получать назначение команды для игрока/группы
❌
✅
получать данные для подключения к игровому серверу
❌
✅
Наш кроссплатформенный матчмейкер поддерживает все коммерческие и кастомные сервисы Лобби:
Epic Online Services Lobby (Epic Games)
Steamworks Lobby (Valve Corporation)
Nakama Group (Heroic Labs)
Playfab Lobby (Microsoft)
brainCloud Lobby (bitHeads)
Gamekit Friends (Apple)
Пользовательское лобби (ваша компания)
Владелец лобби (игрок, отправляющий приглашения) также должен создать группу матчмейкинга.
Храните ID вашей группы в общих данных лобби, чтобы другие участники лобби могли легко найти и присоединиться к группе матчмейкинга, связанной со сторонним лобби. Игроки, приглашённые в группу, используют ID группы чтобы создать своё членство (вступить), и чтобы безопасно сохранить свои атрибуты матчмейкинга.
Как только группа начинает матчмейкинг, к ней нельзя присоединиться. Подробный обзор и создайте новую.
Оптимизация пинга
Если Подробный обзор включает задержки (латентности) правило все участники группы отправляют свои Пинг-маяки измерения в чтобы предотвратить подбор игроков из удалённых регионов или с существенно более высоким/низким пингом (задержкой).
Покинуть очередь
Владелец группы может удалить группу, автоматически удалив все членства в ней. Удаление группы после начала матчмейкинга отменит все членства и удалит их вскоре после этого.
Члены группы (кроме владельца) могут удалить своё членство (выйти из группы) в любое время до Подробный обзор. Удаление членства после этого отменит матчмейкинг для всей группы.
Как только матчмейкинг отменён, участники автоматически удаляются из матчмейкинга и получают уведомление через членство status:CANCELLED в следующем ответе при опросе статуса.
После отмены, если группа желает перезапустить матчмейкинг, владелец группы должен воссоздать группу, поделиться новым ID группы с участниками и заставить их воссоздать свои членства.
Как только матч найден, группу нельзя удалить (409 Conflict), и будут удалены автоматически. Ваш сервер должен выделить некоторое время (например, 60 секунд) для подключения игроков, прежде чем считать, что игрок отказался. В таком случае ваш сервер может:
заменить ушедшего ИИ-персонажем, чтобы немедленно начать матч,
или создать дополнение (backfill) чтобы найти нового игрока, заменяющего ушедшего,
или продолжить без замены ушедшего, если дизайн вашей игры допускает переменное количество игроков.
Найти матч
Чтобы начать поиск матча, все участники и владелец должны пометить себя как готовые.
Чтобы позволить владельцу группы немедленно начать матчмейкинг, пометьте членства как готовые при создании. Как только владелец пометит себя готовым, матчмейкинг начнётся, поскольку все готовы.
Для лучшего опыта, предоставляйте обновления статуса игрокам через внутриигровой интерфейс.
Все игроки должны регулярно опрашивать своё членство (рекомендуется 3-5 с) чтобы обнаружить начало матчмейкинга и отображать прогресс матчмейкинга через внутриигровой интерфейс.
Игроки должны сохранять свои ID членства и группы постоянно, чтобы в случае падения клиента они могли перезапустить игру и продолжить, не потеряв прогресс матчмейкинга.
Как только мы найдём достаточное количество игроков для формирования одной команды в соответствии с вашим Правила, игроки будут уведомлены в ответе по членству со статусом status:TEAM_FOUND.
Удаление членства на этом этапе приведёт к отмене всех членств группы и возврату всех других групп, назначенных в ту же команду, в status:SEARCHING .
Команды продолжают поиск матчей с другими командами, используя пересекающиеся значения между их группами (или среднее в случае number_difference ) до тех пор, пока не соберутся достаточные команды. Членства указывают на это в ответе status:MATCH_FOUND , что означает, что ваше развёртывание запускается.
Матчмейкер стремится максимизировать заполнение матчей и не перейдёт в состояние MATCH_FOUND пока не выполнится одно из условий:
достаточное количество команд составлено с заданным максимальным размером команды,
или если Подробный обзор определено И истёкло время расширения, И достаточное количество команд составлено с заданным минимальным размером команды,
или истёкло настроенное время истечения билета И достаточное количество команд составлено с заданным минимальным размером команды.
Если ни один сценарий не срабатывает до истечения времени действия билета, группа и билеты отменяются.
Испытываете долгое время ожидания в очереди во время тестирования или с игроками в менее популярных регионах? Установите меньшее время истечения билета (например, 30 с) и воссоздавайте группу (или билеты) на стороне клиента по истечении.
Время жизни билета автоматически сбрасывается каждый раз, когда группа (или игрок) попадает в команду.
Храните team_id и match_id в вашем бэкенде игры, чтобы отображать информацию о членах команды в игре.
Каждый игрок получает уникальный ID билета, который можно использовать для Подробный обзор с игровыми серверами.
Если игрок был подобран и назначен на игровой сервер, его билет удаляется автоматически. Игроки, покинувшие очередь после status:HOST_ASSIGNED могут быть заменены на дополнение (backfill).
Как только игроки получают status:HOST_ASSIGNED они переходят к Подробный обзор.
Подключиться к серверу
Дополнение матча (Backfill Match)
После завершения инициализации игрового сервера, ваш сервер должен:
Запустить таймер ожидания для каждого нового игрока. Мы рекомендуем отображать прогресс загрузки подключённым игрокам с помощью сцены/уровня загрузки — полноценной 3D-сцены, социального интерфейса наподобие лобби или экрана загрузки со шкалой прогресса.
Отслеживайте подключения новых игроков и уход существующих со временем:
Новые игроки должны объявлять ID билета серверу для аутентификации и сопоставления их соединения с матчмейкером Подробный обзор или
assigned_ticket(если выполнено backfill).Создавайте новые Backfill для неиспользуемой ёмкости игроков (ушедших) в течение всего времени жизни сервера.
Обновляйте истёкшие Backfill, которые удаляются после
ticket_expiration_period.
Очищайте (удаляйте) любые оставшиеся Backfill как только Развертывания:
Unity -
OnApplicationQuitколлбек или пользовательский коллбек завершения игры,Unreal Engine -
OnWorldDestroyed,PreExit, или пользовательский коллбек завершения игры.
Любой профиль может использоваться для Backfill, если предоставлено действительное назначение сервера и хотя бы один билет. См. Подбор матчей для минимального примера.
⚙️ Конфигурация
API матчмейкера генерируется из JSON-конфигурации, указанной при создании нового (или быстрого перезапуска) Matchmaker. Вы можете указать любое количество профилей с различными правилами и расширениями:
См. Подбор матчей для наших SDK и подробных примерных сценариев.
Редактирование работающего матчмейкера спровоцирует быструю перезагрузку, удалив все билеты и вызвав короткое время простоя.
Профили (очереди)
Профили представляют полностью отдельные очереди матчмейкинга, разделяющие одну версию матчмейкера. Вы можете настроить любое количество профилей для каждого матчмейкера. Разделение вашей базы игроков на несколько профилей может привести к более долгим ожиданиям в очереди для ваших игроков.
Каждый профиль матчмейкера использует Версию приложения в качестве шаблона для запуска новых развертываний (серверов).
Некоторые игровые режимы могут требовать больше vCPU / RAM, особенно если они поддерживают большее количество игроков. Каждый матчмейкер может включать несколько профилей, каждый связанный с версией приложения с подобранными ресурсами.
Правила
Каждый игрок и группа вступают в очередь матчмейкинга и находят матчи, используя начальные правила сначала.
Каждая запись в профиле по пути .rules.initial представляет правило, где:
ключ — строковое значение для именования правила как вам удобно; например
match_size, изначение — объект, определяющий тип и атрибуты правила в соответствии с нашим стандартным набором правил.
Все правила должны выполняться одновременно, чтобы инициировать назначение хоста и начать или найти развертывание.
Операторы (тип правила)
player_count — специальное правило, определяющее, сколько игроков требуется для инициирования назначения.
Правило player_count требуется и может быть определено только один раз в ваших начальных правилах конфигурации.
Матчмейкер всегда стремится максимизировать заполнение матчей, до указанного max_team_size :
если достигнут максимальный размер команды, матч создаётся немедленно,
в противном случае игроки ждут в очереди заполнения матча до тех пор, пока expansion (или истечение) не близко к завершению,
незадолго до расширения (или истечения), если возможен частичный матч (≥ min и < max размера команды), этот матч будет сформирован со всеми игроками на одной стадии расширения (при условии прохождения других правил).
Для кооперативных, свободных для всех или асимметричных режимов размера команды установите "team_count": 1 .
Количество команд можно настроить для формирования нескольких сбалансированных команд для соревновательных игр:
атрибуты группы вычисляются как среднее/пересечение атрибутов игроков группы, атрибуты команды вычисляются как среднее/пересечение
атрибутов группы команды. Предполагая фиксированный размер команды из 4 игроков: Примеры сценариев матчей
Группы подбираются в команды без переполнения,

string_equality сопоставляет игроков с точно совпадающим строковым значением.
Пример правила: selected_game_mode
правило будет сопоставлять игроков с учётом регистра: Alice + Bob + Dave могут совпасть,
Alice + Bob + Dave могут совпасть, Alice + Erin, или Charlie + Frank никогда не совпадут.
✅ "Capture The Flag"
❌ "capture the flag"
Bob
Alice
Charlie
сопоставляет игроков в пределах абсолютной числовой разницы между ними.
Dave
elo_rating
number_difference правило выше с
правило будет сопоставлять игроков с учётом регистра: "max_difference": 50
"max_difference": 50 первоначально: Alice + Bob могут совпасть, или Bob + Charlie могут совпасть, Alice + Bob + Charlie никогда не совпадут.
✅ intersection
❌ сопоставляет игроков с одним или несколькими пересекающимися строковыми значениями, с учётом регистра.

selected_map "overlap": 1
правило будет сопоставлять игроков с учётом регистра: будет сопоставлять:
будет сопоставлять: первоначально: Alice + Bob + Charlie могут совпасть, или Alice + Bob + Dave могут совпасть, Alice + Bob + Charlie + Dave никогда не совпадут.
✅ Расширение правил
❌ По желанию,

expansions
изменяют атрибуты правила после периода времени в очереди, чтобы ослабить ограничения и расширить пул игроков, которые можно подобрать, что приводит к более быстрым матчам Пример сценария: расширения Изначально мы требуем 1 команду, состоящую ровно из 4 игроков (возможно разделённых на группы).
с:
максимальной задержкой 125 мс к одному (любому) маяку, разницей задержек 125 мс или меньше между наименьшим и наибольшим значением для того же маяка,
разницей рейтинга навыков не более 50 очков между наименьшим и наибольшим игроком,
точно тем же (с учётом регистра) выбранным режимом игры,
хотя бы одним совпадающим выбором карты (с учётом регистра) среди игроков,
по крайней мере одним совпадающим
значением размера группы для backfill
среди игроков. В примере выше мы расширяем поиск, изменяя атрибуты
после: 4 игрока диапазон рейтинга навыков 150
максимум 250 мс задержки
максимум 250 мс задержки
30 секунд:
диапазон рейтинга навыков 200
любая задержка
максимум 250 мс задержки
60 секунд:
1-4 игрока
Прогнозирование предпочтений игроков похоже на стрельбу по движущейся цели. Начните с менее жёсткого набора правил на релизе и оптимизируйте потом итерационно с помощью
3 минуты (180 с):
60 секунд:
Тонкая настройка расширений
Эти вопросы могут помочь направить ваш мыслительный процесс:
Какова длительность моей игровой сессии? Подробный обзор.
5-минутная сессия означает, что каждый игрок возвращается в очередь каждые 5 минут, что косвенно уменьшит время ожидания из-за большего числа игроков в очереди в любой момент времени.
Каков мой
пиковый CCU
максимальное количество одновременных пользователей в данный день и мой одновременные пользователи в периоды низкой активности Если есть большая разница (более 60%) между минимумом и максимумом, вам может понадобиться отдельный профиль для периодов низкой активности, чтобы ждать дольше на каждом расширении и накапливать больше игроков.?
Равномерное распределение по нескольким часовым поясам означает меньшую разницу между пиком и низкой активностью, но не ускоряет поиск матчей, поскольку игроки в разных регионах не должны подбираться, если ваш
настроен правильно (это привело бы к высокому пингу).
Каково распределение рейтинга навыков у игроков (по регионам)? Подробный обзор Распределение навыков обычно следует
Колоколообразной кривой
(естественное распределение), поэтому с каждым стандартным отклонением от среднего вы находите меньше игроков дальше от среднего. Игроки со средними значениями будут подобраны быстро, в первом расширении, а крайности представляют проблему. Мы рекомендуем увеличивать величину расширенного различия с каждым расширением, например 25 -> 50 -> 100, чтобы учесть меньшее число игроков на краях кривой. Если у вас есть какой-либо элитный уровень (профессиональные игроки), мы рекомендуем отдельный профиль с кастомной настройкой навыков, так как образец меньше и часто не следует общей тенденции по всей базе игроков. (склоняется к крайностям, инвертированная колоколообразная кривая)
Как я могу улучшить скорость матчмейкинга и процент заполнения матчей при небольшой базе игроков?
Узнайте как можно больше о ваших игроках и их предпочтениях!
Рассмотрите возможность удаления некоторых правил или ослабления ограничений на начальном этапе.
Ослабляйте размер команды или количество команд со временем — частичный матч лучше, чем его отсутствие.
Увеличивайте длительность между расширениями, чтобы накапливать больше игроков.
Свяжитесь с нами за дополнительными советами и трюками, специально для дизайна вашей игры.
Расширения любого атрибута правила будут
перезаписывать предыдущие значения
этого атрибута. 📌 Внедряемые переменные Вашему серверу может потребоваться знать детали о своих игроках. Атрибуты игроков, разрешённые значения матча и другие значения внедряются в ваше развертывание вместе с обычными
Предварительный просмотр неотформатированного
🏁 Примеры расширенных переменных: Приложения и версии.
MM_MATCH_PROFILE=advanced-example MM_EXPANSION=initial
, распарсьте их с помощью нашего SDK или пользовательским методом. Сервера могут сопоставлять соединения игроков с группами и атрибутамипосле того, как игрок отправит свой ID билета на сервер.
🧵 Трассировка игрока Если у ваших игроков возникают проблемы, трассировка их пути в серверных логах может помочь. Каждое развертывание матчмейкера
будет помечено назначенными ID билетов игроков
чтобы вы могли легко и найти чтобы помочь вам в устранении неполадок. Отображайте ID билетов и ID развертываний в интерфейсе истории матчей клиента Развертывания чтобы трассировать игроков при устранении неполадок. Развертывания чтобы узнать о способах устранения неполадок развертывания.
👀 Аналитика Получайте инсайты по нагрузке и производительности вашего матчмейкера, без кода и настроек.
См. Развертывания 🌟
Обновите матчмейкер до корпоративного уровня
чтобы открыть метрики и инсайты матчмейкинга:
☁️ Хостинг-кластер Матчмейкер удобно размещается и управляется Edgegap круглосуточно. Выберите вариант хостинга, наиболее подходящий для вашей цели:


Тарифы приватного кластера
Обновитесь до приватного кластера в один клик. Изменение тарифов приватного кластера после запуска без простоя игроков также возможно с помощью
. Управляемые кластеры обеспечивают высокодоступный хостинг сервисов, поддерживаемый Edgegap с круглосуточной живой поддержкой для публично выпущенных игр.
Требования к ресурсам для вашего экземпляра будут зависеть от факторов:
количество игроков ⏩ Пошаговые обновления- больше игроков означает больше билетов и API-запросов,
количество запросов на игрока
- более частые повторы увеличивают нагрузку на сервис и потребляют ресурсы, сложность конфигурации
- правила пересечения и расширения особенно требовательны, средняя продолжительность матча
- более короткие сессии заставляют игроков чаще возвращаться в матчмейкинг, периоды истечения и удаления
- устаревшие билеты накапливаются со временем и потребляют ресурсы, логика резерва клиента при повторных попытках
- повторные попытки с экспоненциальным джиттером помогают разгрузить пики трафика. Готовьтесь к успеху и оптимизируйте после релиза, чтобы не блокировать ваших игроков в день выхода.
Используйте реализуйте экспоненциальный джиттерный бэкофф
для восстановления после высокой нагрузки. Ограничения скорости Инструменты для разработчиков или Чтобы защитить ваш кластер от превышения пиковой пропускной способности и аварийных сбоев, мы ограничиваем количество запросов в секунду на основе внутренних нагрузочных тестов с использованием конфигурации.
Общее ограничение
100
200
750
2,000
Создать развертывание
5
10
30
30
Просмотреть маячки
10
20
75
200
Создать группу + Создать тикет + Создать групповой тикет
10
20
75
200
Чтение членства + Чтение группы + Чтение тикета
10
120
450
1,300
Создать бэкфилл
5
10
37
100
Ограничения скорости выражаются в объединённых запросах в секунду к указанному набору конечных точек API.
Если ваши игровые клиенты не повторяют запросы при получении ответа 429 Слишком много запросов в ваших развертываниях могут отсутствовать игроки, которые перестают читать свои назначения из-за высокой нагрузки.
Тестирование нагрузки
Матчмейкинг и назначения требуют использования CPU и памяти, что влечёт за собой стоимость хостинга для каждого приватного матчмейкера. Смотрите ресурсы и цены, связанные с каждым уровнем, на нашей странице с ценами.
Всегда используйте приватные кластеры для стресс-тестирования. Бесплатные матчмейкеры строго ограничены только для девелоперского тестирования.
При проектировании вашего теста нагрузки, пожалуйста, учитывайте реалистичные модели поведения игроков:
✅ Игроки постепенно присоединяются к матчмейкингу, увеличивая количество запросов в секунду в течение нескольких часов.
❌ Все игроки координируются и создают свои тикеты в точно один и тот же момент.
✅ Игроки увеличивают время ожидания между попытками (например, 1с-5с-10с-10с).
❌ Все игроки повторяют попытку немедленно после получения 429 Слишком много запросов ответа.
✅ Большинство игроков получат свои назначения в короткий срок (10–60 с) и прекратят опрос.
❌ Все игроки продолжают опрашивать в течение заданного времени даже после получения назначения.
✅ Большинство игроков заканчивают свою игру (это занимает время) прежде чем снова начать матчмейкинг.
❌ Все игроки сразу же снова начинают матчмейкинг после получения своего назначения.
✅ Пиковый трафик держится 6–8 часов в день, после чего в некоторых часовых поясах активность снижается.
❌ Пиковый трафик держится 24 часа в сутки, и все игроки играют день и ночь.
Если матчмейкер испытывает высокую нагрузку:
если CPU ограничивает производительность, матчмейкинг может замедлиться,
если у матчмейкера закончится память, он перезапустится без потери информации о тикетах, ожидая, что клиенты реализуют экспоненциальную задержку повторных попыток и всплеск распределится на более длительный период.
⏩ Пошаговые обновления
Отслеживание совместимости между версиями сервера и клиента может быть сложным. Следуйте нашим советам для надёжных релизов, обновлений и предотвращения простоя или проблем совместимости.
URL вашего матчмейкера и токен авторизации всегда останутся теми же после перезапуска.
Создайте отдельные матчмейкеры для dev и production сред, чтобы безопасно экспериментировать.
⚠️ Перед запуском в реальной эксплуатации
Мы рекомендуем заранее создать несколько копий вашего матчмейкера: зелёный, синий и оранжевый. Вы можете переключать, какой матчмейкер используется при выпуске обновлений (стратегия blue/green).
Выбирайте разные регионы для каждого инстанса, чтобы предотвратить простой во время локализованных сбоев.

🔃 Обновление клиента + сервера
Требования: В этом разделе предполагается, что вы завершили Подробный обзор.
Для того чтобы выпустить обновления игрового клиента + сервера, вы можете:
Подготовить новую версию серверного приложения
v1.2.0-rcна Edgegap:запушить новый тег образа в ваш реестр контейнеров
t1.2.0,создать новую версию приложения
v1.2.0-rc,
Выполните любые дев-тесты, развернув вашу новую версию приложения
v1.2.0-rc:подключите редактор игрового движка к предоставленному URL + внешнему порту,
Обновите неиспользуемый матчмейкер
синийчтобы связать с вашим новым тегом образаt1.2.0,включите кэширование для новой версии приложения
v1.2.0-rc, включение кэша для этой версии гарантирует, что образ также будет закэширован для версииv-blueпоскольку они ссылаются на один и тот же тег,ожидайте, пока индикатор кэширования в версии
v1.2.0-rcне достигнет 🟢 зелёного,
Обновите ваш новый игровой клиент
c2чтобы использовать новую версиюv-blueпри создании тикетов:обновите базовый URL и токен авторизации в игровом клиенте,
Выполните QA-тесты и окончательные проверки вашего нового игрового клиента
c2:если вы обнаружите и устранили какие-либо проблемы, повторите процесс с начала,
подождите 3–7 дней, чтобы изменения DNS матчмейкера распространились по провайдерам по всему миру, после остановки матчмейкера (быстрый перезапуск не требует обновления DNS или периода ожидания),
Выпустите обновление вашего игрового клиента
c2на платформах распространения игр,Дайте время для распространения нового игрового клиента
c2на устройства игроков (обычно до 3–7 дней):отслеживайте устаревшие игровые клиенты
c1используя развертывание Развертывания,
Освободите неиспользуемые ресурсы в вашей учётной записи Edgegap:
удалить тег образа
t1.0.0чтобы освободить место в реестре контейнеров,удалить тег образа
t1.1.0чтобы освободить место в реестре контейнеров,выключите ваш
зелёныйматчмейкер, чтобы приостановить выставление счетов до вашего следующего обновления.
Для вашего следующего обновления, увеличьте номера версий и поменяйте местами зелёный и синий ключевые слова в руководстве.
⚡ Срочный хотфикс сервера
Требования: В этом разделе предполагается, что вы завершили Подробный обзор.
Чтобы выпустить патч сервера без необходимости обновления игрового клиента, вы можете:
Подготовить новую версию серверного приложения
v1.2.0-rcна Edgegap:запушить новый тег образа в ваш реестр контейнеров
t1.2.0,создать новую версию приложения
v1.2.0-rc,
Выполните тесты и проверки, развернув вашу новую версию приложения
v1.2.0-rc:подключите редактор игрового движка к предоставленному URL + внешнему порту,
если вы обнаружите и устранили какие-либо проблемы, повторите процесс с начала,
включите кэширование для новой версии приложения
v1.2.0-rc, включение кэша для этой версии гарантирует, что образ также будет закэширован для версииv-greenпозже, так как они будут ссылаться на тот же тег,ожидайте, пока индикатор кэширования в версии
v1.2.0-rcне достигнет 🟢 зелёного,
Обновите версию
v-greenчтобы связать с вашим новым тегом образаt1.2.0,новые матчи автоматически инициируют назначение с обновлённым тегом
t1.2.0,отслеживайте устаревшие игровые клиенты
c1используя развертывание Развертывания,
Очистка неиспользуемых ресурсов в вашей учётной записи Edgegap:
удалить тег образа
t1.1.0чтобы освободить место в реестре контейнеров.
📗 API
Клиенты и серверы могут вызывать API напрямую или с помощью SDK игровых движков, см. также Подбор матчей.
Сервер-сервер
Добавьте расширенные или индивидуальные элементы управления потоком матчмейкинга — реализуйте кастомный прокси с помощью нашего Управляемые кластеры или любой облачной FaaS вычислительной платформы, чтобы добиться любого из следующих:
прикреплять чувствительные атрибуты игрока — например флаги читера, рейтинги навыков или подобные,
предоставлять контекст команды и матча в игре — показывать моих товарищей по команде и соперников во время загрузки,
ограничивать конкретные крайние случаи — например, разрешать только 1 группу на игрока в любой момент,
добавлять кэширование или ограничение скорости API — уменьшить количество запросов и нагрузку на матчмейкер,
кастомизировать интеграцию лобби и групп — создавать асимметричные/ролевые лобби перед матчмейкингом.
Включите параметр player_ip с публичным IP-адресом участника чтобы обеспечить максимально низкую задержку для игрока и воспользоваться Развертывания.
Игровые клиенты могут использовать ipify.org бесплатный сервис для определения их публичных IP. VPN может скрывать публичный IP-адрес.

Политика совместного использования ресурсов между источниками (CORS)
Для WebGL-игр, размещённых на сторонних платформах распространения (например, itch.io), отправка любых запросов к матчмейкеру из игрового клиента может привести к нарушениям политики Cross-Origin Resource Sharing Большинство современных веб-браузеров отправляют предзапрос чтобы проверить, понимает ли и принимает ли бэкенд-сервис (Матчмейкер) коммуникацию с вашим игровым клиентом.
Неудачная проверка предзапроса (по умолчанию из соображений безопасности) может привести к одной из нескольких возможных ошибок, связанных с CORS, чаще всего заголовок CORS 'Access-Control-Allow-Origin' отсутствует .
Чтобы устранить эту ошибку, добавьте allowed_cors_origin параметр в вашу конфигурацию, чтобы либо:
добавить в белый список точные домены размещения вашего клиента:
или добавить в белый список универсальный домен (включая все поддомены):
Для предзапросов к матчмейкеру учётные данные не требуются, если домены настроены корректно.
🚨 Устранение неполадок
Ваш успех — наш приоритет. Если вы хотите отправлять собственные запросы, попросить недостающие критические функции или поделиться мыслями, пожалуйста, свяжитесь с нами в нашем сообществе Discord.
Почему я получаю ошибки при попытке создать новый матчмейкер?
Пожалуйста, прочтите ошибку — возможно, вы опечатались в идентификаторе, правиле или операторе. - Используйте JSONLint чтобы проверить форматирование JSON, возможно, вы пропустили запятую или скобку. - Обратитесь в наш Community Discord за помощью, мы с радостью поможем. 🙏
Почему мой матчмейкер автоматически выключился через 3 часа?
Матчмейкеры в Бесплатном уровне предназначены для первоначальных тестов и автоматически выключаются через 3 часа. Чтобы продолжить тестирование вы можете перезапустить ваш матчмейкер.
Рассмотрите возможность перехода на платный уровень для неограниченного времени работы.
Почему я не могу запустить второе развертывание в своей учётной записи?
В Бесплатном уровне вы можете запускать только 1 одновременное развертывание.
Пожалуйста, рассмотрите возможность перехода на платный уровень для неограниченного числа развертываний.
Почему я получаю назначение/развертывание в случайные моменты, игнорируя player_count?
Вы или другой участник команды могли создать тикеты в предыдущей сессии тестирования, которые не были назначены. Пожалуйста, перезапустить ваш матчмейкер.
Мой тикет застрял в ПОИСКЕ .
Пожалуйста, убедитесь, что вы создали достаточное количество подходящих тикетов в соответствии с вашей конфигурацией.
Мой тикет застрял, постоянно переключаясь между MATCH_FOUND и КОМАНДА_НАЙДЕНА повторно.
Аккаунты Бесплатного уровня ограничены 1 развертыванием одновременно.
Пожалуйста, рассмотрите обновление или остановите текущее развертывание, чтобы начать новое.
Мой тикет сразу переходит в ОТМЕНЁН.
Срок действия вашего тикета истёк. Создайте новый тикет или увеличьте период истечения в вашей конфигурации для тестирования.
Я получаю HTTP 404 Не найдено при проверке моего тикета.
Ваш тикет был удалён либо запросом DELETE, либо по истечении периода удаления (начинается после истечения тикета, определяется в вашей конфигурации). Воссоздайте новый тикет или увеличьте периоды истечения/удаления в вашей конфигурации для тестирования.
Мой матчмейкер показывает ошибку, что мне делать?
Если это инстанс разработки или тестирования, попробуйте сначала перезапустить матчмейкер. - Пожалуйста, сообщите о любых проблемах через наш Community Discord.
В случае, если эта проблема влияет на живую игру, создайте срочный запрос в поддержку.
🔖 Журнал изменений
Ваш файл конфигурации будет валидироваться в зависимости от версии матчмейкера, убедитесь, что ваши правила соответствуют возможностям используемой версии матчмейкера.
Последняя версия матчмейкера 3.2.1. Все примеры на этой странице актуальны. Следите за уведомлениями о завершении поддержки вашей версии матчмейкера. См. также ⏩ Пошаговые обновления.
3.2.1 (24 нояб. 2025)
Это последняя версия сервиса матчмейкера, рекомендуемая для использования в продакшене.
Чтобы обновить версию матчмейкера — остановите, отредактируйте, перезапустите. Быстрый перезапуск не применит изменения версии.
🩹 Исправления ошибок:
Незначительные исправления развертывания, устранено несколько ошибок при запуске матчмейкера.
3.2.0 (31 окт. 2025)
🩹 Исправления ошибок:
Различные мелкие исправления спецификации и обновления согласованности документации.
Различные исправления стабильности и самовосстановления в инфраструктуре матчмейкера.
✨ Улучшения и новые функции:
Введение Подробный обзор функции - управление группами теперь простое и не требует сторонних решений!
Больше не нужно делиться сложными атрибутами тикета между участниками группы, достаточно ID группы.
Начинайте матчмейкинг как группа, как только все ваши игроки отметят себя как готовые.
Проверяйте атрибуты участников группы относительно лидера группы при присоединении, препятствуя созданию негодных для матчмейкинга групп (атрибуты игроков группы не соответствовали бы правилам профиля).
Проверяйте размер группы и отклоняйте новые членства, когда достигнут максимальный размер команды.
Читайте нашу обновлённую документацию с новым пользовательским потоком, обновления SDK скоро будут доступны!
Тикеты (членства) теперь включают ваш ID матча — отслеживайте игроков и добавляйте элементы интерфейса для отображения имён вашей команды или вражеских команд, рейтинга навыков или других свойств, хранящихся у третьих сторон.
Крупное Подробный обзор переосмысление на основе внутреннего стресс-тестирования, улучшенная обработка кратковременных всплесков.
Улучшенный коэффициент заполнения матчей за счёт задержки частичных матчей до конца расширения.
Если достигнут максимальный размер команды, матч создаётся немедленно.
В противном случае матч создаётся в конце текущего расширения, если достигнут минимальный размер команды.
Установите периоды истечения и удаления для каждого профиля и оптимизируйте для лучшего опыта игрока.
Чтобы обновить вашу конфигурацию — увеличьте версию и скопируйте поля истечения и удаления в каждый профиль.
3.1.0 (10 июня 2025)
🩹 Исправления ошибок:
Матчмейкеры теперь корректно валидируют тикеты с несколькими профилями, включающими разные правила.
✨ Улучшения и новые функции:
Больше оптимизаций для максимизации коэффициента заполнения матчей с помощью правила player_count. Тикеты теперь будут ждать до конца расширения (или истечения), если возможен только частичный матч (>min и <max размера команды).
Полные матчи (достигнут максимальный размер команды) формируются немедленно (без изменений).
Перейдите на Enterprise Подробный обзор чтобы разблокировать матчмейкинг Подробный обзор! Получите информацию о нагрузке и производительности матчмейкера без кода или дополнительной конфигурации. Метрики при запуске включают:
общее количество тикетов, бэкфиллов, назначений и развертываний за выбранный период времени,
показатели в минуту для вышеуказанных метрик за выбранный период времени,
итоги и временные ряды по просроченным тикетам, расширенным матчам, коэффициенту заполнения матчей,
метрики использования API и многое другое.
Улучшенная Правила документация с лучшими примерами и визуализациями.
3.0.0 (20 мая 2025)
⚠️ Ломающие изменения:
Ограничения скорости min/max размера команды для эффективного заполнения команд (заменяет расширения по количеству игроков):
в вашей конфигурации
player_countправило, заменитеteam_sizeнаmin_team_sizeиmax_team_sizeчтобы добиться «максимальных усилий» при попытке максимизировать коэффициент заполнения матчей,чтобы требовать конкретного числа игроков в команде, установите min и max на одно и то же значение,
бэкфиллы обходят
player_countправило и всегда матчатся с 1 тикетом (без изменений).
Тикеты, групповые тикеты и бэкфиллы со всеми задержками выше наивысшей
max_latencyв данном профиле будут немедленно отклонены с ответом400 Bad Requestна запрос создания тикета, вместо истечения:применяется только если правило latency сконфигурировано,
чтобы обойти это поведение, создайте расширение с
max_latency: 99999(любой значение выше, чем таймаут измерения задержки клиентом).
Внедряемые переменные окружения, содержащие данные тикета, теперь включают поле
id(ID тикета), чтобы их было легче повторно использовать при создании Подробный обзор.
🩹 Исправления ошибок:
Подробный обзор теперь использует настроенный период удаления и истечения (как тикеты и групповые тикеты).
Подробный обзор теперь корректно матчится с использованием настроенных
selected_mapправил.Исправлено спецификация openAPI для POST Подробный обзор запроса (требует
public_ip) и ответа GET /tickets (team_idопционально), включая примеры.
✨ Улучшения и новые функции:
Теперь рассматривается до 3x больше потенциальных матчей, что даёт более оптимальные группы и максимизирует коэффициент заполнения матчей.
До 200% более быстрая скорость матчмейкинга благодаря оптимизациям конкурентности.
До 40% увеличенный коэффициент заполнения матчей за счёт оптимизации алгоритма расширений.
Улучшена стабильность сервиса и увеличена скорость быстрых перезапусков.
Бенчмарки были получены с использованием хаос-генерированных данных с помощью конфигурации Advanced Example.
2.1.0 (24 фев. 2025)
⚠️ Ломающие изменения:
Разделена информация о профиле игры и стадии расширения в Подробный обзор:
MM_MATCH_PROFILEтеперь будет включать только имя профиля, как оно указано в конфигурации.Введён
MM_EXPANSION_STAGEкоторый будет содержать стадию расширения как строку (например, "initial", "15", "30").
Назначения тикетов теперь включают ID группы, когда Подробный обзор. ID группы также включён как Подробный обзор, в виде отображения ID группы на список ID игроков этой группы.
Назначения тикетов теперь включают ID команды, когда Подробный обзор. ID команды также включён во все данные тикета Подробный обзор.
Подробный обзор теперь возвращает
409 ConflictHTTP-код вместо204 No Contentчтобы указать, что тикет не может быть удалён, поскольку развертывание запускается. Для замены ушедших используйте Подробный обзор выданный сервером после заранее определённого таймаута.Подробный обзор параметр тела запроса
attributes.deployment_request_idперемещён вattributes.assignment.request_id.Подробный обзор тело запроса теперь требует полных данных назначения как части
attributesпараметра в дополнение кrequest_id.
🩹 Исправления ошибок:
Разрешённые значения правила пересечения теперь Подробный обзор в переменной окружения
MM_INTERSECTION.Функция быстрого перезапуска теперь надёжно регенерирует конечные точки API и спецификацию openAPI при изменении конфигурации.
Исправлено несколько багов при (пере)старте матчмейкера, вызывавших длительное время запуска или зависание матчмейкера.
✨ Улучшения и новые функции:
Увеличены ограничения скорости и масштабируемость всех конечных точек API во всех уровнях матчмейкера.
При назначении игрока в Подробный обзор, ID тикета нового игрока будет добавлен как тег к бэкфиллу Развертывания.
Добавлена функция аутентификации в swagger UI для тестирования API напрямую в веб-интерфейсе без необходимости использования postman.
Улучшены примеры openAPI для более точного отображения реалистичных запросов и ответов.
Добавлен новый Подробный обзор предназначенный для разработки и отладки.
Позволяет перечислять все текущие тикеты игроков в постраничном списке.
Позволяет перечислять все текущие матчи в постраничном списке.
1.0.0 (9 дек. 2024)
Подробный обзор: По (популярному) запросу мы добавляем бэкфилл с автоматическим назначением тикетов, что позволяет повторно использовать серверные слоты, когда игроки покидают сессию.
Идеально для заполнения пустых игровых мест после начала матча или для замены игроков, покинувших матч.
Подробный обзор: Мы добавляем возможность присоединяться как группа к уже доступной возможности заполнения нескольких команд игроками.
Идеально для очереди матчмейкинга в компании друзей или при выходе из общего лобби.
Инструменты для разработчиков и Инструменты для разработчиков SDK для матчмейкинга:
Чтобы упростить интеграцию, мы теперь предлагаем наборы средств разработки для самых популярных игровых движков.
Исправлен баг, когда Подробный обзор не применялся корректно.
Тикеты теперь будут автоматически отменяться после Подробный обзор если они не были назначены в развертывание.
Теперь вы можете Подробный обзор чтобы улучшить поток вашего процесса матчмейкинга.
Развертывания, создаваемые матчмейкером, теперь помечаются ID тикетов.
Теперь вы можете редактировать вашу конфигурацию, пока матчмейкер работает. Это вызывает быструю перезагрузку конфигурации без необходимости полного цикла вкл/выкл матчмейкера. Примечание: эта функция не рекомендуется для производственных сред, так как она удаляет все текущие тикеты и временно делает API неответствующим.
Исправлено Подробный обзор использовать корректные примитивные типы вместо массивов.
Исправлено Подробный обзор JSON-значения, которые ранее содержали экранированные символы.
0.2.3 (8 окт. 2024)
Исправлен баг, когда некоторые заголовки не принимались матчмейкером при запросах из WebGL-приложения (политики CORS).
0.2.2 (3 окт. 2024)
Исправлена проблема с проверкой сертификатов TLS/SSL, мешавшая запуску матчмейкера.
0.2.1 (30 сен. 2024)
Исправлен баг, из-за которого конечная точка маячков возвращала ошибку 500.
0.2.0 (25 сен. 2024)
Базовая аутентификация теперь обязательна для всех конечных точек.
Добавлена возможность настраивать количество повторных попыток при ошибке назначения на сервере.
Матчмейкинг на основе команд теперь является настройкой по умолчанию для всех конфигураций матчмейкинга.
И приложение, и версия теперь являются обязательными полями во всех профилях.
Введена новая конечная точка для мониторинга статуса матчмейкера.
Обновлён формат переменной окружения tickets в развертывании.
Добавлена опция конфигурации, позволяющая хостам общаться с матчмейкером.
Отладочный API теперь доступен только при явном включении в конфигурации (в настоящее время отключён для переработки).
Ключ
game_profileв ответе GET ticket был заменён наprofile.
Последнее обновление
Это было полезно?

