Разработка интерактивной литературы, статьи, мастер-классы, метафизика ИЛ.
  • Дата создания
    23 февраля 2015
  • Топиков
    64
  • Ограничение на постинг
    0.000

Пакет QSP для Sublime Text

Когда-то я публиковал пост о начале работы над билдером QSP-игр для Sublime Text. С тех пор много печенья съедено, и много сухарей насушено.

Теперь Билдер не является основной частью проекта, а только лишь одной из составляющих полноценного пакета для Sublime Text. Теперь внутрь пакета упакованы и сам билдер и различные вспомогательные скрипты, подсветка синтаксиса и небольшая коллекция полезных сниппетов, и много чего ещё.

Установка пакета сократилась до нескольких простых действий:
  • Качаете последний релиз со страницы релизов.
  • Распаковываете скачанный архив.
  • Копируете файл
    QSP.sublime-package
    в папку Packages рядом с установленным Sublime Text (Например, в
    C:\Program Files\Sublime Text\Packages\
    ).
  • Подсветка синтаксиса, плагины и прочее заработают при следующем запуске Sublime Text.

Более подробная информация о том, как работать с пакетом и встроенным в него билдером, представлена на гитхабе.

Есть и инструкция для быстрого старта: github.com/AleksVersus/JAD_for_QSP/blob/master/siaiz.md

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

Bitsy. Пиксельный минимализм

Недавно на Хабре вышла статья, посвящённая Bitsy — редактору и движку игр с пиксельной графикой. Даже не просто статья, а целое пошаговое руководство по созданию игры.
Учитывая малое количество информации по данной платформе на русском языке, думаю будет полезно продублировать ее и на данном ресурсе.

Во что поиграть на русском:

Альтернатива классической модели мира в парсерах

Прочитал тут статью cheshire «Искры. Полвека парсера». Если не читали — рекомендую. Напишу свои мысли на этот счёт.

Первое, что мне пришло в голову после почтения статьи — мысль о «семантическом вебе» (который, кстати, в наше время далеко не все используют). В текстовых играх это мог бы быть какой-то «язык разметки игрового мира». Не обязательно в виде готовых библиотек, а как некая спецификация, описывающая классы объектов, их атрибуты, отношения. Реализация бы уже зависела от конкретного инструмента.

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

Технически, ничто не мешает написать текстовый (не ASCII) вариант условного Cataclysm, но сколько это займёт времени? Рогалики полируют и совершенствуют годами, если не десятилетиями, зачастую силами сообщества. ИЛ — про авторов-одиночек. Каждая игра, по-сути, начинается с чистого листа, как новый движок со своими правилами. И еще: рогалики — это больше песочница. ИЛ, даже, если она паззловая, в большинстве случаев сюжетноориентирована. Если ты хочешь дать игроку полную свободу может просто посоветовать ему какой-нибудь Dungeon AI? Кстати, можно пофантазировать, что в будущем появится гибрид традиционной ИЛ и нейросети, которая возьмёт на себя функции «дорисовки» игрового мира. Если же еще продолжить развивать эту мысль, то в перспективе можно вообще отказаться от объектной модели мира, просто описывая сюжет будущей игры. Автор возьмет на себя роль режиссёра, а движок — кинооператора.

Так или иначе, пока что остается писать свои «велосипеды» или пользоваться существующими библиотеками, моделирующими какие-то классы предметов, например, одежду. Однако авторы почему-то не стремятся массово использовать такие библиотеки. Вообще интересно, что существуют достаточно продвинутые системы написания игр на естественном языке типа Inform 7, но даже в них «из коробки» отсутствует пресловутая «реалистичная модель мира». Авторы, как и прежде, предпочитают использовать абстрактные классы типа «контейнера» или «сцены». А может большего и не нужно?

Нововведения в QSP 5.8.0

Что нового?

Пока готовится выход нового плеера версии 5.8.0 (или выше), мы решили рассказать о грядущих нововведениях. Всё (или почти всё), что будет представлено в этой статье, вы уже можете пощупать в плеере “qSpider” от Werewolf`а.
Читать дальше

Упражнения с головоломками: вода

Продолжаем разбирать Сложные Проблемы Парсера, и сегодня настала очередь жидкостей. На этот раз я сначала дам упражнение, а потом объясню теорию.

Вам нужно открыть замок с фотоэлементом, но фотоэлемент сработает только если увидит чистый зелёный цвет. У вас в руках две колбы (бездонные) с жёлтой и синей краской, перед вами стоит прозрачная банка.
Читать дальше

Упражнения с головоломками: избушка на курьих ножках

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

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

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

В этом и есть первый уровень сегодняшнего упражнения: сделать шагающую избушку. Она может прогуливаться вперёд-назад, разминать ноги. Можно выйти из избушки, но тогда придётся её догонять. Если вам этого мало, дальше будут два сложных дополнения.
Читать дальше

Упражнения в интерактивной литературе: верёвка

В прошлой статье было довольно простое упражнение, которое можно было усложнить для себя дополнительными условиями. А в этот раз будет по-настоящему Сложная Проблема Парсера. Сегодня мы поговорим о верёвках.
Читать дальше

ИЛ-упражнения: лифт

Технически сложные проблемы — это интересно, но в реальной игре игроку не всегда интересно разбираться в тонкостях симуляции северо-юго-северо-запада, а автору ещё сложнее использовать это в сюжете. Но если хочется сложности, почему бы не взять эти идеи как обычные упражнения для тренировки?

Предлагаю серию упражнений. Их можно попробовать на любой платформе, парсерной или менюшной, но для начала я буду писать про парсеры. Будет интересно. Для начала стоит взять что-то традиционное, поэтому сегодня предлагаю сделать лифт.

Симуляция лифта — это довольно просто: это комната, в которую можно зайти, нажать на нужную кнопку и выйти на этот этаж. Единственная сложность — то, что выход ведёт в разные комнаты, когда нажаты разные кнопки.

И на этом можно закончить, это приличное полезное упражнение, но ведь мы можем усложнить симуляцию!
Читать дальше

QSP-Builder для Sublime Text

Всем привет.

В общем, тут как-то звёзды сошлись.

Вопросы Викара и попытка редизайнить свой сайт заставили ознакомиться с git и github; перелопачивание старого QSP-кода заставило пожалеть об отсутствии системы контроля версий в Qgen; а Pseudopod показал, что оказывается можно разрабатывать игры на QSP и не в QGen. Ещё до кучи я возобновил своё знакомство с Python, ну а поскольку моим любимым текстовым редактором уже многие годы остаётся Sublime Text, всё это вылилось в попытку написать скрипт вроде того, что предлагал evp когда-то (http://qsp.su/index.php?option=com_agora&task=topic&id=941&Itemid=57).
И к моему удивлению заработал сначала скрипт, а потом мне даже удалось превратить это в почти самостоятельную Build System (ну, конечно, многое придётся прописать руками).
Получился QSP-Builder for Sublime Text и умеет он: собирать из разрозненных файлов в формате TXT2GAM файлы ".qsp" и запускать их в плеере. Таким образом осуществляется как бы прямой запуск игры (на основе только что написанных файлов) из Sublime Text. Для конвертирования правда требуется заранее установить утилиту TXT2GAM, ну и само собой плеер так же должен быть установлен заранее. В общем, кому интересно, прошу ознакомиться. Надеюсь в будущем это снимет неудобства совместной разработки игр на QSP.

https://github.com/AleksVersus/JAD_for_QSP
Читать дальше

Массивы уже не те, или Изменение в логике работы массивов в QSP

Как ведут себя массивы сейчас

Начать следует с того, что в «классическом» плеере версии 5.7.0 и ниже, а так же в Quest Navigator 0.0.28 и AeroQSP, в одном элементе массива можно хранить как текстовое, так и числовое значение. Вот как это выглядит:
код 1
При этом мы спокойно можем получить и числовое, и текстовое значение по указанному индексу:
код 2
Правда это создаёт ряд дополнительных трудностей.
Читать дальше