
Обновление EdenSpark 0.0.4.6
Динамическое освещение, скелетная анимация, модуль деревьев поведения, MCP сервер, оптимизатор мешей и многое другое!
Сэмпл скелетной анимации
Новый сэмпл демонстрирует, как добавить скелетную анимацию в вашу игру с помощью компонента `SingleAnimationPlayer`. Более продвинутые примеры, охватывающие смешивание анимаций и переходы между состояниями, запланированы на будущие релизы. А пока попробуйте https://docs.edenspark.io/index/scene_core.html#sample_animation_and_blend для создания собственных контроллеров анимации.
Модуль Behavior Tree
Модуль engine.ai.behtree предоставляет собой фреймворк деревьев поведения для создания игрового ИИ в EdenSpark. Составляйте деревья по иерархии нодов - Composite (Составной узел), Decorator (Декоратор, нод-фильтр) и Leaf (Лист, нод-исполнитель) или стройте свои ноды от BehNode. Модуль включает хуки жизненного цикла, систему реакций для изменения приоритетов по прерываниям и средства отладки для визуализации состояния дерева в реальном времени (https://docs.edenspark.io/index/behtree.html).
Обновления работы отладчика и профилировщика

Настройка отладчика (debugger) и профилировщика (profiler) теперь доступна непосредственно с верхней панели редактора через специальные индикаторы и всплывающие окна. Вы можете включить любой инструмент и применить изменения без правки скриптов запуска или переключения пресетов запуска. Некоторые шаги, однако, все еще выполняются вручную: для отладки вам по-прежнему нужно подключить отладчик Das из VS Code после его включения, а для профилирования необходимо подключить внешнее приложение daProfiler для сбора данных.
Подробности см. в документации:
- Отладчик: https://docs.edenspark.io/getting_started/debugger.html
- Профилировщик: https://docs.edenspark.io/getting_started/profiler.html
Динамическое глобальное освещение (GI)
Глобальное освещение теперь полностью динамично: когда вы размещаете или уничтожаете статические меши, перемещаете источники света, оно быстро и плавно отражает эти изменения почти без дополнительных затрат производительности.
Кроме того, базовая настройка глобального освещения в зависимости от сцены теперь доступна через компонент HDGlobalIllumination.
Лаунчер

Теперь в лаунчере поддерживаются чтение и написание комментариев к опубликованным играм. Откройте страницу любой игры и нажмите на значок комментария, чтобы просмотреть всю ветку обсуждения. Вы можете оставлять новые комментарии, редактировать или удалять свои собственные, а также ставить лайки и дизлайки чужим!

А ещё в лаунчере теперь есть специальная вкладка Create. Контент, связанный с созданием проектов, был перемещен из Home, так что My Games и Recycle Bin теперь находятся в Create для более четкого разделения между поиском и управлением проектами.
MCP Сервер EdenSpark
В EdenSpark теперь есть встроенный MCP (Model Context Protocol) сервер, который позволяет инструментам ИИ, таким как Claude Code, взаимодействовать с работающим редактором и игрой в реальном времени. Сервер предоставляет инструменты для внешнего ИИ-агента: проверку сцены, симуляцию ввода, захват скриншотов и управление игрой.
Оптимизатор и упроститель мешей
Новый оптимизатор мешей теперь является частью конвейера сборки моделей (всегда включен). Он улучшает эффективность использования кэша вершин (vertex cache locality) без изменения топологии меша, обеспечивая ускорение рендеринга в бенчмарках до 30 раз !
Также добавлен опциональный упроститель мешей с четырьмя уровнями сокращения полигонов — `None`, `Soft` (в 2 раза), `Medium` (в 6 раз) и `Aggressive` (в 10 раз) — для случаев, когда количество полигонов важнее детализации.
Физический колбэк
Добавлен колбэк для физической симуляции — глобальная функция `on_fixed_update`. Она вызывается перед каждым применением физики, используйте её для всех физических расчетов — например, для приложения сил.
Вот диаграмма того, как может вызываться `on_fixed_update`:

Обратите внимание, что `get_delta_time` внутри этого колбэка будет возвращать фиксированную дельту времени физики.
ShaderGraph

Новый редактор графов шейдеров позволяет создавать и редактировать пользовательские материалы, соединяя узлы — без необходимости писать код шейдера.
Это экспериментальный функционал, и мы будем рады вашим отзывам. Будущие обновления принесут расширенную библиотеку узлов, улучшенный UX редактора, предпросмотр в реальном времени и многое другое.
Пример шейдера растворения (dissolve), созданного с помощью графа шейдеров EdenSpark.
Объемные облака и настройки неба
Теперь в HD Renderer вы можете включить объемные облака и настроить внешний вид неба с помощью нового компонента HDSky.

Кроме того, компонент HDSkyOrigin позволяет задавать позиции для разных частей неба.
Поддержка формата SVG

EdenSpark теперь поддерживает файлы `.svg` в качестве текстур. SVG растеризуются однократно с их разрешением по умолчанию во время сборки ассета — вы можете использовать их так же, как файлы `.png` или `.jpeg`. Динамический рендеринг пока не поддерживается.
Улучшения UI/UX редактора

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

Теперь поддерживается независимый фокус на узле (инспектор) и ассете (импортер). Вы можете редактировать их в режиме «бок о бок».
ПОЛНЫЙ СПИСОК ИЗМЕНЕНИЙ
ПОЛНЫЙ СПИСОК ИЗМЕНЕНИЙ
✨ Новое
- Пример проекта, демонстрирующий скелетную анимацию с компонентом `SingleAnimationPlayer`
- Модуль деревьев поведения (`engine.ai.behtree`) для построения деревьев принятия решений ИИ на Daslang
- Листовые узлы: `TrueBehNode`, `FalseBehNode`, `WaitBehNode` (таймер со случайной задержкой)
- Декораторные узлы: `NotBehNode` (инвертирование результата), `SuccessBehNode`, `FailureBehNode`, `RunningBehNode`, `ChanceBehNode` (выполнение с заданной вероятностью)
- Композитные узлы: `SequenceBehNode` (И), `SelectorBehNode` (ИЛИ), `ParallelBehNode` (параллельное выполнение)
- Хуки жизненного цикла: `firstTick`, `tick`, `lastTick` для настройки, выполнения и очистки
- Система реакций для переоценки приоритетов по прерываниям
- Помощники `dump_tree` и `debugState` для визуализации состояния дерева в реальном времени
- Полная документация с примерами для пользовательских узлов, построения деревьев, реакций, параллельного выполнения и отладки
- Всплывающие окна настроек редактора для включения/отключения отладчика и профилировщика
- Индикаторы отладчика/профилировщика на верхней панели с обратной связью об активном состоянии
- Компонент HDGlobalIllumination для настройки глобального освещения в HD Renderer
- Окно комментариев на страницах игр: просмотр, публикация, редактирование, удаление и восстановление собственных комментариев
- Кнопки «лайк» и «дизлайк» для чужих комментариев
- Отображение количества комментариев в панели статистики игры рядом с лайками, загрузками и запусками
- Кнопка Cancel для отправки игр
- Новая вкладка Create в лаунчере
- Разделы My Games и Recycle Bin перемещены с главной страницы на вкладку Create
- Инструменты проверки сцены: `scene_children` (иерархическое дерево) и `scene_find` (поиск узлов по имени или пути)
- Инструмент захвата скриншотов (`get_screenshot`), делающий JPEG-изображения с настраиваемым качеством и размером
- Инструменты управления игрой: `game_play`, `game_pause`, `game_next_frame`, `get_game_status`
- Инструменты ввода мышью: `mouse_click`, `mouse_press`, `mouse_release`, `mouse_move`, `mouse_wheel`
- Инструменты ввода с клавиатуры: `key_press`, `key_down`, `key_up` с поддержкой клавиш-модификаторов
- Интеграция команд-читов: инструменты `exec_cheat` и `list_cheat_commands` для выполнения игровых команд, отмеченных `[cheat]`, через MCP
- Консольные команды для управления сервером: `app.mcp_start`, `app.mcp_stop`, `app.mcp_call`
- Оптимизатор мешей в конвейере сборки моделей — всегда включен, сохраняет топологию, ускорение рендеринга до 30 раз
- Опциональный упроститель мешей с режимами сокращения полигонов `None` / `Soft` (в 2 раза) / `Medium` (в 6 раз) / `Aggressive` (в 10 раз)
- Поддержка сжатия мешей Draco для glTF-файлов
- Новый колбэк `on_fixed_update`
- Редактор графов шейдеров для визуального создания и редактирования материалов без написания кода шейдеров
- Компоненты HDSky и HDSkyOrigin для настройки неба в HD Renderer
- Свойство `brightness` к шейдерам `sky_box` и `panorama`, позволяющее создавать собственное небо в HDR
- Поддержка текстур SVG — однократная растеризация в разрешении по умолчанию при сборке ассета
- Представление списком в браузере файлов при минимальном размере иконок
- Анимация загрузки для иконок ассетов во время их сборки
- Предупреждения и ошибки для неудачных сборок ассетов теперь отображаются в окне Importer
- Действия Reset и Copy для трансформации камеры редактора
🔧 Улучшено
- Глобальное освещение теперь быстро меняется при перемещении источников света или статической геометрии
- Корзина удаленных проектов теперь выглядит лучше
- Сборщик текстур для 4K текстур теперь работает до 2 раз быстрее
- Обновлен бэкенд ImGui до ветки docking v1.92.6
- Переименование ассетов больше не нарушает ссылки на ассеты и выполняется значительно быстрее
- Уведомления о сборке: отображается только результат последней компиляции, предыдущие очищаются
- Навигация по меню Add Component с помощью клавиш со стрелками
- Создание новых файлов теперь откладывается до нажатия Enter, что устраняет ложноположительную компиляцию DasLang и излишнюю активность файловой системы
- Улучшено представление нулевых ресурсов в редакторе
- Текстовый курсор теперь ведет себя корректно при переименовании файлов и узлов
- Закрепленные окна с вкладками редактора кода теперь правильно восстанавливаются при повторном открытии
🪲 Исправлено
- Кнопка Delete для загруженных игр теперь действительно их удаляет
- Физические расчеты перенесены с конца на начало кадра, что устранило задержку физической симуляции на один кадр
- Контроллеры персонажа теперь симулируются синхронно с шагами физики, что устраняет случайные рывки
- Исправлено небольшая рассинхронизация физики, вызванная ошибкой с плавающей точкой; теперь физика и логика точно синхронизированы
- Макет закрепления встроенного текстового редактора
- DX12 теперь является драйвером графики по умолчанию, когда в лаунчере выбран Auto (раньше был DX11)
- Блокирующее обновление вершин на DX11
- Исправлена ошибка, из-за которой нода не снимала выделение после дублирования
- Исправлено отображение нод с многострочными именами