Движки, платформы, конструкторы…
  • Дата создания
    25 февраля 2015
  • Топиков
    27
  • Ограничение на постинг
    0.000

qSpider 0.9.1

Вышла новая версия плеера qSpider — 0.9.1

В этой версии добавлена возможность загружать игры из zip архива — как через конфиг, так и кнопка для загрузки игры с жесткого диска.

Для загрузки архива qsp файл игры должен находится в корне архива (не в подпапке) и должен быть только один qsp файл в корне (если используются дополнительные qsp файлы, то они должны быть расположены в подпапке).

В планах на следующую версию — добавить поддержку AeroQSP игр.

qSpider 0.9.0

Вышла новая версия плеера qSpider — 0.9.0
Демо — https://qspfoundation.github.io/qspider/

В этой версии появилась возможнось определить список игр в конфиге плеера. Если было определено несколько игр — на старте плеера будет предложена возможность выбрать игру из списка. И в плеере добавится дополнительная кнопка, чтобы диалог выбора игры можно было вызвать позже. Если игра была определена всего одна — она автоматически запуститься.
Также добавлена возможность загружать игры по внешней ссылке (раньше плеер работал только с одной папкой). Здесь необходимо помнить о ряде ограничений связанных с ограничениями браузера:
  • с https страницы нельзя загрузить http ссылку
  • у сервера, где находится игра, должны быть настроены CORS заголовки
В связи с этим поменялся немного формат конфиг файла

[[game]]
id = "7466df3b-4236-4668-b0df-2a70477da67b"
title = "Сказочка на ночь"
description = """Ночью в полнолуние закрывай засов.
Не ходи к колодцу, коль услышал зов.
Чей бы голос ни был - дева ли, старик
Не ходи к колодцу, коль услышал крик ... (с)"""
file = "skazka/skazka.qsp"
  • перед описанием новой игры необходимо добавлять заголовок [[game]]
  • добавлено необязательное поле description — оно используется в списке игр
  • поле folder удалено, а в поле file путь нужно прописывать путь относительно папки конфига, или же он должен содержать внешнюю ссылку (например file = «qspfoundation.github.io/qspider/game/skazka/skazka.qsp»)
  • для определения горяцих клавиш игры необходимо использовать заголовок [game.hotkeys] (раньше он был [hotkeys])

qSpider HotKeys

Вчера вышла новая версия плеера qSpider — 0.8.1.
В ней, помимо небольшого баг фикса и добавления горячих клавиш в сам плеер, появилась возможность автору игры добавлять собственные сочетания горячих клавиш.

Архив с примером

Для добавления сочетания клавиш в игру необходимо прописать дополнительную секцию [hotkeys] в конфиге, где ключем будет сочетание клавиш, а значением — название локации в игре, которая будет вызвана при нажатии.

Поддерживаемые клавиши:


Модификаторы

  • shift
  • ctrl
  • alt
  • meta — для поддержки на macOs лучше использовать этот модификатор вместо ctrl

Специальные клавиши

  • backspace
  • tab
  • enter
  • capslock
  • esc
  • space
  • pageup
  • pagedown
  • end
  • home
  • left
  • up
  • right
  • down
  • ins
  • del
  • plus
  • f1-f19

Остальные клавиши можно определять просто по имени a, $, *, или =

Определять можно:

  • нажатие единичной клавиши — например i
  • одновременное нажатие — перечисляем клавиши через +, например alt+s
  • последовательное нажатие — перечисляем через пробел, например "g o enter"

qSpider - плеер для запуска QSP игр в браузере



Этот проект начался просто как проверка возможности запуска C кода в броузере с помощью WebAssembly.
Потом было понимание, что в связи со «смертью» Flash, скоро перестанет работать AeroQSP плеер, и было бы неплохо сделать возможность запуска игр сделаных под AeroQSP.
И вот пришло время его альфа-релиза.

Страница с релизами

https://github.com/qspfoundation/qspider/releases
Новые релизы будут появлятся на ней по мере выхода.

Демо игра

Сказочка на ночь

Поддерживаются только новые версии браузеров (поддержки Internet Explorer нет и не будет).

В плеере используется самая последня версия qsplib библиотеки, которую сейчас активно разрабатывает Байт.

Ее основные отличия от 5.7.0
  • операторы работы с модулями переименваны -ADDQST в INCLIB и KILLQST в FREELIB
  • в ряде функций (напрмер ARRPOS и ARRCOMP) необязательный параметр перенесен с первого места на третье
  • добавлены локальные переменные
  • добавлены циклы
  • изменена логика работы массивов — если раньше в одном элементе массива могли одновременно находиться и числовое, и строковое значение, то сейчас будет храниться всего лишь одно с признаком типа.

Отличия qSpider от Классического плеера:

  • пути к ресурсам (картинкам/аудио файлам) регистрозависимы — то есть если файл называется 'image.jpg' а в файле игры записано 'Image.jpg' или 'image.JPG' то плеер не сможет показать такую картинку
  • для проигрования аудио используются встроенные средства браузера, поэтому рекомендованый формат для плеера — mp3 как самый поддерживаемый (хорошая альтернатива — webm, у него меньше размер при том же качестве, но чуть хуже с поддержкой браузеров)
  • есть возможность пропуска wait (кликом по странице)
  • сохранения хранятся в браузере

Внешний вид пока не финализирован — критика и предложения по улучшению очень приветствуются.


Планы на ближайшее будущее:

  • загрузка игры из архива и по внешней ссылке
  • экспорт/импорт сохранений — для переносов между браузерами
  • возможность запуска Aero игр

Запуск плеера на компьютере
Из-за ограничений безопасности плеер нельзя запустить просто открыв index.html файл в браузере.
Поэтому для запуска необходим локально запущенный сервер — можно использовать один из списка или же расширение хрома Web Server for Chrome.

В дальнейших инструкциях я буду использовать расширение:

  • устанавливаем Web Server for Chrome
  • скачиваем и распаковываем qspider-player.zip с страницы релизов
  • открываем в хроме chrome://apps/ и выбираем в списке Web Server
  • в открывшемся попапе выбираем папку, в которую распаковали плеер и запускаем сревер
  • там же в попапе будет ссылка
По умолчанию вместе с плеером упакована игра «Сказочка на ночь».

Для запуска другой игры:
  • копируем игру в подпапку `game`
  • редактируем в той же папке файл `game.cfg`
    • id — уникальный идентификатор игры (используется для сохранений)
    • title — название игры (будет показано в заголовке плеера)
    • folder — путь к папке с игрой относительно папки game
    • file — название файла с игрой

QSP как язык программирования

Добрый день!

Меня спрашивают, почему у QSP свой язык программирования и почему бы не использовать что-либо существующее (Python, например). На мой взгляд, вопрос вполне понятный, особенно для тех, кто не знаком (или плохо знаком) с QSP.
Причин несколько.

Во-первых, QSP появился до того, как Python стал популярен.
Во-вторых, QSP проще Python'а в изучении (это важно, так как платформа ориентирована на начинающих).
В-третьих, свой интерпретатор позволяет сделать синтаксис более специализированным.
В-четвертых, интерпретатор QSP легче Python (Python — монстр при встраивании, во всяком случае так было раньше). Здесь только LUA может быть конкурентом.
В-пятых, я не люблю идею вездесущих отступов для корректности программ (в теории это требование делает код более понятным, но мне, к примеру, сложно ориентироваться в Python-коде).
В-шестых, более специализированный движок упрощает портирование на разные платформы.
В-седьмых, QSP более изолирован от окружения, что делает его безопаснее для исполнения на машинах (по идее, невозможно написать QSP-код, который поломает что-то в системе).
В-восьмых, легче что-то изменить, в случае чего. В самом Python что-то менять было бы сложно (нужно писать транслятор из какого-то другого языка в Python).

Ну и, конечно же, изначально хотелось поэкспериментировать с синтаксисом и интерпретацией :)

Как написать текстовую игру на Ficdown

Ficdown — это набор стандартов на основе языка разметки Markdown, который можно использовать для создания интерактивной литературы в гипертекстовом стиле или на основе выбора (choice-based). Форматирование текста выполняется с использованием обычного Markdown и с сохранением возможности внедрения HTML и CSS для прочего оформления, при этом несколько элементов разметки приобретают дополнительные свойства, определяющие историю. Разработчик Ficdown, Рудис Муизниекс, объясняет концепцию своей системы следующим образом:

«Существует множество систем для создания интерактивной литературы на основе выбора. Многие из этих систем подразумевают изучение нового языка скриптов и требуют использования специализированных сред разработки (онлайн или установленных на вашем компьютере). Большинство из них производят игры, для которых требуется JavaScript и в которые можно играть только в веб-браузере. Я создал Ficdown по трём причинам:

  1. Я хочу писать интерактивную литературу в текстовом редакторе по своему выбору.
  2. Я хочу, чтобы мою интерактивную литературу можно было воспроизводить на таких устройствах, как мой Kindle без Javascript или подключения к Интернету.

  3. Я хочу использовать Markdown вместо изучения нового языка скриптов.

Используя Ficdown, вы можете сосредоточиться на сочинительстве. Ficdown использует только существующий синтаксис Markdown для определения всего в вашей истории, поэтому вы можете писать в любом редакторе, в котором хотите, и вам не нужно изучать новый язык скриптов. И хотя истории Ficdown можно воспроизводить в интерактивном режиме в веб-браузере, их также можно преобразовать в стандартные форматы электронных книг или статический HTML для автономного воспроизведения.»

Если вам близки данные идеи, то из этой статьи вы сможете узнать, как писать собственные интерактивные истории на Ficdown, в том числе с учётом специфики русского языка.
Читать дальше

МЕТАПАРСЕР: библиотека минимализма


Сегодня я запустил небольшой каталог онлайн игр на метапарсере. http://metaparser.syscall.ru/

Игры работают на облегчённой версии интерпретатора, выглядят просто и запускаются быстро (на компьютере и вашем смартфоне). Никакой графики (хотя, движок их поддерживает), музыки, авто-подсказок, дополнения по клавише «таб» и прочей мишуры. В каком-то смысле, это анти-МЕТАПАРСЕР.
Читать дальше

Fabularium для RTADS-игр

В этой статье хотел бы поделиться небольшими хитростями по настройке Андроид-проигрывателя Fabularium для запуска русскоязычных RTADS-игр. Преимущество проигрывателя в том, что он отображает графику и проигрывает звуки. Итак, для начала надо залезть в настройки и вводим в поле Default Character Encoding: CP1251. И отключаем встроенную клавиатуру (Use build-in keyboard), чтобы появилась стандартная с кириллицей.
Читать дальше

SING - простой генератор интерактивных новелл

SING — движок менюшных квестов, ориентированный на создание атмосферных квестов посредством видео, звука, изображений и фона(вставляемых посредством тегов html).

Почему еще один движок:
  • Байт-код — позволяет портировать ваш менюшный квест на множество платформ(можно на Android, Arduino, и т.д.), причем автором интерфейса будете вы, а от SING, вам понадобится только логика(байткод)
  • Ориентированность на HTML5 и CSS, благодаря чему вы сами, можете создавать свои уникальные стили отображения квеста, использовать любые шрифты какие найдете, использовать спец.эффекты на js, и т.д.(+еще один повод изучить верстку). Всё что поддерживатеся HTML5, поддерживается и SING'ом. Включая WebM, gif, js-спец.эффекты, UI-библиотеки типа Bootstrap, JQuery-UI, Metro и т.д.
  • Минимальный API(всего 5 функций), но при этом очень мощный — может освоить даже начинающий, и делать графические квесты

Видео


Пример кода(main.py)

r()
t("Вы находитесь в комнате.")
t("Вы здесь уже были.", "ifset M4")
a("Далее", "set M4; goto кухня")
e()

r("кухня")
t("Вы находитесь на кухне")
t("<i>Ничего необычного</i>") # применение тегов html
a("Обратно","return")
e()

Демка(для скачивания):
github.com/NXsing/sing_demo

Базовый проект(для начала):
github.com/NXsing/sing_basic

Стартовал проект novels.ru

Сегодня первый день работы нашего нового проекта novels.ru. После регистрации Вы сможете оставлять комментарии и оценивать новеллы. Если Вы зарегистрированы на сайте Гиперкнига, то можете автоматически скопировать свой профиль на этот сайт, зайдя на сайте Гиперкниги в свой профиль и нажав на ссылку «Скопировать профиль на сайт novels.ru».

Напомню, что тематика этого сайта посвящена интерактивным новеллам любых жанров. В нашем понимании, интерактивная новелла — не то же самое, что визуальная новелла.

Возможность публикации своих новелл в библиотеку появится с выходом AXMA Story Maker 6.0. Это произойдёт до начала новогодних праздников. Обратите внимание, что в библиотеке действует постмодерация. Это означает, что по умолчанию все новые публикации попадают в песочницу, и уже оттуда игры переносятся администратором в основную библиотеку.

У авторов есть возможность самостоятельного изменения обложек своих игр. Для этого после публикации игры надо зайти в свой профиль, нажать на существующую обложку игры и выбрать своё изображение. Обложка должна быть квадратной, рекомендуемый размер — 512x512 пикселей.

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

Кстати, игры из библиотеки можно скачивать в виде архива со всеми её ресурсами (изображениями, музыкой и видео). Зайдите в полное описание игры и нажмите кнопку «Скачать».

Зарегистрированные пользователи сайта могут самостоятельно менять пароль своего аккаунта и устанавливать в профиле изображение своего аватара.

Также приглашаем Вас в нашу официальную группу ВКонтакте и в Твиттер проекта.

Да, и пока форум не работает, будем рады вопросам и предложениям в комментариях.