SING. Базовый проект.
- Python версии 3.5 и выше
- Модуль pickle для питона(
pip3 install pickle
) - Утилита make(пока что движок адаптирован для linux'а)
sudo apt-get install make
- Скачать базовый проект, используя зеленую кнопку "Download" вверху справа, распаковать
- Зайти в директорию, запустить index.html(для проверки работоспособности)
- Редактируем main.py и периодически запускаем make - генерируется файл HTML/_bytes.js (содержит квест в байт-коде)
- Запускать используя index.html
Демо-видео: https://youtu.be/VKieqWdUf4A?t=30
Демо-проект: https://github.com/NXsing/sing_demo
Питоновые функции движка:
r([название комнаты])
- начало блока комнатыt(текст, [условие], [команда])
- объявление текста комнатыa(текст, команда, [условие])
- объявление действия в комнатеe()
- заверешние блока комнаты
Как видите, движок очень прост.
Есть еще "умная" функция x(текст, [команда/условие])
, которая сама, на основе формата аргументов, вызывает t() или a(). Это позволяет писать код побыстрее.
Основные:
a("Взять книгу","set BOOK","ifset BOOK")
a("Взять книгу","unset BOOK","ifnot BOOK")
a("Идти дальше","goto комната2")
Можно комбинировать через ";":
a("Взять книгу","set BOOK;unset HANDFREE;goto room4","ifset BOOK;ifnot VISITED4")
Алиасы:
a("Идти дальше","next")
a("Идти дальше","return")
Питоновые функции(r,t,a,e) генерируют структуры, которые потом конвертируются в байт-код.
Байт-код потом интерпретируется в браузере, используя javascript.
Можно реализовать интерпретатор байт-кода и на любой-другой платформе(всего 15 инструкций). Сам байт-код(пока что) сохраняется в два файла: _bytes.js и bytes.pick
Файл bytes.pick можно импортировать в Питоне:
import pickle
mem=pickle.load( open( "SOURCE/_bytes.pick", "rb" ) ) # байт-код прочитан
При запуске Makefile, автоматически генерируется, в том числе, файл qsp.txt.
Для того, чтобы получить файл квеста QSP, нужно передать утилите txt2gam файл qsp.txt:
txt2gam.exe qsp.txt game.qsp
Для выполнения этой задачи, в дирректории базового проекта есть файл txt2qsp.bat.
Полученный файл game.qsp предназначен для запуска в QSP-плеере, его можно редактировать в программе QGen.
Демонстрация- Видео по написанию простейшего квеста(использованию API, +multiline strings)
- Видео по написанию алиасов(img, chain, yt)
- Почта: x_n хатико) ro.ru
- NX на Discord-канале ifrus: https://discordapp.com/invite/X86kkzM