Кастомный движок ветвления диалогов: сценарный формат, динамическая подгрузка, плагинная система.
Команде нарратологов требовался инструмент для создания интерактивных историй с ветвлением диалогов. Готовые решения (Ren'Py, Twine) не подходили: нужен веб, кастомный UI, встраивание аналитики. Разработчик должен был создать движок с нуля и передать его дизайнерам без глубоких технических знаний.
Разработал JSON-формат описания сценариев: узлы диалогов, условные переходы, переменные состояния персонажей, триггеры событий. Формат читаемый — нарратолог может редактировать без IDE. Написал JSON Schema для валидации и автодополнения в редакторах.
TypeScript-ядро: интерпретатор сценария, стек состояний для реализации save/load, система переменных с поддержкой условий (если игрок выбрал X и Y, то показать Z). Чистое разделение: логика движка не зависит от UI.
Компоненты диалогов, портретов персонажей, анимированных переходов. Next.js с SSG для статической генерации «оглавления» новеллы. Динамическая подгрузка глав — пользователь не ждёт загрузки всего сценария. Адаптивность: работает на мобильных.
Разработал Plugin API: подключение мультимедиа (фоновая музыка, SFX), локализации, аналитики поведения пользователей. Провёл воркшоп для команды дизайнеров и нарратологов. Написал документацию формата сценария с примерами.
Нарратолог описывает сценарий в JSON → движок интерпретирует и строит дерево диалогов → React рендерит интерактивную историю. Плагины подключают музыку, аналитику, локализацию. Next.js обеспечивает быструю загрузку и SEO.