Storle - интерактивный "живой" блокнот, для текстовых игр.
Работает крайне просто - есть набор правил "заменить A на B", как только в блокноте появится последовательность A, оно заменится на B. Эта механика дает большие возможности. Можно делать что угодно. Потому я создал библиотеку Stateless для Storle, чья особенность в том, библиотека стремится к тому, не хранить состояние игры, и хранит контекст в ключевых словах (синтаксис - :ключевое слово:).
К примеру, когда игрок заходит в таверну, для генерации NPC внутри таверны, он пишет не
:человек:, а :человек в таверне:.
Однако с помощью динамических правил можно автоматически сужать контекст, но это не панацея, и их использование весьма ограничено.
Так вот, предлагаю сделать игру совместно. Любая помощь Анона, может быть полезной.
Сеттинг
Предлагаю сделать позднее средневековье (как в Волчице и Пряностях) и есть небольшой черновичек с генератором имен городов и предыстории. Фентези приветствуются, и пожалуйста, проявляйте оригинальность. Мы тут не исекай пишем.
Мейнтейнинг
Пока я мейнтейнер проекта, и игра собирается из кусочков у меня. Но я подготовлю Storle для "реального мира", и выложу исходный код проекта на гит. Билдер готов и весьма удобен (вводишь одно слово (storle-build) в консоль, и готово - играбельный html файл скомпилировался с файлов проекта в той папке, где была введена команда).
Формат скриптинга
Движок не накладывает никаких ограничений на скриптинг. Я создал простой текстовый формат для историй, который не требует знания JS (и вообще программирования):
```
:ключевое слово:
Текст, который появится. Можно рандомно выбирать текст из вариантов: [вариант №1 / вариант №2].
Можно сгенерировать рандомное число #0-200.
{% // Здесь выполнится произвольный JS-код %}
```
Опробовать
Опробовать можно тут: https://femto.pw/mmnx
Можете набрать :словарь: и :имя города:, чтобы понять концепцию.
Текущий сценарий
https://pastebin.com/fKUaS3Nm
Это межбордовый проект. Сниппеты проекта собираются с нескольких АИБ.
Пока есть большие вопросы к существующим текстам. Их надо переписать, или вообще удалить.
Чем конкретно можно помочь?
Описаниями локаций, предметов, персонажей, и всего-всего. Даже предложение имени сойдёт.
Практически весь текст создавался не мной. Я программист, а не писатель. Мною создан только сниппет для генерации имен городов и предисловие (которое, к слову, тоже нужно переписать).
Рекомендации
- Описания должны выглядеть не как определения из википедии, а так, как если бы были частью какого-либо худ. произведения. То есть должны легко вписываться в нарратив.
- Сниппеты не должны подразумевать что есть некий общий сюжет вокруг них. История пишется процедурно совместно с игроком.
- Будьте оригинальны когда придумываете фентези-элементы.
- Очень желательно, чтобы сниппеты были модульными, т.е чтобы какую-то часть сниппеты можно было заменить на что-то другое. Обычно подвижными являются отдельные слова, которые рандомно меняются на синонимы или антонимы.
>Необходим JS
Включен.
>а также рекомендуется входить из Chromium, ибо Chromium 100% работает.
Не работает на Firefox, Chrome, Opera. Написать нормальный скрипт не привязанный к конкретному браузеру ума не хватает?
> Не работает
> Chrome
Он работает. Причем не только у меня. Другими анонами подтверждено. На мобильных так же работает. Пруфрилейтед.
Старым браузером пользуешься, который ES6 не поддерживает.
> Если только под конкретную версию движка хрома.
Под все новые старше 2019 года.
Серьезно? Как ты вообще в интернете сидишь? Судя по шрифту, у тебя XP. Готовься, скоро у тебя вообще сайты работать не будут.
Я тоже запретил своему браузеру обновляться пару лет назад и прекрасно живу. И у меня в твоём сайте не работает команда ։предисловие։
Проблема в том, что в твоем браузере старый и некошерный JS, на котором ни один адекватный человек программировать не будет.
Руководствуюсь принципом - если программа не может работать без тысячи сторонних библиотек - то не пошла бы она нахуй эта программа.
Вот только моя программа не задействует вообще ни одной сторонней библиотеки. Only vanilla js.
>Готовься, скоро у тебя вообще сайты работать не будут.
Говнокод как у опа и так не работает. Все остальное нормально написанное работает и будет работать.
Я удивляюсь вашему стоицизму в нежелании обновляться, это какая-то болезнь? Естественно, что многие сайты у тебя будут работать, ибо компаниям не выгодно тебя терять. Но какой смысл небольшому проекту писать еще код на старом жабаскрипте, что бы угодить парочке шизоидов?
Если ты вынужденно сидишь на старой системе из-за некрожелеза, ай эм со сорри. Накатил бы линух и жил бы как белый человек
>Я удивляюсь вашему стоицизму в нежелании обновляться
Я удивляюсь зачем люди добровольно скачивают себе гигабайты анальных зондов, выскакивающих баннеров, амиго браузеров и прочую поебень, если и без неё всё прекрасно работает.
А что еще? Тут тебе готовая база для создания приложений с UI.
Знаешь про порфьевича? Так вот, играется похожим образом. Пишешь историю, а компьютер дополняет деталями.
Я немного написал, но нихуя не произошло.
Т.е это обычная бдшка-словарь, с кучей фраз и генератор рандомных целых? Типо, dungeon ai без самого ai?
Т.е это обычная бдшка-словарь, с кучей фраз и генератор рандомных целых?
Да.
Пишешь историю, но только от лица собственного персонажа, за всем остальным решает рандом.
>Типо, dungeon ai без самого ai?
Только причем тут ai dungeon? Это говно нерабочее, и механика у него совсем иная.
> Это говно нерабочее
Как и твоя трехстрочная пуколка, хех
> Пишешь историю, но только от лица собственного персонажа, за всем остальным решает рандом
> механика у него совсем иная
Она у него хотябы есть, и довольная сложная. А это его даун-версия, в которой не используется алгоритм машинного обучения, рыскающий по горам инфы, зато есть надежда на кучку графов-пидоров в анальном рабстве строчащим свой кал. Если это и правда все, на что способен твой код, то я понятно, почему ты здесь, а не в /pr или /gd
> Она у него хотябы есть, и довольная сложная.
Ты бы хотя бы поиграл в ai dungeon - это бесконтролльный хаотичный бредогенератор, уровня чуть лучше марковских цепей.
Здесь же, игру ведет игрок, но благодаря огромному разнообразию контента (который будет майниться всеобщими услиями анонов) игра будет жить своей жизнью. Этакий литературный рогалик.
> Здесь же, игру ведет игрок, но благодаря огромному разнообразию контента (который будет майниться всеобщими услиями анонов) игра будет жить своей жизнью. Этакий литературный рогалик.
Божечки, лучше бы свои потуги кодить на сподвиги в маркетологию заменил бы. Выставлять примитивнейший вспук в пару действий и отсасывающий при запуске у некоторых пользователей, как охуительный продукт с пиздатым функционалом это надо уметь, хех
> Выставлять примитивнейший вспук в пару действий и отсасывающий при запуске у некоторых пользователей, как охуительный продукт с пиздатым функционалом это надо уметь, хех
Всё дело было изначально в простоте концепции.
Первый раз за много лет сделал исключение и скачал новенькую версию хрома. И знаете что произошло? То же самое, что всегда происходит когда игра или программа требует установки дополнительных библиотек, сложных регистраций и прочих увлечений линуксоида ради своего запуска. Нихуя не произошло. Всё как было так и осталось.
Пиздец пригорело.
Ты же вводил с клавы кейворды, а не Ctrl+C Ctrl+V? Покажи консоль. Пофикшу это дело. И да, это же не готовая версия. Все пока в стадии разработки, баги неизбежны.
Вооружаюсь порфирьевичем и попробуем продолжить историю. Реквесты принимаются.
Если кто спросит, о чем я мечтал с самого детства, то я незамедлительно ему отвечу - "путешествия". И я бы мог просто сидеть дома... бездельничать без дела - но нет, ноги сами несут к коню, руки тянутся в кошель, а еда далеких земель сама лезет мне в рот.
Ну, таков я человек. И как только мне исполнилось 16 лет, я ринулся загружать повозку всем необходимым. Еда, одежда, одеяла - все летело в повозку. Я взял свой кошель весом 1500 серебряков, поцеловал плачущую матушку на прощание, сел в повозку, и уехал на встречу неизведанным землям.
Как я и думал, повозка еле двигалась, и я сильно отстал от каравана, который шел на север. Уже после полудня я выбрался на проселок, ведущий к какому-то хутору. У ворот дома стоял какой-то парень в длинной замасленной рубахе, конопатый и босой, и растирал ветошью огромного черного коня, не обращая внимания на то, что тот бьет копытом в деревянный помост перед воротами. Это был великолепный боевой конь, еще совсем молодой.
Парень некоторое время не хотел отвечать, но после небольшой порции пива за столиком местного трактира всё же поведал свою историю:
-В Синегорье умер старый колдун. Простачьё боится странных вещей в его башне, а я - нет. Посмотри какого жеребца увёл. Не меньше десяти золотых за него планирую выручить.
>В Синегорье умер старый колдун. Простачьё боится странных вещей в его башне, а я - нет. Посмотри какого жеребца увёл. Не меньше десяти золотых за него планирую выручить.
- Ну его нафиг, с колдовским жеребцом связываться не охота. Кстати, где говоришь его башня находится?