Установка SDK: Debug, подсветка синтаксиса и абсолютные пути
Статья посвящена расширенной настройке SDK для Serious Sam TFE/TSE Classic.
Подразумевается, что у ваш проект уже полностью подготовлен, поэтому если SDK еще не подготовлен для компиляции, то сначала настройте его.
Часть 1: Абсолютные пути.
Абсолютные пути. Зачем они нужны? При указывании абсолютных путей MSVC++ будет компилировать EntitiesMP/GameGUIMP.dll/GameMP/ не в ENGINE_DIR, а там, где установлен Serious Sam. Это значительно сэкономит время и позволит переносить проект без его повторной настройки. Как же это сделать?
В студии щелкаем Project->Settings. Выберем вкладку далеко справа, названную Custom Build. Слева выберем проект, который нужно отредактировать, например, EntitiesMP.
Теперь по порядку - нам надо заменить все упоминания $(ENGINE_DIR) на ту папку, где расположен Serious Sam + папка Bin. Например, у меня это выглядит так:
ВАЖНО: В указании пути не должно быть запрещенных символов! (например, восклицательного знака).
На этом все. Теперь проект будет компилироваться прямо в папку с Serious Sam. Также, чтобы не копировать dll в корень игры, можно указать папку SeriousSam/Mods/ModName/Bin.
Часть 2: Debug.
Debug - мощное оружие кодера, позволяющее отлавливать самые различные ошибки. Он значительно экономит вам время, так как не нужно искать, где же вы забыли добавить проверку или, к примеру, делили на ноль.
В данной статье мы будем рассматривать два вида настройки дебага - для игры и для мода.
Debug игры.
Заходим в Project->Settings во вкладку Debug. В поле Executable for debug session выберем файл SeriousSam.exe, который находится в папке Bin в самой игре Serious Sam.
Нажимаем ok. Теперь, при нажатии F5 (или Build->Start Debug->Go) будет запускать Serious Sam с только что собранной dll в режиме дебага (естественно, если были настроены абсолютные пути). Если во время игры возникнет ошибка, дебаггер укажет вам на нее.
Например, я попытался поделить на 0. Дебаггер указал мне на это и остановил программу с ошибкой:
И покажет вам строку, где остановилась программа.
Но иногда эта строчка не всегда конкретно указывается. Чтобы найти ее, нужно просмотреть весь список в разделе Context:
Я поделил 5 на iLevel, в то время как iLevel был равен нулю. Функция iNextLevelPoints использовалась в другой функции, называемой TickActions, которая в свою очередь вызывалась из PostMoving. Как видно из картинки, дебаггер указал их.
Debug модификации.
Аналогично и с прошлой настройкой, но теперь во вкладке Debug в поле Program arguments надо дописать "+game НазваниеМодификации" (без кавычек). При нажатии F5 запустится модификация.
Часть 3: Подсветка синтаксиса.
Croteam оставили в папке с игрой .reg файл, который подсвечивает синтаксис в .es файлах, что может быть весьма приятным при редактировании. Он находится здесь: Serious Sam/Help/SDK/Extras/SyntaxColoring.reg. Перед его запуском следует закрыть все открытые файлы в студии и выключить саму студию.
Автор: Heming (ST-Games)
Комментарии