Defold 1.3.4 BETA
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
Disclaimer
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.
Access to the beta
Download the editor or bob.jar from Releases · defold/defold · GitHub
Set your build server to https://build-stage.defold.com
Release notes
Engine
NEW: (#6394) Profiler remotery
Details
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
Details
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
Details
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
Details
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
Details
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 update()
function.
FIX: (#6563) Improved progress bar when streaming the wasm file on engine startup
Details
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
Details
Fixes a crash when generating render batches.
Editor
FIX: (#6401) [DEFEDIT-6401] Faster resource-sync after external changes
Details
User-facing 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.
Technical changes
- Added metrics for time spent in project loading, resource-sync, and graph transactions during development. To enable, add the
metrics
profile to the Leiningen command line, or startjava
with-Ddefold.metrics=true
when 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.
- The
g/override
function now takes a:traverse-fn
instead of a:traverse?
predicate in theopts
map. You can create atraverse-fn
from atraverse?
predicate using(g/make-override-traverse-fn traverse?)
. Like before, thetraverse?
function takes aBasis
and anArc
, and is expected to returntrue
if the Arc should be followed. - Added
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
Arcs
andpair
in some hot-spots where we used to use multi-element Clojure vectors.
FIX: (#6558) Don’t scroll to selection unless it changed
Details
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.