МИР NVIDIA / Статья 

Интервью с Nival Interactive


Рады представить вашему вниманию эксклюзивное интервью специально для
"МИРа NVIDIA" с Юрием Блажевичем (Nival Interactive)

С Новым Годом, мы очень рады, что Вы согласились дать нам интервью, представьтесь пожалуйста.

Юрий Блажевич, ведущий программист Nival Interactive.

Ваше отношение к геометрическим сопроцессорам? Собираетесь ли Вы использовать их в будущем? Насколько их использование на Ваш взгляд расширяет Ваши творческие возможности?

GPU хорош тем, что разгружает процессор и даёт гораздо большую производительность по скорости обработки геометрии. В то же время, текущая реализация GPU страдает от отсутствия возможности программировать T&L, так что сразу теряются многие возможности, которые были у программистов без HW T&L. Появление vertex shader'ов в этом плане будет гигантским шагом вперёд и, наконец-то, сделает GPU полноценным инструментом разработки графических движков. GPU + vertex shader не даёт никаких новых возможностей программистам по сравнению с SW T&L, но зато даёт большие возможности по улучшению качества сцены - количество треугольников в кадре возрастает в 10-20 раз и более!

Какие из новых технологий Вы использовали в “Проклятых Землях”? Были ли какие-то сложности с их реализаций?

Что дала Вам Ваша новая технология (на которой построены “Проклятые Земли”), кроме красивейшей графики, по сравнению с предыдущими частями “Аллодов”?

Мы полностью перешли на 3D графику.

Это дало нам массу возможностей для создания новых технологических решений, которые можно разделить на две категории – автоматические (т.е. те, которые появляются “по умолчанию” с переходом на 3D) и уникальные (те, над которыми пришлось поломать голову).

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

Из уникальных эффектов хотелось бы отметить следующие:

  • Морфинг по 8ми моделям – каждая модель у нас представлена 8ю крайними положениями по осям сила/ловкость/рост, образуя, таким образом, непрерывный параллелепипед возможных состояний модели. Если учесть, что при дискретизации в 1/10 по каждой из осей, различие между моделями становится видно “на глаз”, то получается 1000 различных моделей из базовых 8ми. Это позволяет не только максимально разнообразить игровой мир, но и реализовывать изменения характеристик персонажей, таких как сила, в реальном времени прямо на боевом экране. Эта технология еще не применялась ни в одной из игр, вышедших на сегодняшний день.

  • Мягкие тени – каждый объект в игре может отбрасывать тень с мягкими границами (псевдо-penumbra). Пожалуй, это самая красивая фича в игре с точки зрения программистов…

  • Кровавые следы – если зашёл в лужу крови, то некоторое время от тебя будут оставаться кровавые следы. Это была более “фанская” фича, нежели сложная в реализации, но, тем не менее, она существенно украсила игру.

  • Переодевание персонажей – одной из основных целей при создании ПЗ было максимальное соответствие персонажа на карте тому, во что мы его одели. Это повлекло за собой сразу проблему переодевания – ведь у нас есть не только одежда “в обтяг”, но и броня, изменяющая внешний вид модели. Но мы решили эту проблему… Гораздо более сложная задача стояла перед художниками – ведь все элементы брони должны были сочетаться друг с другом из разных комплектов и при этом выглядеть хорошо, а это уже задача комбинаторного порядка…

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

Сложностей, конечно, возникло масса – ведь это была первая проба новой технологии в нашей компании. Возникали как сложности с программированием (новый API, новые подходы к визуализации), так и сложности с созданием низко-полигональных моделей – ведь до этого 3D модели никогда не покидали комнату художников, а теперь потребовались реальные модели с хорошим качеством и очень малым количеством треугольников для использования в самой игре. А понимание того, “в какую пятку надо побольше запихнуть треугольников”, вообще пришло только через полтора года (поэтому, например, модели деревьев пришлось переделывать “с нуля” три раза!).

На какое “железо” Вы ориентируетесь, при разработке игр, в первую очередь?

Т.к. цикл создания игры составляет примерно 2 года, то нужно ориентироваться на новейшие разработки в области hardware, если мы хотим, чтобы к моменту выхода игра выглядела современной. Пусть на момент начала работы над игрой эти технологии воспринимаются как мало кому доступный hi-end , через два году это уже стандарт, “народная марка”. Сейчас, для нового проекта, мы ориентируемся на PIII 733 + NV20 + 64MB RAM (причем ограничения по памяти продиктованы возможностями Xbox).

Наболевший вопрос – Ваше отношение к консолям? Собираетесь ли Вы выпускать мульти-платформенные игры? Считаете ли Вы, что игровая индустрия на PC умирает?

Консоли имеют как ряд преимуществ, так и ряд недостатков.

Из преимуществ, основными следует отметить:

  • на момент выхода консоль имеет параметры, близкие к high-end графической станции.

  • конфигурация и возможности железа фиксированы на несколько лет,

  • массовость игр для консолей (следует из дешевизны самих консолей по сравнению с компьютерами).

Что касается недостатков, то это:

  • малое количество памяти (как следствие, большие затруднения с открытыми пространствами)

  • мало input device'ов (нет мыши и клавиатуры – отпадают, или становятся неудобными, сразу несколько классов игр – FPS, RTS, …),

  • вывод на телевизор (как следствие, низкое разрешение изображения и отсутствие мелких элементов /текст должен быть очень крупным/).

По поводу мультиплатформенных игр - сейчас мы ориентируемся на PC и Xbox (о том, почему именно Xbox – в ответе на следующий вопрос). А вот игры на PC, по нашему мнению, не умрут никогда...

Какая из приставок на Ваш взгляд имеет наибольшие перспективы и почему?

Как два основных конкурента, сейчас можно рассматривать Xbox и PS2. Xbox имеет ряд преимуществ, как объективных, так и субъективных:

  • По производительности в ~2 раза мощнее PS2.

  • Имеет в 2 раза больше оперативной памяти (что очень немаловажно).

  • Более удобен для программирования под него, чем PS2, благодаря максимальной приближенности Xbox к PC.

Собираетесь ли Вы в будущем использовать третий текстурный блок RadeON’а или Вы подождете, пока эта особенность появится и в других картах?

Как уже было сказано, мы ориентируемся на NV20, который имеет 4 текстурных блока. Тем не менее, возможна работа как с 3мя, так и с 2мя текстурными блоками. А вообще, в нашей текущей архитектуре сложно придумать эффект, который требовал бы больше 2х текстурных блоков (хотя сами эффекты могут быть и более чем 2х текстурными).

Как, по Вашему мнению, велик потенциал современных карт-лидеров (GeForce2, RadeON 256, Voodoo5 5500)?

GF2 & Radeon будут жить до выхода NV20 и имеют большой потенциал. А вот Voodoo 5 5500, по нашему мнению, увы, «мертворожденный ребенок» (особенно если учесть уход 3dfx с рынка). NV20 представляет из себя графический ускоритель следующего поколения (следующего за поколением GeFORCE). У него есть несколько новых возможностей, который предоставляют широкие перспективы для разработчиков как по оптимизации работы графики, так и в реализации вещей, которые на GeFORCE были просто невозможны при использовании HW T&L:

  • programmable T&L pipeline. Это дает возможность программировать конвейер геометрических преобразований открывает совершенно новые перспективы для разработчиков, которых они были лишены на GeFORCE с использованием HW T&L.

  • programmable pixel pipeline, т.е. возможность программировать мультитекстурные эффекты. Подобная возможность была и на карточках предыдущих поколений, но на NV20 эта возможность перенесена на новый качественный уровень и ее функциональность существенно расширена.

  • micropolygons. HW реализация частиц, мечта всех программистов для создания "очень массовых однотипных эффектов" типа дождя, снега, облаков и т.д.

  • high-order primitives. Вообще, это спорная фича. С одной стороны, она даёт преимущества при создании гладких поверхностей, но, с другой стороны, практически невозможно (или _ОЧЕНЬ_ трудно) смоделировать живых персонажей при помощи этой технологии.

  • volume textures. Объёмные текстуры являются практически идеальным механизмом создания всевозможных объёмных эфемерных эффектов типа тумана, облаков, дыма и т.д.

+ много других (не столь революционных, но всё же необходимых) новых возможностей.

Как, по-вашему, - возможна ли программная реализация NSR? Насколько она будет уступать аппаратной (если "софтовая" все-таки возможна)?

Если немного вспомнить историю, то раньше, до появления Voodoo I, растеризация в играх делалась программно, а здесь возможности для реализации NSR просто неограниченные. Конечно, как и любое программное решение, оно будет значительно уступать аппаратному. Всё зависит от желаемого качества картинки и мощности CPU.

Считаете ли вы перспективными исследования GigaPixel (3dfx) в области тайлов? Имеют ли эти технологии реальные перспективы и насколько они велики?

Практически все задачи визуализации в компьютерной графике массово параллельные по своей природе. Тайловый подход как раз и является попыткой разумно распараллелить эти задачи. Основное преимущество этого подхода заключается в том, что он устраняет самое узкое “бутылочное горлышко” современных 3D акселераторов – скорость обращения к памяти. С точки зрения решения практических задач, для проблемы overdraw лучше и проще иерархический z-buffer, а вот для рендеринга с альфа-каналом без сортировки тайловый подход является разумным решением. Вообще, по нашему мнению, ещё несколько лет эта технология не будет иметь большого практического применения, но в недалёком будущем она станет “обязательной”.

Ваше отношение к многочиповым решениям?

Те многочиповые решения, которые мы видели (у нас стоит одна Voodoo 5 5500) страдают от несогласования работы чипов, в результате чего картинка получается полосатой (из-за несовпадения ЦАП по красной компоненте). Тем не менее, многочиповые решения имеют и свои преимущества (и их же можно трактовать как недостатки), но так уж сложилось, что многопроцессорные системы менее экономичны, чем однопроцессорные при одинаковых показателях.

На что при разработке проекта уходит больше всего сил и времени?

Проект можно разделить на несколько явных частей: игровой дизайн, программирование, графика, звук, текст. Рассмотрим здесь только программирование.

Основные задачи, которые определяют игру помимо заложенной в ней интересности, это AI живности в игровом мире и качество графики/озвучки. AI является чисто программной задачей и не зависит от других подразделений, так что его и можно отнести к тому, на что уходит больше всего сил. По поводу графики и озвучки – их можно поставить на второе место, т.к. качественно и удобно отобразить/озвучить то, что сделали художники/музыканты тоже непростая задача.

Основные игроки на рынке 3D индустрии в 2001-2002 году, по-вашему мнению?

NVIDIA & ATI. (Matrox как-то стушевался в последнее время). Скорее всего, после выхода NV20 в у нас не будет лучшей альтернативы в течение как минимум года. Поскольку по многим прогнозам большинство разработчиков будут ориентироваться на Xbox как наиболее мощную и приближенную к PC консоль, а Xbox не будет существенно меняться в течение нескольких лет, видео-карта, используемая Xbox-ом, которая практически полностью (с учетом большей производительности) соответствует NV20, будет наиболее часто использоваться разработчиками. Именно эта карта обеспечит максимально правильную работу программы при порте игр с PC на Xbox и обратно.

Какие новые технологии Вы прогнозируете в этой области? Что может дать качественный скачок?

Виртуальная текстурная память (как в некоторых продуктах SGI); иерархический z-buffer; однопроходные аппаратные z-buffer'ные тени более 8 бит точности, scene-capturing cards with HW LOD; rendering с alpha-channel без предварительной сортировки по глубине; subdivision surfaces (не путать с NURBS или Bezier); float на каждый цветовой канал при растеризации, аппаратный ray-tracing&photon mapping. Это те технологии, которые нам бы хотелось видеть, а уж что сделают разработчики железа, это на их совести.

Расскажите, пожалуйста, чуть-чуть о ваших дальнейших планах

С началом работы над новым проектом, мы начали создавать новый игровой движок, перенеся от старого проекта в него только накопленный опыт. Графическая часть движка изначально ориентирована для работы с видеокартами нового поколения (типа NV20), хотя и более ранние модели также будут поддерживаться. Из ключевых особенностей нового движка, независимо от видеокарты, можно выделить следующие:

  • Точные тени от всего на всём (в том числе и самозатенение).

  • Поточечное освещение.

  • Интенсивное использование HW T&L.

  • Анимационная система, которая позволяет комбинировать анимирующиеся объекты (человек на лошади), комбинировать анимационные треки для любой кости скелета (человек идёт, стреляет из пистолета, чешется другой рукой, вертит головой и двигает ушами одновременно)

  • Инверсная кинематика. Планируется две модели – создание анимации при помощи ИК (например, дотянуться рукой до выключателя) и модификация анимации при помощи ИК (например, при ходьбе ставить ноги ровно на поверхность).

  • Физичные анимации, т.е. анимации, автоматически сгенерённые с учётом сил, действующих на объект (например, убитый человек перевешивается через перила и падает на землю).

  • Система частиц, включающая в себя объёмные и поверхностные источники частиц, аттракторы и репульсоры, возможность создания “массовых” эффектов (типа дождя) более дешевым способом, и т.д.

Большое спасибо за интересные ответы, может быть Вы хотели бы что-нибудь пожелать или посоветовать нашим читателям?

Могу посоветовать идти в ногу со временем и постепенно настраиваться на Xbox и NV20 – за ними будущее.

Интервью вел
Павел Данильченко a.k.a. Quaz (quaz@aaanet.ru)