Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
16.04.2012 14:56

Sonic
Автор ЯРИЛ (+82, -4)
Откуда: Россия, Краснодар
Зарегистрирован: 24.08.2001
Сообщений: 243
Вебсайт

---

О платформе ЯРИЛ

ЯРИЛ (Язык Разметки Интерактивной Литературы) - это парсерная платформа с визуальным редактором, не требующая редактировать исходный файл игры в текстовом редакторе. На текущий момент состоит из Редактора, Плеера и Тестера.

ЯРИЛ победил на Золотом Хомяке 2013 в номинации "Проект года" по мнению жюри!!!

Текущее состояние платформы, а также ссылки для скачивания: смотрите на вики-странице или в ветке новостей.

Архитектура игры на ЯРИЛе представляет собой множество локаций, предметов, действий (команд) и процедур обработки этих действий. Действия состоят из шаблонов команд для парсера и ссылки на процедуру. Процедура - это набор инструкций. Инструкции - это не код программы, а алгоритмическое дерево.

Редактор позволяет редактировать игру в формах, в частности: локации (название, описание, переходы), предметы (название, описание, словарь, первоначальное положение, признаки, перехваты действий), процедуры и действия:
http://b8.icdn.ru/r/realsonic/9/55934079mDk.jpg


Плеер:
http://b8.icdn.ru/r/realsonic/0/55934080rAx.jpg

Тестер (пока в зачаточном состоянии) используется для тестового прогона игр авторами в процессе разработки. Например, для игры можно написать несколько тестов для проверки различных сюжетных веток:
http://b8.icdn.ru/r/realsonic/1/55934081TrK.jpg

Проект поддерживается кросс-платформенным установщиком BitRock:
http://b8.icdn.ru/r/realsonic/2/55934082EhG.jpg

Неактивен

0    0    #2
06.01.2014 12:57

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

Привет создателю ЯРИЛА!

Хотелось бы задать несколько вопросов:

1. Можно ли в Редакторе заменить отдельные команды из библиотеки глаголов или нужно ее отклучать совсем?
2. Как задавать условия? Интересует синтаксис.
3. Какие операции с переменными (кроме присваивания) поддерживает интерпретатор? Если поддеживает, то как это реализуется на практике?
4. Стили оформления редактируются в xml?

Неактивен

0    0    #3
07.01.2014 22:20

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

В переменную можно записать значение любого выражения.

Т.е. матемаматические операции полностью поддерживаются? А, скажем, rnd будет генериться?
А динамическое изменение свойств, описания комнат, объектов поддерживается?
На сколько вообще проект будет похож на ADRIFT, если, конечно, это есть в планах? Какие планы по развитию платформы, если не секрет?

Можно. Нужно просто создать команду, которая по шаблонам будет совпадать с библиотечной.

А, кстати, где можно шаблон посмотреть? Нужно в файл библиотеки лезть? Из Редактора никак? Там, вроде, только просмотр всех глаголов доступен.

Отредактировано johnbrown (07.01.2014 22:25)

Неактивен

0    0    #4
07.01.2014 23:01

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

А что имеется в виду под динамическим изменением объектов?

Сорри, не так написал. Динамическое изменение свойств предметов (объект - контейнер, объект может быть съеден).

Неактивен

0    0    #5
08.01.2014 00:45

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

Динамического навешивания/снятия ролей пока не планировалось. Нужно ли оно?

В АДРИФТе, по-моему это реализовано. Ну, конечно, много не мало, но мне, если честно, рнд сейчас не хватает ) , ну, и справки какой-то минимальной. В АДРИФТЕ, кстати есть встроенная справка по матфункциям, очень удобно в одном клике от окна ввода. В целом, конечно, понятно,на то оно и мышинное программирование, но есть не очевидные моменты. Вообще, есть смысл сейчас писать на ЯРИЛ? Может быть такое, что новые версии не будут поддерживать старые игры?

Неактивен

0    0    #6
08.01.2014 09:43

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

В ЯРИЛе пока нет матфункций) РНД -можно сделать и пораньше. Как его будет наиболее удобно использовать?Мне кажется, он чаще всего используется для каких-то случайных событий, нежели просто для генерации случайного числа. Для случайного выбора между n-ым кол-вом альтернатив, думаю, лучшим вариантом будет создание инструкции-ветвления (типы switch или case в других языках, или множественный if), с указанием случайного выбора ветви. Или сейчас больше необходимо именно случайное число (каких-то очков, предметов и т.д.)?

Rand(x,x1)
Мне бы этого хватило, т.к., как я понял, уже сейчас можно повесить перехват событий на переменную.

Неактивен

1    0    #7
17.12.2014 09:01

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

Привет, Соник. Спасибо за генератор ,)

Скажи, а что ЯРИЛ не дружит с 7 явой?

И еще вопрос. Можно сделать, чтобы название предметов не выводилось в локации. Если установить свойство 'часть пейзажа', то предмет взять не получится .(

Неактивен

0    0    #8
17.12.2014 17:21

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

Да, так и задумано. Раз часть пейзажа, то предмет нельзя взять - он же описан в локации.

А можно сделать, чтобы предмет не выводился в описании и его можно было взять? )

Неактивен

1    0    #9
17.12.2014 19:17

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

Да, наверное, так и придется сделать.
Просто бывают ситуации, когда есть некий "неисчерпаемый" источник, например колодец или предмет условно "невидим". Было бы здорово если бы можно было установить соответствующий флаг в свойствах. Такое мое скромное пожелание )

Неактивен

0    0    #10
18.12.2014 23:24

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

ASBer написал:

условно "невидим" - это то же самое что "спрятан" ?
Для спрятанных предметов обычно есть отдельная механика.

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

Немного раздражает автосохранялка (из-за случайной перезаписи я потерял обучающий файл). Может не стоит выводить список файлов? Сохранить? Ок. И все.

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

Скачал руслана&людмила и фавна, но они зашифрованы. Можно где-то сорцы взять или еще каких-нибудь игрушек для обучения?

Неактивен

0    0    #11
19.12.2014 21:15

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

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

Пока заметил только одну ошибку. Если установить роль предмета читаемый и в верхнее поле текста ввести одинарные ковычки 'текст' то, при попытке прочитать предмет игра вылетает с ошибкой.

Планируется добавление пользовательских ролей(групп,тэгов)?

И, еще пожелание, чтобы все изменения в редакторе сразу отображались, а то приходится выходить и заново входить. Не очень удобно, но я уже привык )

Ап. Как переместить предмет в локацию? И можно его потом будет удалить стандартными средствами? Кстати, обратил сейчас внимание: чтобы взять предмет, нужно, чтобы он где-то лежал. По-моему, это не очень удобно.
Сделал перенос предмета командой локация.предмет. Теперь в описании локации мне пишет 'здесь предмет'. При этом осмотреть его нельзя 'я не знаю слова предмет'.
Соник, можешь рассказать как работают перехваты? Как я понял, если в процедуре нет инструкций, то выполняется перехват в предмете. А если есть, то не выполняется?

Кстати, в процессе написания понял, что не хватает ивентов. Они бы прекрасно работали с процедурами, но ты, наверное, уже об думал.

Баг: процедуру можно сделать безымянной. Редактор никак не прореагирует. Переименовать не получится, только удалить.

В имени переменной почему-то нельзя использовать символ нижнего подчеркивания.

Какой синтаксис/команды используются для работы с ролями?

У действий есть исключения (или как-то так, не помню). Можно сделать, чтобы если действие написано пользователем не полностью выдавалась обработка из исключения? Меня синтаксис интересует. Вообще, к этому больше всего вопросов, особенно к проверкам условий. Хорошо, есть примеры, но они не всегда спасают, приходится самому додумывать.

В условии допустимо только одно условие?

Отредактировано johnbrown (22.12.2014 09:09)

Неактивен

0    0    #12
22.12.2014 17:08

johnbrown
Участник (+221, -9)
Откуда: Москва
Зарегистрирован: 01.12.2013
Сообщений: 241

Re: О платформе ЯРИЛ

Да, планируется добавление пользовательских ролей. А что подразумевается под группами и тэгами?

Я имел в виду одно и тоже - возможность навесить на предметы некий признак, тэг. Чтобы объединить схожие группы предметов, чтобы не делать лишней работы с перечислением предметов в условиях. Там даже механики никакой не нужно, просто обычный тэг.

И, еще пожелание, чтобы все изменения в редакторе сразу отображались, а то приходится выходить и заново входить. Не очень удобно, но я уже привык )
Не понял, а что не отображается? Вообще, в редакторе есть пункт меню "Запустить в Плеере" - туда попадает текущая игра (сохраняется во временный файл и загружается в Плеере).

Посмотри процедуры или действия. Внутри них изменения становятся видны визуально только если закрыть и открыть их соответственно, хотя по-факту, да, сразу все изменяется.

Кстати, обратил сейчас внимание: чтобы взять предмет, нужно, чтобы он где-то лежал. По-моему, это не очень удобно.
Не совсем понял.

Я проверял. Чтобы переместить предмет, к примеру, к себе в инвентарь, этот предмет должен быть к чему-то приписан. Т.е., изначально он может висеть в воздухе, редактор это позволяет, но тогда передачи не произойдет. Мне кажется, это не совсем правильно.

Сделал перенос предмета командой локация.предмет. Теперь в описании локации мне пишет 'здесь предмет'. При этом осмотреть его нельзя 'я не знаю слова предмет'.
А у него настроен словарь?

Конечно, есть словарь с синонимами.

Я думал про ивенты типа "изменилась переменная" или "игрок зашёл в локацию". Но это пока было на уровне мыслей. А чего именно хотелось бы?

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

Какое условие ты имеешь в виду? Вообще, выражения поддерживают логические операторы: и, или, не.

Да, это я имел в виду.

У действий есть ограничения. Они проверяются по очереди при попытке выполнить действие. Если условие какого-то из ограничений будет истинным (логическое "да"), то выполняются инструкции ограничения, а действие и остальные ограничения уже не выполняются. Пример - в Руслане и Людмиле действие "трубить".

Вот, скажем есть некий шаблон: глагол + предмет.ип. Я могу сделать такое ограничение, если пользователь не указал предмет (просто написал глагол)?

Код:

если 
предмет.ип = ''
то
"Что я должен' + глагол + '?'

ЗЫ можно создать отдельный топик по чисто-техническим вопросам реализации языка.

Отредактировано johnbrown (22.12.2014 17:45)

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru