Как вы уже ранее обсуждали в этой статье, что программировать глобальные моды на gta vice city, действительно не возможно без исследования кода (реверсинга). В этой статье мы узнаем с чего лучше начать, изучение игрового кода, не много также рассмотрим инструмент IDA pro.
Настройка IDA Pro
Начать нужно с настроек, нашего основного инструмента, привести его как говорится в нужный вид, что-бы в дальнейшем не было проблем. Перейдите в меню Options и затем в General и поставьте галочки как на этом рисунке:
Таким образом у вас, появиться удобный байт код и зеленными цифрами глубина стека, что позволит в дальнейшем вам ориентироваться легче в коде. Пока вы можете подумать, что показывать глубину стека это бесполезная вещь, но в будущем мы об этом поговорим и вы все это лучше поймете.
Далее нам нужно настроить, подсветку кода в нашем инструменте для этого перейдем в Options и Colors…. Появиться такое окошко, тут вы настроите подсветку кода, на свой вкус, как вы захотите:
Согласитесь приятно читать код, когда он не одним сплошным цветом, а когда хорошо подсвечены регистры, команды, числа, вот это то, что делает восприятие более приятным. Далее мы будем все изучать более досконально, но по мере надобности и на практике.
Сейчас вы рассмотрим ниже, самый основной наш вопрос.
С чего начать изучение кода GTA Vice City
Начало изучения кода, начинают именно со сбора информации на эту игру. Какой был использован компилятор, т.е что-бы лучше потом распознавать, функции, код и прочее, что было как говориться “до”. Далее это же, на каком движке игра была сделана, затем собирают максимально больше информации об этом движке. К счастью движок игры это RWG и заголовочные файлы вы можете скачать тут. Но почти все хорошо, говорят что именно пакет RWG для GTA Vice City, так и в сети не был найден, ну да ладно, хоть что-то да есть. Далее узнаем про другие библиотеки например про Mss32.DLL, как мы ранее обсуждали, это библиотека служит исключительно только для звука в игре. Все что вы слышите в игре, музыку, выстрелы, звуки автомобилей все это выполняет библиотека mss32. Кроме того этот звуковой движок и загружает asi плагины, которые мы и начали использовать в качестве модов, в последнее время. Но скорее всего в будущем, многие кто программирует плагины, откажутся от такого метода загрузки модов, по скольку есть один не приятный минус:
Плагин загружается не до старта игры, подобно тому как это сделано было в GTA-SA.По этому во многих задачах, это действительно ограничит от многих возможностей. Например нельзя будет убрать ролики, сделать свои загрузочные заставки и кроме того, нельзя будет даже изменить лимиты, вообщем много будет упущенных возможностей в моддинге.
Следующий шаг, это при реверсивной инженерии, находят все используемые стандартные C++ функции, именно их в GTA Vice City не малое количество. Вообще любая игра, всегда будет использовать стандартные функции для работы со строками, загрузкой файлов и прочее. Далее же, хватаются за ресурсы игры, и ищут где они были загружены, например gta3.img, main.scm и прочее. Таким образом начинают абстрактно уже давать имена тем функциям которые к этому обращаются. Если же получать оригинальные имена, то их нужно находить в лог-функциях, разработчики R* это использовали, таким образом при исследовании базы их начинали использовать. Например CWeaponSlot, CPed, CVehicle, CWorld и прочее. Но при исследование кода приходиться давать свои имена, и имя должно действительно соответствовать функции, полю, переменной все должно быть по смыслу.
Лучше всего что-бы наработать свою практику, лучше взять готовую базу для gta vice city, по скольку это действительно будет долгим занятием и требующим хороших навыков. Далее же мы займемся основными вещами в исследование кода, научимся восстанавливать свои функции, научимся находить, константы, глобальные переменные, массивы а также все это переписывать в исходный код. Так что дорогие читатели приятного вам моддинга и ждите новых статей на GTABuilder.