Немного о моддинге в мире 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
|