Архитектура с хостом-игроком Listen server / host advantage
ID причины sy-host · Основной ответственный Команда разработки · Разработка сервера · Совместно Команда разработки · Разработка клиента, Команда инфраструктуры · Серверная инфраструктура
Если сервером служит ПК одного из игроков, его подключение и производительность ПК определяют ощущения всех.
Почему Сервером служит ПК хоста (P2P, listen-сервер) → Следствие Медленное подключение или ПК хоста сказывается на всех, а у самого хоста пинг 0 → На экране Преимущество только у хоста, когда хост выходит, у всех фриз или дисконнект
Основной ответственный Команда разработки · Разработка сервера · Совместно Команда разработки · Разработка клиента, Команда инфраструктуры · Серверная инфраструктура
Команда разработки: задачи
Сервер: перейти на выделенный сервер, который проверяет действия, а до этого при матчмейкинге выбирать хостом игрока с хорошим подключением и ПК. Клиент: поддерживать миграцию хоста, при матчмейкинге измерять и отправлять пинг до других участников, скорость отдачи и производительность ПК.
Команда инфраструктуры: задачи
Выделить серверное оборудование или инстансы под выделенные серверы, размещать их ближе к регионам, где много игроков.
На графике
Высоко только у некоторых · число жалоб на лаги и дисконнектов по хостам
Где смотреть
Писать в лог матча скорость отдачи хоста, RTT каждого участника до хоста, время кадра на ПК хоста и момент выхода хоста, группировать жалобы на лаги и дисконнекты по хостам. Игроки тоже могут проверить: сыграть тем же составом, сменив только хоста
Подтверждает
Лаги и дисконнекты сосредоточены в комнатах одного хоста, когда у него низкая скорость отдачи или долгий кадр, хуже становится всем участникам сразу, а без миграции хоста в момент его выхода у всех дисконнект
Опровергает
Если независимо от хоста плохо только участникам из одного региона, проблема в подключении или маршруте. При выделенных серверах причина не эта
Чем проверить
Нужны логи и метрики игрового сервера или клиента
Источники
Networking Overview for Unreal EngineEpic Games Хост listen-сервера получает преимущество перед другими клиентами и несёт большую нагрузку, потому что одновременно работает сервером и рендерит