ИнформАрхив QSP
TXT2GAM. Краткое руководство
Утилита "TXT2GAM" ("txt2gam.exe") предназначена для конвертирования текстовых файлов, написанных в специальном формате, в файлы QSP-игр .qsp
. Таким образом вы можете создавать игры в обычном текстовом редакторе, а затем конвертировать их в приемлемые для плееров файлы.
Формат TXT2GAM
Файлы в формате TXT2GAM — это обычные текстовые файлы, в которых мы размещаем код QSP, при этом данный код нужно записывать по определённым правилам.
Начало локации отмечается символом #
(решётка/диез), после которого должен стоять пробел и название локации. Например так:
Конец локации обозначается символом -
(дефис) в отдельной строке. После этого символа в той же строке могут идти любые символы, например, снова название локации:
Между началом и концом локации записывается обычный код QSP, как если бы вы его писали в поле "Выполнить при посещении" редактора Quest Generator. Вот пример кода в формате TXT2GAM с двумя локациями:
'It''s only test of new utility.'
'That is all.'
act 'Далее':
goto 'next'
end
- (конец локации)
# next
$s='Это последняя локация примера.'
i=1
:loop
if i<=len($s):
*p $mid($s,i,1)
wait 200
i=i+1
jump 'loop'
end
*nl & 'Это всё.'
-
Между локациями в таком файле может быть записан любой текст, он не попадёт в конечный файл игры. Поэтому вы можете помещать туда различные комментарии, команды препроцессора и другой сопроводительный текст.
Поскольку концом локации считается символ -
в начале отдельно стоящей строки, могут возникнуть ошибки, если вы напишете команду, наподобие этой:
Записанная в поле "Выполнить при посещении" редактора Quest Generator данная команда будет нормально работать в итоговой игре, однако если эту команду записать в файле формата TXT2GAM, конвертер посчитает её окончанием локации, и все последующие за данной командой строки вплоть до начала следующей локации будут проигнорированы.
"Какой-то код. Много-много кода
Этот код попадёт в локацию"
! пытаемся вывести произведение 45 и 9 умноженное на -1
-(45*9)
"А вот этот код не попадёт в локацию"
- начало (хотим, чтобы конец локации был здесь)
Все строки от -(45*9) будут проигнорированы
# локация 2
! какой-то код
- локация 2
Если не закрыть локацию строкой начинающейся с -
, новую локацию открыть будет нельзя, а значит строка, начинающаяся с символа #
может вызвать ошибку "Неизвестное действие" в конечной игре:
"Выводим текст"
# локация 2
"Забыли закрыть локацию перед открытием новой"
- локация 2
Внимание! Для формата TXT2GAM не предусмотрено редактирование базового описания и базовых действий. Поэтому при экспорте игры из Quest Generator в формат TXT2GAM будьте внимательны: все базовые описания и базовые действия будут экспортированы в основной код локаций. Если впоследствии вы импортируете игру обратно из TXT2GAM-файла в Quest Generator, то поля "Описание" и "Базовые действия" во всех локациях окажутся пустыми.
Использование утилиты TXT2GAM
TXT2GAM — это консольная утилита, т.е. она запускается командами из консоли, например из командной строки Windows. Ознакомиться с основными командами командной строки вы можете в обучающей статье "Что такое консоль, команды и прочее такое разное — CMD".
Пример работы с утилитой:
Здесь: game.txt
— исходный файл вашей игры, написанный в формате TXT2GAM; game.qsp
— конечный файл, в котором будет сохранена ваша игра.
Предположим, вы написали игру в текстовом редакторе, и теперь она у вас лежит в виде файла game.txt
на диске "D:
" в папке "QSP\Games\myCoolGame
".
Для удобства скопируйте утилиту TXT2GAM (т.е. файл txt2gam.exe
) в папку с игрой. Теперь для конвертирования игры вам нужно сделать следующее:
- Откройте консоль
- Перейдите на диск "
D:
", введя командуD:
в командной строке и нажав клавишу "Enter". - Перейдите в папку с вашей игрой с помощью команды
cd
. В нашем примере это делается такcd "QSP\Games\myCoolGame"
Запустите утилиту TXT2GAM, указав в качестве параметров сначала исходный файл вашей игры (т.е.
game.txt
), а затем название файла, который хотите получить, напримерmyCoolGame.qsp
:txt2gam.exe game.txt myCoolGame.qsp
Утилита поддерживает полные пути к файлам, поэтому вы можете использовать одну утилиту для конвертирования разных игр:
Для получения дополнительной информации об утилите, запустите её в консоли без параметров:
Если указать ключ u
, исходный файл будет обрабатываться как Unicode-файл (кодировка UCS-2 LE / UTF-16 LE):
Дополнительные возможности утилиты
Использование
Общий вид команды для консоли:
Опции. [Options]
a, A — режим ANSI. По-умолчанию утилита работает в режиме Unicode (UCS-2 / UTF-16).
u, U — режим Unicode (UCS-2 LE/ UTF-16 LE).
o, O — сохранить игру в старом формате (.gam
). По умолчанию используется новый формат (.qsp
).
s[char], S[char] — вместо [char] нужно указать символ, с которого начинаются ваши локации. Т.е. это символ, который вы можете использовать вместо #
, если это необходимо.
e[char], E[char] — вместо [char] нужно указать символ, которым будет отмечаться конец локации. Т.е. это символ, который вы можете использовать вместо -
, если это необходимо.
p[pass], P[pass] — вместо [pass] укажите пароль, который хотите установить на игру. По умолчанию No
. Если пароль содержит пробелы, заключите его в кавычки.
t, T — извлечь строки из текста.
q, Q - извлечь q-строки из текста.
Примеры вызова:
txt2gam.exe file.txt gamefile.qsp
txt2gam.exe file.txt gamefile.qsp u
txt2gam.exe file.txt gamefile.qsp o pMyPassword
txt2gam.exe file.txt gamefile.qsp o e@ pMyPassword
txt2gam.exe file.txt gamefile.qsp u o p"My Password"
txt2gam.exe file.txt gamefile.qsp o
txt2gam.exe file.txt gamefile.qsp o e@
txt2gam.exe file.txt gamefile.qsp s@ e~
txt2gam.exe file.txt gamefile.qsp s@ e~ o
txt2gam.exe file.txt gamefile.qsp t u
Подключение утилиты к текстовому редактору
При разработке игр в текстовом редакторе, очень полезным может оказаться создание специального действия / кнопки для автоматической компиляции файла в .qsp
и запуска плеера сразу с редактируемым файлом.
То есть пишете текст игры в редакторе, нажимаете некое сочетание клавиш и получаете запущенную в плеере игру.
Данное руководство, на примере EmEditor
а , описывает, как это сделать.
Для начала, создайте папку (допустим, D:\Games\QSP
), распаковав в неё базовый архив плеера (qspgui.exe
+ все DLL
`ки) и архив утилиты TXT2GAM.
Далее, создайте в этой папке (рядом с qspgui.exe
, txt2gam.exe
) файл start.bat
со следующим содержимым:
start qspgui %2
Теперь нужно в редакторе добавить действие / кнопку, при нажатии на которую будет запущен файл start.bat
с двумя аргументами - указанием исходного TXT файла и конечного .qsp
-файла.
- Запустите EmEditor, выберите в меню
Tools / External Tools / Customize Tools...
- В появившемся окошке нажмите кнопку
New
. - В поле
Title
впишите название действия (например, "QSP"). - В поле
Command
строкуD:\Games\QSP\start.bat
- В поле
Arguments
строку"$(Path)" "$(Dir)\$(Filename).gam"
(сохраняя кавычки) - В поле
Initial Directory
строчкуD:\Games\QSP
- Затем поставьте флажок напротив
Save File
, и нажмитеOK
. - На панели инструментов появится новая кнопка с подписью "QSP", при нажатии на которую будут произведены требуемые действия.
Теперь нужно назначить сочетание клавиш для кнопки.
- Выберите пункт меню
Help / Keyboard Map...
. В категорииExternal Tools
найдите пунктQSP
(обычно, в самом низу) и щелкните по нему 2 раза. - Установите курсор в поле
Press New Shortcut Key
и нажмите желаемое сочетание клавиш (к примеру, F1). Станет доступной кнопкаAssign
. Нажимаем. - Далее жмём
OK
и пишем игры в формате TXT2GAM :-)
Чтобы установить пароль на файл, создаваемый утилитой TXT2GAM, замените в файле start.bat
строчку
на
где MyPassword
- устанавливаемый пароль. Для задания паролей с пробелами, строчка pMyPassword должна быть указана в кавычках:
Примечания:
- В настоящий момент общепринятым расширением для текстовых файлов формата TXT2GAM можно считать
.qsps
. "Просто потому что" (с) Pseudopod. - Существует утилита
qsp2txt
для конвертирования игр в обратную сторону — из файлов игр.qsp
в текстовые файлы формата TXT2GAM. Исходная ссылка утеряна, можно скачать в архиве программ QSP от Aleks Versus. - Существовали разные подсветки синтаксиса для
Notepad++
иAkelPad
, но были утеряны. - Подсветка синтаксиса для Sublime Text входит в пакет JAD на QSP для Sublime Text.
- Существует подсветка для Notepad++ от Олегуса. С этой подсветкой ассоциируются текстовые файлы с расширением
.tqsp
, однако вы можете отредактировать файл подсветки, указав нужное вам расширение. - Werewolf разработал утилиту для конвертирования QSP-файла в текстовый формат (аналог
qsp2txt
), которая работает онлайн: https://codepen.io/srg-kostyrko/full/QWqdwxv. Так же он разработал специальные пакеты для конвертирования файлов в любую сторону: https://github.com/QSPFoundation/converters.