Эксклюзив: Heavy Duty

Как мы рассказывали ранее, одним из самых интересных игровых проектов российских студий, представленных на КРИ в этом году, стала игра Heavy Duty, издателем которой выступает компания «Akella». Разработчики игры – московская студия Primal Software - на КРИ произвели настоящую сенсацию, представив свою разработку сложного игрового движка.

Помимо технических инноваций, в игре 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
 
В конечном итоге, более сильное развитие получила традиционная технология редактирования земной поверхности, когда левел-дизайнеры изменяют геометрию земли специальными инструментами: «подъем уровня земли», «опускание уровня земли», «выравнивание» и т.д. После этого с помощью инструмента текстурирования на выбранный участок поверхности накладывается основная текстура, текстуры пятен и бленда, текстуры «бампа» и т.д. Квалифицированный дизайнер уровней создает детализированный 1 км2 за 5 дней, в зависимости от сложности местности (наличие/отсутствие гор, оврагов и т.п.). Низкодетализированная планета с площадью суши 50 км2 создается одним опытным дизайнером за неделю.

О художественной, концептуальной стороне работы лучше всего может рассказать, разумеется, ведущий художник проекта. Сергей Хахин рассказал, что стиль игры продиктован сценарием, в котором главной идеей является борьба за выживание на одной из далёких колонизированных планет в очень отдалённом будущем.

С.Х.: Поселения на планете, по сути, являются небольшими базами по добыче и переработке ресурсов, которые не оставляют в покое инопланетные существа. Они терроризируют  людей, похищают ресурсы, и, в конечном счёте, мечтают заполучить полный контроль над планетой и т.д.

Исходя из этого, основой стал футуристический стиль с элементами Hi-Tec. Строгие  постройки, техногенные сооружения, люди в усилительных скафандрах, роботы, техника будущего; опять же, упор на развитие собственных технологий и захват трофейных.
Финальный результат. Присутствует normal map и specular
 


Невозможно обойти вниманием одну из важнейших составляющих любой игры – персонажей. Образы и персонажи появлялись также под воздействием сценария.

С.Х.: Сценарий предусматривает свой мир, где существует несколько различных рас со своей особенной технологией, наукой. Люди используют техногенные скафандры-усилители, улучшающиеся со временем, так как предусматривается возможность развития собственных технологий и захват трофейных. Затем уже в ход идут гигантские роботы. Впрочем, военные машины в современном понимании тоже присутствуют.

Инопланетяне разнятся по видам и внешним формам. Умные зеленые человечки эксплуатируют расу других гуманоидов и различных модифицированных гигантских насекомых. Кроме того, они используют робототехнику.
Концепт вражеского жука
 

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

С.Х.: Совокупность образов, уже созданных художниками по этой теме, также помогла в формировании и наполнении мира. Упомяну таких художников, как Ryan Church, Feng Zhu, на работы которых мы смотрели.

И его модель
 
В работе над таким сложным проектом неизбежно возникали сложности, проблемы, заминки. Сергей Хахин назвал главной проблемой смену игровой концепции, которая повлекла большое количество дополнительной работы по переделке уже готовых моделей и формировании совершенно нового интерфейса игры с глобальными изменениями по функционалу.

С.Х.: В какой-то момент пришло осознание, что фичи движка очень удачно подходят для игры, сочетающей наземные бои и орбитальный вид. Переделок мы не испугались.

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

Концепт еще одного врага
 
Всем, кто видел отрывки из Heavy Duty, очевиден особый визуальный стиль игры. Он проработан очень детально и сразу привлекает внимание. Над ним работала команда разработчиков, о которой мы попросили рассказать Сергея.

С.Х.: Костяк команды сформировался летом 2005 года.  Практически все художники имеют серьезный опыт работы в игровой индустрии, в том числе над весьма известными тайтлами, у некоторых за плечами более пяти проектов. Сейчас наш художественный отдел проекта, включая меня, насчитывает десять человек.

Следующий вопрос, который мы решили задать команде разработчиков Heavy Duty, коснулся основных параметров игры. О том, сколько сцен в игре, сколько пейзажей, сколько типов противников, рассказывает ведущий дизайнер уровней  - Владимир Краснопеев.

В.К.: Особенностью игры является отсутствие отдельных уровней, сцен, локаций. В игре есть планета с океанами, морями, континентами и островами. Игрок может в любой момент взглянуть на любую часть планеты, приблизить камеру к поверхности планеты или отлететь в космос. Типов ландшафтов в игре условно три: средняя полоса, включающая в себя равнины, леса, горы; тропики, представленные пустынями, каньонами, оазисами, прериями, слоистыми горами; и арктические зоны на полюсах планеты с их снежными равнинами, ледяными скалами, торосами. Как видите, разнообразие пейзажей у нас получается впечатляющим!

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

Блоки террейна являются трехмерными объектами со специфическими свойствами
 
В игре нам предстоит сражаться на земле и в воздухе с коварными инопланетянами. Враги разнообразны. Зеленые человечки являются «мозговым центром» инопланетян, в бою они участвуют только на малых (около 3х метров высотой) и больших (порядка 15 метров высотой) роботах, «солдатским мясом» является порабощенная зелеными человечками раса мощных, сильных гуманоидов и раса генетически модифицированных и усиленных имплантатами гигантских насекомых. Последних имеется несколько видов: летающие, небольшие четырехлапые, огромные восьминогие и другие. Причем ноги у всех тварей и роботов анимируются с использованием инверсной кинематики реального времени, т.е. предпросчитанной анимации нет. Именно поэтому наши персонажи так элегантно лазают по горам.

На наш вопрос о том, как создается мир и является он созданной заранее моделью или генерируется случайным образом на бесконечные расстояния, Владимир ответил, что создание ландшафта планеты и расстановка объектов происходит в специальном редакторе.

В.К.: Впрочем, в нем довольно много знакомых по 3D редакторам инструментов, наподобие Sculpture Tool, Move Vertex и т.п. Особенностью являются инструменты текстурирования. От человека не требуется раскладывать UV-координаты, это происходит автоматически, но есть возможность изменять шаг текстуры. Также можно накладывать дополнительные диффузные текстуры через бленд, который задается с помощью специальной текстуры и, естественно, накладывать бамп со спекуляром.

Скриншот облаков из движка
 
Объекты можно расставлять с помощью ручного инструмента или с помощью автоматического arranger’а, в котором можно задавать набор объектов для расстановки, количество, возможность рендомного поворота вокруг осей и т.д.

О том, как создавался бамп и об анимации игровых небес нам рассказал  Андрей Екимов.

А.Е.: Мы реализовали попиксельное освещение в реальном времени, с использованием карты нормалей. Diffuse Bump и Specular Lighting рассчитывается именно с помощью этой карты нормалей.

Небо в нашей игре представлено двумя основными компонентами: небесным куполом, задающим цвет неба при взгляде с земли и из космоса в разное время суток; и системой облаков. Облака созданы на базе системы частиц, с анимированным тектурированием и динамическим освещением. Частицы облаков перемещаются относительно центра облака, заставляя облако клубиться. Сами облака плывут вокруг планеты по пути, заданному дизайнером.

Планета
 
Подробнее о небе и облаках, а также о реализации смены погоды и дня и ночи Владимир Краснопеев и Андрей Екимов продолжили уже вместе.

В.К.: Каждой группе облаков можно задавать один из типов: дождевые, снеговые или простые. Реализована погода следующим образом: на близких к камере расстояниях снег и дожди представляют собой частицы, рождающиеся по определенному закону с заданными параметрами, а на дальних дистанциях используется анимированная текстура.

А.Е.: Так как у нас моделирование реального небесного тела, то для нас важно было смоделировать вращение небесных светил вокруг планеты. Поэтому у нас в игре «естественная» смена дня и ночи: на какой-то части планеты день, на какой-то ночь, где-то утро, где-то вечер.

Пример финального ландшафта
 
В.К.: Дополню, что цвет и интенсивность солнечного света можно настраивать индивидуально для каждого угла касательной от солнца до точки на поверхности планеты. Таким образом, мы можем имитировать смену освещения, например, красный закат, синеватую ночь и т.п.

На представлении игры мы видели, что персонаж успешно взаимодействует с такими небольшими объектами, как растения, кусты. Это, по словам Андрея Екимова, обеспечивается моделированием физических законов в игре и реализацией системы столкновений.

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

Сейчас на этапе развития и усовершенствования находится динамическое освещение. Уже можно увидеть световые пятна под пролетающими ракетами, вспышки взрывов и т.д. Также разработана подсистема визуальных постэффектов и визуальный редактор для их создания и отладки. Команда разработчиков Heavy Duty обещает постараться, чтобы в долгожданную игру вошли все современные постэффекты. По последним данным игровой суперхит должен выйти в первом квартале 2007 года.

Благодарим студию Primal Software и лично Романа Косенко, Андрея Екимова, Сергея Хахина и Владимира Краснопеева за предоставленную информацию и иллюстрации.
452 0 850 7
14
2006-06-16
Концепт:-( Зерги... Эх-х-х. Ctrl+c, Ctrl+v. HMM5-плохая копия Дисайплс и Вар3. И вот опять кто-то что-то копирует. Нового по дизайну - ничего. Когда же мы в России будем создавать что-то новое?!
2006-06-17
Ух, спасибо за статью:) Просто отлично!!!
2006-06-18
В русских играх ёлки на всех планетах растут :)))
2006-06-18
Эти жуки в роли врага мне никак не видятся...
2006-06-19
А помоему арт прикольный, и совсем не зерги, чтож теперь, всё жуко-образное - потомки зергов? Всё отлично!!! С нетерпением жду завершения этого игрового проэкта!
2006-06-19
Насчёт HMM5 причём тут Дисайплс и вар3 ? Ничего общего... герои они и есть герои... А статья мне очень даже.
2006-06-24
модельки и текстуры хорошие, а террайны мне не понравились. Зачем игроку видеть облака из космоса? =)
2006-06-28
проверте в статье ошибки узкоспециальных понятий и в английских понятиях тоже пару очепяток недопечаток присутствуют...
2006-06-28
po4emu kopirujet ja ni4evo kopirovanogo ne vizhu pohodu vse sovjo a gde 4erpat' vdohnovenije eto uzhe delo kazhdogo =)
2006-07-13
давай денег милиончиков этак 10 долларов или рублей в эквиваленте будет сносный результат!
2006-08-02
Не скоро мы выйдем на мировой уровень. лет на 5 отстаём!
2006-09-11
Ничего нового. Плетёмся в хвосте у все мира =((
2006-12-03
Главное чтоб руки не опускать=)Лично хочется в релизе увидеть этот проект,модели кластные,мир довольно таки красив.Хотя лучше над врагами подумать чем лондшавт раскрашивать=( Верю Россия будет в переди=) Статейка интересная,читал с удовольствием)
2007-01-16
Всё с чего-то начинается, а вообще статья довольно интересная!
RENDER.RU