Интервью с Wargaming.net
В данной публикации, мы продолжаем задавать вопросы разработчикам игр. На этот раз, интервью даёт Михаил Живец, технический директор проекта «World of Tanks», компания Wargaming.net.
В данной публикации, мы продолжаем задавать вопросы разработчикам игр. На этот раз, интервью даёт Михаил Живец, технический директор проекта «World of Tanks», компания Wargaming.net.
«МИР NVIDIA»: Какой графический движок используется в вашем проекте? Каковы минимальные и рекомендуемые системные требования? Обусловлены ли они определенными фичами или вы ориентировались на некий уровень распространенности 3D-карт? Используете ли вы специальные возможности последних поколений графических карт или ориентируетесь на стандарт?
Михаил Живец: Проект World of Tanks использует графический движок BigWorld с собственными доработками, которые потребовалось внести в силу специфики проекта. Особенностью движка является ориентированность на открытые миры с динамически подгружаемыми частями карты, как, например, сделано в World of Warcraft. Мы стараемся использовать технологии, позволяющие создать на экране монитора картинку, близкую к эскизам наших художников и адаптируем их под системные требования.
«МИР NVIDIA»: Значительно ли отличаются, с точки зрения программирования, видеокарты от NVIDIA и ATI? Можно ли просто писать через DirectX или OpenGL и получать эффективный код для обоих вендоров или для каждого производителя нужно делать свои версии функций? Какой подход использовали вы?
М. Ж.: Видеокарты от различных производителей имеют свои специфические особенности. Это может быть поддержка специальных форматов текстур или доступ к текстурам из вертекстного шейдера. Вместе с тем, при использовании общего функционала, предоставляемого API DirectX или OpenGL, различия между GPU двух вендоров минимальны и, следствием разницы между видеокартами от ATI и NVIDIA, являются, скорее, дополнительные возможности, нежели какие-то ограничения. Что же касается «особого отношения» со стороны движка, BigWorld не обеспечивает решающего преимущества ни для одного из вендоров.
«МИР NVIDIA»: С чем связаны различия в скорости работы игр на картах NVIDIA и ATI? Является ли это свойством алгоритмов игрового движка или больше зависит от игровых сцен? То есть, например, в одной игре более высокополигональные сцены, а в другой большой показатель overdraw или много полупрозрачных текстур со сложным антиалиасингом, и по-этому видеокарты, которые имеют больший fillrate, справляются лучше? («Любила» ли ваша программа какую-нибудь архитектуру?).
М. Ж.: Различия, в основном, сводятся к аппаратным особенностям (различия в ширине шин памяти, количестве блоков растеризации, шейдерных блоков и т. д.), а также к реализации драйверов. Чем более сбалансированной является нагрузка на CPU и GPU и чем лучше организована сцена, тем менее особенности видеокарты должны сказываться на общей производительности. Сюда можно отнести бережливое отношение к количеству и разрешению текстур, низкий overdraw от частиц и прозрачных объектов, использование LOD-ов, группирование объектов в batches и так далее — все это, в равной степени, ложится на плечи разработчиков движка и дизайнеров игры.
«МИР NVIDIA»: При тестировании видеокарт, как правило, используются примерно одинаковые наборы игр. Насколько уместно подобное обобщение при выводе результатов тестов для таких разных жанров, как 3D-шутеры, RPG от третьего лица и стратегии. Показательны ли популярные тесты для производительности вашей игры?
М. Ж.: Я бы не делил приложения по жанрам. Все находится исключительно в руках разработчиков, используемых ими алгоритмов. В любом случае, разработчики стараются как можно более сбалансированно нагрузить систему пользователя и достичь, при этом, максимальной привлекательности продукта.
Глядя на показатели FPS в играх, наподобие Crysis или последней Need for Speed, можно примерно представить себе производительность в ряде других современных игр, так что здесь мы со всей уверенностью можем говорить, что эти тесты довольно показательны. Игры такого уровня можно использовать в качестве бенчмарков для видеокарт, поскольку на высоких установках качества они по-максимуму нагружают графическую подсистему.
«МИР NVIDIA»: С чем связан рост нагрузки на CPU при увеличении разрешения? Верно ли, что увеличение детализации моделей для минимизации их «угловатости» требует бoльших мощностей CPU для анимации, отсечения невидимых примитивов, построения теневых объемов и т. п.? Был ли в вашей игре такой эффект?
М. Ж.: Увеличение разрешения не должно напрямую влиять на загрузку CPU, если, конечно, в движке не предусмотрены автоматическое увеличение полигональности моделей, дополнительная тесселяция и большее количество кадров анимации моделей. Если с увеличением разрешения нагрузка на CPU растет без причины, проблема кроется либо в игровом коде, либо в драйвере видеокарты.
«МИР NVIDIA»: Может ли нагрузка на CPU увеличиться при включении анизотропной фильтрации? То же касается Full Scene Antialiasing. Если для этого требуется всю сцену прорисовать во вдвое большем разрешении, то теоретически увеличиться может и количество треугольников.
М. Ж.: Ответ на оба вопроса — нет. В случае включения анизотропной фильтрации, вырастет нагрузка на блоки текстурирования. При включенном FSAA, больше работы достанется пиксельному конвейеру. Что касается большего разрешения, то при удвоении количества пикселов вдвое, увеличится количество операций в пиксельном шейдере, блоках растеризации и TMU.
«МИР NVIDIA»: Уже очень долго идет процесс переноса расчетов на шейдеры GPU, сначала это было T&L, отсечение. Считается ли сейчас анимация моделей на GPU? Что, в первую очередь, остается в плане 3D-движка для расчетов на CPU? (Что вы считали на GPU, помимо T&L?).
М. Ж.: Движок, используемый в нашем проекте, не выполняет никаких расчетов на GPU. Теоретически, если бы нам, скажем, приходилось считать физику множества объектов в реальном времени, мы могли бы взять тот же PhysX, который замечательно выполняет вычисления на GPU NVIDIA, но в силу специфики проекта, нам хватает возможностей CPU.
«МИР NVIDIA»: В последние годы, видеоускорители стали «интеллектуальными», сами используют методы отсечения невидимых примитивов, как то: иерархический z-буфер. Насколько они эффективны? Можно ли сейчас просто запихнуть все треугольники в видеоускоритель, чтобы он нарисовал все сам? Во времена первых 3D-игр (серии Quake и Unreal) использовались изощренные методы уменьшения прорисовываемых треугольников, BSP-деревья и т. п. Насколько это теперь актуально?
М. Ж.: Конечно же, не стоит рассчитывать на то, что видеоускоритель самостоятельно определит, какие объекты стоит отрисовать, а какие не будут видны. Приходится применять методику раннего отсечения ненужного, так как передача избыточной информации на GPU приводит к падению быстродействия. Так что, проблема до сих пор актуальна, хоть и в значительно меньшей степени. Особенно в тех случаях, когда приходится прорисовывать большое число разнообразных объектов. Дело в том, что современные карточки заняты не только отсечением ненужного, их нагрузили еще и расчетами более сложных типов освещения и т.п. Соответственно, если есть возможность и ресурсы помочь видеокарте — это надо сделать.
К примеру, в движке BigWorld, для отсечения невидимых объектов до этапа прорисовки, используется библиотека Umbra. Сцена представляет собой BSP-дерево, которое также позволяет быстро и эффективно отбросить фрагменты сцены, заведомо не попадающие в область видимости.
«МИР NVIDIA»: Одно время была такая ситуация, примерно во время кризиса P4, что узким местом системы являлся процессор, который не мог «загрузить» видеоускоритель и для увеличения FPS в играх, прежде всего требовалась топовая модель CPU. Прослеживается ли сейчас подобная зависимость между CPU и GPU, или же процессоры перешагнули некий критический уровень производительности и можно взять недорогой процессор и мощную видеокарту? Имеются в виду игры с акцентом на графику, по стилю типа Quake и Doom.
М. Ж.: Слабый процессор при мощной видеокарте — узкое место системы, поскольку множество операций как низкого (формирование драйвером потока управляющих команд), так и высокого уровня (прикладная логика — игровой цикл, обновление частиц, анимация персонажей, физика, звук и т. д.) напрямую зависят от производительности CPU. Большую роль играет и объем кэш-памяти процессора, который на дешевых моделях довольно мал.
Для максимально эффективной работы видеокарты также нужны системные ресурсы, скоростная системная шина, достаточный объем оперативной памяти хорошего быстродействия. Зачастую видеоподсистема не в состоянии показать, на что она способна, просто потому, что CPU не успевает передать ей необходимые данные. Так что, если речь зайдет об экономии на ресурсах, достаточно приобрести средний процессор, материнскую плату чуть выше среднего уровня, но не скупиться на видеокарту и оперативную память.
«МИР NVIDIA»: DirectX от версии к версии становится все больше похож на графический движок. Правда ли, что сейчас 3D-программа состоит практически из вызовов Direct3D API и основная часть вычислений производится в нем? Как вы оцениваете последнюю версию DirectX? Стала ли она практически полноценным движком и сколько еще потребуется версий для этого?
М. Ж.: Direct3D нельзя рассматривать как отдельный графический движок и вряд ли, в обозримом будущем, Microsoft пойдет на такой шаг, как создание собственного игрового движка. Это нецелесообразно в силу ряда причин, в том числе ввиду множества отличий в требованиях к движку для разных игровых проектов. Например, автосимулятор, стратегия в реальном времени и 3D-шутер имеют отличительные особенности, не позволяющие один и тот же движок использовать одинаково эффективно во всех трех случаях.
В десятой версии Direct3D появились новые уровни абстракции при работе с ресурсами и дополнительные возможности при разработке шейдеров, стали доступны такие трюки, как Stream Output. Вместе с тем, D3D осталась тем же, чем и была — низкоуровневым API, используя который, разработчик может спроектировать игровой движок для конкретной задачи.
«МИР NVIDIA»: Вообще, последнее время происходит «глобализация» игровых и 3D-движков. Существует несколько наиболее популярных платформ, на которых изготавливается множество игр. Это объективный процесс? Имеет ли смысл сейчас фирме-разработчику писать собственный движок, когда можно лицензировать готовый полнофункциональный. Например, недавно вышла очередная версия Unreal Engine, который уже был скачан десятки тысяч раз. Долго ли осталось до момента, когда все игры будут использовать один-два 3D-движка?
М. Ж.: Мы используем BigWorld и пока что довольны им. Что касается «глобализации», вряд ли случится чудо и компании CryTek, Epic и ряд других решат отдать друг другу кусок рынка игровых движков. Не стоит забывать, что, как правило, игры, созданные на одном и том же движке, очень похожи, а это не всегда хорошо. Скорее всего, количество движков будет только расти, с уходом во все более узкую специализацию. В любом случае, уникальные движки будут всегда.
«МИР NVIDIA»: Верно ли, что последние видеокарты стали очень мощным по raw power и, не отличаясь от прежних моделей в плане эффектов, могут раскрыть свой потенциал, в первую очередь, на системах с большими мониторами (от 1920×1200) в режимах с антиалиасингом и полной анизотропной фильтрацией? Имеет ли смысл человеку с монитором, например, 1280×1024, не будучи фанатом фильтрации и AA, покупать новую видеокарту, такую как GTX285 и Radeon на новом техпроцессе?
М. Ж.: Согласен, это так. Но, все же, не стоит забывать и о приличных мониторах, с достаточным качеством цветопередачи, высоким разрешением, контрастностью. Будете получать от игры гораздо больше удовольствия. Но даже если вы решили не менять свой любимый монитор, карту заменять стоит, так как это однозначно приведет к увеличению производительности вашей системы, ведь часть старых алгоритмов расчета на новых карточках реализована уже аппаратно.
«МИР NVIDIA»: Раньше, разработчики игр были консервативны в использовании возможностей и эффектов самых новых видеокарт, так как ориентировались на наиболее распространенные на текущий момент карты. То есть, выходит, к примеру, условный DirectX n, а игры все еще пишутся под DirectX n-2. Изменилась ли ситуация в последнее время? Легко ли в игре использовать возможности по новым эффектам для недавно вышедших видеоускорителей?
М. Ж.: Если бы Windows 7 вышла на пару лет раньше или Microsoft отказалась от идеи привязать DirectX 10 к Windows Vista, разработчики игр уже давно бы перешли как минимум на десятую версию API. Однако сейчас мы имеем то, что имеем: все хиты последних лет используют DX9, а поддержка DX10 — зачастую маркетинговый ход.
«МИР NVIDIA»: Насколько интенсивно обычно игры используют мощности самых новых, на момент выхода, видеоускорителей? Например, используются ли сейчас все возможности архитектуры GT200? Типична ли ситуация, когда на момент выхода, новый GPU просто немного лучше исполняет существующие игры, но с течением времени с оптимизацией игр для новой архитектуры и применению новых фич его ценность как бы растет? Насколько ваша игра использует новые фичи?
М. Ж.: В случае с новой архитектурой и ее унифицированной шейдерной моделью, выиграли практически все. Загруженность вершинного и пиксельного конвейеров GPU выровнялась там, где были большие перекосы в ту или иную сторону. Что касается новых возможностей, то чем больше процент видеокарт с поддержкой той или иной фичи, тем охотнее разработчики игр будут использовать их в своих проектах. Используемый нами BigWorld ориентируется на возможности DirectX 9 и SM 3.0.
«МИР NVIDIA»: Сейчас большую популярность приобрели онлайн-игры. Наложило ли это отпечаток на индустрию видеоускорителей? Поскольку движки подобных игр ориентированы на базовый набор фич, присутствующий у большого количества пользователей, а показатели FPS все равно лимитированы интернет-соединением, для онлайн-игр выглядит бессмысленным покупать топовый видеоускоритель. Не является ли это тормозом развития игровой графики? Увеличили популярность браузерные игры в «полном 2D», для которых ускоритель не нужен.
М. Ж.: Если посмотреть на число подписчиков World of Warcraft и сравнить его, скажем, с Aion или Age of Conan, ответ очевиден: для онлайн-игр, в первую очередь важны геймплей, проработка игрового мира, захватывающая PvP-составляющая и другие моменты, не относящиеся напрямую к графике. Тормозом для развития графики это не является, ведь не MMORPG единым живут игроки. Новые шутеры, автосимуляторы и RPG неизбежно будут и дальше поднимать планку качества 3D-графики в играх. MMO-игры медленно, но верно идут тем же путем, стремясь привлечь бoльшую игровую аудиторию. К слову, та же Blizzard сейчас, по слухам, работает над новой MMOG и вряд ли они будут использовать движок 8-летней выдержки в своем новом проекте.
«МИР NVIDIA»: Насколько технологии SLI и Crossfire требуют поддержки от разработчика игры? С чем связана различная эффективность этих технологий для различных игр? С особенностями игрового движка или с игровыми сценами? Насколько ваша игра выигрывает от использования SLI и Crossfire?
М. Ж.: Оптимизировать движок под две видеокарты — очень непростой процесс. Необходимо аккуратно организовать компактную передачу данных на GPU и сбалансировать движок по нагрузке между GPU и CPU. Если приложение, при работе на одной карте, уже упирается в CPU или передачу данных по шине, о SLI или Crossfire придется забыть. Этим, собственно, и отличаются те или иные игры при работе на спаренных ускорителях. Наша игра пока дает прирост производительности около 10% на SLI, но сейчас мы оптимизируем ряд модулей, в целях улучшения работы в подобных режимах.
«МИР NVIDIA»: Уже давно, много говорится о кризисе рынка для PC и постепенного перехода игр на приставки. Но этого пока не произошло. Можно ли ожидать этого в будущем? Правда ли, что по причине стандартного «железа», программировать графику для приставок гораздо легче? Или же извечное отставание приставок по уровню «железа» нивелирует унифицированность?
М. Ж.: Игровые консоли обладают рядом преимуществ для разработчика (одна платформа, один набор возможностей и, как следствие, одинаковая производительность у всех игроков), но рынок PC-игр и, в частности, онлайн-игр постоянно растет, так что ожидать повального перехода на консоли не стоит. Не стоит забывать и о том, что выход игровых приставок с более мощным железом сдерживают сами производители консолей, стремясь возместить затраты на выпуск приставок предыдущего поколения за счет продаж текущих игр. Поэтому, прежде чем выпускать Playstation 4 или Xbox 720, пройдет еще немало времени и выйдет множество проектов, ориентированных на текущее поколение приставок. В отдельных случаях, таких как Nintendo Wii, передовое «железо» оказывается и вовсе ненужным, для достижения отличного результата.
«МИР NVIDIA»: Правда ли, что сейчас в играх почти повально используется сочетание проекционного метода для построения теней от моделей и метода теневых объемов с динамически или статически просчитанными объёмами для теней на движущиеся объекты, модели и оружие, и от движущихся частей моделей на самих себя?
М. Ж.: Вместо теневых объемов часто используется та же проекционная техника, с модификациями (каскадные карты теней, отдельная теневая карта для самозатенения и др.). Теневые объемы дают четкую границу тени, но страдают из-за высокого показателя fillrate, дополнительных расчетов на CPU и сложной реализации мягких краев теней.
«МИР NVIDIA»: Есть ли у существующих методов построения теней перспектива, с точки зрения построения динамического освещения всей сцены? То есть, с постепенным ростом мощности видеоускорителей их можно будет использовать для расчета всего освещения в динамике? Или потребуется применение каких-то новых методов?
М. Ж.: Проективные тени прошли довольно долгий путь в современных играх и те или иные их модификации будут использоваться еще долгое время, сочетаясь с дополнительными эффектами, вроде SSAO. Конечно, если будет бесплатный рейтрейсинг на GPU, то ни у проективных, ни у волюметрических теней нет никаких шансов.
«МИР NVIDIA»: Как вы оцениваете технологию Precomputed Radiance Transfer, с точки зрения применения в играх? Собираетесь ли вы ее использовать в будущем?
М. Ж.: PRT требует длительных расчетов, не сочетается с анимированными моделями и в принципе не дает больших преимуществ в визуальном плане, по сравнению с той же Ambient Occlusion. Как пример, можно взять Halo 3, которая использует PRT, но не выделяется качеством освещения на фоне тех же Gears of War или Crysis.
«МИР NVIDIA»: DirectX 11 и архитектура Fermi, стоит ли ждать DirectX 11 ускорителей и игр, или это проходная версия API? Может ли младшая модель Direct X 11 ускорителя, уступая по абсолютной мощности, fill rate, быть лучше старой, но более мощной модели с поддержкой DirectX 10? Можно ли ожидать, с выходом архитектуры Fermi, какого-то качественного скачка в игровой графике, или это будет экстенсивный рост, больше треугольников, больше скорость в высоких разрешениях и т. п.? Если бы в момент разработки вашей игры была доступна Fermi, насколько другой игра была бы, с точки зрения графики?
М. Ж.: Одиннадцатая версия DirectX предлагает больше возможностей для вычислений на GPU, при этом, если сравнивать с DX10, никаких коренных улучшений для 3D-графики не несет. Что касается Fermi, самой интересной особенностью, на мой взгляд, является полностью управляемая тесселяция для 3D-моделей.
Михаил Живец, технический директор проекта World of Tanks, компания Wargaming.net
Полный текст статьи читайте на nvWorld.ru