
Обновление 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
- Исправлена ошибка, из-за которой нода не снимала выделение после дублирования
- Исправлено отображение нод с многострочными именами