Игрострой
Зомби 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 — располагается в секции
Интересных результатов можно добиться, модифицируя значения параметров 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 обещают упразднить всю эту возню с настройками и добавить возможность выбора нужных модов прямо из главного меню.