RU

QGen 5

rrock.ru #27 18.03.2013 21:10 183 comments 146551 views

В этой теме выкладываются сборки QGen 5.
О всех найденных косяках отписываемся тут.

Текущая версия 5.5.0
Скачать QGen5.zip
Минимальная версия Windows - XP!

Список изменений:

Spoiler

5.5.0
+ Добавлены настройки.
+ Добавлена настройка автообновления редактора.
+ Добавлена настройка запроса пароля при сохранении игры.
+ Добавлено автосохранение игры через 2 секунды после послежних изменений (отключается в настройках).
+ Добавлен запуск игры из редактора.
+ Добавлены локализации (пока только русский и английский).
+ Добавлены настройки шрифтов.
+ Добавлены настройки цветов.
+ Сохранение внешнего вида редактора при закрытии.
* Работает выбор изображения действия.
* Исправлена ошибка при удалении последнего действия на локации.
5.4.0
+ добавлена возможность перемещения действий в списке действий.
+ Добавлено отрытие файла из параметра коммандной строки.
+ Добавлено автооткрытие последней игры.
+ На тулбар добавлена кнопка создания локаций.
+ Добавлен мультивыбор в списке локаций.
+ Добавлена возможность удаления нескольких выбранных элементов.
+ Добавлена возможность перетаскивать несколько выбранных элементов.
+ Добавлена возможность включать/отключать элементы интерфейса.
* Исправлен баг, при котором запрос на сохранение задавался, если просто открыть локацию.
* Доступность кнопок тулбара и действий меню теперь зависит от текущего состояния редактора.
* На тулбаре кнопки “Изменить” и “Удалить” теперь удаляют папку или локацию, в зависимости от того, что выбрано в данный момент.
* Исправлено главное меню (добавлены общие действия и горячие клавиши).
* Исправлен баг с отдельным потоком при проверке обновлений.
* Изменен вид панели страниц локаций.
* Сплиттеры на странице локаций сделаны видимыми.
* Миниимальный размер окна теперь 640x480.
- Отключено сообщение о невозможности получить описание обновления.
5.3.1
* Решена проблема с невозможностью сохранить игру после первого сохранения.
5.3.0
+ Добавлен поиск / замена.
+ Добавлены папки локаций.
+ Добавлена работа с проектами.
* Проверка обновления перенесена в отдельный поток, чтобы не тормозить запуск редактора.
* Имена всех файлов приведены в нижний регистр.
* Удалено пространство имен Ui в проекте.
* Исправлено первое сохранение файла (при нажатии на кнопку “Сохранить” файл сохранятся без вопросов с именем по умолчанию в папке редактора).
* Исправлена обработка загружаемых файлов (неправильно обрабатывались позиции локаций и папок).
* Исправлено открытие запароленного файла (если нажать на отмену, то файл открывался без пароля, так же не принимался верный пароль).
- Удалена раскраска интерфейса.
5.2.1
* Qt обновлен до версии 5.0.2.
* Фикс для поддержки Windows XP.
* CRT теперь собран статически.
5.2.0
+ Добавлена нумерация строк.
+ Добавлена подсветка.
+ Добавлено описание команд и системных переменных в статусной строке.
* Более подробное описание при ошибке в автообновлении.
5.1.0
+ Сделан автоматический апдэйтер. Теперь не обязательно перекачивать весь архив заново. Будут скачаны только измененные файлы. Так же будут заново скачаны отсутствующие/поврежденные файлы.
* vcredist больше не нужен. Все необходимое уже в пакете.
5.0.1
* Изменени заголовок главного окна.
* Изменены сведения в окне “О программе”.
* Исправлен перевод.
* Исправлен баг с паролем на игру (сохранялась с неверным паролем, если в диалоге нажать “Нет”).
* Исправлено отображение пути открытого файла.
+ Если начат новый квест, и нажата кнопка “Сохранить” - спрашивать путь и имя файла.

TODO

Spoiler

Поиск и замена
Подсветка
Номера строк
Папки локаций
Операции с локациями (копирование, вставка, очистка)
Импорт/экспорт TXT2GAM (кстати “экспорт в текстовый файл” не нужен, им никто не пользуется)
Запуск
Вызов справки
Настройки
Автосохранение
Макросы

1. Для папок нужны кнопки на тулбаре. Кнопку удаления локаций и папок можно объединить.
2. Нет групповых операций для папок и локаций. Нужно сделать хотя бы удаление.
3. Папки удаляются только через контекстное меню, нужно сделать и по кнопке Delete.
4. “Пустую” игру сохранить нельзя, поэтому кнопки сохранения должны быть неактивны.

Ну и ещё внешний вид в соответствие привести. Сейчас в редакторе “поля” интерфейса (на которых размещены кнопки и подписи) одного цвета с фоном текстовых полей, и занимают неоправданно много места.

Но это конечно минимум. Для того чтобы был реально стимул перейти, после выполнения минимального набора нужно сделать улучшения - см. QGen: предложения.

Улучшения, доработка старых фич:

“Краткий” режим, при котором окна базового описания и базовых действий отключены совсем. Отключаемо.

Автоматическое задание путей при старте - “Путь к плееру” берется из реестра(привязан к расширению .qsp), “Путь к справке” ищется в текущей директории(в итоговой сборке “Набор разработчика” QGen должен поставляться вместе со справкой).

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

При запуске игры она должна открываться в уже открытом окне плеера. При нажатии Shift+F5 - в новом окне плеера.

Вывод количества произведенных автозамен (в коде, в именах локаций, действий).

Кнопка “заменить всё на этой локации”.

Пункт меню “Открыть в новом окне…”

При импорте файла в формате TXT2GAM давать выбор:
1. Создание новой игры(открыть в новом окне QGen);
2. Замена уже открытой игры на импортированную.
По умолчанию предлагать первый вариант.

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

Новые фичи:

Список “недавно открытые файлы”.

Хотелось бы автоматическое выставление верхнего регистра для всех ключевых слов QSP, а также дополнение знаком “$” тех функций, для которых этот знак может быть опущен, например, $CURLOC.

Автоматическое выставление двоеточия в блоках IF и ACT, автоматическая вставка пустой строки и END при переходе со строки IF или ACT с двоеточием в конце. Отключаемо.

Автодополнение ключевых слов, переменных.

Форматирование (автоматическое и ручное).

Проверка орфографии.

В ACT, DELACT, DEL ACT, GOTO, GT, XGOTO, XGT, GOSUB, GS, ADDOBJ, ADD OBJ, DELOBJ, DEL OBJ, автоматически ставить апострофы(либо кавычки, настраиваемая опция). Отключаемо.

Проверка синтаксиса, правильность написания по правилам QSP красным + предупреждения зеленым(например, переход на необъявленную локацию, или употребление “смешанной” раскладки в имени переменной). Отключаемо.

Пункты меню для закомментирования/раскомментирования выделенной области кода.

Скачивание и установка дополнений (просто папка с файлами) - для выкладывания библиотек, примеров кода, шаблонов оформления, с последующим удобным обновлением.

Добавить пункт меню для операции над выбранной локацией - “Поместить в папку…”

Добавить пункты меню для операций над выбранной локацией и папкой - “В начало списка”(на второе место - чтобы не “сбивать” стартовую локацию) и “В конец списка”.

Добавить поддержку перетаскивания файлов из “Проводника” в окно редактора.

Поле для быстрого фильтра локаций над деревом с возможностью отключения и настройками режима работы (название локации начинается с введенного текста, текст встречается в названии и регулярное выражение)

Пользовательские “статусы” для локаций - пометки вроде “в разработке”, “служебная”, “готовая”, “концовка”. Т.н. “флажки”.

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

P.S. Сообщение будет обновляться по мере разработки.

Edited at 09.07.2015 07:45 (10 years ago)

Ты пишешь подсветку (разбор кода) на регулярных выражениях? Я так делал когда-то уже. Этот способ себя не оправдывает. Нужно идти от сущностей языка.

Nex, в чем именно не оправдывает?
werewolf, спасибо, сделал. Только ленивые, оказывается, не поддерживаются.

Nex, и еще в списке на доделку значатся макросы. Это что?

rrock.ru,
ну в том что правила синтаксиса на самом деле слишком сложны, чтобы с ними справиться регулярными выражениями. Первую версию своей утилиты “Анализатор кода QSP” я пытался сделать на регулярных выражениях. Пришлось отказаться от них.

Макросы - это последовательности, забинденные на клавиатурные комбинации. В старом кугене они редактируются в настройках.

Nex,
а что там сложного для подсветки? 4 регулярки и готово. Главное порядок поиска правильный. Можешь собрать, посмотреть. Уже готово. Только файл keywords.xml от старого кугена в папку не забудь подкинуть.

rrock.ru,
я не стану тебя разубеждать. Сам потом поймёшь.

Собрал QGen под Mac OS, версию 5.1.1.

Qt установился и запустился на раз-два. Код кугена, увы, пришлось допилить напильником чтобы заработало. Проверил, всё вроде бы работает.

Nex, можешь подробнее это расписать? Что ты имеешь ввиду под автопроверкой синтаксиса? Предаврительную попытку запуска локации в фоне? Тогда сам движок нужно прикручивать к кугену. И что ты понимаешь под автоподстановками и подсказками?

Проверка синтаксиса:

1. Автоматическая проверка всего кода в режиме редактирования. Ошибки подчёркиваются в коде, в тех случаях, когда это возможно.

2. Ошибки делятся на два типа: предупреждения и ошибки синтаксиса.

Ошибки синтаксиса определяются всегда однозначно, и означают что код нельзя проанализировать.
Пример: нет двоеточия после условия IF.

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

3. При сохранении требуется выводить ошибки и запрещать сохранение (отключаемо). По умолчанию - ошибки синтаксиса блокируют сохранение и соответственно запуск. Блокировка тоже настраивается, то есть можно например настроить чтобы сохранение происходило, но предупреждение тоже выводилось.

Все алгоритмы разбора уже написаны в моём анализаторе. 99% кода он разбирает корректно, я прогонял через него все каталожные игры. Само собой, если делать в кугене, то по-хорошему нужно более красивую архитектуру алгоритма написать, с уровнями абстракции и т.п. Сейчас там просто парсер на хардкоде. Но можно и так перенести, чтобы сэкономить время.

Учитывая, что код всех локаций, не содержащих синтаксических ошибок, будет распарсен редактором “на ходу”, пока автор редактирует игру, то ему в любой момент будут известны имена переменных, имена локаций, метки и т.д. Так что можно будет сделать автодополнение, чтобы не приходилось вбивать вручную имена операторов, локаций и переменных целиком. Так же, как в других IDE. Помимо упрощения набора это ещё страхует от опечаток.

Про автоподстановки я ничего не писал.

Автоматическое форматирование:

1. Отступы во вложенных блоках, ну с этим понятно.

2. Автоматическое завершение кавычек, ввёл кавычку - напечатались две и курсор встал между ними.

3. Автоматическое завершение операторов. Напечатал IF, нажал пробел - в конце строки появилось двоеточие; ввёл условие, нажал Enter в конце строки - добавилась пустая строка и END. ACT аналогично.

4. Параметры в обычных операторах. Набрал *PL - сразу появились кавычки либо апострофы, согласно настройкам. И т.п.

5. Автоматическое выставление регистра для операторов, знак “$” для символьных функций. Кому как, а мне больше нравится когда все операторы в верхнем регистре. Знак “$” более наглядно показывает, что запрашивается именно строка.

Разумеется, всё вышеперечисленное, и проверка, и автоформатирование, должно быть полностью настраиваемо и отключаемо.

Опубликована версия 5.2.0.

В новой версии - добавлена подсветка.

Nex:

В новой версии - добавлена подсветка.

и описание системных команд и переменных в статусной строке.

у меня при попытке запуска вылетает с ошибкой “QGen.exe не является приложением Win32”
Система Windows XP SP3 (32bit).
В архиве случайно не 64bit версия?

Возможно, из-за редиста.

Machine: 014Ch (i386 or later, and compatible)
Nex, врят ли. Предыдущий так же комплектовался и работал при этом.

rrock.ru,
надо разобраться.

Log in or Register to post comments.