Когда сотни игроков одновременно бьют одного босса, все расчёты по этому боссу сходятся в одной точке, а информация о каждом ударе рассылается всем, кто его видит.
Почему Сотни игроков без остановки применяют к одному боссу умения, баффы и дебаффы → Следствие Расчёты здоровья босса, списка агро и дебаффов сходятся в одной точке, а пакеты с цифрами урона и эффектами за каждый удар рассылаются всем, кто это видит → На экране Умения проходят с опозданием, цифры урона вылетают пачкой, слоумо только вокруг босса
Основной ответственный Команда разработки · Разработка сервера
Команда разработки: задачи
Объединять или не показывать чужие цифры урона и эффекты, ограничить число дебаффов на одной цели, распределять обработку ударов по нескольким тикам.
Цифры для ориентира
Если 800 игроков бьют по 2 раза в секунду, это 1 600 ударов в секунду. Если сообщать о каждом всем 800 зрителям, выходит 1 280 000 сообщений в секунду.
На графике
Растёт вслед за онлайном и нагрузкой · время тика сервера, число отправленных сообщений
Где смотреть
Смотреть время тика и число отправленных пакетов во время боя с боссом вместе с числом игроков вокруг босса, а если есть возможность, и число событий (ударов, баффов, дебаффов) в секунду по целям
Подтверждает
С ростом числа игроков вокруг босса время тика и исходящий трафик круто растут, а событий в секунду у одного босса в десятки раз больше, чем у других целей
Опровергает
Если всё так же тормозит при любом скоплении игроков, независимо от босса, дело в расчёте видимости или взрывном росте рассылки
Чем проверить
Нужны логи и метрики игрового сервера или клиента
Источники
HED-GP Technical Retrospective: What a HED-acheCCP Games Даже об одной атаке нужно сообщить всем видящим её клиентам, поэтому возникает нагрузка O(n²): n игроков оповещают n игроков. У атак дронов, порождающих много сообщений, эта нагрузка растёт ещё быстрее