Обновление 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

- Исправлена ошибка, из-за которой нода не снимала выделение после дублирования

- Исправлено отображение нод с многострочными именами