Первый девлог: свой движок визуальной новеллы на Java — диалоги, персонажи, мини-игры, темы и планы на будущее.
Девлог: визуальная новелла на собственном движке Liza
Привет! Делаю визуальную новеллу и хочу рассказать, на каком этапе сейчас проект.
Движок написан с нуля и называется Liza. Java 21 + JavaFX. Да, не Ren'Py, не Unity — свой велосипед. Зато полностью под контролем и можно встраивать что угодно.
Что сейчас есть
Движок Liza
Весь контент игры описывается в XML-файлах — диалоги, персонажи, команды. Чтобы добавить новую сцену, не нужно писать код — достаточно описать её в XML.
Что умеет движок на данный момент:
- Диалоговая система — реплики персонажей с именем, цветом, стилем текста. Typewriter-эффект (посимвольный вывод), как в классических новеллах
- Персонажи на сцене — спрайты с разными позами и эмоциями, позиционирование (лево/центр/право), плавные анимации появления, перемещения и ухода
- Выборы в диалогах — ветвления сюжета через кнопки выбора, результат влияет на дальнейшие сцены
- Система флагов и переменных — движок запоминает решения игрока и может менять сюжет в зависимости от них
- Система репутации — у каждого персонажа есть показатель отношения (0–100), который меняется от действий игрока
- Ввод имени — игрок вводит своё имя, и оно подставляется во все реплики
- Оверлеи — полноэкранный текст на тёмном фоне для вступлений, внутренних монологов, переходов
Мини-игры
Прямо в сюжет можно встроить интерактивные панели:
- Крестики-нолики — полноценная игра с ИИ-противником
- Ввод кода — загадка, где нужно подобрать пароль
- Доска улик — собранные по ходу игры улики выводятся на отдельную панель
Результат мини-игры (победа/поражение) перенаправляет на разные сцены — так паззлы влияют на сюжет.
Звук
- Фоновая музыка с бесконечным циклом
- Звуковые эффекты — клики, наведение, сюжетные звуки
- Громкость настраивается
Темы оформления
5 тем, переключаемых прямо в игре:
- HiTech — неон, киберпанк
- Classic — тёплое дерево, золото
- Walk — природа, зелёные тона
- DnD — тёмный лес
- Fire — пламя, красный/оранжевый
Тема полностью меняет вид кнопок, панелей, градиентов и текста.
Сохранения
- 6 слотов для сохранений
- Полная сериализация состояния: текущая сцена, история, флаги, переменные, выборы, тема
- При загрузке игра восстанавливается точно в то место, где остановился
Навигация
- Кнопки «вперёд/назад» для перелистывания реплик
- История всех диалогов текущей сцены (выезжающая панель)
- Главное меню: продолжить, новая игра, выбор главы, настройки
27 команд движка
Все действия вызываются из XML и выполняются движком автоматически:
Персонажи: показать, убрать, сменить позу, переместить влево/вправо/в центр, поставить в позицию без анимации, убежать за край экрана, эффект появления
Сцена: сменить фон, затемнение, оверлейный текст, показать/скрыть панель диалога
Состояние: установить флаг, записать выбор, изменить/добавить/уменьшить репутацию
Прочее: звуковой эффект, запуск титров, открытие мини-игры
Добавить новую команду — один класс с аннотацией @GameAction, движок подхватит автоматически.
Текущее состояние контента
- 47 сцен написано (тестовые, для отладки механик)
- 4 персонажа со спрайтами: Elein (9 поз), Liza (4 позы), Anna (2 позы), Marcus (3 позы)
- Несколько точек ветвления сюжета
- Сюжет пока в раннем этапе — основная работа впереди
Что дальше
Движок
- Доработка системы репутации — чтобы она реально влияла на доступные варианты
- Полноценное меню настроек внутри игры
- Озвучка реплик
- Больше типов мини-игр
- Оптимизация загрузки ресурсов
Контент
- Написание полноценного сюжета
- Новые персонажи и спрайты
- Больше ветвлений и концовок
- Новые фоны и локации
Стек
Проект живой, работа идёт. Если есть вопросы — пишите.