31 августа 2005
Обновлено 17.05.2023

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

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

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

• • •

Можно ли как-то повысить кровавость Max Payne 2? А то жалко смотреть на эти смешные лужицы кетчупа, которые вытекают из врагов.

Можно и даже нужно. Заходите в директорию игры, задаете поиск по имени decasls.txt , находите файл RASMaker.exe , позволяющий совершать различные преобразования над этими архивами. Если у вас первая английская версия игры (первая партия компактов, сошедших с конвейера), его может и не быть — в этом случае обращайтесь к нашему компакту и DVD и скопируйте приложение в игровой каталог.

Чтобы распаковать .ras-архив, запустите файл RASMaker.exe с параметрами: RASMaker -x <имя архива> <каталог для распаковки> (например, RASMaker -x MP2_English.ras C:\Temp\MaxEng ). Для упаковки файлов в архив используйте следующую команду: RASMaker -a <название упаковываемой папки> <имя архива> (например, RASMaker -a C:\Temp\MaxEng MP2_English.ras ). Впрочем, можно и не запаковывать измененные файлы обратно в архив, а просто положить их в игровую директорию в той папке, в которой они лежат, и убрать архив, откуда вы их ранее извлекли, из игрового каталога. Например, при распаковке архива MP2_Init.ras вы получите папку \data. Если вы подредактируете какие-то из содержащихся в ней файлов, вам следует скопировать эту папку со всем ее содержимым в директорию с игрой и убрать из последней архив MP2_Init.ras. Только после этого внесенные вами изменения вступят в силу. Правда, при таком способе хранения отредактированных файлов вы тратите больше дискового пространства, зато загрузка карт происходит несколько быстрее.

Далее найдите файл decals.txt , хранящийся в архиве MP2_Data.ras по адресу: \data\database\decals. В нем имеются разделы decal_blood_small , decal_blood_medium и decal_blood_large (первый из них отвечает за маленькие пятна крови, второй — за средние и третий — за большие), а в каждом из них — подразделы Default и Glass. В последнем содержатся параметры кровяного пятна для стекла (то есть для случая, когда то попадает на объект, сделанный из стекла), в первом — для всех остальных типов поверхности. В обоих подразделах присутствуют показатели MinimumRadius (отвечает за минимальный радиус пятна крови) и MaximumRadius (максимальный радиус). Увеличьте значения этих атрибутов, и кровавость игры поднимется на новый уровень (чем значительнее увеличите, тем выше будет кровавость). Например, на значении 4 для всех двенадцати характеристик. Теперь крови станет куда больше!

• • •

Меня интересует, как в играх делают разрушаемые объекты, такие как люди в Soldier of Fortune 2: Double Helix или монстры из “Вивисектора”, и разрушаемые стены, как в первом Red Faction. Напишите, пожалуйста, об этом в полной последовательности: как это происходит (от начала столкновения пули с объектом и до отделения части); и, если не сложно, приведите небольшой исходный код к примеру на движке GLScene или на любом другом, на котором вам удобнее.

Давайте разбираться поэтапно.

А. В 3D MAX создается модель не целиком, а по частям: отдельно голова, руки, ноги и остальные части ливера.

Б. Анимация тоже делается по частям, с присвоением порядковых номеров роликам, например:

— поворот головы направо 1.

— поворот головы налево 2.

— поворот головы налево и движение правой рукой 3.

— …и так далее. В разных играх таких роликов может быть разное количество (от 6-10 в Morrowind, до 20-40 в UT). Но в любом случае есть ролик dead, в котором показывается смерть персонажа. Это обязательный ролик, поскольку относится к ключевым моментам игры. Таких моментов обычно несколько, например “атака”, “защита” и т.д. В хороших играх в ключевых моментах несколько вариантов, чтобы умирание персонажа не показалось однообразным.

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

Второй вариант — использование физического движка. В этом случае каждая часть тела описывается для двигателя как отдельный объект, которому присущи все физические свойства: вес, объем и др. Если персонаж столкнулся с минно-взрывным устройством, то вместо ролика запускается команда “взорваться”. Для каждого двигателя, более того — для каждой игры она будет написана по-своему, и никакого смысла приводить исходный код нет. В псевдокоде можно было бы написать так:

/При столкновении с миной запустить команду “взорвать объект тело”/

разложить объект тело на отдельные составляющие

— определить координаты средней точки каждой составляющей (ладони, предплечья, плеча, стопы, голени и т.д.)

— придать средним точкам начальный импульс поступательного движения (то есть подбросить их в разные стороны)

/* конец команды */

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

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

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

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

Собственно вопрос: сколько сейчас в России стоит создание полноценной игры? Ну, и на Западе соответственно? А то все эти умозаключения — “у нас дешевле, чем у них” — крайне интересны, но не применимы на практике. Очень хочется знать, сколько конкретно? В тысячах долларов. Также интересно, какая должна быть прибыль от игры, чтобы окупить затраты. Если не трудно, ответьте, пожалуйста.

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

Тем не менее попробую ответить максимально конкретно. Начнем с денег, которые необходимо потратить на разработку.

В России в отличие от Запада относительно неплохую, “средненькую”, как принято выражаться, игру — даже не shareware и вне зависимости от жанра — можно начинать делать, рассчитывая на затраты от 100-150 тысяч долларов. Чтобы уж точно уложиться, надо запастись 200-250 тысячами вечнозеленых. Сравните с западными ценами, где на игры подобного уровня тратится в среднем миллион-полтора и больше тех же долларов. Оценили разницу?!

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

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

Что касается shareware-проектов, то тут разработчики обычно оперируют значительно меньшими суммами. На одну качественную “шаровару” в отечестве можно потратить в районе 40 тысяч долларов, и выйдет неплохо.

Надеюсь, достаточно конкретно ответил. Теперь перейдем к мини-вопросу, касающемуся прибыли, окупающей или не окупающей любой игровой проект. Здесь мы и Запад тоже мало похожи. В США, например, да и во многих странах Европы, принято руководствоваться “правилом тройки”. Если игра не принесла в три раза больше потраченных на нее денег, то она считается неуспешной, а судьба разработчиков напрямую зависит от желания издателей иметь дело с “ребятами, делающими убыточные проекты”.

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

Получается, что мегауспешная игра у нас, в России, — это практически провальный проект на Западе. Причем это вовсе не означает, что подобную отечественную игру не возьмутся издавать за рубежом. Когда игра уже готова, то на вопрос прибыли западные издатели смотрят уже совсем по-другому. В этом случае и 30% навару считается неплохим показателем. Но не на стадии разработки игры. Вкладывать деньги в проект, не способный троекратно себя окупить, западный издатель не станет.

Можно еще долго рассказывать, как рассчитывается бюджет проекта, как заранее оценить, сколько денег можно получить на его продаже (это, пожалуй, самый простой этап)… Но это уже тема для отдельной статьи или для нескольких вопросов в “Горячую линию”. Будет интересно — задавайте. Обязательно ответим.

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