::: QuakerS :::
Каталог статей

Меню сайта

Категории каталога

Doom [0]
DooMed
Quake [0]
Всё о Квэйке Первом
Quake II [2]
about Quake II
Half-Life [0]
HL1
Red Alert 2 [2]
Ra2 & YR
Half-Life 2 [0]
HL2

Наш опрос

Оцените мой сайт
Всего ответов: 204
Главная » Статьи » Game Development » Red Alert 2

Немного о моддинге в мире C&C Red Alert 2 & YR
Немного о моддинге в мире C&C Red Alert 2 & YR
1) Введение.
Для начала хотелось бы сказать пару слов о самой игре. Значит, мы имеем дело с игрой 2000-2001  годов рождения, обладает этот зверёк неплохим двигателем с Main Executable в 4,58мб дискового  пространства, 256-ти цветные палитры для шейповых спрайтов и вокселей, звук в игре представлен в  виде IMA ADPCM формате(типа wav) 22050 Hz, 4 Bit Mono, но как выяснилось позже игра отлично  работает и с 44100 Hz, 16 Bit Mono и даже Stereo!!! Видео в .bik формате, что стало привычно для  игр от EA. Не остается без внимания интересная система хранения игровых файлов и "языковых  библиотек". Уже традиционно для ряда игр серии Command & Conquer вся связанная с игрой информация  считывается с группы .INI файлов при инициализации и при загрузке уровней. И как вы уже наверное  догадываетесь, все эти .INI достаточно просто переписываются под свой лад и любой объект в игре может быть модифицирован, кроме разве что хлама наглухо закодированного в экзешник.. но о этом позже. Также существует ряд вещей которые без определённых знаний в области программирования  простому пользователю недоступны, но к счастью можно для начала обойтись и без них. Ещё к плюсам игры можно занести то, что карты делятся  на времена года, для чего спрайты многих объектов существуют в зимнем,летнем или тропическом варианте(а в Yuri's Revenge были добавлены пустынный и лунный варианты).
   Примечание01:Воксель - это объёмный пиксель, т.е. классический пиксель грубо говоря квадратик, а  воксель это кубик окрашеный со всех сторон одним цветом или другими словами 3х мерный пиксель.
   Примечание02:В Red Alert 2 Yuri's Revenge есть одно правило: Если в названии файла присутствует  окончание "md", то этот файл относится к Юрию, иначе это будет файл обычного Ra2.

2) Как оно есть!
Всё что нужно для стабильной работы игры это:
------------ EXE -----------
game.exe
Ra2.exe
RA2MD.exe
gamemd.exe
Yuri.exe
------------ TLB -----------
Ra2.tlb
Blowfish.tlb
------------ DLL -----------
BinkW32.dll
Blowfish.dll --> обычные динамические библиотеки
DRVMGT.dll
Patchw32.dll
------------ Misc ----------
Хлам. -> Сопутствующие файлы нужные чтоб подкармливать экзешники, в них интересного мало, поэтому я  о них умолчу.
------------ MIX -----------
ra2.mix
ra2md.mix
language.mix
langmd.mix
maps01.mix
maps02.mix
mapsmd03.mix
movies01.mix
movies02.mix
movmd03.mix
MULTI.mix
WDT.mix
multimd.mix
ecache(md)$$.mix
expand(md)$$.mix
Theme.mix
thememd.mix
-------------------------------
Теперь тоже только в подробностях
Ra2.exe - является лаунчером для игры и запускает game.exe, а также служит для некоторых функций обновлений игры.
Game.exe - само сердце игры, тут зашита большая часть информации, а также самый главный файл в игре объединяющий множество других.
RA2MD.exe & Yuri.exe - тоже что и Ra2.exe только для Юры.
GameMD.exe - легендарный gamemd пришедший к нам из прошлого является улучшенным Game.exe(а тот в  свою очередь game.exe из TibSun) именно из этого файла был 'сделан' RockPatch и NPatch, именно этот  файл является и другом и врагом одновременно - всех Ra2 модмейкеров в мире!
Ra2.tlb,Blowfish.tlb - OLE Компоненты.
Далее идёт набор библиотек которые особого интереса не представляют, в основном это компоненты  Game.exe.
Тоже самое можно сказать и о .DAT файлах которыми изобилует директория Ра2.
Далее у нас в списке .mix файлы. Mix'ы это своеобразные архивы объединяющие в себе множество  различных файлов по всей видимости сжатие в них не предусмотрено, только хранение групп файлов. Самыми основными(несущими наибольшее количество необхоимых игре файлов) являются базовые Ra2.mix и языковой language.mix в миксе ra2.mix хранятся ряд других миксов
cache.mix - содержит множество палитр и пару спрайтов.
conquer.mix - спрайты пехоты,взрывов,различных мелочей..
generic.mix - спрайты построек.
isogen.mix - памятники?!
isosnow.mix - постройки,ландшафт - зимний вариант.
isotemp.mix - летний набор ландшафта.
isourb.mix - городской ландшафт.
load.mix - загрузочные экраны.
local.mix - самый интересный архив. А интересен он тем, что в нём помимо всех вокселей  присутствующих и не присутствующих в игре можно найти множество различной графики так никогда и не  попавшей в игру(ну к примеру менюшки и кнопочки из Tiberian Sun),2х мелодии в .aud формате, а  также, именно в этом архиве находятся все интересующие нас .INI файлы.
neutral.mix - кусочки интерфейса.
sidec01.mix - интерфейс Альянса
sidec02.mix - интерфейс Советов
sidenc01.mix - интерфейс GDI из TS
sidenc02.mix - интерфейс NOD из TS
sno.mix - пара спрайтов
snow.mix - опять зимний набор
tem.mix - пара спрайты
temperat.mix - опять летний набор
urb.mix - спрайты
urban.mix - городской ландшафт
по ra2.mix пока всё, теперь о language.mix
В language.mix
ra2ts_l.bik - логотип Electronic Arts, бинк видео.
ra2ts_s.bik - заставка из главного меню, тоже бинк.
ra2.csf - строковый файл, содержит все надписи в игре.
audio.mix - архив со звуками, также в нём можно найти audio.big & .idx в которых запакованы голоса  юнитов и различные звуки.
cameo.mix - иконки с подписями.
grfxtxt.shp - экраны победы/поражения которые можно увидеть при окончании игры.
Скорее всего сам language.mix был создан для удобной замены его другим language.mix, скажем  немецким или французским, в общем этот архив несёт в себе всю информацию связаную с языком.
maps01.mix,maps02.mix,mapsmd03.mix - карты, в основном для компании.
Movies$$(Movmd$$) - видеоролики, если у вас они 0 байт или просто черезчур малы, то ваша пиратка  безнадёжно урезана(еслиже их попросту нет в дериктории с игрой, следует поискать их на диске с  игрой).
Multi(md).mix - карты для сетевой игры или Скирмиша.
WDT.mix - карта мира, предположительно для использования в компании(фишка взята из TS).
Theme(md).mix - та прекрасная музыка которую мы слышим в игре.
Остались ecache(md)$$.mix и expand(md)$$.mix
Эти архивы введены как расширение, т.е когда нужно чтолибо добавить в игру, разработчики собирают  весь нужный материал, и толкают в микс, $$ - значит число от 1 до 99. Кстати модмейкеры тоже не  упускают момента и пользуются этой удобной фичей, наверняка лучше весь сопутствующий с модом  материал запаковать в микс чем вываливать прямо в директорию с игрой.

2a). Пуск!
При запуске Ra2.exe ->инициализируется ->Game.exe и пошла загрузка всех необходимых файлов, если  что не так, то игра выдаст Can't Initialize! если всё нормально то появится логотип EA и начнётся  нормальная загрузка. Вначале грузится интерфейс со всеми сопутствующими материалами, потом звук. По  окончанию загрузки перед нами предстанет интерфейс Ра2 где мы можем покопатся в настройках и/или  выбрать как будем играть. Как начинается сам процесс игры я постараюсь разъяснить в другой статье..

3) Начало модификации
 Небольшое вступление: Сразу хочу сказать, что любить классический Red Alert2 это хорошо, но с  точки зрения модифицируемости, Yuri's Revenge лучше, и в какойто степени даже проще, тем более для  YR существуют такие прекрасные проэкты как RockPatch или NPatch, которые открывают перед модерами  новые пространства для идей и их воплощения.
 Безусловно начинать обучение всегла лучше с чего-нибудь простого, и потом двигаться к более  сложному, но в нашем случаи это может показаться скучным и даже бессмысленным, и потом я пологаю что  раз читатель так заинтересовался этой статьёй, что даже дочитал до этого места, он наверняка  задумал что-то на подобии глобальной конверсии и потому я предлагаю начать не с модификаций кнопочек  в интерфейсе и максимального числа ресурсов при генерации произвольной карты а с рулеза.
Rules(md).ini - а дальше рулез файл в который внесены практически все свойства большинства  присутствующих в игре объектов. Достать его можно посредством извлечения из  ra2(md).mix\local.mix\rules(md).ini или скачать у нас на сайте в разделе файлов. Итак приступим.  Для начала нужно открыть файл в любом текстовом редакторе(лично я использую блокнот, и вообще  блокнот это самая ходовая софтина из всех что мне известны в Виндах, ИМХО), ищем строку  BuildSpeed=.7 и затем .7 заменим на .3, после сохраним и запустим игру(убедившись сначала что файл находится именно в директории с игрой а не в другом месте), спросите что изменилось? -ответ сразу же бросается в глаза, теперь все постройки(включая юнитов) на удивление быстро строятся, даже можно  сказать мгновенно! И это лишь маленький пример служащий доказательством того, что практически всё в  игре модифицируемо, главное знать что 'чёркать', о чём тут и пойдёт речь... Ладно, пойдём дальше.  Видели как ИИ быстро строят свою базу? а представте теперь какой будет хаос если их ещё больше  улучшить }:>
Для начала я порекомендовал бы вернуть BuildSpeed на более высокую позицию, чтоб чуток избавится от  такой суматохи, но и чтоб не слишком тягомотно было расстраивать свою базу во время каждого запуска  игры, поставим скажем около 4-5и. Спросите почему тягомотно!? - а ответ прост, по своему опыту  сразу могу сказать что игру придётся запускать после ну чуть ли не каждой изменённой или  добавленной строки, а кто не будет следовать такому принципу, рано или поздно поймёт, что лучше не  поленится и глянуть как нововведение выглядит в игре, чем писать дальше, почему? опять же всему вина  не идеальность человека, к примеру там что-то напутал, там параметр левый приписал, там дробное  значение впихал вместо целого, и игра традиционно слетает, с выпадающим сообщением 'Yuri's Revenge  has encountered an internal error', и когда моддер вписал три строчки кода, ему не составит  трудности найти ошибку и исправить её, чем в случаи когда он написал 30 строк. Ладно с этим я  надеюсь стало чуть яснее. Эта статья не планировалась как описание для всех объектов связанных с  игрой и скорее просто своего рода она является знакомительной, поэтому я не буду останавливаться и  заострять внимание на пунктах рулеза или других разделов, и постараюсь выделить для этого другие  статьи, где все эти аспекты будут учтены..

4) Графика, 3х мерное исчисление или обман!?
Теперь пришло время поговорить о графике в игре. Для начала слово о спрайтах. Значит спрайты в игре  есть подавляющее большинство видимого нами, это и здания и многие юниты, спецэффекты и даже камешки  на берегу.. Как ни странно ландшафт я не отнёс к спрайтам, потому как он таковым не является, да,  изображение которое на нём отображено это по сути своей спрайт, но фактически карты в Red Alert2 3х-мерны!!! хоть и не на высокой стадии развития. Для обычных же спрайтов как и в предыдущих играх  серии C&C используются фреймовые шейпы - .SHP формат. Видимо разработчики рисовали их в 3d Studio затем перегоняли в .shp. Сам .SHP файл выглядит примерно как .gif покадрово анимированные изображения, но отличается.. опять же не обошлось без палитр, в сам файл обязательно входит  информация: о номере кадра, высоте и ширине,общем количестве кадров, палитре. Про .tmp формат сказать нечего, он практически ни чем не отличается от .shp, тоже и про ландшафтные .sno .tem .urb
Воксели действительно обладают некоторой 3х-мерностью, анимация получается при последовательной  смене секций, т.е. в каждой секции каждый элемент вокселя имеет определённое положение. С каждым  вокселем тесно связан файл анимации, файл имеет .hva расширение и обычно находится в одном архиве  с вокселем. Обычно за всю графику в игре отвечает art(md).ini но часть графики описывается и в  рулезе. В следующих статьях я постараюсь изложить способы разрешения игре на использование
графики.
     Примечание:Внимание!!! При добавлении нового вокселя, следует убедится в том, что присутствует hva-анимация, иначе при появлении объекта использующего этот воксель будет получена Internal Error  а в лучшем случаи он просто будет невидимым, имя .hva файла обязательно должно совпадать с именем  вокселя. анимация для обычного односекционного вокселя(так сказать пустого или с одним фреймом)  занимает объём 88 байт, что не может не радовать ;)
====================================================
С вводным материалом всё, теперь я предлагаю вам список наиболее интересных и практичных в этом деле инструментов, которые помогут вам в дальнейшем вскрытии и модификации игры. Для начала нам понадобится хороший миксер для работы с .mix архивами, XCC Mixer - лучший в своём роде:
http://xhp.xwis.net/
И в дополнение я посоветую использовать английскую версию(оригинал) миксера. В русской версии иногда бывают траблы с расшифровкой имён файлов в миксе. Для работы с графикой лучше пользоваться набором софта разработанного PPM комьюнити:
http://www.ppmsite.com/
Там имеются редакторы вокселей,спрайтов,палитр и многое другое...
см. в разделе C&C Editing Tools.

Ну вот и всё, думаю на этом пока можно закончить. Ждите новых статей.
                                                          Q2kerS 21:01 05.09.2008

Категория: Red Alert 2 | Добавил: quakers (05.09.2008)
Просмотров: 18821 | Комментарии: 8 | Рейтинг: 4.6/12 |
Всего комментариев: 7
7 Commannderr  
1
как вытащить это понятно, а вот как обратно то засунуть?
к примеру - я хочу заменить иконку дирижабля Киров, иконка готова в нужном формате, а вот как её в редактор засунуть вот вопрос sad

6 za9c  
1
люди выручайте я скачал на 7винду эту игру и когда запускаю пишит ЗАПУСК ПРОГРАММЫ НЕВОЗМОЖЕН, ТАК КАК НА КОМПЬЮТЕРЕ ОТСУТСТВУЕТ binkw32.dll . ПОПРОБУЙТЕ ПЕРЕУСТАНОВИТЬ ПРОГРАММУ так вот , я скачал с инета файлик этот (dllfiles.com вроде бы отсюда) и закинул в папку виндовс систем 32 и когда по новой запускаю игру то пишит THE BinkW32.DLL file is incorrectly installed in the Windows or Windows system directory вот так вот . ЧТО ДЕЛАТЬ ТО ?

5 sadist  
2
Ребята подскажите пожалуйста. Как вертолет сделать правильно в РА2? Сам вертолет я сделал но он долетает до цели и у него останавливаются винты. Как поступить?
Да, вертолет должен постоянно в воздухе висеть как в Реванше Юрия или как Рокетчик. За ранее спасибо.

4 quakers  
1
Максим, извени, но музыка в игре находится не в папке а в отдельном файле, и если тебя это интересует, то подними вопрос на форуме, а не в комментариях к статье. dry

3 макс  
1
у меня музыки нет в игре только голоса юнитов!! sad как влепить туда музыку??? пожулуйста скиньте папку с музыкой из игры мне hellboy_makc@mail.ru буду очень благодарен!!!!!!!

2 quakers  
1
Дима, тут ред алерт не скачаешь, этот точно happy

1 Дима  
1
Как скачать ред алерт? sad surprised

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Форма входа

Приветствую Вас Гость!

Поиск