Сразу после входа в зону сервер отправляет уведомления о появлении NPC вокруг, а клиент ещё загружает карту и отбрасывает эти уведомления.
Почему Сразу после обработки входа сервер рассылает уведомления о появлении окружающих объектов → Следствие Клиент ещё загружается, обработчика сообщений пока нет, и уведомления отбрасываются → На экране Сервер считает их отправленными и повторно не шлёт. Пока игрок не выйдет из зоны видимости и не вернётся, NPC не видно
Сразу после входа или техработ, В движении и при смене локации
Ответственные
Основной ответственный Команда разработки · Разработка клиента · Совместно Команда разработки · Разработка сервера
Команда разработки: задачи
Клиент: по окончании загрузки отправлять сигнал «готов» или хранить пакеты, пришедшие во время загрузки, и обрабатывать их позже. Сервер: отправлять данные об окружении только после сигнала «готов».
Цифры для ориентира
Если на одном ПК два клиента загружаются одновременно или загружающийся клиент находится в фоновом окне, они делят CPU и диск, обработка ограничивается, и загрузка этого клиента может стать в разы дольше. Тот же баг проявляется и тогда, когда сервер начинает быстрее обрабатывать вход.
На графике
Высоко только у некоторых · время загрузки по клиентам, число сообщений, отброшенных во время загрузки
Где смотреть
Сравнить число и типы сообщений, которые клиент получил и отбросил во время загрузки, и время окончания загрузки со временем отправки уведомлений о появлении на сервере. Легко воспроизвести, если на одном ПК загружать два клиента одновременно или держать загружающийся клиент в фоновом окне
Подтверждает
Сервер отправил уведомления о появлении невидимых NPC, они пришли до окончания загрузки, и в это время выросло число отброшенных сообщений. Бывает только у клиента с более долгой загрузкой
Опровергает
Если уведомления пришли после окончания загрузки, а NPC всё равно не видно, причина в потере опорного снапшота или путанице из-за повторного использования ID объектов. Если сервер вообще не отправлял уведомление об этом NPC, причина в сбое порядка регистрации в зоне видимости или в разных каналах и фазах
Actor Relevancy in Unreal EngineEpic Games Актор, утративший релевантность, удаляется на клиенте, а когда снова становится релевантным, реплицируется заново