Сообщить - Inform

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

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

Z-Machine и Glulx

Компиляторы Inform переводят код Inform в файлы рассказов для Glulx или Z-кода , двух виртуальных машин, разработанных специально для интерактивной фантастики. По умолчанию установлен 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 )
Операционные системы Microsoft Windows , Mac OS X , Linux , другие
Лицензия Бесплатная и художественная лицензия 2.0
Интернет сайт информ-фантастика .орг
Под влиянием
естественный язык
Под влиянием
Информ 7

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

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

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

Компилятор Информ 6

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

Язык программирования Информ 6

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

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

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

[ Main;
    print "Hello, World!^";
];

Информ 6 библиотека

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

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

Пример игры

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

 Constant Story "Hello Deductible";
 Constant Headline "^An Interactive Example^";

 Include "Parser";
 Include "VerbLib";

 [ Initialise;
     location = Living_Room;
     "Hello World";
 ];

 Object Kitchen "Kitchen";
 Object Front_Door "Front Door";

 Object Living_Room "Living Room"
     with
         description "A comfortably furnished living room.",
         n_to Kitchen,
         s_to Front_Door,
     has light;

 Object -> Salesman "insurance salesman"
     with
         name 'insurance' 'salesman' 'man',
         description "An insurance salesman in a tacky polyester
               suit.  He seems eager to speak to you.",
         before [;
             Listen:
                 move Insurance_Paperwork to player;
                 "The salesman bores you with a discussion
                  of life insurance policies.  From his
                  briefcase he pulls some paperwork which he
                  hands to you.";
         ],
     has animate;

 Object -> -> Briefcase "briefcase"
     with
         name 'briefcase' 'case',
         description "A slightly worn, black briefcase.",
     has container;

 Object -> -> -> Insurance_Paperwork "insurance paperwork"
     with
         name 'paperwork' 'papers' 'insurance' 'documents' 'forms',
         description "Page after page of small legalese.";

 Include "Grammar";

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

Информ 7

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

30 апреля 2006 года Грэм Нельсон объявил о выпуске бета-версии Inform 7 в группе новостей rec.arts.int-fiction. Inform 7 состоит из трех основных частей: IDE Inform 7 со специализированными инструментами разработки для тестирования интерактивной художественной литературы, компилятор Inform 7 для нового языка и « Стандартные правила », которые составляют основную библиотеку Inform 7. Inform 7 также опирается на Информ библиотеки и Inform компилятор от Inform 6. компилятор компилирует исходный код Inform 7 в Inform 6 исходный код, который затем компилируется отдельно от Inform 6 для генерирования Glulx или Z-кода историю файла. 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".

Сообщите 7 IDE

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

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

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

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

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

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

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

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

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

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

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

Пример игры

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

"Hello, World!" by "I.F. Author"

The world is a room.

When play begins, say "Hello, World!"

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

"Hello Deductible" by "I.F. Author"

The story headline is "An Interactive Example".

The Living Room is a room. "A comfortably furnished living room."
The Kitchen is north of the Living Room.
The Front Door is south of the Living Room.
The Front Door is a door. The Front Door is closed and locked.

The insurance salesman is a man in the Living Room. The description is "An insurance salesman in a tacky polyester suit. He seems eager to speak to you." Understand "man" as the insurance salesman.

A briefcase is carried by the insurance salesman. The description is "A slightly worn, black briefcase."  Understand "case" as the briefcase.

The insurance paperwork is in the briefcase. The description is "Page after page of small legalese." Understand "papers" or "documents" or "forms" as the paperwork.

Instead of listening to the insurance salesman: 
	say "The salesman bores you with a discussion of life insurance policies. From his briefcase he pulls some paperwork which he hands to you.";
	move the insurance paperwork to the player.

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

Mystery House Posolated (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 , занявшей первое место в конкурсе интерактивной фантастики . Он также выиграл 2006 XYZZY Awards за лучший сеттинг и лучший NPC. Rendition от nespresso (2007) - это политический художественный эксперимент в форме текстовой приключенческой игры. Его подход к трагедии академически обсуждался как Ассоциацией вычислительной техники, так и Кембриджским университетом .

Смотрите также

дальнейшее чтение

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

Рекомендации

внешняя ссылка