EdenSpark Update 0.0.4.6

Dynamic GI, skeletal animation, behaviour trees, MCP server, new mesh optimizer and more! Dive in to learn details!

Skeletal Animation Sample

A new sample project demonstrates how to add skeletal animations to your game using the `SingleAnimationPlayer` component. More advanced samples covering blending and state transitions are planned for future releases. In the meantime, the (https://docs.edenspark.io/index/scene_core.html#sample_animation_and_blend) is available for building custom animation controllers.

Behaviour Tree Module

A `engine.ai.behtree` module provides a behaviour tree framework for building game AI in EdenSpark. Compose trees from built-in leaf, decorator, and composite nodes — or subclass `BehNode` to create your own. The module includes lifecycle hooks, a reaction system for interrupt-driven priority changes, and debugging helpers to visualize tree state at runtime (https://docs.edenspark.io/index/behtree.html).

Debugger and Profiler Workflow Updates

Debugger and profiler setup is now available directly from the editor top panel via dedicated indicators and settings popups. You can enable either tool and apply changes without editing the script required or switching launch presets.

However, some steps are still manual: for debugging you still need to attach the Das debugger from VS Code after enabling it, and for profiling you still need to connect the external daProfiler app to capture data.

Dynamic GI

GI is now fully dynamic: whenever you place or destroy static meshes or move lights, it will quickly and smoothly catch those changes without (almost) additional performance cost.

Also basic scene-dependent GI setup is now available through the HDGlobalIllumination component.

Launcher

The launcher now supports reading and writing comments on published games. Open any game's page and click the comment icon to view the full comment thread. You can post new comments, edit or delete your own, and like or dislike others

The launcher now includes a dedicated Create tab. Creation-focused content has been moved out of Home, so My Games and Recycle Bin now live in Create for a clearer separation between discovery and project management.

EdenSpark MCP Server

EdenSpark now includes a built-in MCP (Model Context Protocol) server that allows AI tools like Claude Code to interact with the running editor and game in real time. The server provides scene inspection, input simulation, screenshot capture, and game control tools for an external AI agent.

Mesh Optimizer & Simplifier

A new mesh optimizer is now part of the model build pipeline (always enabled). It improves vertex cache locality without altering mesh topology, delivering up to 30x rendering speedup in benchmark tests.

Also new: an optional mesh simplifier with four reduction levels — `None`, `Soft` (2x), `Medium` (6x), and `Aggressive` (10x) — for use cases where polygon count matters more than full fidelity.

Physics callback

Added callback for physics simulation - global ``on_fixed_update`` function. It is called before each physics step, use it to do all physics calculations - for example, apply forces.Here's a diagram how ``on_fixed_update`` might be called:

Note that ``get_delta_time`` inside this callback will return physics fixed delta time.

Shader Graph

The new Shader Graph editor lets you create and edit custom materials by connecting nodes — no shader code required.This is an experimental feature and we'd love to hear your feedback. Future updates will bring an expanded node library, improved editor UX, runtime previews, and more.

An example of a dissolve shader built with EdenSpark's Shader Graph.

Volumetric Clouds & Sky Settings

Now in HD Renderer you can enable volumetric clouds and tune sky appearance using the new HDSky component.

In addition the HDSkyOrigin component allows you to set positions for different parts of the sky.

SVG Format Support

EdenSpark now supports `.svg` files as textures. SVGs are rasterized once at their default resolution during the asset build — you can use them just like `.png` or `.jpeg` files. Dynamic (runtime) rendering is not supported yet.

Editor UI/UX Improvements

The file browser now switches to a compact list view when the icon size is set to minimum — making it easier to navigate large asset lists.

We now support focus on the node (inspector) and the asset (importer) independently. You can edit them side-by-side.

Full list of changes

✨ Added

- Sample project demonstrating skeletal animation with the `SingleAnimationPlayer` component

- Behaviour tree module (`engine.ai.behtree`) for building AI decision trees in Daslang

- Leaf nodes: `TrueBehNode`, `FalseBehNode`, `WaitBehNode` (random delay timer)

- Decorator nodes: `NotBehNode` (invert result), `SuccessBehNode`, `FailureBehNode`, `RunningBehNode`, `ChanceBehNode` (probability-based execution)

- Composite nodes: `SequenceBehNode` (AND), `SelectorBehNode` (OR), `ParallelBehNode` (simultaneous execution)

- Lifecycle hooks: `firstTick`, `tick`, `lastTick` for setup, execution, and cleanup

- Reaction system for interrupt-driven re-evaluation of priorities

- `dump_tree` and `debugState` helpers for visualizing tree state at runtime

- Full documentation with examples for custom nodes, tree construction, reactions, parallel execution, and debugging

- Editor settings popups for enabling/disabling debugger and profiler

- Top-panel debugger/profiler indicators with active-state feedback

- HDGlobalIllumination component for setting up global illumination in HD Renderer

- Comments popup on game pages: view, post, edit, delete, and restore your own comments

- Like and dislike buttons for others' comments

- Comment count displayed in the game stats bar alongside likes, downloads, and launches

- Cancel button for game submissions

- New Create tab in launcher navigation

- My Games and Recycle Bin moved from Home to Create

- Scene inspection tools: `scene_children` (hierarchy tree view) and `scene_find` (search nodes by name or path)

- Screenshot capture tool (`get_screenshot`) returning JPEG images with configurable quality and size

- Game control tools: `game_play`, `game_pause`, `game_next_frame`, `get_game_status`

- Mouse input tools: `mouse_click`, `mouse_press`, `mouse_release`, `mouse_move`, `mouse_wheel`

- Keyboard input tools: `key_press`, `key_down`, `key_up` with modifier key support

- Cheat command integration: `exec_cheat` and `list_cheat_commands` tools for running `[cheat]`-annotated game commands via MCP

- Console commands for server management: `app.mcp_start`, `app.mcp_stop`, `app.mcp_call`

- Mesh optimizer in the model build pipeline — always enabled, preserves topology, up to 30x rendering speedup

- Optional mesh simplifier with `None` / `Soft` (2x) / `Medium` (6x) / `Aggressive` (10x) polygon reduction modes

- Draco mesh compression support for glTF files

- New ``on_fixed_update`` callback

- Shader Graph editor for creating and editing materials visually, without writing shader code

- HDSky and HDSkyOrigin components for setting up sky in HD Renderer

- `brightness` property to `sky_box` and `panorama` shaders, allowing for custom HDR sky

- SVG texture support — rasterized once at default resolution during asset build

- List view in the file browser at minimum icon size

- Loading animation for asset icons while they are being built

- Warnings and errors for failed asset builds are now shown in the `Importer` window

- Reset and Copy actions for editor camera transform

🔧 Improved

- Global illumination now quickly changes when you move lights or static geometry

- Recycle bin for deleted projects now looks better

- Texture builder for 4K textures is now up to 2x faster

- Updated ImGui backend to docking branch v1.92.6

- Asset renaming no longer breaks asset references and is significantly faster

- Build notifications: only the result of the latest compilation is shown, previous ones are cleared

- Keyboard navigation in the `Add Component` menu using arrow keys

- New file creation is now deferred until `Enter` is pressed, eliminating false-positive DasLang compilation and unnecessary filesystem activity

- Improved null resource representation in the editor

- Text caret now behaves correctly when renaming files and nodes

- Docked windows with code editor tabs are properly restored on reopen

 

🪲 Fixed

- Delete button for downloaded games now actually deletes them

- Moved physics calculations from the end to the beginning of the frame, which removed one-frame delay of physics simulation

- Character controllers are now simulated along physics steps, which removes occasional jitter

- Fixed slight physics desync that was caused by floating point error, now physics and logic are precisely in sync

- Built-in text editor docking layout

- DX12 is now the default graphics driver when Auto is selected in the launcher (was DX11 previously)

- Blocking vertices updation on DX11

- Fixed a bug where a node would not deselect after duplication

- Fixed display of nodes with multi-line names