Novel Engine — движок для создания игр-новелл (visual novel), написанный на чистом JavaScript с нуля. Я разрабатывала его для команды StellarTech: движок стал основой, на которой команда собирает готовые игры — от простых диалоговых историй до интерактивных обучающих квестов.
Ключевая идея — контент отделён от кода. Вся игра описывается в YAML-сценариях: сцена, фон, реплики, переходы, эффекты, выборы. Сценарист собирает историю, не трогая код, а движок оживляет её — с анимацией, звуком и интерактивом.
Внутри — система переходов и движения камеры, атмосферные эффекты, трёхшинный звук с плавными переходами, диалоги с ветвлением, инвентарь и интерактивные мини-игры. Набор механик модульный и расширяется под конкретный проект.
Я отвечала за движок целиком: интерфейс, воспроизведение сцен и реплик, визуальные и звуковые эффекты, игровые механики, а также за техническое сопровождение — тестирование, отладку и деплой на сервере.
Визуальные эффекты
-
Переходы между сценами
Шторы-wipe, slide, zoom-удар, fade-обморок, iris-диафрагма — с настройкой цвета, длительности и точки фокуса.
-
Движение камеры
«Дыхание» кадра, дрожание ручной камеры, покачивание при ходьбе, медленный зум-луп, левитация объектов.
-
Атмосферные частицы
Дождь, снег, туман, пыль, листья, мерцающие звёзды — поверх любого фона.
-
Световые overlay-слои
Второй слой над фоном: мигание лампы, пульсация godrays, искрение проводки.
-
Процедурное свечение
Живое свечение зажжённых ламп частицами и halo с подсветкой всей сцены — без пре-рендера.
-
Удары и вспышки
Тряска картинки, белая вспышка, покадровая анимация фона — для акцентов и драматических моментов.
Игровые механики
Движок модульный: интерактивные механики подключаются под сценарий и задачи заказчика. В том числе:
-
Диалоги и ветвления
Реплики говорящих, баблы, выборы в разных стилях, развилки сюжета.
-
Флаги и концовки
Поднятие флагов, условные переходы и разные концовки в зависимости от выборов игрока.
-
Инвентарь и предметы
Сбор, хранение и использование предметов по ходу истории.
-
Интерактивные мини-игры
Расстановка предметов по зонам, сборка электрических цепей проводами, набор нужной комбинации значений.
-
Управление звуком
Фоновая среда, музыка и эффекты на независимых шинах с плавными переходами и приглушением.
-
Сохранение прогресса
Сохранение и загрузка состояния игры на нужных точках истории.
-
Достижения и таймеры
Награды за действия игрока и испытания на время внутри сцен.
-
Карта и характеристики
Навигация по локациям и RPG-характеристики героя, влияющие на сюжет.
Технологии
- JavaScript
- HTML5 Canvas
- CSS3
- YAML
- Web Audio API
- nginx