19 декабря 2006
Обновлено 17.05.2023

Fallout 3 за 3 часа. Создание новой игры во вселенной Fallout

Fallout 3 за 3 часа. Создание новой игры во вселенной Fallout - изображение обложка

Избранный в который уже раз шел по мрачным коридорам старого храма. Плечи широко расправлены, шаг ровный, взгляд перед собой. Все ловушки и растяжки давно известны: Избранный был в этом храме уже несколько десятков раз. Поворот, еще поворот… Маленькая площадка, освещенная тусклым фонариком. В дальнем левом углу стоит корзина. Опа! А ее-то он раньше не замечал. Какая незадача. И что это, интересно, за белый сверток так вызывающе выпирает из груды мусора? Ага! Взрывпакет. Уж не им ли надо взорвать ту поганую дверцу на другом конце карты пустоши?..

Пятнадцать минут спустя. Уложив заряд и поставив таймер на десять секунд, Избранный что было сил бросился бежать. Но взрывчатку, пролежавшую полвека в сырости и полумраке, что-то замкнуло, грянул взрыв… Ну, слава богу, что хоть не убило. Хм, а чья это тень нависает из дверного проема?

Из дыры в стене вальяжной походкой вышел боец Анклава и смачно сплюнул на пол: «Ну что, старик, не ждал? Думал, тут финальный ролик? Опаньки! Сюрприз». С этими словами он скинул с плеча мощную гаусс-винтовку и, наведя спиралевидное дуло на Избранного, спустил курок. Последняя надежда на спасение деревни стекла по стенам кровавыми ошметками.

Изменим мир

За восемь лет, прошедших с момента выхода Fallout 2 , игра так и не получила продолжения. Был Fallout Tactics , но он оказался чистой воды тактикой. Interplay дала добро на начало работ над Fallout 3 , геймеры по всему миру, можно сказать, замерли в предвкушении… И тут — как гром среди ясного неба: Black Isle прекратила существование. Без объяснения причин и без предупреждения Interplay уволила практически всех сотрудников студии.

Фанаты вселенной Fallout по всему миру как вдохнули, так до сих пор не могут выдохнуть. Но вы, дорогие наши читатели, можете начинать потихоньку выдыхать через плотно сжатые зубы. Если никто не хочет делать третий «Фол» за нас (точнее, его делает Bethesda , но как-то уж очень неспешно), то мы… сделаем его сами. Да-да, вы не ослышались и не очитались. Наша гвардейская операционно-программистская артель провела детальное изучение игрового движка Fallout 2 — и оказалось, что при умелом выращивании рук из нужных мест на его основе вполне можно написать совершенно новую игру. Новый Fallout. Если хотите — Fallout 3. Движок, конечно, останется старым — двухмерным, но все остальное…

Более того, нам, например, удалось сделать вполне играбельную модификацию всего за три часа (если быть до конца откровенным, то за три с хвостиком). Конечно, заменить получилось не всю игровую графику (а можно и всю), не все диалоги переписать (а можно и все), но геймплей поменялся коренным образом. Только вдумайтесь: всего три часа работы с кодом и графикой — и вот уже готов новый Fallout! Так не будем же терять ни минуты — приступим к детальному препарированию.

Новый сюжет

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

Все тексты игры хранятся в MSG-файлах, они раскиданы по подкаталогам в директории Text\ English. Подкаталог Cuts содержит подписи к заставкам (например, когда ваш персонаж погибает). Подкаталог Dialogs — диалоги персонажей. Подкаталог Game — файлы с описанием оружия, меню, вещей, фраз, выкрикиваемых в бою. Редактировать можно только строчки типа {Номер фразы}{}{Фраза} , причем Номер Фразы менять нельзя. Пример: {100}{}{Вы видите табличку с надписью: Вася Пупкин был здесь!}.

При редактировании описания оружия не забудьте дать новые названия и характеристики тем стволам, в которые вы превратили ножи и копья.

Изменяя параметры, прописанные в файлах с расширением *. msg , несложно полностью переписать характеристику стволов, изменить диалоги персонажей — чтобы переписать все диалоги, потребуется несколько недель усидчивой работы, но это возможно. Значительно проще переписать реплики, выкрикиваемые героями игры в бою. Дикарское « Эх, зарублю! Перун-батюшка! » довольно забавно смотрится во время атаки ножом бойца Анклава.

Ружья наперевес

Чтобы можно было свободно оперировать с игровыми файлами, нужно провести полную инсталляцию Fallout 2 — 675 Мб. В каталоге игры нет ни одного распространенного формата файлов. Изменение «внутренностей» игры было бы невозможным, если бы команда TeamX не разработала утилиту Datexpl , умеющую распаковывать DAT-архивы. С помощью Datexpl, которую можно взять с нашего DVD ( из раздела «Игрострой» ) , нужно открыть в корневом каталоге игры и распаковать архивы Critter. dat , Master. dat и Patch000. dat. Когда распаковка закончится, сотрите архивы с диска, иначе все вносимые изменения в распакованные файлы будут уничтожены при первом же запуске игры.

После распаковки в каталоге с игрой появятся папки Art , Data , Maps , Premade , Proto , Scripts , Sound , Text. Каталог Art содержит графику и анимацию. Каталог Data — некоторые игровые тексты в формате *. txt. В каталоге Maps находятся карты и триггеры. В Premade лежат заготовки характеристик и описания главных героев. В папке Proto содержится информация о характеристиках вещей и оружия. В Scripts находятся игровые скрипты. В Sound — звуковое оформление. Каталог Text хранит в себе игровые диалоги.

Нас больше всего интересуют каталоги Art , Data , Proto и Text. Без соответствующего редактора звук изменить не получится: нет утилит, способных сохранять аудиодорожку в формат игры. Соответствующий редактор — недавно вышедший Fallout 2 Mapper — тема для отдельного разговора, который, скорее всего, состоится в одном из ближайших номеров «Игромании».

Добавим красок

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

В процессе запуска игры мы видим одну из шести картинок (так называемые Splash Screens): то дикаря в шлеме, то платформу Анклава, то еще какое-то изображение. Эти арты можно заменить. Находятся они в каталоге Art\ Splash. Имена у картинок такие: SplashY . RIX , где Y — число от 0 и до 6. Для работы с RIX- файлами существует две программы. Rix 2 Bmp конвертирует картинки из RIX в BMP , а Bmp2 Rix — наоборот. Обе программы можно взять с нашего DVD. Первая работает из командной строки: Rix 2 Bmp ИмяФайла. RIX ИмяФайла. BMP. Имя файла лучше не менять.

Извлекаем картинки из архивов и подбираем арт, наиболее подходящий под сюжет новой игры. Скажем, что-нибудь с большим количеством растений и животных. После окончания работ с картинками их нужно сохранить обратно в RIX-формат. Для этого нам понадобится утилита Bmp2Rix. Она работает только с 256-цветными изображениями и только в разрешении 640x480 . Интерфейс программы состоит всего из двух кнопок — Open и Save. Нажимаете Open , выбираете нужный BMP-файл. Если в верхнем поле появилась/изменилась надпись, значит, картинка соответствует всем требованиям. Нажимаете Save. Картинка в формате RIX готова. Она лежит в том же каталоге, что и исходный BMP-файл.

Вся остальная графика игры лежит в формате FRM. Для работы с ним есть две утилиты: FrmCon 20 и Frm 2 Bmp (вы уже догадываетесь, где их брать). Первая очень медленная и имеет очень простой интерфейс. На второй следует остановиться подробнее. В ее комплект входят две программы: Frm 2 Bmp (конвертирует FRM в BMP ), Bmp2 Frm (конвертирует BMP в FRM ). Обе программы работают с командной строки. Для Frm2Bmp она выглядит так — Frm 2 Bmp ИмяФайла. FRM. После выполнения команды в каталоге появятся два файла: ИмяФайла . BMP — само изображение, ИмяФайла . INF — необходим для конвертирования картинки обратно в FRM.

Редактируем изображение и возвращаем обратно в FRM-формат следующим образом: Bmp2 Frm ИмяФайла. BMP. Программа Bmp2 Frm не умеет создавать FRM-файлы, содержащие несколько изображений. Этим и объясняется, почему нельзя перерисовывать изображения персонажей, которые состоят из нескольких фаз анимации.

В папке Backgrnd лежат фоны, которые отображаются при разговоре с персонажем, например с такими, как Sulik (Сулик). В каталоге Critters находится графика персонажей. К сожалению, внешний вид персонажей редактированию не поддается, зато можно подменять одних персонажей другими.

В папке Heads находится анимация лиц персонажей, которая бывает задействована в процессе разговора. В Intrface лежат все меню и курсоры в BMP-формате. Можно загрузить картинки в любой графический редактор и перерисовать.

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

В директории Items находятся изображения шкафов, тумб и прочих предметов быта. Если вы делаете «постпостъядерную» модификацию, то ржавчину с них надо снять в Photoshop , а можно и вовсе перекрасить всю мебель в яркие цвета. Для этого даже не нужно каких-то особых навыков художника. Просто открываете изображения в графическом редакторе и закрашиваете текстуры равномерным цветом.

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

В каталоге Scenery находятся самые разные объекты — от дверей до компьютеров. Обратите внимание, что перерисовка мелких деталей интерьера не сильно изменяет облик игры, а вот времени на переделывание маленьких текстур уходит порядком. При этом достаточно переделать тайлы ландшафта (нужно-то всего полчаса) — и Fallout будет не узнать.

Особое внимание следует уделить папке Skilldex , где находятся знаменитые фоллаутовские комиксы. Если уж создавать новую игру, то и их нужно перерисовывать. Но это уже работа для настоящего художника.

И самое важное! В папке Tiles лежит графика ландшафта: песок, радиоактивные помои, горы… Раз уж мы собрались озеленять мир Fallout, то песок заменим текстурами травы. Важно, чтобы тайлы были бесшовными. То есть при помещении рядом друг с другом давали сплошную картинку, а не «мир в клеточку». Некоторые игры поддерживают сглаживание межтайловых стыков, но в Fallout 2 подобной технологии нет, так что травку придется «подгонять». Рисовать текстуры самому необязательно, можно взять их из других игр (вы ведь делаете некоммерческий проект).

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

Режимы атаки

None — атаки нет

Punch — оружие, которым бьют в упор

Swing и Thust — бластер

Throw — метательное оружие

Shoot — одиночный выстрел (огнестрельное)

Burst — очередь

Flame — огнемет

Последний герой

Внешний вид игры изменен до неузнаваемости. Пришло время создать новых персонажей. Если мы не можем перерисовать графику героев игры, то изменить их характеристики или вообще удалить персонажей нам никто не мешает. Останутся ли в игре гхолы и мутанты или же их место займут суперкрысы с броней более прочной, чем у воинов Анклава, — решать вам. Например, в нашей модификации Сулик стал профессиональным воином, облачился в кожаную броню и теперь защищает города от нападений инопланетян. А Вик, получив отравление от укуса гека, вскоре сам превратился в некое подобие гека, сохранив при этом умение разговаривать. Мутанты были изгнаны с территории США. Гхолы стали нормальными доброжелательными существами…

Параметры персонажей находятся в каталоге Data , в файле AI. txt. Несмотря на название, файл отвечает не только за искусственный интеллект противника, но и за все характеристики. Он разбит на блоки, разделяемые пустой строкой, каждый блок отвечает за конкретного персонажа. Рассмотрим общий пример: [Имя Класса] или [Имя Персонажа] показывают, какому персонажу/классу персонажей принадлежат данные характеристики. Менять данные таких строк нельзя, а все, что находится ниже них, можно.

Классы

Если персонаж может присоединиться к главному герою игры, то для него должны указываться следующие классы: [ PARTY Имя Персонажа AGGRESSIVE] , [ PARTY Имя Персонажа BERSERK] , [ PARTY Имя Персонажа COWARD] , [ PARTY Имя Персонажа CUSTOM] , [ PARTY Имя Персонажа DEFENSIVE] — это пять типов поведения персонажа в бою. Агрессивный режим означает, что персонаж дерется до последнего. Режим берсерка — персонаж наносит больше ударов и при этом меньше передвигается. Режим труса — при получении ранения персонаж начинает убегать. Оборонительный режим — в этом режиме персонаж держится ближе к главному герою.

Очередь в живот

Следом за классом идет описание характеристик. Самые важные из них: aggression= X — вместо X ставится число; чем оно больше, тем опаснее для противника будет персонаж в бою. area_ attack_ mode режим стрельбы очередями. Возможные значения: no_ pref — персонаж не стреляет очередями, always — персонаж стреляет только очередями, sometimes — персонаж будет изредка стрелять очередями, be_ sure — персонаж будет стараться не попадать по своим союзникам, be_ absolutely_ sure — персонаж будет стрелять очередью, только если на линии огня не будет его союзников.

Прикрой меня!

В параметрах attack_ end и attack_ start прописаны числа — из них в начале боя будет выбрано случайное значение и персонаж выкрикнет фразу под этим номером из файла Text\English\Game\Combatai.msg.

Все параметры персонажа, заканчивающиеся на _ end и _ start , определяют фразы, которые персонаж должен выкрикнуть в той или иной ситуации. Например, hit_ eyes_ start устанавливает некоторый набор чисел — из него будет выбран номер фразы про ранение в глаз.

Атака

Параметр attack_who определяет приоритет персонажа при выборе основного противника. Возможные значения: whomever_ attacking_ me — персонаж бьет того, кто бьет его, strongest — выбирает врага посильнее, weakest — выбирает врага послабее, whomever — выбирает случайного противника, closest — выбирает ближайшего противника.

В best_ weapon записывается любимое оружие, используемое персонажем в бою. Возможные значения: no_ pref — персонаж не может драться вообще, never — не использует оружия, random — использует все подряд, unarmed — дерется кулаками, ranged_ over_ melee — использует оружие ближнего боя (ножи, копья и кастеты), melee_ over_ ranged — огнестрельное оружие и бластеры.

В параметре body_ type описывается стиль перемещения. В частности, по какой траектории персонаж приближается к цели, как часто произвольно переходит на бег и так далее. Просто перечислим возможные значения параметра. Описывать каждый тип поведения — неблагодарное занятие, слишком на многие характеристики он влияет. В большинстве случаев смысл понятен из названия: Primitive , Wimpy Person , Punk (SF) , Berserk Person , Tough Person , Boxe r, Normal Person , Robot , Junkie , Elron , Ghoul , Kaga , Raider (Khan) , Raider (Non-Khan) , Gangster , Shi , Super Mutant , Goris , Miron , Marcus , Lenny , Cassidy , Robo Brain , Sulik .

Ударь меня нежно

В параметр called_freq записывается значение от 0 до 1000 000 , обозначающее частоту выкрика различных фраз во время боя. Чтобы противник не кричал вовсе, поставьте 0. Если прописать 100 000, противник начнет захлебываться слюной, неся полную околесицу.

Параметр chance (принимает значение от 0 до 35 ) показывает долю вероятности того, собьет персонаж с ног своего противника (критический удар) или нет.

В chem_primary_desire через запятую указываются предметы допинга (алкоголь, наркотики), которые персонаж может употреблять во время боя. Если персонаж не злоупотребляет допингом, то у него будет стоять значение -1.

Параметр chem_use показывает, как часто персонаж использует допинг во время боя. Возможные значения: clean — не использует допинга, sometimes — изредка использует, stims _ when_ hurt_ little — использует допинг, когда получит легкое ранение, stims _ when_ hurt_ lots — использует, когда получит тяжелое ранение, anytime — в любое время может использовать допинг (случайным образом), always — персонаж будет вкалывать себе наркоту, как только она окажется в его заплечном мешке.

Не подходите ко мне близко

Параметр Distance указывает на расстояние между персонажем и его противником во время боя. Возможные значения: random — дистанция выбирается случайным образом, charge — заставит персонажа постоянно менять позицию, on_ your_ own — зависит от типа поведения персонажа (например, берсеркер будет держаться как можно ближе), stay — персонаж будет стоять, пока к нему не подойдут, stay_ close — встанет ближе к врагу, snipe — отойдет от противника на максимальную дистанцию стрельбы.

Один из самых важных параметров — general_type — содержит информацию о том, как выглядит тот или иной герой игры. Мы не можем перерисовать текстуры персонажей, зато никто не мешает нам заменять самих персонажей. Как вам идея поиграть за короля крыс? Или за гхола? А можно в качестве противников выставить бывших собратьев по оружию. Даже гекков несложно заменить на воинов Анклава. Представляете, вы входите на поле, где пасется целое стадо головорезов в стальной броне, и начинаете методично их отстреливать из снайперки… чтобы шкурок насобирать. Возможные значения параметра: Badger , Berserk Person , Bounty Hunter , Boxer , Cassidy , Chip , Crazed Robot , Cyberdog , Dragon (The) , Elron Guards , Gangster , Ghoul , Goris , Guard (Normal) , Guard (Tough) , Junkie, Kaga (1) , Lenny , Lo Pan , Marcus , Myron , None , Normal Person , OZ-7 , OZ-9 , Primitive , Raider , Raider Captain , Raider Mercs , Rat God , Robot , Ryan , Shi Guards , Sulik , Super Mutant (Master Army) , The Brain , Tough Person , Wimpy Person.

Отстрелите руку, отстрелите ногу

Переменная hurt_too_much указывает на повреждения конечностей, после которых персонаж не сможет продолжить бой (получит критическое ранение). Возможные значения (могут идти через запятую): crippled — любая часть тела, blind — повреждение отняло больше половины здоровья, crippled_ arms — повреждение обеих рук.

Параметр Р acket_num показывает количество боеприпасов, находящихся у персонажа в инвентаре. Значение — от 0 до 186.

За вероятность побега персонажа с поля боя отвечает параметр run_away_mode. Он может принимать следующие значения: none — персонаж убегает сразу после начала боя, coward — убегает после первого выстрела в его сторону, finger_ hurts — делает ноги при любом ранении, bleeding — бежит при ранении средней тяжести, not_ feeling_ good — драпает при тяжелом ранении, tourniquet — улепетывает при критическом количестве здоровья, never — никогда не отступает, умирает смертью храбрых.

Типы повреждений

Normal — от огнестрельного оружия

Laser — от лазера

Fire — от огня

Plasma — от плазмы

Electrical — от электричества

EMP — от ударов

Explosion — от взрыва

Пистолеты с подствольником

Прогресс не стоит на месте. За время восстановления природного баланса в игровом мире какое-то примитивное вооружение было отправлено в музеи, а ему на смену пришли новые, более мощные виды оружия. Описание характеристик каждого ствола — в том числе внешний вид, дальность атаки, необходимые боеприпасы — хранятся по адресу Каталог игры\ Proto\ Items. Все характеристики закодированы в PRO-файлы, для работы с ними вам понадобится программа Fime (ждет вас на нашем DVD ).

Загружаем программу, нажимаем на Open , в появившемся окошке слева указываем каталог Proto\ Items , в окошке справа появится список предметов. Выбираем самое примитивное оружие (которое в игре будет заменено на новое), например нож ( Knife ), выделяем его в списке и жмем на Open — появится масса параметров.

Вот полный перечень атрибутов, поддающихся редактированию. Weight — вес предмета. Price — цена, по которой предмет продается на легальном рынке. Inven Frame — картинка, изображающая предмет в инвентаре. Ground Frame — картинка, изображающая предмет, когда он лежит на земле. Min DMG — минимальное повреждение, которое можно нанести данным объектом. Max DMG — максимальное повреждение. Strength — минимальное количество силы, которое должен набрать персонаж для использования оружия. At Mode — первый режим атаки (описание типов атаки смотри на отдельном текстовом блоке). At Mode2 — второй режим атаки. Mode1 Range — дальность стрельбы при первом режиме атаки (исчисляется в шагах). Mode2 Range — дальность стрельбы при втором режиме атаки. Burst Round — количество патронов, выстреливаемых одной очередью. Mode1 AP — количество очков действия для выполнения первого режима атаки. Mode2 AP — количество хит-пойнтов, необходимых для выполнения второго режима атаки. Ammo Type — тип патронов используемых оружием. Default Ammo — какими патронами изначально заряжено оружие. Hold Frame — моделька оружия, которую держит в руках персонаж, когда не сражается (герой может держать маленький ножик, трансформирующийся в бою в мощнейшую плазменную винтовку).

Firing Frame — моделька оружия, которую держит в руках персонаж во время сражения. Можно сделать так, чтобы персонаж стрелял гранатами, допустим, из «Магнума». Dmg Type — тип повреждения, наносимого противнику этим оружием (смотри отдельный текстовый блок, где приведены все значения). Ammo Capacity — вместимость обоймы (количество патронов). Fire Sound ID — звук выстрела (порядковый номер звукового файла).

Программа умеет редактировать не только оружие, но броню, допинг и обычные вещи (их редактирование будет описано во второй части статьи).

Только вообразите. Главный герой игры вышагивает в легкой, как кожанка, прочной, как титановый сплав, и устойчивой к радиации и кислоте броне. В заплечном мешке пара стимпаков, каждый из которых полностью восстанавливает жизненную энергию. Через плечо переброшена снайперская винтовка, способная вести прицельный огонь в основном режиме, а в альтернативном работает как огнемет и гранатомет одновременно. За поясом — пистолет-единичка, в альтернативном режиме выстреливающий по двадцать патронов за выстрел и совсем не расходующий хит-пойнтов.

* * *

В одном из ближайших номеров «Игромании» мы продолжим изменять постъядерный мир Fallout и проведем еще более кардинальные изменения в геймплее. Причем сделаем это как прямой правкой игрового кода, так и при помощи недавно обновленного редактора карт Fallout 2 Mapper.

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

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