Эта статья входит в число добротных статей

Decoda (Decoda)

Перейти к навигации Перейти к поиску
Decoda
Логотип программы Decoda
Скриншот программы Decoda
Decoda, при отладке Natural Selection 2, 2007 год
Тип Интегрированная среда разработки/отладчик для Lua
Разработчик Unknown Worlds Entertaiment[англ.]
Написана на C++
Интерфейс wxWidgets
Операционная система Windows
Первый выпуск 2007
Последняя версия 1.16 (25 октября 2011)
Бета-версия 1.17 beta 1 (28 марта 2014)
Репозиторий github.com/unknownworlds…
Лицензия GNU GPL, до 2013 года Shareware
Сайт unknownworlds.com/decoda/

Decoda — популярная среди разработчиков игр[1][2] интегрированная среда разработки профессионального уровня[3] для Windows, удобная для разработки и отладки скриптов-сценариев к существующим играм и игровым движкам, созданная в 2007 году студией Unknown Worlds Entertainment и открытая на условиях GPL в начале 2013 года[4][5].

Особенности

[править | править код]

Decoda представляет собой IDE, по словам разработчиков «похожее на Visual Studio», позволяющее работать с проектом[6], редактировать исходные тексты lua-скриптов (с подсветкой синтаксиса) и отлаживать их, используя точки останова[3], пошаговое выполнение программы[7], наблюдение и изменение значений переменных[8] (в том числе lua-таблиц) и слежение за стеком вызовов[4][9][2].

В отдельном окне отладчика показываются все виртуальные lua-машины, запускаемые из отлаживаемого хост-приложения[10]. Подобно Visual Studio[11], Decoda может подключаться для отладки к уже запущенному приложению[12].

Уникальной особенностью Decoda является то, что она использует при этом файлы с отладочными символами, которые генерирует Visual Studio. В отличие от других Lua IDE (таких, как ZeroBrane Studio), Decoda не требует модифицировать исходный код отлаживаемого скрипта (путём подключения к нему библиотеки mobdebug), или скриптуемого приложения[3]. Lua скрипты для приложений, к которым Lua не прикомпилирован статически, а вызывается из динамической библиотеки, (к примеру, INSTEAD), могут отлаживаться даже если соответствующих отладочных символов у вас нет[13].

Decoda поддерживает интеграцию с системами управления версиями[4], для чего к ней могут подключаться Microsoft SCC плагины[14].

Недостатки

[править | править код]

Версии Decoda, по крайней мере до 1.17, работают только под Windows (интерфейсная часть написана с использованием кроссплатформенной wxWidgets и может быть легко портирована, трудности — с используемой при отладке «магией»[15]) и только в 32-разрядном режиме[4]. Decoda не может отлаживать игры, собранные для Win64. При попытке сделать это, начиная с версии 1.16, выводится сообщение о соответствующей ошибке[16]. Поддержка Lua 5.2 появилась только в бета-версии Decoda[17].

Эта среда разработки была создана студией Unknown Worlds Entertainment, когда они начинали разработку игры Natural Selection 2 в 2007 году. Decoda была приобретена рядом студий разработчиков игр, и, по словам разработчиков Unknown Worlds, лицензирование Decoda было основным источником дохода компании в 2007–2013 годах[4].

После успешного запуска Natural Selection 2 14 февраля 2013 года программа перешла в категорию свободных, разработчики открыли её под лицензией GPL. Они объяснили это действие тем, что дополнительный источник доходов в виде лицензирования IDE им больше не нужен[4].

Примечания

[править | править код]
  1. Dj Walker-Morgan. The H Speed Guide to Lua → Developing with Lua. The H (17 апреля 2012). Дата обращения: 16 мая 2015. Архивировано 26 февраля 2015 года.
  2. 1 2 MrMike, 2009.
  3. 1 2 3 Young, 2014, Introduction to AI sandbox → Lua IDE — Decoda.
  4. 1 2 3 4 5 6 djwm (2013-02-14). "Decoda IDE for Lua is now open source". The H. Архивировано 12 апреля 2015. Дата обращения: 16 мая 2015.
  5. Tom Sykes (2013-02-17). "Natural Selection 2's Lua-based IDE released as open source, use it to make your own game". PCGamer. Архивировано 6 июля 2015. Дата обращения: 17 мая 2015.
  6. Young, 2014, Introduction to AI sandbox → Setting up a new Decoda project.
  7. Young, 2014, Introduction to AI sandbox → Debugging Lua scripts.
  8. Young, 2014, Introduction to AI sandbox → Decoda Watch window.
  9. Young, 2014, Introduction to AI sandbox → Decoda Call Stack window.
  10. Young, 2014, Introduction to AI sandbox → The Decoda Virtual Machines window.
  11. Young, 2014, Introduction to AI sandbox → Visual Studio – Attach to Process.
  12. Young, 2014, Introduction to AI sandbox → Decoda – Attach to Process.
  13. Decoda FAQ →Can I use Decoda to debug the mod I’ve developed for XYZ game? Unknown Worlds Entartainment. Дата обращения: 16 мая 2015. Архивировано 18 мая 2015 года.
  14. Decoda FAQ → Does Decoda integate with source control? Unknown Worlds Entartainment. Дата обращения: 17 мая 2015. Архивировано 18 мая 2015 года.
  15. Decoda FAQ → Is there a version of Decoda for Linux or Macintosh? Unknown Worlds Entartainment. Дата обращения: 17 мая 2015. Архивировано 18 мая 2015 года.
  16. Decoda 1.16 released. Unknown Worlds (25 октября 2011). Дата обращения: 16 мая 2015. Архивировано 18 мая 2015 года.
  17. Lua 5.2 support. Decoda pull request on Github. Дата обращения: 17 мая 2015. Архивировано 9 сентября 2020 года.

Литература

[править | править код]
  • David Young. Learning Game AI Programming With Lua. — Packt Publishing, 2014. — 680 p. — ISBN 978-1-78328-133-6.
  • James Clarendon. Chapter 11. Scripting with Lua → Introducing Decoda // Game Coding Complete / Mike “MrMike” McShaffry. — 3-rd ed.. — Charles River Media, 2009. — P. 346. — 908 p. — ISBN 978-1-58450-680-5.