Введение и установка

Для того, чтобы написать игру на Информе, нам потребуются:

  • текстовый редактор для редактирования исходных файлов игры (официально рекомендуется Sublime Text, но, разумеется, подойдёт любой);
  • библиотека Информа, которую нужно будет включить в свою игру, чтобы работала общая модель и стандартное поведение;
  • компилятор Информа, с помощью которого из исходного файла мы получим файл игры;
  • интерпретатор (плеер), с помощью которого в полученную игру можно будет сыграть.

Библиотеку и компилятор можно скачать с сайта Информа. В архиве помимо прочего есть примеры игр.

Игры можно запускать онлайн, и это самый популярный вариант, но на время разработки обычно пользуются одним из «оффлайн»-плееров:

  • Gargoyle — кроссплатформенный плеер, ориентированный на типографику. Поддерживает все форматы. Скачать для Windows
  • Lectrote — Windows, Linux, OS X (использует Electron).
  • Windows Glulxe для Windows. Там же есть более быстрый Windows Git.

Установка и проверка

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

Для проверки работоспособности и первоначальной настройки:

  1. скачайте архив библиотеки с официального сайта и распакуйте его в отдельную, удобно доступную папку, например c:\rinform\.

    В этой папке будет следующее содержимое:

    \demos\           демонстрационные игры
    \demos\demos.bat  пакетные файлы для компиляции демонстрационных игр
    \demos\demos.sh
    \libext\          расширения для библиотке
    \library\         русская версия библиотеки
    inform.exe        компилятор Inform (для Windows)
    
  2. В папке demos можно увидеть несколько файлов с расширением .inf — это исходные файлы демонстрационных игр. Их можно открыть и просмотреть в текстовом редакторе.

  3. Файл demos.bat это пакетный файл («батник»), при помощи которого упрощается компилирование файлов игр. Запустите этот файл (если на Linux, то demos.sh), на экране появится примерно следующее:

    c:\rinform\demos>..\inform.exe +..\library +language_name=Russian -DG -Cu $DICT_CHAR_SIZE=4 heidi.inf Heidi.ulx
    Inform 6.34 (16th August 2017)
    
    c:\rinform\demos>..\inform.exe +..\library +language_name=Russian -DG -Cu $DICT_CHAR_SIZE=4 AliceR.inf AliceR.ulx
    Inform 6.34 (16th August 2017)
    

    Если прочих сообщений нет, то всё прошло без ошибок.

  4. В папке demos появятся файлы с расширением .ulx — это готовые файлы игр, которые можно запустить в интерпретаторе. Если установлены Windows Glulxe или Lectrote, то при запуске такого файла он скорее всего автоматически откроется в одном из этих интерпретаторов.

Организация своей игры:

  1. создайте папку для игры, например c:\inform\mygame\

  2. создайте главный исходный файл игры, c:\inform\mygame\mygame.inf. Для удобства воспользуйтесь шаблоном:

    !%
    !=============================================================================
    Constant Story "Новая игра";
    Constant Headline
        "^Шаблон игры на Информе^";
    
    Include "Parser";
    Include "VerbLib";
    !============================================================================
    ! Описание игровых объектов
    
    Object first_room "Первая комната"
        with description "Первая комната.",
        has light;
        
    !============================================================================
    [ Initialise; location = first_room; ];
    
    !============================================================================
    Include "RussiaG";
    
    !============================================================================
    
  3. создайте .bat-файл c:\inform\mygame\mygame.bat для удобной компиляции:

    ..\inform.exe +..\library +language_name=Russian -G -Cu $DICT_CHAR_SIZE=4 mygame.inf
    

Компиляция игры

Чтобы скомпилировать игру, нужно через командную строку вызвать компилятор Информа inform.exe с верными параметрами.

Рассмотрим на примере демонстрационной игры Heidi, что означают параметры:

..\inform.exe +..\library +language_name=Russian -G -Cu $DICT_CHAR_SIZE=4 heidi.inf Heidi.ulx
  • +..\library — путь к папке, в которой хранится библиотека
  • +language_name=Russian — параметр языка игры
  • -G — формат игры (Glulx)
  • -Cu и $DICT_CHAR_SIZE=4 — означают использование Юникода (UTF-8) в исходном коде игры
  • heidi.inf — код игры
  • Heidi.ulx — выходной файл (файл игры)

Последними параметрами являются входной и выходной файлы. Перед ними также можно указать необязательные свитчи, например -D для компиляции дебаг-версии игры.

Форматов игры исторически есть несколько, но ныне используется только Glulx. Ранее для формата Z-машины использовались V5 и V8, у которых максимальный размер игры формата V5 — 256 кб, а игры формата V8 — 512 кб. Игры Glulx могут достигать 4 гигабайт.