In english

harpywar.com

Главная

Вики

Форум

Лаборатория

NFK

PvPGN

Github

 Проекты
   QDoom
   IRC Search
   vbreality [web]
   UTech p2p Realm [web]
   PvPGN система статистики
   Diablo 2 Launcher
   WoW Simple Launcher

 Моё
   Творчество
   Оборудование

 Статьи
   Игры
   Настройка серверов
     PvPGN
     D2GS
     NFS: U
     Apache
     ArcEmu

   Кодинг
     .NET
     PHP

   Разное

Поиск по сайту


Хостинг и VDS, скидка при переходе
 
PvPGN (Player vs Player Game Network)
Иконки Warcraft 3 (w3xp_userselected_icon)
Создание иконок Warcraft 3
PvPGN c ладдером в Starcraft [x]
Группы консольных команд (command_groups.conf) [x]
Battle.net утилиты
Создание баннеров (ad.conf)
address_translation.conf
Иконки Starcraft [x]
Как скомпилировать исходники PvPGN 1.8.5 под Windows
Headers и библиотеки для компиляции PvPGN
Как скомпилировать исходники PvPGN 1.99 из SVN, под Windows
PvPGN и MSSQL (через ODBC)
Как установить PvPGN 1.8.5 под Linux
Установка PvPGN 1.99 на Linux
Среда для эффективной разработки PvPGN
Среда для эффективной разработки PvPGNСоздано: 05.02.2014
Изменено: 01.02.2017
Автор: HarpyWar

Если вы заинтересованы в добавлении новых возможностей на 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.


    [AVP] Присоединенные файлы (вирусов нет):

    Нет комментариев

    Есть вопросы по настройке игровых серверов? Добро пожаловать на форум!

    Имя: Проверка: = 5017


    © 2006—2014, HarpyWar

    Любое копирование информации с этого сайта - только со ссылкой на источник.
    Это в одинаковой мере распространяется на любую авторскую информацию в интернете.