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

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

(Различия между версиями)
Перейти к: навигация, поиск
Версия 21:35, 8 июня 2007 (править)
Empro (Обсуждение | вклад)

← К предыдущему изменению
Текущая версия (11:55, 25 июля 2007) (править) (отменить)
BAC9-FLCL (Обсуждение | вклад)

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

Текущая версия

Содержание

О модифицировании игры

Выход долгожданной игры ознаменовался скандалами и возмущением общественности большим количеством убранного из игры.

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

Итак, что же мы имеем?

Звуки

Звуки в игре записаны в формате ogg. Хочу заметить, что OGG Vorbis является признанным игровым форматом звука.

Проблем со звуком вообщем-то не возникает. Если Вы пользуетесь редактором звука, который не поддерживает OGG Vorbis, для Вас существует множество платных и бесплатных конвертеров.

Видео в игре также в формат Vorbis, расширения видео файлов - OGM. Для просмотра видео рекомендую Media Player Classic и CCCP Codec Pack (сайт проекта).

Текстуры

Текстуры в игре имеют формат DDS (Direct Draw Surface). Для их редактирования рекомендую Adobe Photoshop CS 8.0 и NVidia Developer's Photoshop DDS Plugins (скачать его можно здесь).

При этом учтите следующее:

  • Вы можете использовать сторонние конвертеры. К таким относится Lister Total Commander, который умеет сохранять и просматривать DDS текстуры в других форматах. Это расширенная сборка Total Commander'a (платный файловый менеджер Кристиана Гислера) версии 6.55. Приобрести его можно здесь.
  • Также, Вы можете воспользоваться специальными DDS конвертером. Но при конвертации может исчезнуть альфа-канал текстуры, он очень важен для игры. Поэтому настоятельно рекомендую использовать Photoshop CS 8.0 с плагинами.

Внимание! После работы в Photoshop над тестурами, при сохранении не забудьте отметить пункт "Alpha Channels" и в открывшемся окне (после нажатия на кнопку "Сохранить"), выберите режим "DXT5 ARGB 8 bpp | interpolated alpha".

Также, в папке с игрой есть дополнительные текстуры с приписанным в конце имени файла словом "bump". Это бамп-карты текстур, используемые для придания модели некоторой объемности, которую ещё называют "псевдорельефностью".

Бамп-карты текстур используются только при игре на втором рендере (динамическое освещение, то есть DirectX9-рендер.

Модели

Следующий немаловажный компонент игры - OGF модели.

Модели расположены в папке meshes.

Они содержат в себе информацию о материале, анимации и саму модель предмета. Изменить текстуру модели реально при помощи WinHEX - путь к текстуре находится в первых строчках файла.

Для просмотра моделей незаменимой утилитой является OGF Viewer (сайт) от batya. На данный момент возможен только просмотр и конвертирование моделей в формат obj.

При использовании OGF Viewer необходимо задать путь к текстурам в конфигурационном файле, который лежит в папке с программой.

Уровни

Следующим компонентом игры являются игровые уровни. Уровни можно разделить на мультиплеерные и сингловые.

MP-уровни отличаются от уровней одиночной игры отсутствием некоторых компонентов и несколько иной структурой/набором файлов. Например, на мультиплеерных уровнях отсутствует координатная сетка для A-Life.

Перед релизом бета-версии SDK (Software Development Kit от GSC Game World) я несколько недель тестировал его и сделал несколько печальных выводов.

Во-первых, при помощи MP-SDK невозможно не только редактировать, но и даже просматривать уже откомпилированные уровни. Дело в том, что MP-SDK требует исходников уровней. К тому же, пора прекращать мечтать о SDK и выкрикивать: "Дайте мне СДК я вам новое оружие сделаю и движок поменяю!!!". MP-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'у разобран. И им же была написана специальная программа xrSpawner для спауна динамических объектов.

Дополнительно

Кроме файлов спауна в директории gamedata также присутствует папка с шейдерами, папка с анимациями камеры, папка с некоторыми файлами A-life и несколько файлов в формате xr.

В файле gamemtl.xr лежат настройки материалов, текстур и hit_fx эффектов. В режиме HEX файл более или менее читаем.

И последнее. Не пробуйте искать где указаны классы типа AI_CROW. Все классы существ находятся в xrGame.dll и попытки извлечь их или изменить бессмыслены.

Авторы

Статья создана: Empro

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