Defold 1.3.7 BETA

Defold 1.3.7 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

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 :warning:

The .animationset file format now requires you to select a skeleton.
This allows us to keep all our internal bone indices optimized.

:warning: 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:

  1. All build engine errors are now shown in the Build Errors view. Previously, some exceptions that occurred during engine build process were silently ignored.
  2. 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.
  3. 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

Details
20 Likes

So happy to see this feature!

Does this release also include the Android 13 crash fix that was merged recently?

Edit: answered my own question. Looks like yes :slight_smile:

Edit 2: I tried updating Apple Spider to 1.3.7beta, and the game no longer crashes after a reward ad is completed! :partying_face: Might release this to production after more testing since the changelog doesn’t look too risky?

Still had to downgrade DefVideoAds to 4.2.1, since 4.4.0 fails to init on my Pixel 6a. Probably need to stay on this version until Google issues their quarterly updates.

6 Likes

Quickly tried this over lunch (upgrading from 1.3.5) and noticed that our GUI is broken - pieces missing, including a Monarch popup that appears at startup, meaning that you only see the game underneath but can’t interact with it. Moving a node up the hierarchy above a ‘broken’ node seems to help, as does disabling the broken node.
Unfortunately I don’t have any time to look further today.

1 Like

Would you be willing to share the project with me? I might have an idea on what could be wrong, but need to verify unless there is a smaller repro I can look at.

Your issue has been resolved and a new beta should be available now :+1:

2 Likes

Thanks, have done a quick check and all looks good.

3 Likes

clip test.zip (2.9 MB)
Clipping in a gui seems not to be working, its ok in the editor but not when you do a build. Thanks.

OSX 10.13.6

2 Likes

Thanks! Fixed the issue, waiting for builds :+1:

5 Likes

Alright, the beta has been built. Please test again when you can :+1:

3 Likes

That’s working nicely, thank you.

2 Likes

This release is fantastic! Thanks, the Defold team!

I’m going to test everything, and for the first, I decided to upgrade Pointer Lock (github, forum topic, html5 demo) to the latest version of Defold. And, the new mouse locking functionality works fine! So, from that point of time Pointer Lock becomes a demo project of how to implement mouse cursor locking in your Defold game.

7 Likes

gltf test.zip (1.2 MB)
I exported an fbx with Blender to gltf. In the Editor the model looks a lot bigger and also rotated than in the build. I wonder what happened.

In Defold we use 1unit = 1meter.
And, in the Blender export you need to check the option +Y Up, since that’s what Defold uses.

1 Like

I do wonder if we perhaps should add a short guide on how to import models from Blender etc?

2 Likes

What confuses me is the difference in size of the model in the editor and when I do Build.

Well, not sure what size you wanted, but selecting a few vertices on the edge, shows you the approximate extents of the mesh:

Perhaps there are some import options when importing it from fbx?
Or, you can scale it in Blender?
Or, you can scale the model component in Defold?


I’ve not explained myself well, in the Defold editor the model is massive compared to the ball, cube and quad. When I do a CMD B to build the model is tiny and rotated. Thats whats confusing me.

1 Like

Thanks, that does seem a bit weird. I’m investigating now.

1 Like

Alright, so it’s an issue in the editor, where we don’t seem to respect the scale of the models (the scale of that mesh is 0.01 which take the vertices back into the meter scale):
In the engine, it looks correct:

5 Likes

Thanks, I set the scale in blender to 1.0 and also the X rotation from 90 to 0 and it looks like I expected. Thats good enough for me.

1 Like