27 марта 2010
Обновлено 17.05.2023

Игрострой

Игрострой - изображение обложка

Зомби c соседней улицы

Вскрываем и модифицируем Zombie Driver

Zombie Driver — весьма далек от совершенства (см. нашу рецензию на эту игру в позапрошлом номере журнала). Но только не для человека, который хочет научиться вскрывать и модифицировать игры. С этой точки зрения ZD — одна из лучших игр, вышедших за последние полгода. Без всяких знаний программирования, сложных трехмерных редакторов и множества других хитрых программ любой человек может посмотреть, как устроены внутренности игры, и узнать, какими способами их можно видоизменять.

Так что в рамках этой статьи мы будем рассматривать Zombie Driver не как посредственную аркаду, а как превосходный полигон для модотворчества.

Открыто, входите

Архивы игры представлены обычными ZIP -файлами, текстуры — изображениями форматов PNG и DDS , а аудиокомпозиции — OGG -файлами. Основная доля вкусностей приходится на увесистый архив Pak0.zip из директории \Packs. В нем хранятся все используемые в игре шрифты ( \Fonts ), текстуры и материалы ( \Materials ), трехмерные модели ( \Meshes ), системы частиц ( \ParticleSystems ) и скрипты ( \Scripts ). По соседству с каталогом \Packs располагаются еще две достойные внимания папки — \Audio и \Video. Первая включает в себя звуки и музыкальные композиции. Вторая содержит вступительный и заключительный ролики.

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

После этого загляните в директорию \Release и откройте « Блокнотом » конфигурационный файл resources.cfg. Отыщите в документе строку Multi=FileSystem:. ./,Zip:. ./Packs/Pak0.zip и замените ее следующей строкой: Multi= Zip:. ./Packs/Pak0.zip,FileSystem:. ./. С этого момента игра будет отдавать приоритет новым файлам из распакованных директорий, а не тем, что запечатаны в архив Pak0.zip.

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

Игра с параметрами

Давайте попрактикуемся в создании несложных параметрических модификаций для игры — подправим характеристики монстров, оружия, авто. Начнем с транспортных средств. Переместитесь в папку \Scripts\Cars с Zombie Driver (будем считать, что вы уже распаковали архив Pak0.zip) и откройте текстовым редактором произвольный XML -файл — например, taxi.xml. Весь документ поделен на ряд секций и подсекций, заданных специфическими тегами < car>, < physics>, < weapon_attachments></weapon_attachments> и т.д. В этих блоках, в свою очередь, находятся одиночные и парные теги-параметры, между которыми прописаны определенные цифровые значения, к примеру: < passengers_seets value=“4” /> или < radius>0.3. Изменяя их, можно превратить обычное городское такси, скажем, в гоночный болид или в тяжеловесный «танк».

Тег mass из блока **< chassis>**определяет массу кузова и влияет на скорость автомобиля. Чем больше значение, тем меньше машина увязает в мертвых телах. Но при увеличении веса пропорционально снижается скорость автомобиля. И наоборот. Следующая интересная настройка — gravity — располагается в секции и задает уровень гравитации по всем координатным осям. Нулевое и отрицательное значения свидетельствуют о наличии силы тяжести, а вот положительные — о частичном или полном отсутствии притяжения. Подрегулировав значение параметра torque_distribution , прописавшегося в секции < wheel> и отвечающего за распределение вращающего момента между колесами, вы можете ускорить или замедлить авто, не изменяя при этом массу кузова (обратите внимание, что секция в документе далеко не единственная: число данных блоков равняется числу колес транспортного средства).

Интересных результатов можно добиться, модифицируя значения параметров resistance air и resistance ground , учитывающих сопротивление воздуха и земли. Располагаются эти характеристики в группе < thrusters>. Обратите внимание на параметры из категории < params> в конце документа — health value и passengers_seets value. Первый определяет прочность авто, второй задает число посадочных мест.

Следующий пункт назначения — каталог \Scripts\Weapons. Здесь расположены конфигурационные файлы со значениями основных параметров оружия:

maxSpeed value — максимально возможная скорость полета снаряда;

damage value — наносимый урон;

clipSize value — вместимость обоймы;

fireFreqInOneSecond — число выстрелов в секунду (скорострельность).

Если вы откроете «Блокнотом» любой XML-файл из папки \Scripts\Weapons, то увидите, что перечисленные параметры заключены в теги < level1>…, < level2>…, < level3>…. Первый блок содержит набор характеристик, которые применяются к базовому оружию, а вот второй и третий — атрибуты модернизированных стволов (в Zombie Driver предусмотрено два уровня апгрейда для каждого оружия). Когда закончите создание нового оружия, откройте конфигурационный файл \Scripts\GameRules и скорректируйте цены на боевые инструменты.

Вот мы и вышли на финишную прямую: от тестирования мода в игре нас отделяет всего один шаг, осталось лишь поколдовать над характеристиками зомби. Перейдите в директорию \Scripts\Zombies с Zombie Driver и откройте «Блокнотом» абсолютно любой приглянувшийся XML-файл с параметрами зомби (допустим BaseZombie.xml ) — структура всех документов идентична. Разберем основные характеристики:

health value — здоровье мертвяка;

speed — минимальная и максимальная скорость перемещения зомби;

damage value — урон, наносимый монстром спасательной машине игрока;

attackFrequency value — частота атаки;

physicMass value — масса ожившего трупа;

maxRotate value — максимальный угол поворота;

points value — количество очков, начисляемое за уничтожение нежити;

carInterestDistance — минимальное и максимальное расстояние, на котором зомби начинают проявлять интерес к авто;

carSpeedToAttack — минимальная и максимальная скорость машины, провоцирующая врага на нападение:

attackTime1 value , attackTime2 value — продолжительность атаки.

Дистрибьюция модов

В заключение разговора несколько слов о том, в каком виде лучше всего распространять свои модификации. Разработчики Zombie Driver рекомендуют заключать измененные файлы в архивы, полностью сохраняя иерархическую структуру каталогов. Это значит, что если вы изменили, например, файл \Scripts\Car\taxi.xml , то должны включить в архив папку \Scripts, которая, в свою очередь, будет содержать каталог \Car с измененным конфигурационным файлом taxi.xml.

Сразу встает логичный вопрос — а как подсоединить к игре архив с модом? Для этого достаточно поместить свежеиспеченный ZIP-архив в каталог \Packs, открыть «Блокнотом» конфигурационный файл resources.cfg из директории \Release и заменить в настроечном документе строку, начинающуюся с параметра Multi , следующей строкой: Multi=FileSystem:. ./,Zip:. ./Packs/Pak0.zip,Zip:. ./Packs/my_mod.zip , где my_mod.zip — название ZIP-архива с вашей модификацией. В будущем создатели Zombie Driver обещают упразднить всю эту возню с настройками и добавить возможность выбора нужных модов прямо из главного меню.

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