Введение
Язык программирования и система проектирования
the programming language
Inform — это язык программирования и система проектирования для интерактивной художественной литературы, первоначально созданная в 1993 году Грэмом Нельсоном. Inform может генерировать программы, предназначенные для виртуальных машин Z-кода или 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-кода можно запускать на множестве платформ без каких-либо изменений. Изначально Inform был ориентирован исключительно на Z-машину. Эндрю Плоткин создал неофициальную версию Inform 6, которая также могла генерировать файлы для Glulx – виртуальной машины, разработанной им для преодоления многих ограничений многолетней Z-машины. Начиная с Inform 6.3, выпущенного 29 февраля 2004 года, Inform 6 включает официальную поддержку обеих виртуальных машин, основанную на работе Эндрю Плоткина. Первые выпуски Inform 7 не поддерживали Glulx, но в августе 2006 года поддержка Glulx была добавлена.
Информировать 6
Inform был первоначально создан Грэмом Нельсоном в 1993 году. В 1996 году Нельсон переписал Inform с нуля, чтобы создать версию 6 (или Inform 6). В течение следующего десятилетия версия 6 стала достаточно стабильной и популярным языком для создания интерактивной художественной литературы. Система Inform 6 состоит из двух основных компонентов: компилятор Inform, который генерирует файлы историй из исходного кода Inform, и библиотека Inform – набор программ, выполняющий большую часть сложной работы по разбору ввода текста игрока и поддержанию модели мира. Название Inform также относится к языку программирования Inform, который понимает компилятор. Хотя Inform 6 и Z-машина изначально разрабатывались для интерактивной художественной литературы, было создано множество других программ, включая интерпретатор BASIC, учебное пособие по LISP (вместе с интерпретатором), игру Tetris и версию игры Snake.
Компилятор Inform 6
Компилятор Inform генерирует файлы для машины Z или Glulx (также известные как файлы историй) из исходного кода Inform 6.
Библиотека Inform 6
Система Inform также содержит библиотеку Inform, которая автоматизирует почти всю самую сложную работу, связанную с программированием интерактивной художественной литературы; в частности, она включает в себя текстовый парсер, который интерпретирует ввод игрока, и модель мира, отслеживающую такие элементы, как объекты (и их свойства), комнаты, двери, инвентарь игрока и т. д. Компилятор Inform не требует использования библиотеки Inform. Существует несколько альтернативных библиотек, таких как Platypus и InformATE, библиотека, кодирующая Inform на испанском языке. Некоторые игры могут вообще не использовать библиотеку, например, прямой порт Zork в Inform 6. Zork: The Undiscovered Underground (1997), написан Марком Бланком и Майклом Берлином, программирование – Джерри Кевин Уилсон. Распространялась бесплатно компанией Activision для продвижения выхода Zork: Grand Inquisitor. Anchorhead, Майкла С. Джентри (1998) – высоко оцененная хоррор-игра, вдохновленная мифами Ктулху Г. Ф. Лавкрафта. Photopia, от Адама Кадра (1998) – первая игра, почти полностью лишенная головоломок. Она выиграла ежегодный конкурс интерактивной художественной литературы в 1998 году. Varicella, Адам Кадре (1999). Игра получила четыре премии XYZZY в 1999 году, включая премию XYZZY за лучшую игру, и о ней была написана научная статья. Galatea, Эмили Шорт (2000). Galatea полностью посвящена взаимодействию с одноименной анимированной статуей. Galatea обладает одной из самых сложных систем взаимодействия с неигровым персонажем в интерактивной художественной литературе. Адам Кадре назвал Galatea «лучшим NPC из когда-либо созданных». Slouching Towards Bedlam, Стар С. Фостер и Дэниел Равипинто (2003). Действие игры разворачивается в сеттинге стимпанк, и она интегрирует метаигровые функции (сохранение, восстановление, перезапуск) непосредственно в игровой мир. Игра выиграла две премии XYZZY и получила самый высокий средний балл среди всех игр на конкурсе интерактивной художественной литературы по состоянию на 2006 год.
Информировать 7
30 апреля 2006 года Грэм Нельсон объявил о бета-выпуске Inform 7 в новостную группу rec.arts.int-fiction. Inform 7 состоит из трех основных частей: интегрированная среда разработки (IDE) Inform 7 с инструментами, специализированными для тестирования интерактивной художественной литературы, компилятор Inform 7 для нового языка и "Стандартные правила", которые формируют основную библиотеку Inform 7. Inform 7 также использует библиотеку и компилятор Inform 6. Компилятор преобразует исходный код Inform 7 в исходный код Inform 6, который затем отдельно компилируется Inform 6 для создания файла истории в формате Glulx или Z-code. Inform 7 по умолчанию также создает файлы Blorb – архивы, включающие Z-code, а также необязательные обложки и метаданные, предназначенные для индексации. Полный набор инструментов Inform 7 в настоящее время доступен для Mac OS X, Microsoft Windows и Linux (с 2007 года). По состоянию на 2023 год Inform 7 и его инструменты продолжают разрабатываться. С апреля 2022 года Inform 7 имеет открытый исходный код и разрабатывается на GitHub. В течение короткого времени Inform 7 назывался Natural Inform, но позже был переименован в Inform 7. Это старое название является причиной, по которой компилятор Inform 7 называется "NI".
Информировать 7 IDE
Inform 7 поставляется с интегрированной средой разработки (IDE) для Mac OS X, Microsoft Windows и Linux. IDE для Mac OS X была разработана Эндрю Хантером, а IDE для Microsoft Windows – Дэвидом Киндером. Linux IDE (известная как GNOME Inform) разработана Филиппом Чименто. IDE Inform 7 включает в себя текстовый редактор для редактирования исходного кода Inform 7. Как и многие другие редакторы программирования, она поддерживает подсветку синтаксиса. Строки в кавычках выделяются одним цветом. Заголовки организационных разделов (Тома, Книги, Главы, Части и Разделы) выделены жирным шрифтом и отображаются крупнее. Комментарии выделены другим цветом и отображаются немного меньше. IDE включает в себя встроенный интерпретатор Z-кода. Интерпретатор IDE для Mac OS X основан на интерпретаторе Zoom, разработанном Эндрю Хантером, с участием Джесси МакГрю. Интерпретатор IDE для Microsoft Windows основан на WinFrotz. По мере того, как разработчик тестирует игру во встроенном интерпретаторе, прогресс отслеживается в представлениях IDE "skein" (набор путей) и "transcript" (журнал). "Skein" отслеживает команды игрока в виде дерева разветвляющихся возможностей. Любую ветвь этого дерева можно быстро повторить, что позволяет перепробовать различные пути в разрабатываемой игре, не переигрывая одни и те же её части. Пути также можно аннотировать заметками и отмечать как решения, которые затем можно экспортировать в виде текстовых прохождений. "Transcript", с другой стороны, отслеживает как команды игрока, так и ответы игры. Правильные ответы игры можно пометить как "благословленные". При повторном воспроизведении "transcript" или ветви "skein" различия с "благословленной" версией будут выделены, что поможет разработчику найти ошибки. IDE также предоставляет различные индексы к разрабатываемой программе. Код отображается в виде иерархии классов, традиционной карты IF, оглавления в виде книги и в других форматах. При нажатии на элементы в индексе происходит переход к соответствующему исходному коду. IDE представляет две панели, расположенные рядом друг с другом, для работы. Каждая панель может содержать исходный код, над которым ведется работа, текущий статус компиляции, "skein", "transcript", индексы исходного кода, работающую версию игры, документацию для Inform 7 или любые установленные расширения, или настройки. Концепция заключается в имитации рукописи автора, представляя две "разворотные страницы" вместо множества отдельных окон. На ранних этапах развития Inform 7 компилятор переводил код в Inform 6, подобно тому, как CFront делал это с C++ и C.