ЯРИЛ: различия между версиями

Материал из IFВики
Перейти к навигации Перейти к поиску
(Версии платформы: 2015/1.5)
м (Oreolek переименовал страницу ЯРИЛ 2.0 в ЯРИЛ поверх перенаправления)
 
(не показано 27 промежуточных версий 5 участников)
Строка 1: Строка 1:
'''ЯРИЛ''' (Язык Разметки Интерактивной Литературы) - это [[парсер|парсерная]] [[платформа]] с визуальным редактором, не требующая редактировать исходный файл игры в текстовом редакторе. На текущий момент состоит из Редактора, Плеера и Тестера.
+
{{product info
 +
|название =
 +
|тип = Парсерные платформы
 +
|разработчик = [[Разработчик::Баланов, Михаил|Михаил Баланов]]
 +
|язык = Русский
 +
|система = Windows, GNU/Linux
 +
|онлайн =
 +
|написано на = [[Java]]
 +
|язык разработки = Визуальный редактор
 +
|читаемый формат = [[.ifml|Игры ЯРИЛ 2.0 (*.ifml)]], [[.cifml|Зашифрованный игры ЯРИЛ 2.0 (*.cifml)]]
 +
|создаваемый формат = [[.ifml|Игры ЯРИЛ 2.0 (*.ifml)]], [[.cifml|Зашифрованный игры ЯРИЛ 2.0 (*.cifml)]]
 +
|первый выпуск = 15.09.2001
 +
|последняя версия = 2016/5
 +
|дата последней версии = 26.02.2016
 +
|состояние =
 +
|лицензия = [[Freeware]]
 +
|сайт = [http://ifml.narod.ru/ ifml.narod.ru]
 +
}}
  
'''Информация и документы:'''
+
{{goldhamster|2013|Проект года по мнению жюри|game=0}}
*Обновляемый [https://drive.google.com/open?id=1_UP_iwmOiICOxQFbE8vmFNT25NxCB_vdraIf1Kqm_18&authuser=0 '''Учебник по ЯРИЛу'''].
 
*Обновляемый [https://drive.google.com/open?id=1-0hxriLl6JTDSln3FD7-i3gMCT2ZwVU1fBZY4MEesIE&authuser=0 '''Справочник по ЯРИЛу'''].
 
*[[ЯРИЛ ЧаВО|'''ЧаВО''' (Частые Вопросы и Ответы aka FAQ) '''по ЯРИЛу''']].
 
  
Идеи, вопросы, проблемы и благодарности [https://ifml2.userecho.com/ можно размещать тут].
+
'''ЯРИЛ''' (Язык Разметки Интерактивной Литературы) - это [[парсер|парсерная]] [[платформа]] с [[Визуальный редактор|визуальным редактором]], не требующая редактировать исходный файл игры в текстовом редакторе.
  
= Описание =
+
Разработка платформы была начата в 2001 году, но в определённый момент было принято решение о её переработке с нуля. 28 апреля 2002 года разработчиком было объявлено о начале проектирования второго поколения ЯРИЛ, которое получило название ЯРИЛ 2.0, что привело к ребрендингу всего проекта. Именно поэтому платформа теперь называется ЯРИЛ 2.0, а нумерация релизов идёт отдельно, так как 2.0 - это обозначение поколения платформы, а не номера релиза.
'''Архитектура''' игры на ЯРИЛе представляет собой множество локаций, предметов, действий (команд) и процедур обработки этих действий. Действия состоят из шаблонов команд для парсера и ссылки на процедуру. Процедура - это набор инструкций. Инструкции - это не код программы, а алгоритмическое дерево. Файлы игр и библиотек хранятся в формате XML, поэтому ''свободно редактируются'' как в Редакторе платформы, так и вручную в любом текстовом редакторе.
 
  
'''Редактор''' позволяет ''редактировать игру в формах'', в частности: локации (название, описание, переходы, перехваты), предметы (название, описание, словарь, первоначальное положение, признаки, перехваты действий), процедуры и действия.
+
Также ЯРИЛ может фигурировать под своим англоязычным названием - IFML (Interactive Fiction Markup Language).
  
'''Тестер''' используется для тестового прогона игр авторами в процессе разработки. Например, для игры можно написать несколько тестов для проверки различных сюжетных веток.
+
== Общее описание ==
 +
'''Архитектура''' игры на ЯРИЛе представляет собой множество локаций, предметов, действий (команд) и процедур обработки этих действий. Действия состоят из шаблонов команд для [[Парсер|парсера]] и ссылки на процедуру. Процедура - это набор инструкций. Инструкции - это не код программы, а алгоритмическое дерево. Файлы игр и библиотек хранятся в формате [[.xml|XML]], поэтому ''свободно редактируются'' как в Редакторе платформы, так и вручную в любом текстовом редакторе.
  
= Версии платформы =
+
Платформа состоит из трёх программных компонентов: Плеера, Редактора и Тестера:
[https://www.dropbox.com/sh/yb8fym8ep9hv3na/AAA6ZrdZBM4bJahqTjeEZke2a?dl=0 Здесь] находится архив сборок (в том числе и девелоперских версий).
+
* '''Плеер''' позволяет воспроизводить написанные на ЯРИЛе игры и вести их каталог.
[https://raw.githubusercontent.com/realsonic/ifml2/master/docs/notes.txt Здесь] представлена полная история изменений.
+
* '''Редактор''' позволяет редактировать игру в [[Визуальный редактор|формах]], в частности: локации (название, описание, переходы, перехваты), предметы (название, описание, словарь, первоначальное положение, признаки, перехваты действий), процедуры и действия.
 +
* '''Тестер''' используется для тестового прогона игр авторами в процессе разработки. Например, для игры можно написать несколько тестов для проверки различных сюжетных веток.
  
== Выпуск 2015/1.5 ==
+
[[Парсер]] в ЯРИЛе работает по принципу подбора шаблона для введённой фразы. Шаблоны состоят из двух типов элементов: литерал (набор фраз) и объект (упоминание предмета по словарю в каком-либо падеже). При удачном подборе шаблона выполняется привязанная к нему процедура игровой логики.
=== Загрузить ===
 
*Установщики под Windows:
 
**[https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML2_2015_1_5_20151204_164050.exe Легковесный, exe-файл, 2,17 МБ], но скачивает Java Bundle при необходимости (15,9 Мб).
 
**[https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML2_2015_1_5_JRE6_20151204_164050.exe С Java 6, exe-файл, 18,1 МБ].
 
  
=== Список изменений ===
+
Вся игровая логика игры (процедуры, перехваты и проч.) создаётся и редактируется [[Визуальный редактор|визуально]] в Редакторе в формате заполнения экранных форм для каждой инструкции. Нет никакой необходимости учить язык программирования. При этом гибкость достигается при помощи выражений в параметрах инструкций.
26.11.2015
 
    ^  [Код] Улучшены юнит-тесты.
 
    ^  [Движок] [Вычисление выражений] При вычислении выражений: если какое-то свойство, полученное через точку (".") не задано, то
 
        возвращается Пустота, а не ошибка, как раньше.
 
27.11.2015
 
    *  [Движок] [Вычисление выражений] Исправлена ошибка, из-за которой не работали выражения с логическими операторами (не, и, или).
 
    ^  [Код] Юнит-тесты переведены на Mockito, добавлены новые тесты.
 
30.11.2015
 
    *  [Редактор] Исправлена ошибка, из-за которой при редактировании перехватов процедур история не помечалась как изменённая, и при
 
        закрытии Редактора не предлагалось её сохранить.
 
    ^  [Код] Улучшены модели комбобоксов.
 
01.12.2015
 
    *  [Плеер] Исправлена ошибка, из-за которой после диалогов в Плеере терялся фокус со строки ввода.
 
    ^  [Код] Запуск приложений сделан более правильно - через SwingUtilities.InvokeLater().
 
    +  [Движок] Добавлены отладочные системные текстовые переменные "локации" и "предметы", а также текстовая переменная "системные",
 
        выводящая список системных переменных.
 
04.12.2015
 
    420434 Вывод корректного сообщения
 
    ^  [Парсер] Теперь, если в шаблоне забита фраза вида XX YY, а игрок вводит вида XX ZZ, то парсер сообщает:
 
        "Не понимаю, что значит "XX YY", но я понял начало фразы "XX"."
 
  
== Выпуск 2015/1.4 ==
+
== Версии ==
=== Загрузить ===
+
* [https://github.com/realsonic/ifml2/releases/latest Страница самой новой версии]
*Установщики под Windows:
+
* [https://github.com/realsonic/ifml2/releases Перечень всех доступных релизов]
**[https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML2_2015_1_4_20151117_185951.exe Легковесный, exe-файл, 2,04 МБ], но скачивает Java Bundle при необходимости (15,9 Мб).
+
* [https://raw.githubusercontent.com/realsonic/ifml2/master/docs/notes.txt Полная история изменений]
**[https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML2_2015_1_4_JRE6_20151117_185951.exe С Java 6, exe-файл, 18 МБ].
+
*[[Выпуски_ЯРИЛ_2015|Старые выпуски 2015 года]]
*Установщик под *nix: [https://dl.dropboxusercontent.com/u/87862945/IFML2/%D0%AF%D0%A0%D0%98%D0%9B_2_0_unix_2015_1_4.sh sh-файл, 1,89 Мб].
+
* [http://rilarhiv.ru/notuse/IFMLInterpreter.rar ЯРИЛ 1.0 beta (первое поколение), 2001 г.]
  
=== Список изменений ===
+
== Документация ==
01.11.2015
+
* [https://drive.google.com/open?id=1_UP_iwmOiICOxQFbE8vmFNT25NxCB_vdraIf1Kqm_18&authuser=0 Обновляемый учебник по ЯРИЛу]
    456077 [КРИЛ2015] Процедура обработки ошибок парсера
+
* [https://drive.google.com/open?id=1-0hxriLl6JTDSln3FD7-i3gMCT2ZwVU1fBZY4MEesIE&authuser=0 Обновляемый справочник по ЯРИЛу]
    +  [Движок] Добавлена системная процедура обработки ошибки парсинга и возможность её перекрывать пользовательской.
+
* [[ЯРИЛ ЧаВО|ЧаВО (Частые Вопросы и Ответы aka FAQ) по ЯРИЛу]]
12.11.2015
 
    456077 [КРИЛ2015] Процедура обработки ошибок парсера
 
    *   [Движок] Исправлена ошибка, при которой не выводилась ошибка парсинга, если процедура обработки не перекрывалась.
 
13.11.2015
 
    456077 [КРИЛ2015] Процедура обработки ошибок парсера
 
    +  [Редактор] Добавлен пункт меню "История -> Перехваты системных процедур...". Но пока не полностью доработана форма редактора.
 
17.11.2015
 
    456077 [КРИЛ2015] Процедура обработки ошибок парсера
 
    +  [Редактор] Форма редактора полностью доработана.
 
    +  [Редактор] Редактирование инструкции "Вернуть значение".
 
  
== Выпуск 2015/1.3 ==
+
== Сообщество ==
=== Загрузить ===
+
* [https://ifml2.userecho.com/ Форум ЯРИЛ]
*Установщики под Windows:
+
* [http://forum.ifiction.ru/viewforum.php?id=30 Раздел ЯРИЛа на форуме iFiction.Ru]
**[https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML2_2015_1_3_20150722_173352.exe Легковесный, exe-файл, 1,87 МБ], но скачивает Java Bundle при необходимости (15,9 Мб).
+
* [http://ifml2.reformal.ru/ Отзывы и идеи пользователей для проекта ЯРИЛ 2.0]
**[https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML2_2015_1_3_JRE6_20150722_173352.exe С Java 6, exe-файл, 17,8 МБ].
+
* [http://ifml2.myjetbrains.com/youtrack/issues Багтрекер  ЯРИЛ]
*Портабельная версия под Windows / *nix: [https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML.Portable.2015.1.3.7z архив 7zip, 1,75 МБ]. ''Запускать можно при помощи вложенных файлов скриптов <code>run.cmd</code> и <code>run.bsh</code>. Для <code>run.bsh</code> не установлены права на запуск, '''необходимо установить вручную'''.''
+
* [https://money.yandex.ru/to/41001332371726 Финансовая помощь проекту]
  
=== Список изменений ===
+
=== Спонсоры ===
    435156 Не работают два объекта подряд в одном падеже
+
Проект поддерживается кросс-платформенным установщиком '''[http://bitrock.com BitRock]'''.
12.06.2015
 
    *  [Парсер] Изменён алгоритм подбора слов для объекта в шаблоне - теперь они пытаются подобраться рекурсивно, пока это получается.
 
16.07.2015
 
    *  [Парсер] Теперь если при подборе слова для объекта попадается такое же слово, то считается, что оно (и все слова от первого
 
        повторяющегося слова до второго) относится к другому элементу шаблона. Т.е. при анализе фразы "положить в тарелку розовую тарелку"
 
        при встрече второй "тарелки" парсер решит, что слова "розовую тарелку" относятся к другому объекту (элементу шаблона).
 
  
== Выпуск 2015/1.2 ==
+
== Ссылки ==
=== Загрузить ===
+
* [http://ifml.narod.ru/ Официальный сайт ЯРИЛ]
*Портабельная версия под Windows / *nix: [https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML.Portable.2015.1.2.7z архив 7zip, 1,68 МБ]. ''Запускать можно при помощи вложенных файлов скриптов <code>run.cmd</code> и <code>run.bsh</code>. Для <code>run.bsh</code> не установлены права на запуск, '''необходимо установить вручную'''.''
+
* [http://ifml2.blogspot.com/ Блог ЯРИЛ 2.0]
=== Список изменений ===
+
* [https://ifhub.club/tag/%D0%AF%D0%A0%D0%98%D0%9B/ Публикации на IFHub по тегу "ЯРИЛ"]
19.04.2015
+
* [https://github.com/IFML2/ifml2/ Репозиторий с исходным кодом]
    *   [Движок] Bug #420341 Криво прописывается библиотека: обёрнуто получение относительного пути для библиотеки - перед сравнением они
 
        преорбазуются в нижний регистр
 
23.04.2015
 
    425212 Неверно работает сохранение
 
    ^  Рефакторинг: уменьшена зависимость Parser от других классов.
 
    *  Добавлена очистка данных при инициализации игры в Движке и Виртуальной машине - стал правильно работать перезапуск игры.
 
    *  Исправлена ошибка загрузки сохранения, из-за которой предметы вместо перемещения копировались. В лог выводится ошибка, если
 
        контейнер, привязанный к предмету, его не содержит.
 
  
== Выпуск 2015/1.1 ==
+
== См. также ==
=== Загрузить ===
+
* [[:Категория:Игры на ЯРИЛ|Игры на ЯРИЛ]]
*Установщики под Windows:
 
**[https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML2_2015_1_1_20150412_015654.exe Легковесный, exe-файл] (в пределах 2 МБ), но скачивает Java Bundle при необходимости (в пределах 20 Мб).
 
**[https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML2_2015_1_1_JRE6_20150412_015654.exe С Java 6, exe-файл] (в пределах 20 МБ).
 
*Портабельная версия под Windows / *nix: [https://dl.dropboxusercontent.com/u/87862945/IFML2/IFML.Portable.2015.1.1.7z архив 7zip] (в пределах 2 МБ). ''Запускать можно при помощи вложенных файлов скриптов <code>run.cmd</code> и <code>run.bsh</code>. Для <code>run.bsh</code> не установлены права на запуск, '''необходимо установить вручную'''.''
 
=== Список изменений ===
 
11.04.2015
 
    * [Библиотеки] Bug #417504 "А также тут" в Комсомольце
 
    * [Поставка] Bug #418941 Вместе с игрой лежит тест на тайны заброшенного замка, но самой игры вроде как нет: убран тест
 
 
 
== Выпуск 2015/1 ==
 
=== Список изменений ===
 
19.01.2015
 
    279604 [Замечание #8-1] Инструкция "Выполнить процедуру"
 
    +  [Движок] Добавлена инструкция "Выполнить процедуру" - пока на уровне ядра, поддержки в Редакторе ещё нет.
 
        Поддерживает передачу параметров и возврат значения.
 
04.02.2015
 
    279604 [Замечание #8-1] Инструкция "Выполнить процедуру"
 
    *   [Движок] Исправлен механизм выполнения инструкций, исправлены ошибки.
 
    +  [Редактор] Поддержка инструкции "Выполнить процедуру".
 
    +  [Движок] Новая отладочный символ "глобальные" - выводит список глобальных переменных. Вызвать в Плеере через команду
 
        "?глобальные".
 
    ~  [Движок] Глобальные и процедурные переменные теперь устанавливаются напрямую при выполнении инструкции,
 
        а не сохраняются в контексте.
 
13.03.2015
 
    Task #402306 Значение пустота (NullValue)
 
    +  [Движок] Новый особый тип данных - Пустота. Существует только одно значение этого типа - Пустота.
 
    +  [Движок] Новая системная константа - "пустота", равна Пустоте.
 
    +  [Движок] Любое значение можно сравнивать с Пустой: если значение тоже Пустота, то будет положительный результат,
 
        иначе отрицательный.
 
    ~  [Движок] При вызове процедуры все незаданные параметры принимают значение Пустота.
 
17.03.2015
 
    Bug #382635 [Джон-03] Ошибка с контейнерами
 
    *  [Библиотеки] Исправлено действие "Положить": теперь нельзя класть предметы в закрытый контейнер.
 
    *  [Игры] Исправлен словарь в Зорке.
 
19.03.2015
 
    Ifml-8 Ошибка с переходом в локацию, если не указана начальная локация
 
    ~  [Движок] Изменена логика установки стартовой локации:
 
        1. Если есть проца, выполняется она.
 
        2. Если указана стартовая локация, она устанавливается.
 
            2.1. Если стоит галочка вывода описания, оно выводится.
 
        3. Если до сих пор не установлена никакая локация, устанавливается любая, но без вывода описания.
 
    *  [Редактор] Теперь можно отменить выбор стартовой локации (теперь есть пустой элемент в выпадающем списке).
 
    ^  [Редактор] Редактор глобальных переменных переехал на новый редактор списков.
 
 
 
= Игры =
 
Игры на ЯРИЛ представлены [[:Категория:Игры на ЯРИЛ|в соответствующей категории]].
 
 
 
= Сообщество =
 
*[http://ifhub.ru/blog/ifengines/152.html Страничка на ifhub'е]
 
*Следить за новостями можно в [http://forum.ifiction.ru/viewforum.php?id=30 форуме ЯРИЛа на ifiction].
 
 
 
[[Категория:Платформы]] [[Категория:Парсерные платформы]]
 

Текущая версия на 13:25, 13 августа 2018

ЯРИЛ
Тип Парсерные платформы
Разработчик(и) Михаил Баланов
Языки интерфейса Русский
Операционные системы Windows, GNU/Linux
Написано на Java
Язык разработки Визуальный редактор
Читаемые форматы файлов Игры ЯРИЛ 2.0 (*.ifml), Зашифрованный игры ЯРИЛ 2.0 (*.cifml)
Создаваемые форматы файлов Игры ЯРИЛ 2.0 (*.ifml), Зашифрованный игры ЯРИЛ 2.0 (*.cifml)
Дата первого выпуска 15 сентября 2001
Последняя версия 2016/5
Дата последней версии 26 февраля 2016
Состояние
Лицензия Freeware
Сайт ifml.narod.ru


Золотой Хомяк 2013
Проект года по мнению жюри


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

Разработка платформы была начата в 2001 году, но в определённый момент было принято решение о её переработке с нуля. 28 апреля 2002 года разработчиком было объявлено о начале проектирования второго поколения ЯРИЛ, которое получило название ЯРИЛ 2.0, что привело к ребрендингу всего проекта. Именно поэтому платформа теперь называется ЯРИЛ 2.0, а нумерация релизов идёт отдельно, так как 2.0 - это обозначение поколения платформы, а не номера релиза.

Также ЯРИЛ может фигурировать под своим англоязычным названием - IFML (Interactive Fiction Markup Language).

Общее описание

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

Платформа состоит из трёх программных компонентов: Плеера, Редактора и Тестера:

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

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

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

Версии

Документация

Сообщество

Спонсоры

Проект поддерживается кросс-платформенным установщиком BitRock.

Ссылки

См. также