Эксклюзив: Heavy Duty
Помимо технических инноваций, в игре Heavy Duty есть много других интересных моментов, например, бампинг (текстурирование), моделирование, концептуальная часть. О том, как проходила работа над созданием игры, нам рассказали специалисты студии Primal Software Андрей Екимов (руководитель отдела Research and Development), Сергей Хахин (ведущий художник проекта) и Владимир Краснопеев (ведущий дизайнер уровней).
О свойствах поверхности, особенностях ее реализации в связи с нестандартным движком, о технической составляющей нам поведал Андрей Екимов.
А.Е.: Наша поверхность – это планета, и для нее, прежде всего, характерно большое пространство. При радиусе 5 км наша планета имеет больше 300 кв. км поверхности, а длина экватора составляет более 30 км.
Инструмент – terrain geom editor. Напоминает Sculpture tool, но имеет множество режимов работы, включающих тесселяцию, детеселяцию, подъем по нормали и по радиусу, level и т.д. |
Должны присутствовать все обязательные технологические приемы освещения. Это и попиксельное освещение с использованием карт нормалей (Bump Mapping, Specular Lighting), и карты освещенности в разное время суток (Lightmaps), и поддержка нескольких источников света, как статических, так и динамических.
Несмотря на все вышеперечисленные требования, система отображения земли не должна съедать значительные ресурсы. Требования по вычислительным ресурсам и памяти (как оперативной, так и видеопамяти), по-прежнему, остаются жесткими.
Исходный ландшафт. Лежит типовая пустынная текстура |
С.Х.: Одна из проблем в работе - это создание карты нормалей (normal map). В классическом подходе при использовании normal mapping принято делать полную развертку UV-пространства, без наложения одинаковых элементов модели на одни и те же текстурные координаты, чтобы избежать артефактов. Но в играх возможности полностью разложить объект в текстуру, не потеряв в качестве за счет большого текселя, ограничены. Соответственно, приходится экономить - например, зеркально отражённым элементам присваивать одни и те же UV-координаты. При таком подходе на одной стороне модели normal map работает правильно, а на зеркальной - с точностью до наоборот. Например, у левого крыла швы правильные, а у правого наружу, что мешает восприятию объекта, да и просто неприятно выглядит. Решение этой проблемы пришло не сразу, и решили её программисты, хитрым образом преобразовывая текстурные координаты в движке.
Создание нужной геометрии |
Для уменьшения затрат отрисовки, мы группируем треугольники по текстурным группам, получая блоки треугольников террейна. У одного блока террейна может быть переменное число обычных диффузных текстур. Они смешиваются с помощью специальной текстуры, в цветовых каналах которой лежит информация о смешении. Тем самым мы достигаем максимальной разнородности окраски земной поверхности и избегаем появления повторяемости рисунка текстуры (тайловости).
Также блок может иметь карту нормалей, и в этом случае применяется попиксельное освещение (Bump и Specular). Чтобы избежать текстурных швов между блоками с разнородными текстурами, мы применили алгоритм так называемого геометрического блендинга. Его суть заключается в том, что между блоками помещается еще один, который содержит соседние текстуры и мягко смешивает их. Также каждый вертекс террейна содержит информацию об освещенности в какое-либо время суток. Полученная таким образом карта освещенности передает самозатенение террейна. Также была применена система ЛОДов, при расчете которой можно уменьшать не только количество треугольников, но и количество текстур, убирать текстурный бленд и карту нормалей.
Геометрия сделана, теперь надо наложить текстуры и расставить объекты |
С другой стороны, всегда стоит проблема стоимости разработки, которую необходимо минимизировать. Коротко это звучало так: «Так как же мы будем ее делать?».
Финальный результат: наложены текстуры, в том числе с использованием бленда, расставлены объекты |
Создание планеты началось в «Майе». Через некоторое время ярко высветившиеся недостатки этого подхода поставили вопрос о целесообразности продолжения работы таким образом. Критических проблем было несколько. Первая и самая важная – корректность данных. Разнообразие ошибок было ошеломляющим: дублирующиеся вершины, скрытые дырки, огромное количество треугольников, и т.д. и т.п. Как нам кажется, все это было следствием сложности и многообразности инструмента, квалификация левел-дизайнеров должна была быть очень высока. К этому добавились следующие трудности: через какое-то время «Майя» стала очень сильно тормозить, увеличение памяти до 2-х гигов облегчило ситуацию, но не надолго.
Большой боевой робот чужих |
С учетом этого опыта было принято решение о создании своего редактора террейна. На пути создания редактора тоже встречались принципиальные вопросы, требующие разрешения. Это касалось способов создания геометрии, способов текстурирования поверхности планеты. Были предложены два способа: традиционный, когда левел-дизайнер «выращивает» горы и впадины и потом накладывает на них текстуру; и способ, при котором задаются параметры геометрии земли, ее текстурирование, а в заданную область вставляется новая геометрия.
В играх приходится думать о количестве полигонов, поэтому модели делаются Lo-poly |
О художественной, концептуальной стороне работы лучше всего может рассказать, разумеется, ведущий художник проекта. Сергей Хахин рассказал, что стиль игры продиктован сценарием, в котором главной идеей является борьба за выживание на одной из далёких колонизированных планет в очень отдалённом будущем.
С.Х.: Поселения на планете, по сути, являются небольшими базами по добыче и переработке ресурсов, которые не оставляют в покое инопланетные существа. Они терроризируют людей, похищают ресурсы, и, в конечном счёте, мечтают заполучить полный контроль над планетой и т.д.
Исходя из этого, основой стал футуристический стиль с элементами Hi-Tec. Строгие постройки, техногенные сооружения, люди в усилительных скафандрах, роботы, техника будущего; опять же, упор на развитие собственных технологий и захват трофейных.
Финальный результат. Присутствует normal map и specular |
Невозможно обойти вниманием одну из важнейших составляющих любой игры – персонажей. Образы и персонажи появлялись также под воздействием сценария.
С.Х.: Сценарий предусматривает свой мир, где существует несколько различных рас со своей особенной технологией, наукой. Люди используют техногенные скафандры-усилители, улучшающиеся со временем, так как предусматривается возможность развития собственных технологий и захват трофейных. Затем уже в ход идут гигантские роботы. Впрочем, военные машины в современном понимании тоже присутствуют.
Инопланетяне разнятся по видам и внешним формам. Умные зеленые человечки эксплуатируют расу других гуманоидов и различных модифицированных гигантских насекомых. Кроме того, они используют робототехнику.
Концепт вражеского жука |
Сергей рассказал Render.ru, что на создание таких удивительных ландшафтов и персонажей художников вдохновляли работы из мира кино, мультипликации и игровой индустрии. Причем зачастую образы-прототипы трансформировались до неузнаваемости в процессе работы.
С.Х.: Совокупность образов, уже созданных художниками по этой теме, также помогла в формировании и наполнении мира. Упомяну таких художников, как Ryan Church, Feng Zhu, на работы которых мы смотрели.
И его модель |
С.Х.: В какой-то момент пришло осознание, что фичи движка очень удачно подходят для игры, сочетающей наземные бои и орбитальный вид. Переделок мы не испугались.
Решалась проблема упорной работой - перелопатили всё, что надо было для смены концепции. Привлекли новых концепт-художников, которые внесли свежую струю во внешний вид игры. Сейчас прорабатываем дизайн интерфейса, который будет очень важен в игровом процессе.
Концепт еще одного врага |
С.Х.: Костяк команды сформировался летом 2005 года. Практически все художники имеют серьезный опыт работы в игровой индустрии, в том числе над весьма известными тайтлами, у некоторых за плечами более пяти проектов. Сейчас наш художественный отдел проекта, включая меня, насчитывает десять человек.
Следующий вопрос, который мы решили задать команде разработчиков Heavy Duty, коснулся основных параметров игры. О том, сколько сцен в игре, сколько пейзажей, сколько типов противников, рассказывает ведущий дизайнер уровней - Владимир Краснопеев.
В.К.: Особенностью игры является отсутствие отдельных уровней, сцен, локаций. В игре есть планета с океанами, морями, континентами и островами. Игрок может в любой момент взглянуть на любую часть планеты, приблизить камеру к поверхности планеты или отлететь в космос. Типов ландшафтов в игре условно три: средняя полоса, включающая в себя равнины, леса, горы; тропики, представленные пустынями, каньонами, оазисами, прериями, слоистыми горами; и арктические зоны на полюсах планеты с их снежными равнинами, ледяными скалами, торосами. Как видите, разнообразие пейзажей у нас получается впечатляющим!
Изначально планировалось сделать больше климатических зон, но объем контента получался просто гигантским, поэтому количество основных типов ландшафтов урезали до трех, что, впрочем, с учетом переходов от одной зоны к другой, дает огромное разнообразие окружающего мира.
Блоки террейна являются трехмерными объектами со специфическими свойствами |
На наш вопрос о том, как создается мир и является он созданной заранее моделью или генерируется случайным образом на бесконечные расстояния, Владимир ответил, что создание ландшафта планеты и расстановка объектов происходит в специальном редакторе.
В.К.: Впрочем, в нем довольно много знакомых по 3D редакторам инструментов, наподобие Sculpture Tool, Move Vertex и т.п. Особенностью являются инструменты текстурирования. От человека не требуется раскладывать UV-координаты, это происходит автоматически, но есть возможность изменять шаг текстуры. Также можно накладывать дополнительные диффузные текстуры через бленд, который задается с помощью специальной текстуры и, естественно, накладывать бамп со спекуляром.
Скриншот облаков из движка |
О том, как создавался бамп и об анимации игровых небес нам рассказал Андрей Екимов.
А.Е.: Мы реализовали попиксельное освещение в реальном времени, с использованием карты нормалей. Diffuse Bump и Specular Lighting рассчитывается именно с помощью этой карты нормалей.
Небо в нашей игре представлено двумя основными компонентами: небесным куполом, задающим цвет неба при взгляде с земли и из космоса в разное время суток; и системой облаков. Облака созданы на базе системы частиц, с анимированным тектурированием и динамическим освещением. Частицы облаков перемещаются относительно центра облака, заставляя облако клубиться. Сами облака плывут вокруг планеты по пути, заданному дизайнером.
Планета |
В.К.: Каждой группе облаков можно задавать один из типов: дождевые, снеговые или простые. Реализована погода следующим образом: на близких к камере расстояниях снег и дожди представляют собой частицы, рождающиеся по определенному закону с заданными параметрами, а на дальних дистанциях используется анимированная текстура.
А.Е.: Так как у нас моделирование реального небесного тела, то для нас важно было смоделировать вращение небесных светил вокруг планеты. Поэтому у нас в игре «естественная» смена дня и ночи: на какой-то части планеты день, на какой-то ночь, где-то утро, где-то вечер.
Пример финального ландшафта |
На представлении игры мы видели, что персонаж успешно взаимодействует с такими небольшими объектами, как растения, кусты. Это, по словам Андрея Екимова, обеспечивается моделированием физических законов в игре и реализацией системы столкновений.
Огонь, дым и все остальное множество эффектов реализовано системой спецэффектов, которая базируется на системе частиц. Перемещение частиц происходит по самым разнообразным законам и с учетом большого количества коэффициентов, в системе реализована текстурная анимация и другие возможности.
Сейчас на этапе развития и усовершенствования находится динамическое освещение. Уже можно увидеть световые пятна под пролетающими ракетами, вспышки взрывов и т.д. Также разработана подсистема визуальных постэффектов и визуальный редактор для их создания и отладки. Команда разработчиков Heavy Duty обещает постараться, чтобы в долгожданную игру вошли все современные постэффекты. По последним данным игровой суперхит должен выйти в первом квартале 2007 года.
Благодарим студию Primal Software и лично Романа Косенко, Андрея Екимова, Сергея Хахина и Владимира Краснопеева за предоставленную информацию и иллюстрации.