25 октября 2005
Обновлено 17.05.2023

Горячая линия: игрострой

Горячая линия: игрострой - изображение обложка

24 часа в сутки вопросы по созданию, модифицированию и вскрытию игр принимаются на адрес gamedev@igromania.ru

• • •

Знакомый 3D-моделлер рассказал, что он недавно начал работать в некой программе Rhinoceros. Я впервые слышу об этой утилите. Не подскажете, чем она лучше, скажем, всеми любимого 3DS Max или Maya? И насколько просто в ней работать?

На фоне таких монстров трехмерного моделирования, как 3D Max и Maya, прочие программы могут завоевать потребительский рынок лишь двумя способами. Первый — быть значительно дешевле мастодонтов и при этом мало в чем уступать им по функциональности. Это достаточно сложно. Второй путь для разработчиков пакетов трехмерной графики — сделать узкоспециализированный продукт, который, уступая во многом, будет превосходить лидеров по нескольким параметрам. Rhinoceros создан как раз по второму принципу. Это пакет, заточенный под работу с NURBS (кривые поверхности, построенные по математическим функциям, настройка осуществляется по контрольным точкам сетки).

Что касается эргономичности программы, то тут ситуация, скажем так, неоднозначная. Начать (да, наверное, и закончить) с того, что вся работа с пакетом построена на… общении с командной строкой. Да, не ослышались, именно с ней — реликтом, памятным еще по DOS, — и придется трудиться. Каждая операция вводится с клавиатуры в виде команды. Поначалу подобный подход кажется крайне архаичным, но только на первый взгляд. На самом деле в Rhinoceros командная строка выполнена крайне удобно, и часто ввод всего одного операнда заменяет кликание по десяткам пунктов меню. Нет необходимости путешествовать по дебрям всевозможных закладок, подзакладок, папок и всплывающих меню. Набрал нужную команду, нажал Enter, ознакомился с результатом…

Пожалуй, единственный недостаток командной строки — крайняя нестандартность. В результате изучать графический пакет приходится почти с нуля, вне зависимости от того, насколько хорошо вы знаете другие программы трехмерной графики. При этом средств моделирования в Rhinoceros вполне достаточно как для любительской, так и для профессиональной работы: смешение и преобразование кривых, выдавливание по линиям, создание объемных объектов на основе сечений. А многочисленные плагины позволяют довести функциональность редактора почти до уровня “Макса” и “Майя”, с поправкой на то, что с NURBS работать будет значительно удобнее.

Рекомендовать ли данную программу начинающим? Пожалуй, не станем. Во-первых, популярность Rhinoceros не настолько высока, чтобы, зная принципы работы в нем, можно было устроиться на работу (а ведь каждый моделлер это подразумевает). Плюс время освоения пакета достаточно велико: заучить все многообразие команд не так просто, а каждый раз залезать в справочник — крайне долго. Впрочем, если вы собираетесь моделировать именно при помощи NURBS, то обязательно обратите внимание на Rhinoceros.

• • •

Мы с ребятами почти закончили делать шароварную игру. Это стратегия с элементами аркады. Единственное, что нам пока не совсем понятно, — как определить, на какой сектор рынка ориентирована наша игра. Мы создавали ее “под себя”. Нам играть достаточно интересно, но как определить, каким именно геймерам будет интересно играть в наш проект? Насколько понимаю, определить целевую аудиторию игры крайне важно.

Определение целевой аудитории любого игрового проекта — одна из важнейших составляющих успеха итогового продукта. Любые попытки ткнуть пальцем в небо, сказав себе “ а, ладно, и так сойдет, как-нибудь продадим ”, обычно приводят к провалу. Казалось бы, столько сил потрачено на создание, а игра (в особенности это касается шаровар) не продается. Пользователи просто не хотят играть в ваше творение.

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

Звучит парадоксально, но игры часто популярны не только потому, что открывают для геймеров что-то новое (это само собой), но и потому, что позволяют им ощутить себя в хорошо знакомой обстановке. Как в старой песенке: “ Очень радостно, когда мы возвращаемся домой ”. Так вот, геймер должен ощутить себя в игре как дома. И создать этот дом должны вы — разработчики.

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

Включать в игру элементы, которые должны расширить целевую аудиторию проекта, бессмысленно. Пытаясь пустить кучный заряд дроби под хвост двум и даже более зайцам сразу, вы в лучшем случае попадете в небо, в худшем — в молоко. Игроки, на которых изначально ориентирован жанр (но не сама игра), вашу игру не купят, потому что в ней слишком много незнакомых им элементов. Те же, на кого были рассчитаны ваши сомнительные “расширения”, просто не обратят внимания на игру, потому что она не принадлежит к их любимому жанру.

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

• • •

Я сделал модель для UT2004, нарисовал анимацию, поместил в игру — все нормально. У меня только одна проблема: в интернете все модельки выкладываются в виде дистрибутивов. Можно ли как-то сделать свой собственный самоинсталлирующийся дистрибутив, чтобы можно было выложить свою модель в Сеть?

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

Самый простой способ: использовать стандартный архиватора WinRAR и командный интерпретатор DOS. Разберемся в структуре стандартного мода. Обычно к концу работы над моделью у вас есть три файла: System\Erazer.upl , UT2003\Textures\Файл.utx и Animations\Файл.ukx. Плюс есть прописанная дополнительная строка в файле System\XPlayers.int. Сами файлы можно вынимать из архива, используя стандартную процедуру разархивации, но как быть со строкой в XPlayers.int? Ведь не станет же геймер сам вбивать строчки в файл. Тут-то нам на помощь и придет DOS.

Делаем простой текстовый файл install_ВашМодPM.bat и пишем в нем следующие строки:

@echo off

echo. >> system\xplayers.int

echo ВашМод=“Name: Название мода|Age: 27|Race: Название Модельки|Data:|Любая информация||” >> system\xplayers.int

Данный скрипт делает следующее. Он пропускает последнюю строчку в означенном файле и дописывает в конце дополнительные данные.

Единственный момент — как же деинсталлировать модель, если игроку она не понравится? Для этого необходимо написать дополнительный деинсталлирующий скрипт. Для этого на компьютере игрока должен жить файл uninstall_ВашМодPM.bat. Но сам по себе он на винчестере, разумеется, не образуется, поэтому необходимо заложить в файл install_Ваш Мод.bat скриптовую последовательность, создающую деинсталляционный файл. Выглядит она следующим образом:

echo del System\ВашМод.upl >> uninstall_ВашМодPM.bat

echo del Animations\ВашМодAnim.ukx >> uninstall_ВашМод.bat

echo del Textures\ВашМодTex.utx >> uninstall_ВашМодPM.bat

echo del %%0 >> uninstall_ВашМодPM.bat

del %0

В первых четырех строках прописана информация, удаляющая все файлы модели, последняя же строка удаляет сам файл деинсталляции.

Почти все готово. Запаковываем все файлы в SFX-архив (обычным RAR’ом), оставляя распаковщику следующий комментарий:

title=Установка игровой модели для UT

_ text=Укажите путь к игре (например, C:\Games\UT_ )

_ path=C:\Games\UT_

_ setup=install_ВашМодPM.bat_

Вопрос месяца

В описаниях игр я часто встречаю термин “бамп”. Насколько понимаю, это жаргонное сокращение от Bumpmapping. Не могли бы вы пояснить, что это за зверь такой?

Так уж повелось, что те геймеры, которые четко себе представляют, что такое бамп, обычно смеются над теми, кто с данным понятием не сталкивался. Но практика показывает, что подавляющее большинство игроков все же именно “знакомы” с термином, но объяснить толком, что он означает, не могут. Обычно отделываются лишь банальным “ бамп — это технология придания картинке объема ”. Раз и навсегда объясняем, чтобы больше вопрос не поднимался и не вставал ребром.

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

В основе технологии Bumpmapping лежат так называемые карты рельефа. В процессе работы над игрой создатели изготовляют не только сами текстуры, но также карту высот (height map) для каждой текстуры — она описывает высоту каждой отдельно взятой точки текстуры относительно некоего условного начального уровня (“нулевые” привязки могут быть самыми различными). В некоторых случаях вместо карты высот создается карта нормалей (normal dispmap), которая выполняет ту же задачу, но описывает вышину каждой точки при помощи нормалей.

Карты рельефа могут быть двух разновидностей: карты смещений и карты освещенности. Карта смещений задает параметры искажения для environment map, а карта освещенности содержит набор светлых и темных пятен, которые и призваны симулировать неоднородность освещения якобы из-за неровной поверхности материала (хотя на самом деле он идеально ровный). Карты рельефа накладываются альфа-смещением на текстуры, в результате игроку кажется, что поверхность рельефна. Дополнительно к картам рельефа поверхности строится и карта освещения, что позволяет создавать картинки, близкие по качеству к фотографиям.

Комментарии
Чтобы оставить комментарий,Войдите или Зарегистрируйтесь