Визуальный роман — жанр компьютерных игр, подвид текстового квеста, в котором зрителю демонстрируется история при помощи вывода на экран текста,
статичных (либо анимированных) изображений, а также звукового и/или музыкального сопровождения. Нередко используются и вставки полноценных видеороликов.
Степень интерактивности в таких играх обычно низка, и от зрителя лишь изредка требуется сделать определенный выбор, в частности — выбрать вариант ответа в диалоге.
Персонажи этих игр обычно выполнены в стиле аниме, который, как и визуальные романы, возник в Японии.
Визуальные романы — это вид интерактивной литературы, включающей в себя бесчисленное количество жанров — от серьёзной научной
фантастики до беззаботного фэнтези, от пародийных комедий до жестоких ужастиков, от лёгких любовных романов до тяжёлых социальных драм.
Визуальные романы отличаются низким уровнем интерактивности, в основном требуя от зрителя лишь нажатия определенной кнопки для перехода к следующему
отрывку текста или сцене (в большинстве присутствует клавиша для быстрого пропуска сцен), но нередки случаи скрещивания визуальных романов с аркадами,
пошаговыми стратегиями, RPG и другими игровыми жанрами.
Большая часть визуальных романов имеет разветвленный сюжет и несколько вариантов концовки, в таком случае зрителю в определенные моменты предлагается
сделать выбор между различными вариантами действий или ответов в диалоге, таким образом определяя дальнейшие события в игре.
Структура повествования работает как в интерактивных книгах, популярных в 1990-е. Однако в новеллах фабула обычно сложнее, а раскрытие характеров
персонажей намного глубже, чем в вышеупомянутых книгах для детей. Визуальные романы действительно похожи на текстовые квесты, но имеют разные корни и
преследуют другие цели. Учитывая слабый сюжет и невнятное повествование в большинстве современных игр, поклонники выделяют визуальные романы, считая
такой способ повествования сильной стороной жанра.
Помимо жанровых подвидов, визуальные романы так же различаются и по механике.
Кинетическая новелла (Kinetic Novel)
Характерная черта для данного подвида визуального романа — полное отсутствие ветвлений, выбора вариантов и, как следствие, возможности зрителя влиять на сюжет.
Примеры: Planetarian, Narcissu.
Звуковая новелла (Sound Novel)
Та же кинетическая новелла, но с большим упором на звуковое сопровождение.
Зачастую представители жанра имеют весьма слабую графическую составляющую, либо не имеют таковой вовсе. Примеры: Higurashi no Naku Koro ni, Umineko no Naku Koro ni.
ADV («Adventure»)
В данном подвиде текст выводится через небольшое окно, обычно располагающееся в нижней части экрана.
Оставшееся пространство отведено под красочные иллюстрации, фоны и спрайты персонажей, обычно с широким использованием эффектов
(смена палитры, приближение/отдаление, вращение, волны, тряска экрана и пр.). Для жанра характерны короткие предложения, поскольку
текстовое окно по-просту не способно вместить большой объём текста. Для имён (либо значков или портретов, отождествляющих) персонажей,
от чьего лица произносится предложение, обычно предусмотрена отдельная область текстового окна, что позволяет зрителю с лёгкостью отслеживать
течение диалога. Когда от зрителя требуется выбор, ему предоставляется красочное (иногда анимированное и даже озвученное) окно с вариантами действий.
Подавляющее большинство визуальных романов относятся именно к этому подвиду.
NVL («Novel»)
В данном подвиде текст выводится во весь экран на полупрозрачном слое (обычно чёрного цвета), за которым отображаются иллюстрации и спрайты персонажей.
Поскольку отведённое для текста место ограничивается лишь разрешением экрана, для жанра характерны длинные, пространные предложения
(или, как их окрестили фанаты, «стены из текста»). Что характерно, зачастую отсутствуют метки, указывающие на принадлежность фраз
конкретным персонажам, что затрудняет чтение.
Движок Ren'Py
Ren'Py это бесплатный кросс-платформенный движок, который поможет вам сделать графическо-текстовую сюжетную игру. Это может быть:
Визуальная новелла, история, рассказанная с помощью текста, изображений, звуков и музыки.
Скриптовый язык Ren'Py позволяет писать визуальные новеллы просто и эффективно, профессиональный программист для создания игры не понадобится.
Симулятор, например, симулятор свиданий или тайм-менеджер тоже можно написать на Ren'Py, используя поддержку языка Python.
Движок сам позаботится о таких вещах, как постоянство и эффективный рендеринг, позволяя программисту сфокусироваться на интерфейсе и логике игры.
Более того, скриптовый язык Ren'Py, на котором так просто писать визуальные новеллы, позволит добавить сюжетные вставки в ваш симулятор.
Возможности визуализации и геймплея Ren'Py могут быть расширены пользователем и достаточны для создания любой двумерной сюжетной игры.
На Ren'Py можно делать как коммерческие, так и бесплатные игры.
Хотя движок и его библиотеки являются open source, лицензирован от таким образом, что вы можете сами выбрать,
будут у вашей игры открытые исходники или нет. Для распространения игры на Ren'Py вам не придется платить создателям движка или кому-то еще.
Одно из главных преимуществ Ren'Py - его кросс-платформенность.
Windows 2000+ (x86)
Mac OS X 10.4+ (x86 и ppc)
Linux (x86, glibc 2.3+)
Движок может компилировать отдельные версии игр для всех этих платформ. Пользователю не придется ничего дополнительно скачивать - игры запустятся сразу.
Откуда такое странное название - Ren'Py? И как вообще это пишется по-русски?
На русских форумах движок называют Ренпи, а расшифровывается это довольно просто - Renai + Python.
Renai - японское название симуляторов свиданий. На самом деле это тоже сокращение, идущее от renai shimyureeshon geemu (ренай симюрэсён гэму) - "игра-симулятор любви". В Японии вообще любят длинные названия... которые потом успешно сокращаются :)
Также эти игры известны как bishoujo geemu (бисёдзё гэму) - "игры про красавиц", renai adventure - "романтические приключения" и date sim (dating simulator) - собственно, "симулятор свиданий".
Python -
высокоуровневый язык программирования. Как несложно догадаться, именно на нем написан движок Ren'Py. Кроме того, на Питоне можно написать некоторые части игры и вставить их в скрипт Ренпи - например, мини-игры.
В разработке игр Питон знаменит библиотекой PyGame, с помощью которой можно писать игры различных жанров
Создание простых игр в данном конструкторе по сложности доступно для любого желающего, но для более сложных игр необходимо изучить и применять скриптовый язык Python. Есть широкие возможности для создания оригинальных манг, в том числе: подключение видео и использование различных спецэффектов на движке.
А если же вам необходимо создать типичную игру данного жанра, то Ren'Py по умолчанию уже настроен на создание типичной игры жанра визуальных новелл: уже с меню, возможностью сохранения, простыми функциями анимации, разветвлениями сюжета, музыкой - остаётся только вставить картинки и вписать текст.
Графика и качество игры, созданной в этом конструкторе, зависит в большей степени от ваших умений рисовать. Ну а сюжет зависит от ваших писательских способностей. Типичный геймплей достигается без знания программирования, а со знанием скриптования Python возможно даже создание RPG.
Поддерживаются такие форматы графики: JPEG/JPG, PNG, BMP, GIF. Форматы звука: OGG Vorbis, OGG Speex, MOD, WAV (только PCM), MP3.
Программирование простых визуальных новелл - не очень сложное дело, сложнее сочинить сюжет и подобрать графику (фоны и спрайты). Для примера программы, приведу отрывок скрипта из игры "9 Мая":
init:
# Здесь объявляют изображения, фоновые и персонажей. Командами вроде:
# image eileen happy = "eileen_happy.png"
image bg square = "img/square.jpg"
image bg victory = "img/all_hail_victory.jpg"
image cccp = "img/char_cccp_base.png"
image cccp sad = "img/char_cccp_sad.png"
image slavya = "img/char_slavya_base.png"
image slavya sad = "img/char_slavya_sad.png"
# Далее создание анимированных мигающих глаз на обоих персонажах (спрайтах)
image slavya happy = LiveComposite(
(327, 565),
(0, 0), "img/char_slavya_base.png",
(146, 88), anim.SMAnimation("a",
anim.State("a", "img/temp_s_eye_1.png"),
anim.State("b", "img/temp_s_eye_2.png"),
anim.State("c", "img/temp_s_eye_3.png"),
anim.Edge("a", 2.0, "a", prob=2),
anim.Edge("a", 0.06, "b"),
anim.Edge("b", 0.06, "c"),
anim.Edge("c", 0.14, "a"),
),
)
image cccp happy = LiveComposite(
(330, 547),
(0, 0), "img/char_cccp_base.png",
(84, 118), anim.SMAnimation("a",
anim.State("a", "img/temp_c_eye_1.png"),
anim.State("b", "img/temp_c_eye_2.png"),
anim.State("c", "img/temp_c_eye_3.png"),
anim.Edge("a", 2.0, "a", prob=2),
anim.Edge("a", 0.06, "b"),
anim.Edge("b", 0.06, "c"),
anim.Edge("c", 0.14, "a"),
),
#anim.Filmstrip("img/char_cccp_eyes.png", (91, 42), (3, 1), .1),
)
# Здесь также объявляют персонажей, участвующих в новелле (не забудте про u перед русскоязычными именами!).
$ u = Character(u'Славя', show_two_window=True, color="#5bcdee")
$ s = Character(u'СССР-тян', show_two_window=True, color="#ffe641")
# Отсюда начинается игра.
label start:
play music "music/RedOctober.mp3"
scene bg square with fade
show cccp happy at right with dissolve
s "Привет, Славя! — радостно помахала рукой девочка."
s "Смотри! У меня есть диск «Сталин против Марсиан»."
s "«Сталин повелеват танцевать!»"
"СССР-тян звонко рассмеялась."
show slavya happy at left with dissolve
s "Ух ты! А чего ты так вырядилась?"
u "А ты не знаешь? Сегодня же 9 Мая! Великий праздник."
s "Какой это такой праздник? — не поняла Cсср-тян."
u "Маленькая глупышка, это же День Победы!"
u "День Победы — праздник победы СССР над нацистской Германией в Великой Отечественной войне 1941—1945 годов. Отмечается 9 мая."
s "194.. это когда было?"
u "В этом году ей исполняется 64 года."
s "Тюю, какая древность."
s "Я забыла."
"Cсср озорно высунула язык."
u "Глупая~. Нельзя забывать."
Учиться программировать можно на других играх, просматривая открытые исходники игр.
Они находятся в папке "game" с игрой и с расширением rpy, текст которых можно просмотреть в "блокноте".
Полезные ссылки:
Официальный сайт движка - Подробное описание и форум на английском языке
Русская страничка движка - Локализованная версия движка
Руководство для начинающих
Визуальные новеллы и движок Ren'Py - Подробнее о визуальных новеллах