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

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

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

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

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

- 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 гигабайт.