Исходный размер 914x1280

NodeTale

PROTECT STATUS: not protected
Проект принимает участие в конкурсе

NodeTale это Unity-плагин для быстрого создания ветвящихся диалогов и сюжетных сцен без ручной сборки логики в коде.

Он дает команде удобный графовый редактор прямо внутри Unity: реплики, выборы игрока, условия, переменные, локализация, предпросмотр диалога и диагностика ошибок собираются в одном месте.

Исходный размер 1280x853

NodeTale

Плагин помогает быстрее прототипировать нарратив, проверять ветки и передавать сценарии от автора к разработчику без хаоса в таблицах и скриптах.

Целевая аудитория — инди-разработчики, геймджем-команды, нарративные дизайнеры и Unity-команды, которым нужен понятный инструмент для создания интерактивных диалогов.

Исходный размер 1280x853

NodeTale

Loading...

Архитектура решения

Проект оформлен как Unity UPM-пакет, который можно подключить к любому Unity  6.x проекту как локальный или embedded package.

Структура разделена на несколько ключевых частей:

Runtime  — ядро плагина. Здесь находятся сериализуемая модель данных диалогов, NPC, реплик, выборов, условий, переменных и связей между узлами. Также реализован DialoguePlayer  — runtime-компонент для прохождения диалога, выбора веток и проверки условий.

Используемые технологии

Основная технология — Unity  6.x и C#. Для визуального графового редактора используется UnityEditor.Experimental.GraphView, а интерфейс редактора построен на UI  Toolkit. Данные диалогов хранятся в ScriptableObject, что делает их нативными Unity-ассетами и удобными для сохранения, версионирования и использования в игре.

Плагин поддерживает CSV/TSV-импорт и экспорт для работы с локализацией через Google Sheets или похожие таблицы. Для проверки поведения используются Unity Test Runner и EditMode-тесты.

Исходный размер 1280x600

Scene node

Архитектура сделана расширяемой: игровая логика не зашита внутрь плагина. Проекты могут подключать собственные исполнители функций, сцен, условий и внешних ссылок через интерфейсы. Благодаря этому NodeTale остается универсальным редактором диалогов, а конкретная игра сама решает, как именно выполнять игровые события.

Исходный размер 1491x728

Function node

Editor  — визуальный редактор внутри Unity. В этой части находятся окна редактора, графовая поверхность, инспекторы узлов, предпросмотр диалога, импорт/экспорт локализации, autosave, диагностика связей и настройки интерфейса.

Samples~ — демонстрационный пример, который создает готовую базу диалогов с NPC, ветвлениями, условиями и комментариями.

Tests/Editor  — EditMode-тесты, проверяющие поведение runtime-логики, графа, предпросмотра, локализации, autosave и редакторских сценариев.

История разработки

Разработка NodeTale началась с MVP: был создан Unity UPM-пакет, базовая модель данных на ScriptableObject, графовый редактор, узлы реплик, варианты ответа, связи и простой предпросмотр диалога.

После этого основной фокус сместился на удобство редактора. Были доработаны создание и перемещение узлов, удаление, сохранение, autosave, предпросмотр и поддержка Unity Undo/Redo. На этом этапе главной проблемой была стабильность графа: связи между узлами, выделение, удаление и отмена действий должны были работать предсказуемо.

Следующая итерация добавила инструменты для реального нарративного пайплайна: условия, переменные, комментарии, диагностику ошибок в ветвлениях и систему speaker-ов. Это решало проблему сложных диалогов, где автору важно видеть ошибки до запуска игры.

0

История общения с агентом Codex

Отдельным этапом стала локализация. Были добавлены импорт и экспорт CSV/TSV для работы с таблицами. Основная сложность была в повторном импорте: нужно было обновлять текст, но не ломать уже собранный граф. Для этого использованы стабильные ключи локализации.

Затем появилась архитектура для production-интеграции: executable nodes, voice keys и расширяемые интерфейсы для условий, переменных, сцен и функций. Главная проблема здесь была в разделении ответственности: плагин должен оставаться универсальным, а логика конкретной игры, аудио, боев и сцен должна подключаться через project-side адаптеры.

Финальные итерации были посвящены polish и стабильности: rich text, палитра цветов, WASD-навигация по графу, горячие клавиши, русско-английский интерфейс, sample-контент, тесты и документация.

0

Agent.md и Readme.md проекта

Оценка вклада

Основная часть кода была сгенерирована с помощью ИИ-инструментов. Мой вклад заключался в постановке продуктового видения, формулировании требований, проверке результата в редакторе, выявлении UX-проблем и итерационном уточнении поведения.

Ручных правок кода я не вносил: доработки выполнялись через уточняющие промпты и тестирование. Такой подход позволил быстро пройти путь от идеи до рабочего прототипа, при этом сохранить авторский контроль над логикой, удобством использования и соответствием инструмента задачам проекта.

Исходный размер 1280x600

Debug node

NodeTale
Проект создан 26.04.2026