Войти
Уголок tool-программСтатьи

Отладчик программ LUA для Microsoft Visual Studio

Автор:

В статье рассказывается об опыте использования отладчика Microsoft Visual Studio для отладки скриптов, написанных с использованием языка Lua. Отладчик был интегрирован в игровой движок Riposte компании Parallax Arts Studio.

Введение
  Роль скриптов в игровом проекте
  Особенности работы со скриптами
  Возможные альтернативы
  Какой отладчик лучше?
Реализация
  Реализованный функционал отладчика
  Что требуется для реализации
  Обратная связь
  Контроллер исполнения
  Сценарий работы отладчика
  О чём следует не забыть
Заключение

Введение

Роль скриптов в игровом проекте

Преимущества использования скриптов:

1. Предоставляют возможность описания логики игровых уровней дизайнерам.

По сути скрипты в данном случае могут рассматриваться как дизайнерские данные в силу следующих причин: изменения не требуют компиляции; для работы не требуется хорошего знания языка программирования; среда выполнения полностью контролируется игровым движком, вследствие чего сложно допустить трудноуловимые ошибки.

2. Возможность быстро пробовать и настраивать алгоритмические блоки без перекомпиляции кода и даже без перезапуска движка и игровых уровней. То есть скрипты идеальны для прототипирования, ведения исследовательских работ и ситуаций, когда требуется вносить большое количество мелких изменений. Таким образом, скрипты подходят для разработки игровой логики, моделей поведения персонажей, пользовательских интерфейсов.

3. Возможность не компилировать код и не строить билд движка, передавая его заказчику.

4. Для небольших проектов скрипты могут играть роль единственной среды разработки проекта при стабильном ярде игрового движка. В этом случае дополнительным аргументом в пользу использования скриптов будет возможность значительного упрощения кросс-платформенной разработки.

Также проявляются некоторые положительные аспекты использования скриптов, которые можно реализовать и без скриптов (например, на уровне С++ кода), но использование скриптов делает их более естественными и явными:

1. Возможность создавать предметно-ориентированный программный интерфейс высокого уровня (DSL – Domain-Specific Language), поднимая уровень абстрагирования до уровня, используемого дизайнерами.

2. Между скриптами и движком естественным образом формируется интерфейс, который обычно стабилен и хорошо документирован.

Всё это в сумме позволяет значительно упростить, ускорить и удешевить разработку.

Особенности работы со скриптами

Особенности:

1. Скрипты часто используются пользователями, не имеющими специальной подготовки.

2. Скрипты часто используются при прототипировании и других видах работ, когда отсутствуют формальные спецификации на программную систему.

3. Часто вносится много мелких изменений

Всё вышеуказанное приводит к тому, что в скриптах достаточно часто появляются логические ошибки, которые требуется локализировать и исправлять. Этим обуславливается необходимость в инструменте, позволяющем быстро проводить отладку скриптового кода.

Возможные альтернативы

Существует большое число способов отладки кода.

1. Визуальный просмотр текста программы, анализа текста и проверка правильности «силой ума».

2. Использование средств протоколирования для вывода интересующих значений.

3. Использование модульных тестов при разработке кода

Однако ни одно из вышеперечисленных средств не обладает той оперативностью в расследовании ошибочной ситуации, какой обладает отладчик.

Отладчик позволяет рассмотреть конкретную ситуацию и её контекст. В отладчике можно выяснить значение конкретных, необходимых нам переменных, стека вызовов в нужный нам момент и даже модифицировать переменные для анализа работы алгоритма в разных условиях.

Какой отладчик лучше?

Зафиксировав наш выбор на необходимости иметь отладчик для используемого языка программирования, рассмотрим вариант создания отладчика.

Самый простой вариант – использование готового отладчика, который поставляется вместе с языком программирования. Как мы видим это, например, в случае с С++. Однако, отладчики поставляются в основном только для промышленных языков программирования, таких как С++. Найти хороший отладчик для скриптового языка  достаточно сложно.

Например, для скриптового языка Lua есть несколько достаточно простых IDE, которые содержат в себе отладчик. Но интегрировать их в движок не представляется возможным и, вследствие этого, такая среда годится только для проверки небольших самостоятельных программ на Lua.

Можно написать свой собственный отладчик, но при этом придётся решить большое число задач, связанных с разработкой пользовательского интерфейса, интеграции с движком, получения доступа к необходимым данным, управления выполнением и т.д.

В данном случае наиболее эффективным является использованием комбинированного варианта: разработка плагина для существующих интегрированных средств разработки.

Мы использовали интеграцию в Visual Studio. NET, поскольку это привычная для нас среда разработки, в которой уже реализованы текстовый редактор, управление проектами из многих файлов, система контроля версий, дополнительные средства (например, система расцвечивания исходного текста).

Страницы: 1 2 3 Следующая »

#debug, #Lua, #конкурс

23 сентября 2007 (Обновление: 20 янв. 2011)

Комментарии [3]