The latest beta is now released, and we invite those interested in beta testing the new features in the editor and engine to join now.
The beta period will be 2 weeks and the next planned stable release is two weeks from now.
Please report any engine issues in this thread or in issues using Help → Report Issue
This is a BETA release, and it might have issues that could potentially be disruptive for you and your teams workflow. Use with caution. Use of source control for your projects is strongly recommended.
Download the editor or bob.jar from Releases · defold/defold · GitHub
Set your build server to https://build-stage.defold.com
NEW: (#6394) Profiler remotery
The custom profiler used in Defold has been replaced with the Remotery profiler. The new profiler will stream profiler data instead of sampling only 20 frames.
FIX: (#6706) Skip node rendering if alpha is equal 0
Skip render step for nodes with alpha == 0. That should reduce fill rate in cases when UI elements are hidden by changing alpha but still enabled. It also helps with producing longer batches because such a node doesn’t break batching anymore.
FIX: (#6642) Only copy Android native libs for the bundled architectures
The Android bundler always copies native libraries from dependencies for all supported architectures (32 and 64b bit) even if the bundle is created for a single architecture. To reduce the size of the generated APK the Android bundler will now only copy library files for the architecture(s) for which the bundle is created.
FIX: (#6647) Speed up Lua script file processing
This fix will speed up the processing time of Lua files significantly. The primary improvement is achieved by changing the way Lua comments are removed from the source code and by caching results between build steps.
FIX: (#6549) Early out of render script if window is minimized
The frustum calculation in the default render script does not take into account situations when the window width or height is 0. This can for instance happen on the frame when the window is minimized on Windows. In such situations the frustum calculation resulted in an invalid frustum and the subsequent draw command generated a Lua error. The default render script will now detect this and early-out of the
FIX: (#6563) Improved progress bar when streaming the wasm file on engine startup
This improves the accuracy of the HTML5 progress bar when streaming the .wasm file on engine startup (using the Wasm Streaming option in game.project).
FIX: (#6602) Fix for looping out of bounds when generating render batches
Fixes a crash when generating render batches.
FIX: (#6401) [DEFEDIT-6401] Faster resource-sync after external changes
- Reloading large collections or game objects that have been modified externally is now a lot faster.
- The editor will now skip reloading externally touched files if they already match the in-memory state.
- Added metrics for time spent in project loading, resource-sync, and graph transactions during development. To enable, add the
metricsprofile to the Leiningen command line, or start
-Ddefold.metrics=truewhen running the editor.
- Optimized graph traversal when applying overrides.
- We now calculate the hash of externally touched files and compare them to our in-memory state to check if they have meaningful changes. If they do not, we skip reload and keep the existing nodes in the graph.
g/overridefunction now takes a
:traverse-fninstead of a
:traverse?predicate in the
optsmap. You can create a
(g/make-override-traverse-fn traverse?). Like before, the
traverse?function takes a
Arc, and is expected to return
trueif the Arc should be followed.
g/node-instance-of-any?for when you want to efficiently determine if the type of a Node adheres to any of several node types.
- We now use
pairin some hot-spots where we used to use multi-element Clojure vectors.
FIX: (#6558) Don’t scroll to selection unless it changed
We scroll on every selection sync. This was initially implemented to scroll to item in the outline when selection in the scene is changed. Current behavior has a downside: when a property of a selected item is changed, it forces the scroll to happen, which is very annoying. This changeset skips tree view scrolling if the selection didn’t change.