Если вы заинтересованы в добавлении новых возможностей на PvPGN сервер, то желательно создать себе постоянное рабочее окружение, в котором удобно дорабатывать сервер, сосредотачиваясь на коде. А иногда просто нужно быстро проверить как работает та или иная функция в PvPGN.
Здесь я рассмотрю основные возможности, которые стоит использовать.
PvPGN Magic Builder - удобный вариант для сборки сервера, но для разработки он неэффективен. Если вы допустили ошибку в коде, Билдер увидит её только при очередном построении сервера, которое не вполне быстрое. Да и не всегда сразу понятно где допущена ошибка.
Многие так и делают, не догадываясь, какие преимущества дает разработка в Visual Studio. И это означает не только писать сам код в студии, но и отлаживать его там же.
Быстрый стартВ последней сборке Magic Builder добавлен скрипт build_pvpgn_dev.bat, который в один клик позволяет сгенерировать чистые файлы проектов в отдельную папку.
Для начала работы достаточно открыть pvpgn.sln — это полностью готовое решение для работы в Visual Studio.
ОтладкаОтладка кода позволяет быстрее понять где допущена ошибка и устранить её, при наличии соответствующих навыков. Например, сервер вылетает при определенных объстоятельствах. Запускаем его в режиме отладки, создаем условия для ошибки, и в момент вылета будет видно на какой строке кода произошел крах.
Точки останова (Break Points) ставятся слева в поле редактирования кода и обозначаются красным кружком. Как только вызов достигнет этой строки, сервер приостановит свою работу. И можно будет, например, увидеть содержимое переменных в данной области видимости.
Редактирование кода во время работы программы невозможно. Точнее возможно, но чтобы увидеть изменения все-равно потребуется перезапуск.
При отладке вам помогут горячие клавиши: F10 - переход к обработке следующей строки кода
F11 - переход внутрь функции (если в текущей строке содержится вызов функции)
F5 - продолжить работу программы с отладкой (до следующей точки останова, если такие встретятся)
Рассмотрим на примере.
Сервер запущен в режиме отладки, в коде установлена точка останова где-то внутри функции _handle_kill_command. Из игры отправляется команда /kill admin. В точке останова появилась желтая стрелочка, означающая что сейчас работа программы приостановлена на этой строке. При наведении на переменные можно видеть их значения. Например, на скриншоте ниже видно, что переменная "usrnick" является массивом, с содержимым "admin".
Краткий обзор преимуществ Visual StudioВнизу обычно имеются два раздельных окна с закладками Locals и Call Stack. Если вы их случайно закрыли, их можно снова открыть через меню Debug > Windows.Locals - все переменные, которые имеются в данной точке работы программы
Call Stack - стек вызовов, то есть в каком порядке функции были вызваны до текущего момента; можно понажимать на функции из списка и таким образом изучить всю последовательность, как и что работает.
Справа вверху у каждого открытого файла есть список функций, которые в нем содержатся. Например, файл command.cpp очень длинный, и проще выбрать команду из этого списка, чем искать вручную в огромной простыне кода. По F12 переходить к реализации функции.
Часто сложно понять что делает та или иная функция в коде. В этом может помочь обычный поиск по CTRL+F с поиском по всему проекту.
Но есть более удобный инструмент - при нажатии на название функции правой кнопкой выберите Find All References. Появятся результаты поиска с упоминанием этой функции по всему проекту. Крайне полезная вещь, без которой сложно связать отдельные части программы.
При открытии большого числа файлов в них становится сложно ориентироваться. Для запоминания важных участков кода в студии есть закладки, как в книге. View > Other Windows > Bookmark Window. Горячая клавиша для добавления/удаления закладки CTRL+B,T
Сохранение истории изменений в GitСо временем изменений в коде может быть очень много и часть из этого можно забыть.
Поэтому как только вы изменили какую-то функцию, добавили новую команду, это изменение хорошо бы зафиксировать в одном месте.
Особенно это полезно и необходимо при совместной разработке двумя людьми и более. Все изменения сразу становятся видны. Иначе же получается малоприятный процесс обмена архивами, в которых, к тому же, непонятно когда и что изменено.
Но лично вам это может понадобиться даже не сколько из-за этого, сколько из-за возможности потери своих исходников. Бывает всякое, а если код будет храниться в удаленном хранилище, то его в любой момент можно восстановить. В любой из точек внесенных вами изменений.
Попробуйте систему контроля версий - в будущем это может сохранить вам много времени. Для приватных проектов подойдет сервис bitbucket.org. Для публичных github.com.
Кстати, в Visual Studio 2013 встроена поддержка git (правой кнопкой на проект Source Control > Add). Но можно использовать командную строку, или TortoiseGit - кому что удобнее.
Отличный источник для ознакомления с git - http://git-scm.com/book/ru.
Присоединенные файлы (вирусов нет):
|