Если два клиента одновременно пишут в одну папку кэша или блокируют файлы, один из них не может загрузить модели и текстуры NPC.
Почему Два клиента одновременно пишут файлы кэша и патчей в одной папке установки → Следствие Не удаётся заблокировать файл или читается наполовину записанный файл, и загрузка срывается → На экране Табличка с именем видна, а модели персонажа нет, или NPC прозрачный
Сразу после входа или техработ, В движении и при смене локации
Ответственные
Основной ответственный Команда разработки · Разработка клиента
Команда разработки: задачи
Сделать отдельную папку кэша для каждого клиента, повторять попытку при неудачной блокировке файла, при неудачной загрузке показывать хотя бы модель по умолчанию.
На графике
Высоко только у некоторых · число неудачных загрузок ассетов по клиентам
Где смотреть
На ПК игрока отфильтровать в Process Monitor только пути к папкам установки и кэша игры и смотреть результаты открытия и записи файлов обоими игровыми процессами. Если есть лог клиента, искать неудачные загрузки ассетов и код ошибки открытия файла (ERROR_SHARING_VIOLATION)
Подтверждает
Открытие файла невидимой модели завершилось нарушением общего доступа или ошибкой блокировки, и в это же время другой клиент писал в этот файл. С одним клиентом или с раздельными папками установки и кэша проблема пропадает
Опровергает
Если та же модель не видна и с одним запущенным клиентом, причина в повреждении файла или несовпадении версии клиента или данных. Если файлы открываются нормально, а объект не рисуется, это нехватка памяти или VRAM
Чем проверить
Проверка на стороне игрока
Источники
Creating and Opening FilesMicrosoft Файл, открытый без режима общего доступа, другой процесс открыть не может, возникает ERROR_SHARING_VIOLATION
Process MonitorMicrosoft Записывает в реальном времени активность файловой системы, реестра и процессов, позволяет фильтровать по любому полю, включая путь