Затем нужно установить фон для главного меню и внутриигрового меню (доступно во время игры по нажатию Esc). Для этого присваиваем строки с именами нужных файлов переменным mm_root и gm_root. В нашем примере:
Добро пожаловать в Руководство для начинающих по использованию движка визуальных новелл Ren’Py. Здесь мы, на примере создания с нуля игры Знакомство с Визуальными Новеллами, рассмотрим процесс написания простой визуальной новеллы.
Запустим центр управления Ren’Py. Для этого нужно запустить renpy.exe (renpy.sh для пользователей Линукса) из папки, в которую распакован архив с ним. В левом верхнем углу белым будет написано название активного проекта. Справа — ряд кнопок, поделённый на две секции:
секцию «Текущий проект» («This project» в английской версии — Команды для текущего проекта), состоящую из команд «Запуск» («Launch» — запустить проект на исполнение), «Править скрипт» («Edit Script» — Редактировать код проекта), «Сменить тему» («Change Theme» — Сменить цветовую схему оформления проекта), «Папка игры» («Game Directory» — Открыть папку текущего проекта (всё, относящееся к проекту — код, ресурсы — должно лежать в ней)) «Инструменты» («Tools» — Вспомогательные средства); секцию «Сменить проект», состоящую из команд «Выбрать проект» («Change Project» — Смена активного проекта, позволяет переключаться между созданными проектами. В поставку Ren’Py изначально входят проекты demo (демонстрация возможностей движка) и the_question (простейшая законченная визуальная новелла)) и «Новый проект» («New Project» — Создание нового проекта).
Мы хотим создать новую игру, потому выберем «Новый проект». ЦУ попросит выбрать шаблон проекта — выбираем template за неимением других опций. Затем ЦУ попросит ввести название проекта. Вводим. Следом ЦУ попросит выбрать цветовую схему оформления проекта. На вкус и цвет. В результате вернёмся в главное меню ЦУ с только что созданным проектом в качестве активного (обратите внимание на левый верхний угол). Можно запустить его кнопкой «Запуск», чтобы полюбоваться на интерфейс. Но лучше приступить к собственно написанию игры.
Интересно? Тогда добро пожаловать под кат.
Выбор, собственно, был невелик: либо Java, либо C++. Недолго думая, я решил реализовывать задуманное на Java, т.к. для быстрой разработки она даёт все возможности (а именно: автоматическое управление памятью и большую, по сравнению с C++, простоту, которая скрывает много низкоуровневых деталей и, как следствие, позволяет меньше акцентировать внимание на самом языке и думать только о бизнес-логике), а также обеспечивает поддержку окон, графики и аудио из коробки.
Для реализации графического интерфейса был выбран Swing, так как я использовал Java 13, где JavaFX уже не входит в библиотеку, а добавлять в зависимости десятки мегабайт OpenJFX было лень. Возможно, это было не лучшим решением, но тем не менее.
Вероятно, возникает вопрос: что это за игровой движок, да без аппаратного ускорения? Ответ заключается в отсутствии времени для борьбы с OpenGL, а также абсолютной её бессмысленности: для визуальной новеллы неважен FPS (во всяком случае, с таким количеством анимации и графики, как в данном кейсе).
Парадоксально, но в визуальной новелле главным является диалог, то есть текст. Дело в том, что для сохранения динамики, чтобы игрок, попросту говоря, не заскучал, он должен играть — что-то делать. Ему быстро надоест читать длинные описания того, что произошло с персонажем, и он бросит играть. Нужно, чтобы на экране происходило какое-то движение, смена кадров. Но визуальная новелла не предполагает использование анимаций, здесь возможны лишь статические изображения. Единственный выход — сделать диалог между персонажами, в котором на экране будет появляться то один, то другой.
Как устроена визуальная новелла
Чтобы понять ограничения, которые накладываются на диалог в визуальных новеллах, нужно понять принцип самой игры. Итак, вы играете за персонажа, который по ходу игры должен общаться с другими персонажами. В процессе диалога вам периодически будут предлагать выбор следующей реплики для своего персонажа. В зависимости от этого выбора персонаж, с которым вы общаетесь, может:
- изменить к вам свое отношение (станет относиться лучше или хуже);
- выполнить вашу просьбу или отказать в ней.
Также вам периодически нужно будет принимать решение о том, как поступить. Каждый такой выбор тоже имеет последствия. В зависимости от поступка сюжет игры повернет на одну из сюжетных линий. Это не значит, что однажды сделанный выбор однозначно определяет концовку. Отнюдь, вы можете добраться до финала разными способами.
при скачивании версии 7.4.4 запускается пустое окно
в файле log.txt всё зацикливается на этом
Информация
Описание: RenPy — простой и гибкий движок для создания визуальных новелл. На данный момент одно из лучших решений для разработки игр этого жанра.
Распространение порнографических материалов в группе строго запрещено. При обнаружении таковых сообщайте администратору, он их удалит. Сайт: www.renpy.org
Другое
Действия
при скачивании версии 7.4.4 запускается пустое окно
в файле log.txt всё зацикливается на этом
Screen sizes: virtual=(800, 600) physical=(800, 600) drawable=(800, 600)
Root FBO is: 0
FBO Maximum Texture Size: 0
кто нибудь знает как исправить?
Я счастлив анонсировать Ren’Py 7.4.4, четвертый выпуск патча для серии 7.4. Это исправляет пару регрессов, одна из которых остановила работу веб-бета-версии, а другая помешала работе жестов и поддержки контроллера. Показать полностью.
В этом выпуске добавлена базовая поддержка настраиваемых режимов наложения и эта поддержка используется для реализации аддитивного и мультипликативного наложения для Live2D. Он также устраняет проблему с большими текстурами, которая обычно проявляется как проблемы с Live2D.
Он также включает новую функцию, которая позволяет передавать старые файлы .rpyc в Ren’Py, что должно помочь поддерживать совместимость сохранений с играми, выпущенными более одного раза, такими как игры с ранним доступом.
Загрузки версии 7.4.4 можно найти по адресу:
Полный список изменений в Ren’Py можно найти по адресу:
Список изменений, которые могут потребовать от вас обновления игры, можно найти по адресу:
scene название_фоновой_картинки
Создание собственной игры — мечта многих современных людей. С использованием движков это становится возможным даже для тех, кто далек от программирования.
Визуальная новелла — жанр специфический. По сути, процесс игры сравним с чтением книги, полной иллюстраций и музыкального сопровождения. А еще сюжетная линия может зависеть от выборов игрока.
После прохождения очередной концовки «Бесконечного лета» (одна из наиболее популярных русскоязычных новелл) я обратила внимание на строку в титрах: «Игра сделана при помощи RenPy». Погуглив что такое это загадочное RenPy (как выяснилось — гибкий движок для игр подобного жанра), я загорелась созданием собственной новеллы, потому что:
1. очень простой синтаксис;
2. добавление изображений/аудио/видео не вызывает проблем (а ведь это самое важное, учитывая количество спрайтов, CG, саундтреков);
RenPy можно бесплатно скачать с официального сайта. После установки вы можете пройти очень подробное обучение в виде диалога с персонажем Эйлин. Но скажу пару слов о главных компонентах новеллы.
1) Для начала стоит выбрать редактор, в котором вы будете писать код: Atom, jEdit, Editra.
2) Открыв файлы сценария, не стоит пугаться непонятного кода, комментарии могут прояснить многие моменты. Главный файл для вас — scripts.rpy, в котором и пишется игра.
На начальном этапе при запуске будет следующая картина:
3) Выглядит не очень, но с главным меню разберемся позже. Пока давайте попробуем записать реплику какого-нибудь персонажа.
Чтобы упростить запись имени и задать его цвет, можно использовать следующую конструкцию:
define короткое_имя_персонажа = Character(‘полное_имя’, color=»код_цвета»).
Если фраза должна принадлежать безликому рассказчику, то запись становится еще проще:
Посмотрим, как это выглядит в действии:
Успех игры напрямую зависит от качества текста. Написание сценария — не дело одного дня, так что стоит отнестись к этому этапу со всей серьезностью.
4) Самое время добавить фон и изображение персонажа. Так как в игре следует передавать эмоции героев, то возникает необходимость часто менять спрайты на экране. Для удобства все используемые изображения нужно добавить в папку игры images. К примеру, нужно отобразить персонажа на фоне в его левой части, а после реплики поменять эмоцию:
scene название_фоновой_картинки
show название_спрайта at left
show название_спрайта at left
Можно сделать переход между изображениями, задать траекторию движения спрайта и еще много чего. Уроков великое множество, так что остается лишь скопировать готовое решение и адаптировать под свою игру.
5) Добавление аудио записывается в одну строчку:
play music «music/название_песни.mp3»
Подразумевается, что музыка хранится в папке игры music (автоматически не создается). Аудио тоже можно обрабатывать определенным образом, об операторах подробнее можно почитать в документации или в обучении Эйлин.
Не забывайте, что если ваша новелла в будущем станет коммерческим проектом, то использовать любую понравившуюся песню нельзя. В таких случаях есть несколько вариантов:
— библиотеки бесплатных звуков и мелодий
— поиск энтузиастов, которые напишут саундтрек бесплатно
— покупка лицензии на использование мелодий
— самостоятельная работа над саундтреком (в наше время для этого не нужно иметь музыкальное образование и инструмент)
6) Стандартный интерфейс выглядит довольно уныло. Начинающим будет сложно вносить кардинальные изменения в GUI, но можно, как минимум, выбрать свой фон и переделать навигацию. Если до этого мы использовали файл scripts.rpy, то теперь писать код придется в первую очередь в gui.rpy. Вот что получилось при модификации нескольких строк и добавления своего шрифта:
Если у вас в голове есть отличная идея для сюжета, вы или ваши знакомые могут заняться графикой и музыкой для игры, то почему бы не попробовать свои силы в данном направлении? Опыт многих разработчиков доказывает, что подобные игры лучше делать командой. И если друзья отказываются, то поиск умельцев стоит продолжить на имижбордах и в группах соответствующей тематики.
Источники
- https://www.renpy.org/wiki/renpy/rus/doc/tutorials/%D0%A0%D1%83%D0%BA%D0%BE%D0%B2%D0%BE%D0%B4%D1%81%D1%82%D0%B2%D0%BE_%D0%B4%D0%BB%D1%8F_%D0%BD%D0%B0%D1%87%D0%B8%D0%BD%D0%B0%D1%8E%D1%89%D0%B8%D1%85
- https://m.habr.com/ru/post/483818/
- https://www.editor.ru/visual-novel-how-to-write-dialogs/
- https://m.vk.com/renpy
- https://i.nure.ua/student/599-vizualnaya-novella-svoimi-rukami