Теория модостроения

Материал из Mod Wiki.

Версия от 12:39, 8 июня 2007; Empro (Обсуждение | вклад)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

Выход долгожданной игры ознаменовался скандалами и возмущением общественности большим количеством убранного из игры. На фоне вырезанного контента, огромного количества несоответствий игры обещаниям разработчиков стали формироваться моддерские команды. К счастью, разработчики оставили возможность спокойного моддинга. Благодаря распаковщику игровых архивов мы получили полный доступ к ресурсам игры. Сверх того, разработчики оставили в финальном билде 2947 (и билдах после него) высший приоритет распакованной папки gamedata. Итак, что же мы имеем? Мультимедийный контент. Звуки, видео и текстуры. Звуки в игре записаны в формате ogg. Хочу заметить, что OGG Vorbis является признанным игровым форматом звука. Проблем со звуком вообщем-то не возникает. Если Вы пользуетесь редактором звука, который не поддерживает OGG Vorbis, для Вас существует множество платных и бесплатных конвертеров. Видео в игре также в формат Vorbis, расширения видео файлов - OGM. Для просмотра видео рекомендую Media Player Classic и CCCP Codec Pack ( http://cccp-project.net/ ). Текстуры в игре имеют формат DDS (Direct Draw Surface). Для их редактирования рекомендую Adobe Photoshop CS 8.0 и NVidia Developer's Photoshop DDS Plugins ( http://developer.nvidia.com/object/photosh...ds_plugins.html ). При этом учтите следующее: - Вы конечно можете использовать сторонние конверторы. К таким относится Lister Total Commander'а, который умеет сохранять и просматривать DDS текстуры в других форматах. Речь идёт о расширенной сборке Total Commander'a (платный файловый менеджер Кристиана Гислера) версии 6.55. Приобрести можно по адресу http://www.ghisler.com/ . - Также Вы можете воспользоваться специальными DDS конвертером. Но при этом после конвертации может исчезнуть прозрачность! А это очень важно в игре... Поэтому настоятельно рекомендую использовать Photoshop CS 8.0 с плагинами. Внимание! При сохранении не забудьте отметить пункт "Alpha Channels" и в открывшемся окне (после нажатия на кнопку "Сохранить"), выберите режим "DXT5 ARGB 8 bpp | interpolated alpha". Также, в папке с игрой есть дополнительные текстуры с допиской в конце имени файла "bump". Бампы текстур используются для придание модели некоторой объёмности, которую ещё называют "псевдорельефностью". Бампы текстур используются только при игре на втором рендере. Следующий немаловажный компонент игры - OGF модели. Модели расположены в папке meshes. Они содержат в себе информацию о материале, анимации и саму модель предмета. Изменить текстуру модели реально при помощи WinHEX - путь к текстуре в первых строчках файла. Для просмотра моделей незаменимой утилитой является OGF Viewer ( http://www.g3ddev.com/ ) от общепризнанного специалиста batya. На текущий момент возможен только просмотр и конвертирование моделей в формат obj. При использовании OGF Viewer необходимо задать путь к текстурам в конфигурационном файле, который лежит в папке с программой. Следующим компонентом игры являются игровые уровни. Уровни можно разделить на МП уровни и уровни сингла. МП уровни отличаются от уровней сингловой игры отсутствием либо разной структурой и содержанием файлов уровня. К примеру, на мультиплеерных уровнях отсутствует сетка ИИ. Перед релизом бета-версии SDK (Software Development Kit от GSC Game World) я несколько недель тестировал его и сделал несколько печальных выводов. Во-первых, при помощи SDK невозможно не только редактировать, но и даже просматривать уже откомпилированные уровни. Дело в том, что SDK требует исходников уровней. К тому же, пора прекращать мечтать о SDK и выкрикивать: "Дайте мне СДК я вам новое оружие сделаю и движок поменяю!!!". SDK - всего лишь маппер для мультиплеера. Возможно, будет маппер и для сингловой версии игры, но исходников уровней от GSC Game World даже и ждать не стоит. Уровни из сингловой версии игры можно портировать под мультиплеер. Алгоритм действий: скопировать содержание папки уровня в новую папку с именем типа mp_yantar. Удалить файлы level.game, level.ai, level.som. Скопировать level.game из любой мультиплеерной карты и вставить в переделываемую карту. Открыть конфигурационный файл config\mp\maplist.ltx и добавить карту в список. Скрипты. В игре широко используются скрипты. Многие из них - тестовые и являют собой мусор, но никогда нельзя точно знать, где используется скрипт. В скриптах используется язык LUA. Язык не очень сложный, с помощью него можно многое делать, в том числе и спаунить (от англ. "spawn" - размещать на карте) объекты. К тому же, скрипты можно вызывать в spawn-файле, о нём подробнее. Другая, немаловажная часть игры - конфигурационные файлы. Открываются обычным "Блокнотом", представлют собой набор параметров и их значений. Про них подробнее. В игре существуют конфигурационные файлы существ, мультиплеера, погоды, оружия, объектов, геймплея, моделей, конфигурационные скрипты и конфигурация интерфейса. Также существует множество других конфигурационных файлов. О некоторых из них подробнее. Конфигурации существ - одним из самых важных конфигурационных файлов является actor.ltx. В нём заданы параметры актора - главного героя игры. На его примере рассмотрим структуру конфигурационного файла. [actor] - пример entity. Конфигурацию актора вызывают при помощи названия entity. В данном случае - actor. В других конфигурационных файлах мы можем найти пример ссылки на entity. Например: [burer_arena]:m_burer_e В данном случае существо "burer_arena" ссылается на существо "m_burer_e" и является его прототипом. Также могут быть и ссылки на entity, обозначающей набор параметров. Например: damage = m_burer_damage Комментарии в ltx файлах начинаются с символа ";". Также очень интересна система так называемых инклудов. Инклуд обозначается строкой "#include "имя_файла.ltx"" Инклуды означают, что в файл, в котором написана вышеуказанная строка, вставляется содержание файла, указанного как аргумент к функции #include. Получается так, что конфигурационные файлы монстров (к примеру) объединяются в файле monsters.ltx, файлы сталкеров - в stalkers.ltx. А файлы monsters.ltx, stalkers.ltx и все остальные файлы объединяются в файле system.ltx, в котором прописано около 20 инклудов. Таким образом, всё содержание ltx-файлов объединено в system.ltx. Помните - когда создаёте новый конфигурационный файл - не забудьте вставить его методом инклуда в общий конфигурационный список в system.ltx. Последнее, о чём пойдёт речь - папка spawns. В ней расположен файл all.spawn. В этом файле обозначены почти все динамические объекты, которые содержатся в игровой Зоне. Это и монстры и сталкеры, это и приёмник "Горизонт" на столе у торговца и ящик рядом с блокпостом. Формат спаун-файла долго разбирался специалистами и благодаря товарищу Zeed'у разобран и им же была написана специальная программа ( http://www.gameru.net/forum/index.php?act=...135#entry492221 ) для спауна динамических объектов. Примечание: если почитать тему дальше, есть ссылки на более новые версии программы с важными исправлениями. Кроме файлов спауна в директории gamedata также присутствует папка с шейдерами, папка с анимациями камеры, папка с некоторыми файлами A-life и несколько файлов в формате xr. В файле gamemtl.xr лежат настройки материалов, текстур и hit_fx эффектов. В режиме HEX файл более или менее читаем. И последнее. Не пробуйте искать где указаны классы типа AI_CROW. Все классы существ находятся в xrGame.dll и попытки извлечь их или изменить бессмыслены.

Empro.

Личные инструменты