Decoda

Поделись знанием:
Перейти к: навигация, поиск
Decoda

Decoda, при отладке Natural Selection 2, 2007 год
Тип

Интегрированная среда разработки/отладчик для Lua

Разработчики

Unknown Worlds Entertaiment[en]

Написана на

C++

Интерфейс

wxWidgets

Операционная система

Windows

Первый выпуск

2007

Последняя версия

1.16 (25 октября 2011)

Бета-версия

1.17 beta 1 (28 марта 2014)

Лицензия

GNU GPL, до 2013 года Shareware

Сайт

[unknownworlds.com/decoda/ worlds.com/decoda/]

DecodaDecodaК:Программное обеспечение, разработанное в 2007 году

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].

См. также

Напишите отзыв о статье "Decoda"

Примечания

  1. Dj Walker-Morgan. [www.h-online.com/open/features/The-H-Speed-Guide-to-Lua-1517427.html%3Fpage=2 The H Speed Guide to Lua → Developing with Lua]. The H (17 April 2012). Проверено 16 мая 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. [www.h-online.com/open/news/item/Decoda-IDE-for-Lua-is-now-open-source-1803827.html Decoda IDE for Lua is now open source], The H (14 February 2013). Проверено 16 мая 2015.
  5. Tom Sykes. [www.pcgamer.com/natural-selection-2s-lua-based-ide-released-as-open-source-use-it-to-make-your-own-games/ Natural Selection 2's Lua-based IDE released as open source, use it to make your own game], PCGamer (Feb 17, 2013). Проверено 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. [unknownworlds.com/decoda/faq/#faq-1132 Decoda FAQ →Can I use Decoda to debug the mod I’ve developed for XYZ game?]. Unknown Worlds Entartainment. Проверено 16 мая 2015.
  14. [unknownworlds.com/decoda/faq/#faq-1134 Decoda FAQ → Does Decoda integate with source control?]. Unknown Worlds Entartainment. Проверено 17 мая 2015.
  15. [unknownworlds.com/decoda/faq/#faq-1135 Decoda FAQ → Is there a version of Decoda for Linux or Macintosh?]. Unknown Worlds Entartainment. Проверено 17 мая 2015.
  16. [unknownworlds.com/blog/decoda-1-16-released-3/ Decoda 1.16 released]. Unknown Worlds (25 октября 2011). Проверено 16 мая 2015.
  17. [github.com/unknownworlds/decoda/pull/19 Lua 5.2 support]. Decoda pull request on Github. Проверено 17 мая 2015.

Литература

  • 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.

Ссылки

  • [unknownworlds.com/decoda/ worlds.com/decoda/] — официальный сайт Decoda
  • [github.com/unknownworlds/decoda Проект Decoda] на сайте GitHub

Отрывок, характеризующий Decoda

– Прости меня, ежели я тебя утруждаю… – Пьер понял, что князь Андрей хотел говорить о Наташе, и широкое лицо его выразило сожаление и сочувствие. Это выражение лица Пьера рассердило князя Андрея; он решительно, звонко и неприятно продолжал: – Я получил отказ от графини Ростовой, и до меня дошли слухи об искании ее руки твоим шурином, или тому подобное. Правда ли это?
– И правда и не правда, – начал Пьер; но князь Андрей перебил его.
– Вот ее письма и портрет, – сказал он. Он взял связку со стола и передал Пьеру.
– Отдай это графине… ежели ты увидишь ее.
– Она очень больна, – сказал Пьер.
– Так она здесь еще? – сказал князь Андрей. – А князь Курагин? – спросил он быстро.
– Он давно уехал. Она была при смерти…
– Очень сожалею об ее болезни, – сказал князь Андрей. – Он холодно, зло, неприятно, как его отец, усмехнулся.
– Но господин Курагин, стало быть, не удостоил своей руки графиню Ростову? – сказал князь Андрей. Он фыркнул носом несколько раз.
– Он не мог жениться, потому что он был женат, – сказал Пьер.
Князь Андрей неприятно засмеялся, опять напоминая своего отца.
– А где же он теперь находится, ваш шурин, могу ли я узнать? – сказал он.
– Он уехал в Петер…. впрочем я не знаю, – сказал Пьер.
– Ну да это всё равно, – сказал князь Андрей. – Передай графине Ростовой, что она была и есть совершенно свободна, и что я желаю ей всего лучшего.
Пьер взял в руки связку бумаг. Князь Андрей, как будто вспоминая, не нужно ли ему сказать еще что нибудь или ожидая, не скажет ли чего нибудь Пьер, остановившимся взглядом смотрел на него.
– Послушайте, помните вы наш спор в Петербурге, – сказал Пьер, помните о…
– Помню, – поспешно отвечал князь Андрей, – я говорил, что падшую женщину надо простить, но я не говорил, что я могу простить. Я не могу.
– Разве можно это сравнивать?… – сказал Пьер. Князь Андрей перебил его. Он резко закричал:
– Да, опять просить ее руки, быть великодушным, и тому подобное?… Да, это очень благородно, но я не способен итти sur les brisees de monsieur [итти по стопам этого господина]. – Ежели ты хочешь быть моим другом, не говори со мною никогда про эту… про всё это. Ну, прощай. Так ты передашь…
Пьер вышел и пошел к старому князю и княжне Марье.
Старик казался оживленнее обыкновенного. Княжна Марья была такая же, как и всегда, но из за сочувствия к брату, Пьер видел в ней радость к тому, что свадьба ее брата расстроилась. Глядя на них, Пьер понял, какое презрение и злобу они имели все против Ростовых, понял, что нельзя было при них даже и упоминать имя той, которая могла на кого бы то ни было променять князя Андрея.
За обедом речь зашла о войне, приближение которой уже становилось очевидно. Князь Андрей не умолкая говорил и спорил то с отцом, то с Десалем, швейцарцем воспитателем, и казался оживленнее обыкновенного, тем оживлением, которого нравственную причину так хорошо знал Пьер.


В этот же вечер, Пьер поехал к Ростовым, чтобы исполнить свое поручение. Наташа была в постели, граф был в клубе, и Пьер, передав письма Соне, пошел к Марье Дмитриевне, интересовавшейся узнать о том, как князь Андрей принял известие. Через десять минут Соня вошла к Марье Дмитриевне.
– Наташа непременно хочет видеть графа Петра Кирилловича, – сказала она.
– Да как же, к ней что ль его свести? Там у вас не прибрано, – сказала Марья Дмитриевна.
– Нет, она оделась и вышла в гостиную, – сказала Соня.
Марья Дмитриевна только пожала плечами.
– Когда это графиня приедет, измучила меня совсем. Ты смотри ж, не говори ей всего, – обратилась она к Пьеру. – И бранить то ее духу не хватает, так жалка, так жалка!
Наташа, исхудавшая, с бледным и строгим лицом (совсем не пристыженная, какою ее ожидал Пьер) стояла по середине гостиной. Когда Пьер показался в двери, она заторопилась, очевидно в нерешительности, подойти ли к нему или подождать его.
Пьер поспешно подошел к ней. Он думал, что она ему, как всегда, подаст руку; но она, близко подойдя к нему, остановилась, тяжело дыша и безжизненно опустив руки, совершенно в той же позе, в которой она выходила на середину залы, чтоб петь, но совсем с другим выражением.
– Петр Кирилыч, – начала она быстро говорить – князь Болконский был вам друг, он и есть вам друг, – поправилась она (ей казалось, что всё только было, и что теперь всё другое). – Он говорил мне тогда, чтобы обратиться к вам…
Пьер молча сопел носом, глядя на нее. Он до сих пор в душе своей упрекал и старался презирать ее; но теперь ему сделалось так жалко ее, что в душе его не было места упреку.
– Он теперь здесь, скажите ему… чтобы он прост… простил меня. – Она остановилась и еще чаще стала дышать, но не плакала.
– Да… я скажу ему, – говорил Пьер, но… – Он не знал, что сказать.
Наташа видимо испугалась той мысли, которая могла притти Пьеру.
– Нет, я знаю, что всё кончено, – сказала она поспешно. – Нет, это не может быть никогда. Меня мучает только зло, которое я ему сделала. Скажите только ему, что я прошу его простить, простить, простить меня за всё… – Она затряслась всем телом и села на стул.
Еще никогда не испытанное чувство жалости переполнило душу Пьера.