Пусть ваш первый проект будет небольшим: один разговор, один запоминаемый выбор, две концовки. В этом примере явно совершеннолетние коллеги занимаются подготовкой студии. Их решение меняет концовку истории, позволяя освоить диалоги, ветвление и состояние на посильном примере. Вам не нужно скачивать графику или озвучку, поэтому, если что-то сломается, разобраться будет проще.
Скачайте скрипт со страницы шаблонов. Он соответствует официальному справочнику языка, но не был протестирован в движке Ren'Py. Запишите версию движка, которую используете, затем выполните описанные ниже проверки линтером и прохождения, прежде чем считать пример рабочей сборкой.
Создайте чистый проект
Скачайте Ren'Py с официального сайта, откройте лаунчер и создайте новый проект в папке с доступом на запись. Сохраните созданные файлы интерфейса. Выберите разрешение и тему, обеспечивающие хорошую читаемость, затем запустите проект без изменений. Этот первый запуск даст вам рабочую основу до внесения любых правок.
Сделайте резервную копию созданного файла script.rpy, прежде чем заменить его предоставленным примером. Оставьте в проекте только одну метку start. Ren'Py объединяет файлы скриптов в каталоге game, поэтому, если оставить метку start из шаблона вместе с меткой start из примера, возникнет конфликт.
Изучите структуру перед изменениями
В примере определяется персонаж, с помощью default инициализируется флаг выбора, а выполнение начинается с label start. Меню предлагает два ответа: предложить общий план или оставить отдельные планы. Каждый ответ задаёт значение флага и переводит выполнение к общей сцене обсуждения. Условие в конце использует флаг, чтобы выбрать одну из двух меток концовок.
Точно соблюдайте отступы: они определяют блоки скрипта. Размещайте метки и определения на нужном уровне и делайте отступы для инструкций, относящихся к каждому пункту меню. Вносите по одному небольшому изменению и запускайте проект после каждой правки, чтобы можно было связать проблему с вызвавшим её изменением.
Сделайте выбор понятным
Пусть формулировки и ситуация объясняют игроку, что именно он выбирает. Здесь коллеги решают, следовать ли общему плану. Концовка отражает этот ответ, поэтому его последствия легко заметить. Выбор воспринимается как осмысленный, когда история запоминает его, а игрок видит, на что он повлиял.
Для этой сцены достаточно одной именованной логической переменной, чтобы запомнить конкретное решение. Числовой показатель отношений добавил бы лишний учёт без полезного правила его применения. Вводите счётчики, когда поймёте, как должны сочетаться несколько решений, и сформулируйте это правило до добавления новых ветвей.
Добавляйте оформление, когда маршрут уже работает
Начните с текста и фона по умолчанию. Когда обе концовки заработают, добавьте оригинальный фон и спрайт персонажа с небольшим набором выражений лица. Используйте единообразные названия и записывайте источник каждого ресурса и права на него. Вести такие записи по ходу работы проще, чем восстанавливать их, когда придёт время выпуска.
Проверяйте каждое изображение в реальной области отображения. Даже детализированный рендер в полном разрешении может сделать персонажа неразличимым после кадрирования. Текстовое окно, меню и индикаторы фокуса должны оставаться видимыми, а элементы управления звуком и анимацией — располагаться в доступном месте интерфейса.
Целенаправленно проверяйте сохранения и откат
Сохраните игру перед меню, после меню и на концовке. Загрузите каждое сохранение и убедитесь, что сохранённый выбор и диалоги соответствуют ожидаемым на этом этапе. Завершив один маршрут, начните новую игру и проверьте, что она начинается с предусмотренного начального состояния.
Откатитесь к моменту перед выбором с помощью обычных элементов управления в проекте и запишите, что происходит, когда вы снова доходите до этого выбора. Если позднее вы добавите необратимые внешние эффекты, например изменения в аккаунте или удалённые транзакции, заранее продумайте их взаимодействие с откатом, прежде чем привязывать их к сюжетному выбору.
Подготовьте дистрибутив и проверьте результат
Запустите Check Script (Lint) из лаунчера и разберитесь с его замечаниями. Линтер может обнаружить проблемы в скрипте; для оценки текста и связности маршрутов всё равно нужно пройти игру. Дойдите до обеих концовок, каждый раз начиная заново, затем попросите второго тестировщика повторить эти прохождения. Используйте матрицу тестирования маршрутов, чтобы записать, что произошло на самом деле.
Создайте дистрибутив для выбранной целевой платформы и запустите упакованную сборку вне каталога проекта. Проверьте в ней сохранения, настройки и поведение при отсутствии файлов. Сохраните в архиве скрипт, версию движка и заметки о тестировании. Расширьте историю одной протестированной сценой, прежде чем браться за полную переработку интерфейса.
Ключевые решения
- Оставьте одну метку start и соблюдайте отступы в скрипте.
- Проверьте обе концовки до добавления графики.
- Отдельно проверьте состояние новой игры, сохранения и откат.
- Запустите упакованную сборку после проверки линтером и прохождений проекта.
Файлы руководства
Пример скрипта Ren'Py ↓Матрица тестирования маршрутов ↓Внешние сообщества, посвящённые моделям, и внешние сайты для публикаций могут содержать откровенные материалы. Ссылки на источники открываются в новой вкладке; это руководство не загружает их предпросмотры.
Источники и дополнительные материалы +
Последняя проверка 5 октября 2026 г..