GM XD / GMS XD — альтернативный дебаггер для GM8.1/Studio
GM XD
Упомянутая в интервью программа, которая была задумана для того, чтобы стать лучшей заменой встроенному дебаггеру в Game Maker, была, наконец, доведена мной до состояния, которое я могу назвать достойным версии 1.0. И Гамин — первый сайт в Сети, который об этом узнал.
Так зачем оно надо?
(вкратце)
- Выполнять в игре любой GML-код на лету, не ограниченный роскошной длиной в 100 символов, в одну строку, как позволяет родной дебаггер GM. Но 32 килобайтами ограниченный, если что. Добавлять любой код на лету к объектам в игре, либо привязывать его выполнение к нажатиям клавиш — например, можно удобно поднимать здоровье игровому персонажу, при внезапных ошибках в процессе тестирования* игры. Кроме того, работает отключаемое по желанию автодополнение названий функций, констант и переменных;
- Узнавать, сколько экземпляров каких объектов находится в комнате, где они находятся, и куда двигаются. Активировать и деактивировать какие-то либо экземпляры, например — чтобы они некоторое время не мешали при подготовке новой игровой сцены для тестирования;
- Наблюдать (Watch) и визуализировать не только скалярные строчные и вещественные значения, но и 1- и 2-мерные массивы, а также встроенные 6 типов структур данных — ds_list, ds_map и так далее. Кроме того можно визуализировать только части из них, а не (например) весь массив 100 на 100 целиком, если нужно узнать только [20,20]-[40,40];
- Сохранять и загружать не одну игру по F5/F6, а использовать менеджер сохранённых статусов игры со скриншотами текущего содержимого игры, позволяющий выбирать нужный сейв для загрузки или удаления;
- Перемещаться между комнатами игры в любой момент, в пару кликов.
- Менять любые параметры видов (views) и масштабирование на лету;
- Видеть все текущие загруженные ресурсы игры и их свойства. Также можно дампить существующие поверхности (surfaces) в файлы;
- Видеть и менять привязки одних клавиш к другим. Типичный пример — WASD дублируют стрелки. Для добавления конкретно этой привязки (или наоборот, стрелки на WASD) достаточно нажать одну из двух преднастроенных кнопок. Или обнулить все привязки, третьей;
- Создавать, двигать, удалять, копировать, перемещать и ставить под наблюдение экземпляры объектов, выбранные курсором мыши в окне игры.
* GMXD также может быть полезной в тестировании уже готовой и отлаженной игры.
Полный список фич, и инструкцию по применению — можно почитать на данный момент там. Инструкция (и сама программа) — полностью на английском языке.
Ты чё, нерусский что ли?!
Предвидя комментарии на эту тему, поясню — я уверен, что среднестатистический современный русскоязычный человек-геймдевелопер:
- Считает C++ более уместным языком для геймдева, а GML — конструктором;
- Всё равно не читает инструкций по использованию программ, заменяющих дополнительные программы, которые он и так вряд ли активно использовал;
- И правильно делает, потому что, ещё со времён игр Денди на японском, разбирался во всём мыслимом и немыслимом методом тыка, причём успешно. Если это было тому вправду так уж важно;
- В остальных случаях обладает знанием английского языка на уровне чтения технической документации, коего ему тут хватит по уши.
Принимая во внимание объём инструкции, я считаю, что заниматься двухъязычной поддержкой его в актуальном состоянии — «немного» не тот объём работы, который я намерен выполнять в этом проекте, учитывая засилье совсем других проектов по программированию, и особенно вспоминая о том, что мне надо вообще-то делать игры. Но в жизни, вестимо, ничего не бывает так просто. Рекламка Game Maker’а в 2005 году обещала мне, что я могу делать игры без программирования? Отлично, через 8 лет я программирую альтернативные утилиты для самого Game Maker’а, для того чтобы делать и тестировать на нём игры было действительно удобно в моём понимании. И, наконец, в этом году я всё-таки начну продолжу делать именно игры, и даже что-то выпущу.
Я обещаю.
А, чуть не забыл добавить ссылку на саму программу-то.
Для того чтобы пользоваться GM XD, достаточно закинуть EXE-файл, INI-файл и папку GMXD System в папку с игрой, которую предпологается отлаживать или тестировать. Игра, в свою очередь, должна выполнить этот INI-файл через execute_file.
Здесь вам не студия!
Для GM-Студии последует упрощённая версия, более слабая по функциональности, так как разработчики отбросили в ней и execute_file (сопровождая это словами «you should really never need this feature. All commercial games get by without this» — кажется, где-то я это уже слышал, особенно саму конструкцию «All … get by without» по отношению к тому, что моей разработке-то как раз нужно), и всю ветку функций variable_*_*, и ещё много вещей. Учитывая, что в родном дебаггере GM:S всё равно нет ни перехода по комнатам, ни вотчей, ни ещё некоторых функций. А, говоря точно:
Функций из этих вкладок не будет:
- Code / Bind
- Save / Load (хотя с этим можно похитрить ещё)
Функции из этих вкладок будут ограничены:
- Window / Views — дисплей более не настраивается;
- Rooms — переходы устарели;
- Resources — удивительно, но поверхности всё ещё можно дампить;
- Other
Вариация GM XD (GMS XD?) будет исполнена целиком в GML по новой спецификации.
GMS XD
Версия 1.0 в виде внешнего файла с инициализацией объекта
Версия 1.0 в виде объекта GMX (для импорта в GM:S)
GMS XD не умеет большей части того, что умеет GM XD, но тоже может пригодиться. Должно работать и в GM8.1, и в Studio (под Windows, но теоретически может работать и в Linux, и в Mac OS X той же версии, для которой компилирует Game Maker: Studio).
- 02 августа 2013, 02:15
- 016
55 комментариев