• Авторизация  

    Производительность в «КОРОЛЕВСКОЙ БИТВЕ»


    community

    2b02f09dda89cfbef21b7bc3eea90fc4.jpg

    ПРОИЗВОДИТЕЛЬНОСТЬ В «КОРОЛЕВСКОЙ БИТВЕ»

    Мы старательно улучшаем каждый аспект игры, но должны признать, что немного отстали в работе над производительностью, и здесь нам ещё многое предстоит сделать.

    Проблемы с производительностью, которые больше всего беспокоят игроков

    Клиент

    • Низкая частота кадров -> возросшая задержка ввода, большой промежуток между кадрами.
    • Задержка отображения -> возросшая задержка ввода.
    • Рывки (неестественно долгие кадры) -> замирание картинки с последующим ускорением.
    • Нестабильная частота кадров -> трудности с прицеливанием.

     

    Сервер

    • Медленное обновление данных о соединении, низкая частоты кадров -> увеличенный пинг.
    • Рывки (неестественно долгие кадры) -> «эффект резинки».

    Сеть

    • Потеря пакетов -> «эффект резинки».
    • Перегруженный канал связи -> «эффект резинки».
    • Высокий пинг -> «эффект резинки».
    • Переизбыток пакетов (особенно при игре через Wi-Fi) -> «эффект резинки».

    «Эффект резинки» возникает, если данные на сторонах сервера и клиента не совпадают и подвергаются коррекции. Из-за этого персонажи перемещаются рывками (как натянутые и отпущенные резинки — отсюда и название), взаимодействие с дверьми выглядит странно и т. п.

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

    Качество связи с нашими центрами обработки данных в первую очередь зависит от выбранного региона и времени отклика сервера (пинга). Следует учесть, что пинг зависит от маршрута, которым направляются ваши пакеты. Дополнительную задержку и потерю пакетов может вызвать использование Wi-Fi.

    Основные наши задачи при мониторинге

    • Отслеживать работу клиента с разными видеокартами; разбивать данные на сегменты в зависимости от параметров графики. Так мы выясняем, какое воздействие оказывают вводимые изменения.
    • Отслеживать рывки на стороне клиента и анализировать, насколько сильно они сказываются на игровом процессе.
    • Отслеживать сетевые пакеты, принимаемые клиентом от сервера и наоборот (а также время между передачами).
    • Отслеживать производительность сервера и оценивать количество потерянных кадров. Первостепенная цель — устойчивая производительность в 20 Гц.
    • Отслеживать производительность серверов для каждой виртуальной машины, чтобы выявить и отключить ВМ, которые работают плохо. 
    • Отслеживать пинг и потерю пакетов для каждого региона и провайдера, чтобы оперативно реагировать на ухудшение работы.
    • Отслеживать ситуации, в которых сочетание нескольких факторов приводит к каскадному ухудшению обслуживания. Пример такой ситуации: ограниченная полоса пропускания вкупе с потерей пакетов заставляет наше оборудование отправлять ещё больше данных — это дополнительно нагружает канал и ухудшает положение.

    Задачи, стоящие перед разработчиками

    • Улучшить производительность на ПК с минимальной рекомендуемой конфигурацией (Nvidia GTX 460, Radeon HD 5570, Intel HD 4000). Именно здесь мы недавно сели в лужу, но уже начали исправлять положение в версии 1.8.
    • Справиться с «тормозами» на видеокартах для ПК; продолжить работу над оптимизацией вместе с производителями видеокарт (NVIDIA, AMD и Intel).
    • Уменьшить задержку ввода данных на консолях. Мы уже добились определённых результатов в версии 1.8. Пожалуйста, поделитесь с нами своими наблюдениями.
    • Продолжить улучшать работу игры на консолях. Мы отслеживаем потери кадров при вертикальной синхронизации и хотим свести их к минимуму (не больше 2% кадров).
    • Уменьшить количество рывков во время игры. За рывок мы принимаем кадр, который передавался с задержкой более 60 мс и в результате оказался полностью пропущен. Мы хотим, чтобы такие пропуски возникали реже раза в минуту, и нацеливаемся на полное устранение рывков длиннее 100 мс.
    • Исправить оставшиеся проблемы с выделенными серверами. Например, если много игроков тянут с высадкой, то игроки, прыгнувшие раньше, могут столкнуться с «эффектом резинки».
    • Оптимизировать производительность серверов при обычных действиях — например, обсчёте урона.
    • Определить источник рывков, появляющихся в первый час после выхода обновления.
    • Оптимизировать серверный и сетевой код для отправки данных о состоянии игроков по всем 100 подключениям с каждым кадром. Сейчас мы обновляем данные для 25 подключений за кадр в лобби и для 50 — в игре. Это значит, что вы не получаете задуманных нами впечатлений от игры, пока в бою не остается 50 человек. Мы планируем серьёзные изменения и работаем над ними параллельно с другими задачами по оптимизации.
    • Улучшить реагирование на экстремальные случаи, приводящие к каскадным отказам.
    • Улучшить систему подбора игроков, чтобы динамически распределять трафик по центрам обработки данных в зависимости от местонахождения игроков. Наша цель — оптимизировать передачу с учётом пинга и при этом не лишать вас возможности играть с друзьями.
    • Нанять побольше светлых голов, которые любят подобные технические головоломки.

    А вот что можете сделать вы

    Убедитесь, что у вас установлены актуальные драйверы видеокарты. Если они устарели, обновите их до актуальной версии.

    Сейчас мы используем серверы в центрах обработки данных Amazon Web Services по всему миру. Вы можете зайти на сайт http://www.cloudping.info/ и узнать свой пинг до этих серверов.

    • Сев. Америка — Вирджиния, Огайо 
    • Европа — Франкфурт, Лондон
    • Австралия — Сидней
    • Бразилия — Сан-Паулу
    • Азия — Токио

    У Riot Games есть сайт www.lagreport.com. Это отличный источник информации об интернет-провайдерах. Впрочем, эта информация может быть менее полезна для игры в Fortnite.

    Если вы пользуетесь Wi-Fi и можете перейти на кабельное подключение, лучше так и сделать. Это уменьшит задержку и потерю пакетов, а заодно сделает более равномерными промежутки между ними.

    Авторизация  


    Обратная связь

    Рекомендуемые комментарии

    Комментариев нет



    Гость
    Вы комментируете как гость. Если у вас есть аккаунт, пожалуйста, войдите
    Добавить комментарий...

    ×   Вставлено с форматированием.   Восстановить форматирование

    ×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку