Уже два года на полках
Steam красуется движок
Reebyte. Манит крутым трейлером, описанием и приятной ценой. А высокие системные требования (
DirectX 11 и
8 GB оперативной памяти) намекают на широкие возможности в работе с графикой. Но стоит познакомиться с ним поближе, — увидеть, какая же нищета скрывается за красивым фасадом, — и вы пожалеете о покупке. Да так сильно, что захотите вернуть деньги, но будет поздно: двухчасовой рубеж пройден. Сто двадцать минут боли, кринжа и хриплого истерического смеха — вот что ожидает каждого покупателя
Reebyte. Как такое вообще возможно в современном-то программном продукте? Что же, усаживайтесь поудобнее. Полёт будет жёсткий.
______________ Что обещают
Итак, для пущего контраста, начнём с рассмотрения фасада. С того, как разработчики описывают собственное детище на
странице в Steam. Читайте описание внимательно, мы ещё не раз к нему вернёмся...
REEBYTE ИДЕАЛЬНО ПОДХОДИТ ДЛЯ:
- - Создателей визуальных новелл
- - Художников / Дизайнеров
- - (…)
- - Разработчиков видеоигр
REEBYTEARE PERFECT FOR
- - Visual Novel Maker
- - Artist / Designer
- - (…)
- - Game Developers
Складывается впечатление что движок способен удовлетворить запросы опытного «винодела», воплотить смелые идеи дизайнера, и даже добавить в новеллу механики из мира видеоигр. Навроде инвентаря или point-and-click элементов. И зачем только авторы
«Короны из листьев» покупали дорогущий
Game Maker Studio 2, когда есть такое чудо за меньшие деньги? Зага-а-адка. Читаем дальше:
ОСОБЕННОСТИ:
- - Мощнейшие инструменты для создания визуальных новелл и интерактивных проектов
- - Лёгкий в использовании благодаря системе Drag and Drop
- - Позволяет монетизировать игру благодаря подключению рекламы Admob для сборок на Android и iOS
- - Позволяет подключить достижения Steam для ПК сборки
- - (…)
- - Ветвление сюжета
- - Полная документация
- - Онлайн туториалы
- - Релиз на множество платформ: iOS, Android, HTML5, Facebook Instant Game, Windows, Mac иLinux
REEBYTE FEATURES
- - The most powerful tools to build a Visual Novel Game and Creative Interactive Projects.
- - Easy to use because its only Drag and Drop Features
- - Monetize your game using Admob for Android, and iOS projects
- - Support Steam Achievement for Desktop projects
- - (…)
- - branching system for choice
- - Complete Documentation
- - Online Tutorial
- - Multiplatform : iOS, Android, HTML5, Facebook Instant Game, Windows, Mac, and Linux.
Ох, да перед нами же убийца TyranoBuilder, позволяющий сделать настолько крутую новеллу, что и зарабатывать на ней не грех.
(Спойлер: нет) Ну а дальше разработчики не раз употребляют эпитеты
professional и
powerful по отношению к своему продукту. И не раз скажут что на их движке можно ваять не только новеллы, но также видеоигры и приложения. Хорошо, разрабы, убедили. Давайте же попробуем сделать хотя бы простенькую новеллу.
______________ Общие принципы
Принцип работы в среде
Reebyte точно такой же как в
TyranoBuilder:
• Есть набор компонентов (1) — каждый выполняет свою функцию. Один меняет фоновое изображение, другой — включает звуковой эффект и так далее.
• Пользователь перетаскивает компоненты на сцену (2), составляя цепочку действий. Набирать код руками не нужно.
• В окне предпросмотра (3) можно увидеть результаты работы компонентов, а кроме того: позиционировать и масштабировать изображения. Согласитесь, в Ren'Py этого не хватает.
• Каждый компонент можно настроить индивидуально. Все настройки отображаются на боковой панели (4).
Вместе с очевидными плюсами «тирановской» системы в
Reebyte перекочевали и минусы: никаких отступов по левому краю, вложенности или группирования. Из-за чего компоненты выстраиваются в сплошную линию. Ориентироваться в ней тяжело (особенно если проект крупный), а от скопища ярких цветов начинает рябить в глазах. Вы, наверное, задаётесь вопросом: «А как ты вообще хотел?». А хотел я как в
GDevelop, где используется более продвинутый подход программирования без ручного набора команд:
Так, с принципами ознакомились, пора бы преступить к работе и сваять хотя бы простенькую визуальную новеллу.
______________ Работа с фоном
Первым делом поставим фоновое изображение. Делается это с помощью компонента
Background Image. Перетаскиваем его на сцену и выбираем нужную картинку в проводнике. Можно загрузить в проект сразу все фоны одним махом, и даже разбить их на папки что весьма удобно. И вот вроде бы всё хорошо, но что-то не так. Будто забыл нечто очень важное... Ах да, нас же не просили установить разрешение экрана будущей новеллы. И не спросят, и не дадут изменить в процессе работы. Право выбора будет только у конечного пользователя и то ограниченное: при каждом запуске новелла будет надоедливо просить выбрать разрешение из списка доступных и режим (оконный/полноэкранный).
Соотношение сторон доступно только одно — 16:9. Так что о создании новеллы в стиле ретро можете забыть.
Кстати, ничего это окошко не напоминает? Да-да, вы всё правильно поняли: наш движок для создания игр (
Reebyte) написан на движке для создания игр (
Unity). Во славу рекурсии!
Ладно, чёрт с ним. Давайте запустим сцену в которой один только фон. И тут нас прямо с порога ожидает сюрприз: эдакий эффект параллакса. И первые пару секунд такая фича вызывает восторг: ох, чудно, прямо как в новеллах от Красавицы Икуку или Angela He. Но потом накатывает злость: эффект нельзя ни настроить, ни даже выключить. А очень хочется, поскольку нет разбивки на планы: фон, изображения и спрайты перебывают на одном слое. Так, вместо ощущения объёма мы чувствуем сцену ещё более плоской, чем если бы эффекта параллакса не было совсем. Для наглядности приведу видео со сравнением эффекта в
The Knight of the Crimson Tower (
Ren'Py),
YOU LEFT ME (
Unity) и Example (
Reebyte):
Теперь пробуем сменить фоновое изображение и видим что авторские переходы не сделаешь, а встроенные выглядят весьма убого. Ну кроме
Crossfade (аналог
Dissolve из
Ren'Py), уж его-то запороть нельзя при всём желании .
______________ Работа с текстом
Добавим в нашу новеллу текст. Для этого сначала перетаскиваем на сцену компонент
Show Text (чтобы появился текстбокс) и, собственно,
Text (в котором прописываем имя говорящего и реплику). Казалось бы, тут никаких подводных камней быть не должно. Это же просто вывод символов на экран.
Хоть с этим-то движок должен справиться. Но не тут-то было:
• Нету возможности сменить шрифт. Вот какой выбрали разработчики, тем и довольствуйтесь.
• Форматировать текст не получится. Жирный, подчёркнутый, цветной — забудьте. Хотя… может быть сей дивный движок использует специальные тэги, но — барабанная дробь! — справка сдохла.
Вот вам и полная документация! Ну да ладно, не беда: у нас же есть онлайн туториалы. Да-да-да, целых три на весь интернет и те бесполезны. Чудненько.
• Нельзя настроить скорость вывода текста и авточтения. Никому нельзя: ни вам, ни пользователю. И не смейте спорить — авторам виднее.
• Ну и самое вкусное: если в набранном тексте присутствует хоть одна заглавная кириллическая буква, — бам! —движок вылетает. Исключение составляют буквы К, Р, А, Н, Х, В, О, С, Т (видимо, ввиду их визуальной схожести с латинскими). Чёрт возьми, да это не пользователи должны платить разработчикам, а наоборот – сами авторы должны давать деньги за тестирование их сырого детища и поиски багов.
И ещё... будьте осторожны со спец.символами — возможны вылеты движка в космос.
______________ Работа с аудио
Здесь также не обошлось без неприятных сюрпризов:
• Добавлять аудиофайлы позволено только в формате *.wav и *.ogg. Приготовьтесь к увлекательному процессу переформатирования каждого трека, звука и голоса.
• Пускай есть Fade In и Fade Out (плавное появление и затухание мелодии), но нельзя начать воспроизведение с определённой секунды. Готовьте аудиоредактор.
• На музыку и звук выдаётся по одному аудиоканалу. А это значит что проигрывать две и более аудиодорожки одновременно не выйдет. Разве что использовать технику волшебного костыля: одну дорожку воспроизводить компонентом Play Music, а другую – Play Sound Effect. Но тогда придётся отказаться от звуков и озвучки персонажей.
______________ Работа со спрайтами
Если после всего написанного вы думаете что хуже уже быть не может, то — о-хо-хо! — вы недооцениваете гений разработчиков. Сейчас расскажу официальный способ работы со спрайтами.
Итак, представьте что в вашей новелле 5 персонажей по 10 спрайтов на каждого. Итого 50 спрайтов, которые нужно
по одному загружать в движок следующим образом:
• В разделе Characters ввести локальное название спрайта (оно нужно движку и никак не связано с названием файла)
• Нажать Add чтобы это название добавилось в список
• Выбрать из списка только что добавленное локальное название.
• Нажать Browse и наконец-то загрузить спрайт. Ура, товарищи.
Почему разработчики не дают загрузить в проект сразу все спрайты, а в качестве локального названия принять имя файла — загадка.
Но это ещё не всё. Вышеуказанную цепочку действий мы проделывали для компонентов
Join Scene и
Exit Scene. Они отвечают за появление и исчезание персонажа на экране. А если вы хотите чтобы он ещё и менялся в лице, будьте добры, загрузите спрайты ещё раз, только уже в индивидуальные подпапки имеющихся в проекте спрайтов (это нужно для компонента
Change Expression). Например, у нас есть персонаж Волшебница с тремя эмоциями. Нужно сначала загрузить в движок каждый спрайт по отдельности, назначив локальные имена (пускай будет «В1», «В2» и «В3»), а потом в подпапку спрайта «В1» залить «В2» и «В3», в подпапку спрайта «В2» — «В1» и «В3», а в подпапку «В-3» — «В1» и «В2».
Легко, быстро, интуитивно понятно, ага...
И вот, после всей проделанной титанической работы, после всех вырванных с корнем седых волос, мы можем полюбоваться плодами наших стараний. Ну а потом снова идти рвать волосы на висках.
Потому что смена эмоции персонажа выглядит просто ужасно: сначала движок терпеливо дожидается пока один спрайт полностью исчезнет и только потом начинает плавно показывать другой. В итоге на долю секунды персонаж полностью пропадает со сцены. Прямо незваный человек-невидимка. Назовём этот эффект «вспышкой пустоты». Класс.
______________ Работа с анимацией
Что-что, а вот анимация в современном движке должна быть на высоте. Но в случае
Reebyte — на высоте плинтуса. Давайте по пунктам:
• Возможности процедурной анимации сводятся к перемещению из точки А в точку Б и масштабированию. Всё. Никакого вращения, движения по дуге или по траектории. Плюс ко всему: скорость движения строго линейная. Ни тебе перемещения с ускорением/замедлением/по экспоненте. Действительно, а зачем?
• А как насчёт Live 2D? Вот TyranoBuilder поддерживает, хоть и с трудом; Visual Novel Maker тоже, но будь добр заплати за аддон; даже старина Ren'Py с недавних пор умеет справляться с псевдо 3D-шными девочками. А что насчёт Reebyte? А он вообще о такой технологии не знает. Точка. Приплыли. Вся надежда на покадровую анимацию.
• А покадровую анимацию движок воспринимает только через файлы формата GIF. И те со скрипом: отдельные кадры могут смещаться и частично пропадать. Особенно если имеют прозрачность.
• А теперь самое интересное: система частиц… И-и-и да, детка, вот оно! Вот для чего нужен был DirectX11 и 8GB RAM — частицы. И я не шучу. Это единственное, за что можно на полном серьёзе похвалить Reebyte. Двигаются частички гладко, настраивать их поведение легко и удобно. Правда, такой свободы как в Ren'Py можно не ждать, но тем не менее.
• Ну и вдогонку: вставить видео в игру не выйдет. Разве что запустить gif-анимацию, а параллельно с ней — звуковую дорожку. Но это лютый костыль.
______________ Работа с интерфейсом
Приготовьтесь, сейчас будет жарко. Хотя нет, к такому невозможно подготовиться, так что скажу сразу.
Интерфейс. Невозможно. Кастомизировать. БУ-У-УМ.
Что там говорили разрабы: идеально подходит для дизайнеров? Боюсь спросить, а дизайнеров чего? UX, UI, игровых механик?
Ладно-ладно, чуть-чуть слукавил: вы можете поменять текстбокс. Но не весь, разумеется — только картинку. А расположение неймбокса, текста и кнопок остаётся высеченным в камне. Но, хэй, может быть родной интерфейс Ребайта до того красивый и функциональный, что не нужно его менять вовсе? Как бы не так:
• Кнопки. Они все «мертвы». То есть никак не отзываются на курсор (забудьте о hover, selected и прочих состояниях), а курсор не отзывается на них (то бишь не меняется при наведении). Так что даже не думайте о внедрении point-and-click элементов — игрок будет целую вечность водить по экрану в поисках активных предметов и не найдёт ни одного. Разве что будет щёлкать по каждому пикселю, ведь только на щелчок эти проклятые кнопи и реагируют. Браво, авторы, браво.
• Текстбокс. На нём всего лишь две кнопки: Auto (авточтение) и Skip (промотка). Их нельзя ни убрать, ни изменить. Добавить каких-то других кнопочек на текстбокс тоже не получится. Я уже молчу о добавлении ctc-анимации (Click to continue) или миниатюры персонажа (Side Image).
• Меню сохранения/загрузки. Просто есть. И чтобы выйти в него нужно нажать Esc.
• Меню настроек. Знаете, вот не могу сказать о нём ничего плохого. Потому что его нет. Вот нету и всё. И если у читателя хотя бы спрашивают разрешение и режим экрана, то у автора движок не спрашивает вообще ничего по части настроек. А как, спрашивается, сделать новеллу мультиязычной? А что если пользователь захочет отключить озвучку, изменить громкость, увеличить скорость текста? Мы же целимся в Steam, во всяческие платные платформы. Готовы вкладывать деньги в разработку, ведь игра будет настолько крутой, что в конце концов принесёт прибыль. Да-да-да, конечно.
• История. Её тоже нет. И вернуться назад, крутнув вверх колёсико мыши не получится.
• Стартовый экран. Его вы делаете сами. Ах, какая щедрость, какой простор для дизайна. О да, дизайна экрана с одной кнопкой «Начать». А больше на стартовый экран вы и не навесите.
______________ Прочее
Ну и кратко пробежимся по мелочам:
• Ветвление сюжета доступно только по системе Label/Jump: конкретный вариант ответа "переносит" читателя к конкретному месту в сюжете. Организована она точь-в-точь как в TyranoBuilder, по сему визуально громоздкая и в ней крайне сложно ориентироваться. Особенно если выборов много.
А как насчёт системы лавпоинтов? Когда за каждый ответ начисляются очки, а потом в какой-то момент игра подсчитывает их количество и выводит игрока на нужную ветку. О-о-о, вот тут весело: в движке есть компонент создания и изменения переменных, но нет компонента их проверки… Ну и где ваша branching system for choice?
• Мультиплатформенность — есть. Хотя бы здесь разработчики не соврали.
• Ачивки для Стима — есть. Прекрасно. Только ради них движок и покупал, ага.
______________ Итог
Reebyte – образцовый движок. Образцовый в плане того как не нужно создавать среду разработки. Он не стоит своих денег. Он вообще никаких денег не стоит и годится разве что для создания презентаций. Хотя... Даже
Power Point конца 90-х обладает большим функционалом и стабильностью, чем эта поделка. Не покупай движок, не совершай ошибку.
P.S. Если хотите обзор на другие движки (Rabico, Unity, Godot, etc) или туториалы по созданию визуальных новелл (в особенности на GDevelop) — пишите в комментариях.
Комментарии к записи: 28
Автор, можете скинуть тестовый билд новеллы, мне даже интересно посмотреть, что это за чудо-юдо такое.
И самое смешное что билды Ребайта запускаются без заставки "Made by Unity".
А структура файлов там точь-в-точь Юнитовская, только вместо "Unity Player" пишут "Game Player". Типа вы не поняли, это другое.
Вот и сам билд под Windows: GoogleDrive.
А в статье не очень удобно, что для того, чтобы посмотреть видео, приходится на Ютуб переходить: Видео недоступно
По требованию владельца это видео не воспроизводится на других сайтах. Посмотреть на YouTube
Пару раз пыталась программировать на подобных движках.. и они ведь только ограничивают тебя, как творца, тут нельзя меню менять, тут нельзя еще что-то делать т.д.
Да, Renpy вот вообще не идеален, он имеет свои проблемы и косяки с теме же анимацией и прочими вещами, но черт, при имении двух прямых рук из него можно сделать почти все что угодно и все что ты захочешь. Наверное, я еще не скоро предам его как основной движок, для создания вн.
Благодарю за полезную статью.
Правильно будет "восьмое", потому что чудес семь, а не шесть.
было интересно почитать и узнать про еще один , который я за движок даже считать не желаю (а скорее, за программу Unity)
хотелось бы также прочитать и про другие движки, в частности про Godot
А тебе большое спасибо: я посмеялся от души, да и некоторые другие, думаю, тоже. Буду рад почитать ещё про какой-нибудь движок, если решишь писать рецензию)
В планах статья по GDevelop, но она будет больше обучающей чем критикующей.