Обзор улучшений производительности игры: обновление 27

ZOS_Valeriya
ZOS_Valeriya
Community Manager
Всем привет!

Предлагаем вашему вниманию первый ежеквартальный обзор, в котором наша команда программистов рассказывает об основных улучшениях производительности, запланированных на обновление 27. Если вы еще не читали обзор боевой системы обновления 27, рекомендуем ознакомиться и с ним тоже — его можно найти здесь.

Edited by ZOS_Valeriya on 31.08.2020 10:35
Валерия
Комьюнити-менеджер ESO

ВКонтакте
Facebook
Staff Post
  • ZOS_Valeriya
    ZOS_Valeriya
    Community Manager
    Мы хотим рассказать вам о некоторых улучшениях производительности, запланированных на обновление 27. Разумеется, полностью охватить все, что сделала наша команда, мы не сможем, поэтому сосредоточимся на тех областях, которым было уделено больше всего внимания, и расскажем, какой результат рассчитываем получить.

    Улучшения действующих по площади способностей с длительным эффектом. Действующие по площади способности с длительными эффектами со временем могут увеличивать количество сообщений, отправляемых сервером. Особенно ярко эта проблема проявляется в таких областях, как Сиродил, — там много игроков, которые постоянно применяют и получают урон от таких способностей. Чтобы решить эту проблему, мы внедрили на сервер новую технологию действия по площади. Функционал способностей останется прежним, а количество сообщений о попаданиях, которые получает и обрабатывает клиент игры, значительно уменьшится. Внутреннее тестирование прошло хорошо — количество задержек и падений частоты кадров снизилось. Мы будем развертывать эту технологию постепенно — в обновлении 27 она будет распространяться только на способность «Штандарт рыцаря-дракона» и ее преобразования. Мы понаблюдаем за тем, как она поведет себя на тестовом и основных серверах, и в грядущих обновлениях будем постепенно подключать к ней и другие способности игроков.

    Примечание: в ближайшие несколько недель команда также проведет на основных серверах серию испытаний, сосредоточенных на действующих по площади способностях в Сиродиле, которые позволят собрать новые показатели реальных боевых ситуаций. Подробная информация об этих испытаниях будет опубликована в ближайшие пару недель, так что следите за новостями.

    Эффекты наборов снаряжения. Команда провела большую работу с проверкой и оптимизацией эффектов всех наборов снаряжения в игре, ища способы повысить их производительность. Это привело к уменьшению количества вычислений на сервере и, как и в случае с действующими по площади способностями, уменьшению количества сообщений, которые приходится обрабатывать клиенту игры.

    Критические улучшения в управлении памятью. Мы прекрасно понимаем, насколько это неприятно — переместиться в оживленный город и вылететь из игры. В последних обновлениях нам удалось значительно сократить количество вылетов, связанных с нехваткой памяти, однако они по-прежнему иногда случаются. Чтобы это исправить, консольные версии игры теперь будут определять, когда память подходит к концу, и реагировать на это, временно выгружая из памяти небоевых питомцев и личности игроков, не состоящих в вашей группе. Это стало возможным благодаря работе, проделанной нами в обновлении 26, — изменению принципа обработки небоевых питомцев. Как только память снова окажется в пределах нормы, эти модели будут подгружаться обратно по мере перемещения игроков по миру.

    Ввод в действие физического движка. В течение нескольких лет у нас возникали трудности с физическим движком Havok, а именно — с обработкой крепостей в Сиродиле. Нам потребовалось время, чтобы очистить связанный с этим код, упростить его и добиться того, чтобы крепости вели себя как обычные модели. Их внешний вид и поведение останутся, по сути, такими же, как и раньше. Работая над движком, мы также отследили трудновоспроизводимую ошибку, из-за которой некоторые физические объекты не удалялись из памяти должным образом. Эта проблема могла возникнуть в любой области и приводила к вылетам. После внедрения изменений физического движка в игре должно стать меньше ошибок и вылетов.

    Производительность в испытаниях. Судя по нашим показателям, производительность в испытаниях на сервере была непостоянной. Нам удалось определить, из-за чего это происходит: если запускалось несколько копий испытаний одновременно, производительность сервисов запуска резко снижалась. Мы перепроверили алгоритм распределения копий испытаний и теперь будем учитывать его. Это уменьшит вероятность того, что сервисы запуска окажутся перегружены, а производительность испытаний снизится.

    Улучшения баз данных. Мы внесли в код некоторые изменения и включили кеш-память базы данных в серверные процессы. Это должно уменьшить количество конфликтов в рабочих базах данных в условиях высокой нагрузки. Мы будем внедрять это улучшение постепенно — в обновлении 27 оно будет распространяться только на поиск занятия, который теперь будет работать более плавно. Оценив эти изменения на основных серверах, в будущих обновлениях мы сможем внедрить дополнительные возможности, позволяющие выполнять больше задач одновременно без снижения производительности.

    Периодические загрузочные экраны. Мы прекрасно понимаем, как раздражают периодически появляющиеся загрузочные экраны, которые мешают путешествовать по Тамриэлю. Нам удалось выявить две причины, из-за которых они могут появляться. Первая — это ошибка потоковой передачи масштабируемых моделей при переключении между упрощенными и основными моделями. На основных серверах эта ошибка будет исправлена в следующем накопительном патче для обновления 26. Вторая проблема связана с ошибкой, из-за которой в игре увеличивается физический радиус потоковой передачи данных, если у игрока выставлена высокая дальность прорисовки, что приводит к увеличению количества загрузочных экранов. Эта ошибка будет исправлена в обновлении 27. После выхода обновления 27 мы будем активно отслеживать показатели основного сервера, чтобы определить, нужно ли проводить дополнительные исследования и работы.

    Мы понимаем, что это далеко не все проблемы, с которыми сталкиваются игроки, и впереди у нас еще много работы. Мы приложим все усилия к тому, чтобы игра радовала вас. В обновлении 27 мы внесем в игру кое-какие экспериментальные изменения, касающиеся Сиродила, — подробнее о них мы расскажем в грядущих новостях. Спасибо!
    Валерия
    Комьюнити-менеджер ESO

    ВКонтакте
    Facebook
    Staff Post
Войдите или Зарегистрируйтесь чтобы комментировать.