В этой статье я попытаюсь рассказать как правильно скомпилировать Game DLL - игровую библиотеку модификации, которая находится в папке Bin32 или Bin64 вашего мода. В нашем распоряжении есть код игрового модуля (CryGame.dll), изменяя который, вы можете переделать вашу игру до неузнаваемости.
Подготовка
Для работы вам будет нужен компилятор - Visual Studio 2005
Professional Edition) с установленным C++, патч 1.2 на игру и сам исходный код движка. Последний можно получить из Crysis MOD SDK 1.2. После установки MOD SDK, исходный код игры появится в папке Crysis\Mods\Crysismod\Code.
Начало работы
Для удобства работы скопируем исходники игры в свою собственную папку с модом - к примеру Mods\Mymod\Code. Из этой папки запустите CrysisMod.sln (я предпочитаю работать с решениями, а не с проектами). Откроется Visual Studio и вы увидите слева список всех файлов проекта:
Настройка
Сразу же после открытия, давайте определим параметры компиляции. В окне "Solution Explorer" щёлкните правой кнопкой мыши на решение "CrysisMod" и выберете "Properties". В открывшемся окне перейдите в категорию "Linker->General". В "Output file" введите абсолютный или относительный путь к файлу ../crysis/mods/Mymod/Bin32/Mymod.dll. После этого вверху окна в пункте Configuration вы должны выбрать Profile, а в Platform - Win32. Нажмите Ок.
Модификация
Внесите какое-либо изменение в код игры. Например в Player.h (ActorFiles/Player) в строке 236 замените
|
Код
|
1
|
jumpHeight = 1.0f;
|
на
|
Код
|
1
|
jumpHeight = 3.0f;
|
Это изменяет стандартную высоту прыжка на 3 метра, хотя скорее всего это не будет работать (конечные параметры загружаются из BasicActor.lua).
Компиляция
Для того чтобы скомпилировать вашу DLL, перейдите в пункт главного меню "Build->Build CrysisMod". Конфигурация должна быть та же что и в Linker - Profile-Win32. Начнётся компиляция. Первый раз она занимает около 5 минут, в дальнейшем время компиляции будет зависеть от того какие именно файлы вы поменяли, и от того сколько файлов будут включать в себя модифицированные.
Компиляция x64/Crysis Wars
Всё описанное выше может быть применено и к Crysis Wars - разница лишь в том, какой MOD SDK вам придётся скачивать. Несомненно, код в Crysis Wars куда более оптимизирован, дружелюбен и стабилен. Ещё бы, разница в 3 патча!
Для 64-битных DLL нужно указывать конфигурацию Profile-x64, а конечную папку - Mymod\Bin64. Я вам рекомендую компилировать конечную версию кода сразу для обеих платформ.
Полезные ссылки:
Crysis Mod SDK v1.2
Crysis Wars Mod SDK
Crysis Patch 1.2
Crysis Wars Patch 1.5
Основные ошибки компилятора