Digs - Персональная территория

Авторский проект Артема Глазкова
? 
        Версия для печати (цвет)  





PAK-файл

    В стандартной поставке игры (регистрированной) имеются два файла с расширением pak. В этих файлах содержатся все ресурсы используемые Quake'ом: описания уровней, модели предметов и монстров, оформление меню и строки статуса и т.д. Для работы с файлами в данном формате было уже написано много программ. Я предпочитаю PakExplorer. Он не является самым мощным, но маленький и достаточно удобный. Скачайте его и попробуйте поработать. Там все просто. Используйте его как обычный проводник в Windows.

    Для тех, кто любит сам "ручками" извлекать ресурсы, я написал описание формата.

    Теперь разберем файлы которые включены в эти два файла. Почему файла два? pak0.pak поставляется с любой версией игры, а pak1.pak только с регистрированой. Объясню чего нет в регистрированной версии. Там только один сценарий и нет некоторых монстров, и последнего оружия. Вот именно они (монстры, оружие) и отсутствующие сценарии содержатся во втором файле.
   
    Далее я не буду упоминать, какой мной описываемый ресурс в каком из этих файлов хранится.

    Следует сразу заметить, что если движок не находит нужного файла в ресурсах, он смотрит в каталог текущей игры (по имолчанию id1) и пытается найти там. Например, файлы карт уровней, в ресурсе, содержатся в папочке maps. Поэтому если некоторая карта найдена не была, Quake начинает искать ее в папке id1\maps.

    Заглянем в корень. Там находим progs.dat. Этот файл содержит описание сценария. На нем я отдельно останавливаюсь в соответствующем разделе.

    Далее demo1.dem,demo2.dem, demo3.dem - файлы демонстрационнных роликов, которые включаются на показ по циклу при старте игры. Вот первое применение PakExplorer: пишем свою демку, переименовываем например в demo1.dem и затаскиваем в ресурс. Теперь при старте будет показываться ваша демка.

    Файл quake.rc - текстовый. Содержит последовательность запуска файлов конфигурации, а также старт демонстрационнных роликов.

    default.cfg - содержит настройки по умолчанию. Согласно содержимому quake.rc он запускается раньше autoexec.cfg и config.cfg.

    gfx.wad - Файл в формате WAD2. Содержит всевозможную двумерную графику для отображения в строке статуса, шрифты консоли и многое другое.
 
    end1.bin,end2.bin - Эти файлы содержат текстовую информацию о фирме изготовителе игры. При чем, информация записана в "закодированном" виде. Кодировка такая: первый символ информативный, второй либо просто так, либо это какой-то текстовый атрибут (а может что еще). Если кому интересно, что там конкретно, напишите програмку, по удалению каждого второго символа.

    Лезем глубже. Папка GFX. В файлах с расширением lmp, за исключением трех файлов (palette.lmp, pop.lmp,colormap.lmp), скрываются двумерные битовые массивы.

    MAPS - содержит карты уровней. Они имеют расширение bsp. Стандартные уровни игры находятся в файлах start.bsp, end.bsp, eXmY.bsp, где X - номер сценария и Y - номер уровня в этом сценарии. Также имеется шесть уровней от dm1.bsp до dm6.bsp - это уровни для сетевой игры. Остальные файлы данной папки содержат модели для некоторых элементов игры (например, для ExplodeBox).

    Файла с расширением bsp большей частью двоичные, но там есть и информация о классах (а точнее их экземплярах) которые используются на уровне. Этим классам отдельная страничка. Для того чтобы визуально "пощупать" эти классы, откройте этот файл в любом просмотрщике и найдите строку classname.

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

    Каталог SOUND содержит звуки в формате wav. Можно при помощи PakExplorer вытащить оттуда звуки, а также можно их заменить на свои (например заставить Shambler'а материться на русском языке).

© 2005-16, Powered By Digs (Написать письмо, vk)