Это статья для быстрого старта в создании игры жанра "Визуальная Новелла".

Аналогичная статья для жанра RPG находится здесь.
Если вы планируете делать игру другого жанра то вам, вероятно, придётся хотя бы поверхностно прочитать бОльшую часть этой документации (за исключением RPG-части), после чего просмотреть код игр из демки.

Для начала скачайте лаунчер и распакуйте полученный архив туда, где планируете работать над проектами на основе Ren-Engine.

Войдите в распакованную папку и запустите файл `start`.
Создайте новый проект, указав жанр "Визуальная Новелла".
После создания вы сможете запустить игру или открыть её папку для исследования и редактирования её файлов.

Готово! Это почти всё, что вам потребуется для начала работы над игрой.

## Файл сценария.

Теперь давайте откроем файл сценария и посмотрим, как он устроен: `resources/mods/std/main.rpy` - это просто текстовый файл, его можно открыть любым текстовым редактором.

    label start:
        scene bg room

        show rn happy with dspr
        rn "Visual Novell starts here."

        scene bg black with dissolve

Если вы видите что-то сильно другое, то ваш текстовый редактор, возможно, не поддерживает UTF-8 и/или переносы строк в Unix-стиле. В этом случае используйте Notepad++ или нечто похожее.
Все `*.rpy` файлы обязательно должны быть в кодировке UTF-8 и иметь Unix'овые переносы строк.

## Разбор файла сценария

`label start:` говорит о том, что дальше будут даны команды метки `start`. Это специальная метка, с которой начинается исполнение сценария игры. Как и в питоне, все дальнейшие "дочерние" команды должны иметь отступ (табуляцией).

`scene bg room` показывает изображение с именем `bg room`. Оно зарегистрировано в другом файле.

`show rn happy with dspr` - показывает изображение `rn happy` с эффектом `dspr`. Как вы догадались, оно тоже зарегистрировано в другом файле. Эффект указывается после ключевого слова `with`, `dspr` - плавное, но быстрое появление.
В чём разница между `show` и `scene`? Оба показывают изображения, но `scene` перед этим удаляет все уже показанные. Кроме того, `scene` даёт понять, что сейчас будет отображение именно полноразмерного изображения на весь экран, а не спрайта какого-либо персонажа.

`rn "Текст"` - выводит текст в диалоговое окно от имени персонажа `rn`. Конечно же, этот персонаж тоже зарегистрирован в другом файле.

Смысл последней же строки должен быть очевиден из вышесказанного.

## Файлы с определениями

Вынос определений изображений, персонажей и проч. в другие файлы нужен для большего удобства и порядка.
За некоторыми исключениями, все сущности вашей игры должны определяться в файлах папки `resources/mods/common/`.
По именам файлов можно легко понять, что они содержат. Например, персонажи определяются в `resources/mods/common/characters.rpy`.

## Файлы движка

Вряд ли эта информация пригодится вам в самом-самом начале, особенно, если у вас нет опыта в программировании, но в дальнейшем это будет важно учитывать, если вы собираетесь что-то очень серьёзно менять.

По пути `Ren-Engine/rpy/` лежат `*.rpy`-файлы движка.
Их можно читать, чтобы смотреть разные приёмы работы, реализацию всяких вещей, значения по умолчанию и т. д.
Но их нельзя редактировать, иначе все ваши изменения слетят при первом же обновлении движка (из Лаунчера).

Чуть более рекомендуемый вариант - скопировать в минимально возможном виде сущности, которые необходимо изменить (например, какой-либо скрин) в папку `resources/mods/common/` (общие файлы вашей игры, т. е. всех её модов), внося изменения уже там.
Но при этом необходимо убедиться, что не используются недокументированные фичи - переменные, функции, скрины и т. д. - даже если вы их не писали, а просто оставили от стандартной версии.
Недокументированные вещи потому и не документированы, что являются внутренними деталями реализации, и в любом обновлении движка могут быть изменены без предупреждений и уведомлений, даже в разделе сделанных изменений.

Как видите, всё довольно просто. Более детальное описание читайте на следующих страницах.

Далее ->