Поддержка многопоточной отрисовки
Вместе с движком Core в игру пришла не только впечатляющая графика, но и возможность оптимизировать производительность, и выжать максимум из каждой видеокарты.
Но на этом разработчики не остановились.
Краткий обзор
До недавнего времени не было смысла вводить технологию многопоточности: большинство из игроков играли на компьютерах с двухъядерными процессорами, при этом основная нагрузка приходилась на одно из них, а на втором была непостоянна (от 40 до 70% в зависимости от конфигурации ПК).
Однако за последние пару лет количество игроков, использующих ПК с четырёх- или шестиядерными процессорами, значительно увеличилось. И эта тенденция только усиливается. Сегодня у 60% танкистов компьютеры с четырёхъядерными процессорами.
Тщательно проанализировав статистику, разработчики поняли: пришло время реализовать в World of Tanks важную технологическую возможность — полноценную поддержку многопоточной отрисовки, разработанную в сотрудничестве с компанией Intel. Но, чтобы это сделать, нам нужно было «научить» движок выполнять расчёты не поочерёдно, а одновременно на всех доступных ядрах.
Без поддержки многопоточной отрисовки:
С поддержкой многопоточной отрисовки:
Сложная, но интересная задача
Звучит хорошо, но задача непростая. При низких настройках процессор должен обрабатывать много задач отрисовки, однако на высоких настройках их количество значительно повышается. Плюс они неравнозначные: одни рассчитываются быстрее, другие медленнее. Опять же многие задачи зависят друг от друга: прежде чем начать новые вычисления, нужно дождаться результатов предыдущих.
Прирост производительности конкретного ПК будет зависеть от многих факторов, среди которых:
- версия операционной системы;
- процессор, материнская плата, видеокарта.
Также нужно понимать, что поддержка многопоточной отрисовки — это не статическая, а динамическая функция, которая на разных настройках графики даёт разный результат.
На компьютерах со слабыми процессорами и видеокартами прирост производительности может наблюдаться, но минимальный.
Если процессор мощный, а видеокарта слабая, заметного прироста не будет. Видеокарта и без многопоточности уже максимально загружена и не сможет улучшить качество графики.
Если процессор многоядерный (четыре и больше ядер), но не очень мощный, а видеокарта производительная, то прирост будет заметным.
Многопоточную отрисовку оценят в том числе те, кто играет в World of Tanks на ноутбуках. Обычно в ноутбуках устанавливают многоядерные процессоры с низкой частотой и поддержкой технологии Turbo Boost. Она увеличивает напряжение на одном ядре, временно повышая его частоту и тем самым повышая его производительность, — и какое-то время для игрока всё выглядит хорошо. А потом случается перегрев и включается троттлинг, то есть принудительно ограничивается быстродействие процессора путём снижения его частоты или пропуска тактов, чтобы защитить его от чрезмерной нагрузки. Показатель FPS падает существенно, и играть становится некомфортно. Сейчас, когда мы можем задействовать три-четыре ядра, но не по максимуму, даже в случае троттлинга FPS падает незначительно. То есть играть будет комфортнее.
Часто задаваемые вопросы
Многопоточность — это скорее технический термин, который используют в основном эксперты. А многоядерность — более разговорный его вариант, распространённый среди игроков.
На каких параметрах отразится поддержка многопоточной отрисовки?
Может повыситься частота кадров в секунду — всё зависит от конфигурации вашего ПК. Обратите внимание: не все компьютеры получат прирост производительности или же он может быть едва заметным.
Многопоточная отрисовка будет работать только на компьютерах с процессорами Intel?
Многопоточная отрисовка будет работать с любыми многоядерными процессорами.
Как будет реализована многопоточность для двухъядерных или одноядерных процессоров?
Так же, как и для процессоров с 4–8 ядрами. Количество ядер не имеет значения. Но чем их больше, тем лучше мы сможем использовать вычислительные возможности процессора. Если у процессора мало ядер, мы быстрее выжмем из него максимум, но, скорее всего, не сможем загрузить видеокарту на 100%.
Если моя видеокарта загружена на 100%, а процессор только на 30–40%, даст ли многопоточность прирост производительности? И не повредит ли это моей видеокарте?
В этом случае прироста производительности не будет. Не волнуйтесь, с видеокартой ничего не случится.
Увеличится ли энергопотребление компьютера?
Наоборот, уменьшится из-за того, что все ядра процессора будут равномерно загружены. В компьютерах с большим количеством ядер эта загрузка не будет доходить даже до 80%.
Будут ли поддерживаться технологии Intel Hyper-Threading и AMD SMT?
Да, все процессоры, поддерживающие эти технологии, будут работать эффективнее.
Что дальше
Внедрение многопоточной отрисовки — важный шаг для дальнейшей работы над World of Tanks. Это решение позволит нам реализовать многопоточность в других подсистемах игры. Наша главная цель — сделать так, чтобы вы могли наслаждаться прекрасной графикой и динамичным геймплеем, не обновляя компьютер.
Сейчас разработчики тестируют технологию многопоточности на компьютерах разных конфигураций, и на это уйдёт немало времени. Но они уже могут сказать, что технология работает стабильно на разных ПК. Посмотруть, какие результаты получили на последних тестах