Defold 1.3.7
Breaking change
The .animationset file format now requires you to select a skeleton.
This allows us to keep all our internal bone indices optimized.
Note that if you save your files with this editor version, it won’t open in an older editor. It is a single line change in the format though, so it’s easy to revert any changed files.
More details are found below.
Release notes
Summary
- NEW: (#3380) Speed up Lua debugger
- NEW: (#3855) Track recent files and allow opening them
- NEW: (#6408) Improve build progress reporting
- FIX: (#7025) Fix issue when bundling for iOS without any native extensions
- FIX: (#6996) Add support for setting / getting mouse lock state
- FIX: (#6928) Slice9 support for sprites
- FIX: (#6859) Added support for glTF models+animations
- FIX: (#6967) Added SteamDeck controller config
- FIX: (#6999) Frustum culling for labels
- FIX: (#7011) Json encode API function
- FIX: (#6201) Fix issue with mouse wheel events in HTML5 builds
- FIX: (#7001) Add interaction listener to html5 namespace
- FIX: (#7005) Fix json parsing load times for large files
- FIX: (#6960) Cursor locked to corner of window for high-dpi screens
- FIX: (#6942) Added spin lock to LogInternal for securing the custom log hook
-
FIX: (#6749) Remove dependency on MS Visual C++ Redistributable Packages for
oggz-validate
tool - FIX: (#6968) Reset state from renderobject
- FIX: (#6696) Don’t suggest images already in the atlas
- FIX: (#6689) Bind Shift+Enter to find prev term in console
Engine
FIX: (#7025) Fix issue when bundling for iOS without any native extensions
Details
A recent improvement to the Info.plist merge process for native extensions had the unfortunate side-effect that builds without any native extensions failed to install due to strict checks of the Info.plist. This fix solves this issue by removing the merge attribute definition from the Inof.plist file if it still exists when bundling (which it does if bundling without native extensions).
FIX: (#6996) Add support for setting / getting mouse lock state
Details
Added mouse locking functionality on desktop and web platforms. This is done by using two new API functions:
-- set the mouse locking state
window.set_mouse_lock(true|false)
-- get the currently set mouse locking state
local mouse_lock = window.get_mouse_lock()
Note that for web platforms, you cannot request mouse lock outside of “user interactions”, so to get that to work you can use the html5.set_interaction_listener(callback)
function to request the mouse lock for web platforms.
FIX: (#6928) Slice9 support for sprites
Details
Added slice-9 support for sprites. Slice-9 splits up the area of the sprite in at most 9 separate regions to proportionally scale an image (see Slice-9 for an example).
Three new fields has been added:
- Size mode - auto or manual. “Auto” will use the size from the current animation to produce vertices, “Manual” will use the “size” property to set the size of the sprite. This can be set from scripts as usual by using go.set.
- size - vec3 with size properties
- slice 9 - vec4 with Left, Top, Right, Bottom offsets for the slices. Units in pixels
FIX: (#6859) Added support for glTF models+animations
Details
In this update, we’ve added support for glTF format.
Notes:
- We support both .glb and .gltf formats.
- We currently only export max one skeleton per file
- It supports skinning and animating meshes.
- It now supports multiple meshes per model
- Currently still uses one material for all meshes in a model
- Currently still only support world space vertices for skinned models
- Each file should still only contain one animation
- Added support for tangent space uv’s
We don’t support:
- multifile glTF files (i.e. no external buffers!)
- embedded textures (we have our own way of handling textures)
Breaking change
The .animationset file format now requires you to select a skeleton.
This allows us to keep all our internal bone indices optimized.
Note that if you save your files with this editor version, it won’t open in an older editor. It is a single line change in the format though, so it’s easy to revert any changed files.
FIX: (#6967) Added SteamDeck controller config
Details
FIX: (#6999) Frustum culling for labels
Details
Adds support for frustum culling for label components.
FIX: (#7011) Json encode API function
Details
Added a new function to the json namespace json.encode(tbl)
that can be used to generate a json formatted string from a lua table:
local json_str = json.encode({"test", test_tbl = { 1, 2, 3}})
pprint(json_str) -- prints {"1":"test","test_tbl":[1,2,3]}
FIX: (#6201) Fix issue with mouse wheel events in HTML5 builds
Details
Capturing mouse wheel events in HTML5 builds generated errors in the browser console. This fix ensures that mouse wheel events no longer generate errors.
FIX: (#7001) Add interaction listener to html5 namespace
Details
Added a new function for setting an interaction listener on web platforms:
html5.set_interaction_listener(callback)
If the callback is set, the callback will be invoked when a user clicks, touches or types in the browser.
FIX: (#7005) Fix json parsing load times for large files
Details
This fixes loading of large json files. A file that previously would take minutes now takes a second.
FIX: (#6960) Cursor locked to corner of window for high-dpi screens
Details
This fixes an issue when using mouse lock on a high dpi screen. The pointer became locked to the top right corner of the screen which made mouse movement unreliable.
FIX: (#6942) Added spin lock to LogInternal for securing the custom log hook
Details
FIX: (#6749) Remove dependency on MS Visual C++ Redistributable Packages for oggz-validate
tool
Details
This fix replaces oggz.dll
with dependency on MS Visual C++ Redistributable Packages with dll without such a dependency.
FIX: (#6968) Reset state from renderobject
Details
Design: Render state tracking - Google Docs
This PR adds:
- All graphics adapters use the pipeline struct representing the current draw state
- Render lists reset their state based on previous set values in the graphics module
- Engine tests
Editor
NEW: (#3380) Speed up Lua debugger
Details
Speed up the Lua debugger in places where developer doesn’t have any breakpoints.
NEW: (#3855) Track recent files and allow opening them
Details
User-facing changes:
User now can press Cmd+Shift+T
(macOS) / Ctrl+Shift+T
(Windows and Linux) to reopen previously closed tabs. File menu now has a new submenu — Recent Files — that allows selecting a recently accessed file to open/focus on. Also, editor now has Recent Files dialog that allows searching from a larger list of recent files, available using Ctrl+R
(macOS) / Alt+R
(Windows and Linux) shortcuts.
NEW: (#6408) Improve build progress reporting
Details
User-facing changes:
- All build engine errors are now shown in the Build Errors view. Previously, some exceptions that occurred during engine build process were silently ignored.
- Files with invalid content are properly displayed in the Build Errors view. Previously, invalid files were displayed as “Unknown source” instead of a file path.
- Verbose bob log is now shown when bundling in the console view.
FIX: (#6696) Don’t suggest images already in the atlas
Details
User-facing changes:
When adding images to atlas, images that are already there are no longer suggested since it’s an error to add duplicate images to atlas (but not to an animation).
FIX: (#6689) Bind Shift+Enter to find prev term in console