Информ

редактировать

Информировать
Inform 7 IDE Icon.png
Оригинальный автор (ы) Грэм Нельсон
Разработчик (и) Грэм Нельсон
Стабильный выпуск 7 6M62 / 24 декабря 2015 г. (2015-12-24)
Операционная система Microsoft Windows, Mac OS X, Linux, другие
Тип Интерактивная фантастика разработка и игра
Веб-сайтhttp://inform7.com/

Информ - это язык программирования и система дизайна для интерактивной художественной литературы, первоначально созданная в 1993 году Грэмом Нельсоном. Inform может создавать программы, предназначенные для виртуальных машин Z-code или Glulx. Версии с 1 по 5 были выпущены между 1993 и 1996 годами. Примерно в 1996 году Нельсон переписал Inform из первых принципов, чтобы создать версию 6 (или Inform 6 ). В течение следующего десятилетия версия 6 стала достаточно стабильной и популярным языком для написания интерактивной художественной литературы. В 2006 году Нельсон выпустил Inform 7 (кратко известный как Natural Inform ), совершенно новый язык , основанный на принципах естественного языка и новый набор инструментов на основе вокруг метафоры книгоиздания.

Содержание

  • 1 Z-Machine и Glulx
  • 2 Inform 6
    • 2.1 Компилятор Inform 6
    • 2.2 Язык программирования Inform 6
    • 2.3 Библиотека Inform 6
    • 2.4 Пример игры
    • 2.5 Известные игры, разработанные в Inform 6 или более ранних версиях
  • 3 Inform 7
    • 3.1 Inform 7 IDE
    • 3.2 Язык программирования Inform 7
    • 3.3 Пример игры
    • 3.4 Известные игры, написанные на Inform 7
  • 4 См. Также
  • 5 Дополнительная литература
  • 6 Ссылки
  • 7 Внешние ссылки

Z-Machine и Glulx

Компиляторы Inform переводят код Inform в файлы истории для Glulx или Z-code, две виртуальные машины, разработанные специально для интерактивной фантастики. По умолчанию установлен Glulx, который поддерживает большие игры.

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

Эндрю Плоткин создал неофициальную версию Inform 6, которая также могла генерировать файлы для Glulx, виртуальной машины, которую он разработал, чтобы преодолеть многие ограничения, существовавшие несколько десятилетий назад. Z-машина. Начиная с версии Inform 6.3, выпущенной 29 февраля 2004 г., в Inform 6 включена официальная поддержка обеих виртуальных машин, основанная на работе Эндрю Плоткина. Ранний выпуск Inform 7 не поддерживал Glulx, но в августе 2006 года поддержка Glulx была выпущена.

Информ 6

Информ 1–6
Парадигма объектно-ориентированный, процедурный
Разработан Грэмом Нельсоном
Разработчик Грэм Нельсон
Впервые появился1993
Стабильный выпуск 6.32 / 2010
Предварительный выпуск 6.33 / 10 мая 2014 г. (2014-05-10)
OS Microsoft Windows, Mac OS X, Linux, другие
Лицензия Freeware и Artistic License 2.0
Веб-сайтinform-fiction.org
Под влиянием
естественного языка
Под влиянием
Inform 7

Inform был первоначально создан Грэмом Нельсоном в 1993 году. В 1996 году Нельсон переписал Inform, исходя из первых принципов, чтобы создать версию 6 (или Inform 6). В течение следующего десятилетия версия 6 стала достаточно стабильной и популярным языком для написания интерактивной художественной литературы.

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

Хотя Inform 6 и Z-Machine изначально разрабатывались с учетом интерактивной фантастики, было разработано множество других программ, включая интерпретатор BASIC, учебник LISP (в комплекте с интерпретатором), игра Тетрис и версия игры Snake.

Компилятор Inform 6

Компилятор Inform генерирует файлы для Z-машины или Glulx (также называемых историческими файлами) из исходного кода Inform 6 .

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

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

В ранних версиях Inform объекты отличались от понятия объектов из объектно-ориентированного программирования тем, что не было такого понятия, как класс. Более поздние версии добавили поддержку определений классов и позволили объектам быть членами классов. Объекты и классы могут наследовать от нескольких классов. Интерактивные художественные игры обычно содержат множество уникальных объектов. Из-за этого многие объекты в Inform не наследуются ни от какого класса, кроме объекта «метакласс». Однако очень часто объекты имеют атрибуты (логические свойства, такие как sceneryили edible), которые распознаются библиотекой Inform. В других языках это обычно реализуется через наследование.

Вот простой пример исходного кода Inform 6.

[Основной; print "Привет, мир! ^"; ];

Библиотека Inform 6

Система Inform также содержит библиотеку Inform, которая автоматизирует почти всю самую сложную работу, связанную с программированием интерактивная художественная литература ; в частности, он включает текстовый парсер , который анализирует вводимые пользователем данные, и модель мира, которая отслеживает такие вещи, как объекты (и их свойства), комнаты, двери, инвентарь игрока и т. д.

Компилятор Inform не требует использования библиотеки Inform. Доступно несколько заменяющих библиотек, таких как Platypus и библиотека, кодирующая Inform на испанском языке.

Пример игры

Вот пример исходного кода Inform 6, в котором используется библиотека Inform. Приведенный ниже пример кода Inform 6 можно использовать в Inform 7, но не без специального разграничения, указывающего, что это встроенный устаревший код.

Постоянная история «Привет, франшиза»; Постоянный заголовок «^ Интерактивный пример ^»; Включите «Парсер»; Включите «VerbLib»; [Инициализировать; location = Living_Room; "Привет мир"; ]; Объект Кухня «Кухня»; Объект Front_Door "Парадная дверь"; Объект Living_Room "Гостиная" с описанием "Комфортно обставленная гостиная.", N_to Kitchen, s_to Front_Door, имеет свет; Объект ->Продавец "страховой агент" с именем 'страховой' 'продавец' 'человек', описание "Продавец страховых услуг в липком полиэстеровом костюме. Кажется, он хочет поговорить с вами.", Перед [; Слушайте: переместите страховку к игроку; «Продавец утомляет вас обсуждением полисов страхования жизни. Из своего портфеля он вытаскивает какие-то документы, которые передает вам.»; ], имеет анимированный; Объект ->->Портфель "портфель" с названием 'портфель' 'кейс', описание "Немного поношенный черный портфель.", Имеет контейнер; Объект ->->->Страхование_Paperwork "страховые документы" с названием 'paperwork' paper '' insurance '' documents '' forms ', описание "Страница за страницей малого юридического текста."; Включите «Грамматику»;

Известные игры, разработанные в Inform 6 или более ранних версиях

  • Curses, Грэмом Нельсоном (1993), первая игра, когда-либо написанная на языке программирования Inform. Считается одной из первых «современных» игр, соответствующих высоким стандартам, установленным лучшими играми Infocom.
  • Zork: The Undiscovered Underground (1997), автор: Марк Бланк и Майкл Берлин, запрограммированный Джерри Кевин Уилсон. Разданая бесплатно Activision для продвижения релиза Zork: Grand Inquisitor.
  • Anchorhead, Майкл С. Джентри (1998) представляет собой высоко оцененную историю ужасов, вдохновленную ЧАС. Cthulhu Mythos.
  • Photopia П. Лавкрафта, автор Адам Кадр (1998), первая игра, почти полностью лишенная головоломок. Выиграл ежегодный Конкурс интерактивной фантастики в 1998 году.
  • Varicella Адама Кадре (1999). Он получил четыре XYZZY Awards в 1999 году, включая премию XYZZY за лучшую игру, и о нем было написано научное эссе.
  • Галатея, Эмили Шорт (2000). Галатея полностью ориентирована на взаимодействие с одноименной анимированной статуей. У Галатеи одна из самых сложных систем взаимодействия для неигрового персонажа в интерактивной художественной игре. Адам Кадре назвал Галатею «лучшим неигровым персонажем на свете».
  • Ссутулившись к бедламу, звезды С. Фостер и Даниэль Равипинто (2003). Установленная в настройке стимпанк, игра интегрирует метаигровые функции (сохранение, восстановление, перезапуск) в сам игровой мир. Игра выиграла две XYZZY Awards и получила самый высокий средний балл среди всех игр на Конкурсе интерактивной фантастики по состоянию на 2006 год.

Информ 7

Информ 7
Inform 7 IDE Icon.png
Парадигма декларативный, процедурный
Разработано Грэмом Нельсоном
разработчиком Грэмом Нельсоном
Впервые появилось2006
Стабильный выпуск 6М62 / 24 декабря 2015 г.; 4 года назад (24 декабря 2015 г.)
OS Microsoft Windows, Mac OS X, Linux, другие
Лицензия Собственная, но свободно распространяемая или Artistic License 2.0
Веб-сайтhttp://inform7.com/
Под влиянием
Inform 6

30 апреля 2006 года Грэм Нельсон объявил о бета-версии Сообщите 7 в группу новостей rec.arts.int-fiction. Inform 7 состоит из трех основных частей: Inform 7 IDE со средствами разработки, предназначенными для тестирования интерактивных художественных произведений, компилятор Inform 7 для нового языка и " Стандартные правила ", которые образуют основную библиотеку для Inform 7. Inform 7 также полагается на библиотеку Inform и компилятор Inform из Inform 6. Компилятор компилирует Исходный код Inform 7 в исходный код Inform 6, который затем компилируется Inform 6 отдельно для создания файла истории Glulx или Z-code. Inform 7 также по умолчанию записывает файлы Blorb, архивы, которые включают Z-код вместе с необязательной «обложкой» и метаданными, предназначенными для целей индексации. Полный набор инструментов Inform 7 в настоящее время доступен для Mac OS X, Microsoft Windows и Linux. В выпуске от 25 марта 2007 г. добавлена ​​поддержка командной строки для Linux, а новые выпуски теперь включают среду IDE, использующую среду рабочего стола GNOME в среде GNOME Inform 7 SourceForge проект. Язык и инструменты остаются в разработке; в выпуск от 25 марта 2007 г. внесен ряд изменений в язык. В 2019 году Грэм Нельсон объявил о возможном открытом исходном коде для Inform 7.

Inform 7 на короткое время назывался Natural Inform, но позже был переименован в Inform 7. Это старое имя является причиной того, что компилятор Inform 7 назван «NI».

IDE Inform 7

IDE Inform 7 в Mac OS X показывает исходный код и фрагмент IDE Inform 7 в Mac OS X, показывающая карту индекса и стенограмму

Inform 7 поставляется с интегрированной средой разработки (IDE) для Mac OS X, Microsoft Windows и Linux. IDE Mac OS X была разработана Эндрю Хантером. Microsoft Windows IDE была разработана Дэвидом Киндером. Linux IDE (известная как GNOME Inform) была разработана Филипом Чименто.

IDE Inform 7 включает текстовый редактор для редактирования исходного кода Inform 7. Как и во многих других редакторах программирования, в нем есть подсветка синтаксиса. Он выделяет строки в кавычках одним цветом. Заголовки организационных разделов (тома, книги, главы, части и разделы) выделены жирным шрифтом и увеличены. Комментарии выделены другим цветом и немного меньше.

IDE включает встроенный интерпретатор Z-кода. Интерпретатор Mac OS X IDE основан на интерпретаторе Zoom Эндрю Хантера при участии Джесси МакГрю. Интерпретатор Microsoft Windows IDE основан на WinFrotz.

По мере того как разработчик тестирует игру во встроенном интерпретаторе, прогресс отслеживается в представлениях IDE «моток» и «стенограмма». Моток отслеживает команды игрока в виде дерева возможностей ветвления. Любая ветвь дерева может быть быстро повторена, что дает возможность повторять разные пути в разрабатываемой игре, не повторяя одни и те же части игры. Пути также можно пометить примечаниями и пометить как решения, которые можно экспортировать как текстовые пошаговые руководства. Стенограмма, с другой стороны, отслеживает как команды игрока, так и ответы игры. Правильные ответы из игры можно пометить как «благословенные». При воспроизведении расшифровки стенограммы или ветви мотка будут выделены варианты от благословенной версии, что может помочь разработчику найти ошибки.

IDE также предоставляет различные индексы для разрабатываемой программы. Код показан в виде иерархии классов, традиционной IF-карты, оглавления в виде книги и в других формах. Щелчок по элементам в указателе позволяет перейти к соответствующему исходному коду.

IDE представляет две панели, расположенные бок о бок для работы. Каждая панель может содержать обрабатываемый исходный код, текущий статус компиляции, фрагмент, расшифровку, индексы исходного кода, запущенная версия игры, документация для Inform 7 или любых установленных к нему расширений или настроек. Идея состоит в том, чтобы имитировать рукописную книгу автора, представляя две «обращенные друг к другу страницы» вместо множества отдельных окон.

Язык программирования Inform 7

Среди заметных особенностей сильная предвзятость к декларативным правилам на основе стиль программирования и способность определять типы и свойства объектов по способу их использования. Например, утверждение «Джон носит шляпу». создает "человека" по имени "Джон" (поскольку только люди могут носить вещи), создает "вещь" со свойством "пригодность для носки" (поскольку только объекты с пометкой "пригодны для носки" можно носить) и устанавливает для Джона как в шляпе.

Другой примечательный аспект языка - прямая поддержка отношений, которые отслеживают ассоциации между объектами. Это включает в себя автоматически предоставляемые отношения, например, один объект, содержащий другой, или носимый объект, но разработчик может добавлять свои собственные отношения. Разработчик может добавить отношения, указывающие на любовь или ненависть между существами, или чтобы отслеживать, какие персонажи в игре встретились друг с другом.

Inform 7 - это предметно-ориентированный язык программирования, предоставляющий писателю / программисту гораздо более высокий уровень абстракции, чем Inform 6, и хорошо читаемый исходный код.

Пример игры

Утверждения в Inform 7 принимают форму полных предложений. Пустые строки и отступы в некоторых местах имеют конструктивное значение. Основная форма программы Inform 7 следующая:

«Hello, World!» Автор "I.F. Author" Мир - это комната. Когда игра начнется, скажите «Привет, мир!»

Ниже приводится повторная реализация вышеупомянутого примера «Hello Deductible», написанного на Inform 7. Он основан на библиотеке, известной как «Стандартные правила», которая автоматически включается во все компиляции Inform 7.

«Привет, франшиза» от «I.F. Author» Заголовок статьи - «Интерактивный пример». Гостиная - это комната. «Комфортабельная гостиная». Кухня находится к северу от гостиной. Входная дверь находится к югу от гостиной. Входная дверь - это дверь. Входная дверь закрыта и заперта. Страховой агент - мужчина в гостиной. Описание гласит: «Страховой агент в липком костюме из полиэстера. Кажется, он хочет поговорить с вами». Под «мужчиной» понимают страхового агента. Страховой агент несет портфель. Описание: «Слегка потертый черный портфель». Под чемоданом понимайте «футляр». Страховые документы в портфеле. Описание: «Страница за страницей малого текста». Под бумажной работой понимайте «бумаги», «документы» или «формы». Вместо того, чтобы слушать продавца страховых полисов: скажите: «Продавец утомляет вас обсуждением полисов страхования жизни. Из своего портфеля он вытаскивает какие-то документы, которые он передает вам»; переместите страховые документы игроку.

Известные игры, написанные в Inform 7

Mystery House Poshibited (2005), написанная Эмили Шорт, были первой игрой Inform 7, выпущенной для всеобщего ознакомления. Он был выпущен в рамках проекта "Mystery House Taken Over".

1 марта 2006 г. Шорт объявила о выпуске еще трех игр: Bronze (пример традиционной головоломки) и Damnatio Memoriae (продолжение ее отмеченной наградами игры Inform 6 Savoir-Faire ) присоединились к книге Грэма Нельсона «Реликвии Толти-Аф» (2006). Когда 30 апреля 2006 г. было объявлено о публичной бета-версии Inform 7, шесть «отработанных примеров» средне- и крупномасштабных работ были доступны вместе с их исходным кодом, включая три игры, выпущенные ранее 1 марта.

Floatpoint Эмили Шорт стала первой игрой Inform 7, занявшей первое место в Конкурсе интерактивной фантастики. Он также получил награду XYZZY Awards 2006 года за лучший сеттинг и лучший неигровой персонаж. Rendition от nespresso (2007) - это эксперимент политического искусства в форме текста. приключенческая игра. Его подход к трагедии академически обсуждался как Ассоциацией вычислительной техники, так и Кембриджским университетом.

См. Также

Дополнительная литература

Inform 6
  • Официальное руководство компании Inform Грэхема Нельсона Руководство для конструктора Inform: это учебное пособие, руководство и технический документ в одном лице. Он доступен бесплатно в режиме онлайн на официальном сайте Inform, также доступны два печатных издания: мягкая обложка (ISBN 0-9713119-0-0 ) и твёрдый переплет (ISBN 0-9713119-3-5 ).
  • Руководство для начинающих, Роджер Ферт и Соня Кессерих (ISBN 0-9713119-2-7 ) пытается предоставить более мягкое введение в Информ. Оно доступно бесплатно на официальном сайте Информ.
Информ 7
  • Интервью SPAG - Интервью с дизайнерами Грэмом Нельсоном и Эмили Шорт о разработке Inform 7. Это интервью было сделано незадолго до его выпуска и опубликовано в тот же день, что и первый выпуск.
  • «Естественный язык, семантический анализ и интерактивная художественная литература» - В статье о дизайне Inform 7, разработанной дизайнером Грэмом Нельсоном.

Ссылки

Внешние ссылки

  • Cloak of Darkness: Inform, представлена ​​одна и та же короткая игра, реализованная в Inform 6 и Сообщите 7, а также другие языки для сравнения.
  • Сообщите 6 - Официальный веб-сайт
  • FAQ по Inform 6 на IF Pages Роджера Ферта предоставляет подробную информацию о программировании в Inform 6.
  • Inform 7 - Официальный веб-сайт.
  • Inform at Curlie
  • Интерактивный архив художественной литературы предоставляет множество инструментов, примеров и библиотечных файлов Inform.
  • Playfic - это веб-интерфейс для создания новых игр и обмена ими с помощью Inform 7.
  • Guncho - это многопользовательская интерактивная игровая система, основанная на Inform 7 с комбинацией MUD -подобных и веб-интерфейсов.
Последняя правка сделана 2021-05-24 14:42:48
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте