Defold 1.6.2 has been released

Defold 1.6.2

Summary

  • NEW: (#8180) Make it possible to change column size in the web profiler
  • NEW: (#8108) ‘default.render_script’ refactoring reducing of the memory allocation and using of the Defold best practices.
  • NEW: (#8207) Show textures created with gui.new_texture() in resource profiler.
  • NEW: (#8110) Use exp4j to evaluate math string
  • NEW: (#7802) Generate resource graph on bundle
  • FIX: (#8132) Bundle process speeded up
  • FIX: (#8152) OpenGL renderer disables only enabled vertex attribute arrays
  • FIX: (#8159) Added support for adding natively embedded resources at runtime
  • FIX: (#8174) Improved handling of script init() errors
  • FIX: (#8187) Remove comments from Lua code when bundle project
  • FIX: (#8189) Make sure the resource system respects the liveupdate.enabled flag
  • FIX: (#8197) Fix crash using wrong path in *.set_prototype()
  • FIX: (#8213) Make sure that action.screen_y starts from 0 as well as action.screen_x
  • FIX: (#8216) Bugfix for vulkan fullscreen support on OSX
  • FIX: (#8218) Updated build server to use MSVC 2022, XCode 15 and Clang 17
  • FIX: (#8226) Open engine log file by double-clicking the error
  • FIX: (#8121) Make autocomplete less aggressive
  • FIX: (#8122) Fix non-working Z handles on the Scale Manipulator
  • FIX: (#8211) Disable Show/Hide Selected Objects command when nothing is selected
  • FIX: (#8212) Remove icons from menu items in macOS menu bar

Engine

NEW: (#8180) Make it possible to change column size in the web profiler
Now it is possible to change a column size in the web profiler:

NEW: (#8108) ‘default.render_script’ refactoring reducing of the memory allocation and using of the Defold best practices.
Now update() allocates 0 bytes and all the allocations and recalculations happens only by receiving external messages.

NEW: (#8207) Show textures created with gui.new_texture() in resource profiler.
Now textures created with gui.new_texture() will be listed in resource profiler altogether with the GUI resource name that owns it.

NEW: (#7802) Generate resource graph on bundle.
When building a project using the bob.jar command line tool a resource graph in json format will be saved as build/default/game.graph.json. The resource graph will list all resources included in the game archive, starting at the top level (project root) and following a parent-child hierarchy from the game.project file down through the bootstrap collection to each leaf resource. Example of a graph:

[ {
  "path" : "/<AnonymousRoot>",
  "hexDigest" : null,
  "children" : [ "/main/main.collectionc", "/builtins/render/default.renderc", "/input/game.input_bindingc", "/builtins/input/default.gamepadsc", "/builtins/render/default.display_profilesc", "/builtins/scripts/debugger.luac" ]
}, {
  "path" : "/main/main.collectionc",
  "hexDigest" : "b876bb2748e96cb7ceab9deb9808f534c0b994cf",
  "children" : [ ]
}, {
  "path" : "/builtins/render/default.renderc",
  "hexDigest" : "62fcf66fed9988305fe48996f4d7693b2fac6e49",
  "children" : [ "/builtins/render/default.render_scriptc" ]
}, {
  "path" : "/builtins/render/default.render_scriptc",
  "hexDigest" : "51fe08bdca1d4a79e41bbda87bfa79a151b82c6f",
  "children" : [ ]
}, {
  "path" : "/input/game.input_bindingc",
  "hexDigest" : "9b525bf47b7a7a9c35ad9b07723421404c35dc0f",
  "children" : [ ]
}, {
  "path" : "/builtins/input/default.gamepadsc",
  "hexDigest" : "7c448d18992aefe1c184981f2bb057cf6429321f",
  "children" : [ ]
}]

FIX: (#8132) Bundle process speeded up
Now the Create Archive step during the bundling process 3 times faster. Also, build report generation speed increased drastically.

FIX: (#8152) OpenGL renderer disables only enabled vertex attribute arrays
OpenGL renderer disabled vertex arrays that had not been enabled. It didn’t affect the visual side in any way, but the renderer made unnecessary OpenGL calls. Now the renderer disables only those vertex arrays that were enabled.

FIX: (#8159) Added support for adding natively embedded resources at runtime
This feature opens up for a native developer to provider certain resources at runtime.
It is not a replacement for the LiveUpdate feature, but rather a complement to it, allowing the developer to provide resources that come in an embedded form.

FIX: (#8174) Improved handling of script init() errors
We’ve improved handling of script init() errors.
For the initial setup

-go
--script1.script
----init()
----update()
--script2.script
----init()
----update()

if error happens in the init() function for the script1.script old behavior was

  • the engine calls script1.script->update()
  • the engine doesn’t call script2.script->init()
  • the engine calls script2.script->update()

As a result, the reason of the problem is an error in script1.script->init() which we see only once, but script1.script->update() and script2.script->update() may produce a ton of errors because scripts weren’t initialized.

With this improvement, if error happens in the script1.script->init() function the engine behaves the following way:

  • the engine doesn’t call script1.script->update()
  • the engine calls script2.script->init() and if this function doesn’t have Lua errors:
    • the engine calls script2.script->update()

It makes script components more independent.
Also, it prevents situations when errors in update() function shadow the real reason of the problem in init() function.

FIX: (#8187) Remove comments from Lua code when bundle project
Remove all the comments from Lua code in all Lua files (*.lua, *.script etc) during the bundle process.

FIX: (#8189) Make sure the resource system respects the liveupdate.enabled flag
This fixes an issue where the liveupdate system wasn’t fully disabled when the project setting was set to false (liveupdate.enabled=0)

FIX: (#8197) Fix crash using wrong path in *.set_prototype()
Fixed a a crash that happens because of using of a path without a .(dot) in it as the second parameter for factory.set_prototype() or collectionfactory.set_prototype()

FIX: (#8213) Make sure that action.screen_y starts from 0 as well as action.screen_x
Fixed inconsistency between action.screen_y which was in interval [1; window_heigh] and action.screen_x which was in interval [0; window_width - 1]. Now, both started from 0.

FIX: (#8216) Bugfix for vulkan fullscreen support on OSX

FIX: (#8218) Updated build server to use MSVC 2022, XCode 15 and Clang 17

It was long overdue to update the Windows sdk’s, and we have now updated to MSVC 2022 (14.37.32822) and the latest windows 10 sdk (10.0.20348.0).
In doing so, we also had to update to Clang 17 (in order to cross compile windows on the Linux build server).

For extension/linux developers, be aware that this compiler will not link libraries that are not compiled with -fPIC/-fPIE, like the engine is.
So, if you see such a linker error, you will need to recompile or update your library.
For example, we’ve updated the DefOS to 2.7.1 to support Defold 1.6.2.

We’ve also updated to XCode 15. We’ll update the macOS/iOS sdk’s soon (whithin the next few releases).

Editor

NEW: (#8110) Use exp4j to evaluate math string
You can now evaluate complex mathematical expressions such as 4 * (2 ^ 16) in numeric text fields and they will be set to the result.

FIX: (#8121) Make autocomplete less aggressive
Auto-complete popup no longer appears on typing digits.

FIX: (#8122) Fix non-working Z handles on the Scale Manipulator

  • The Scale Manipulator now works as expected when scaling along the Z axis, the XZ plane, and the YZ plane.

FIX: (#8211) Disable Show/Hide Selected Objects command when nothing is selected
The Show/Hide Selected Objects command is now disabled unless something is selected. Invoking it with no selection used to cause an error.

FIX: (#8212) Remove icons from menu items in macOS menu bar

  • Removed broken icons from the menu bar on macOS.
  • Replaced Undo and Redo menu item icons with high-resolution variants.

FIX: (#8226) Open engine log file by double-clicking the error
Double-clicking on the build error “For the full log, see /file/path/log.txt” will now open the error log file.

31 Likes

Thank you for yet another great release! :wink:

The render script looks great - larger, but more structured :slight_smile: Let’s see what will be other’s impressions :smiley:
I like that it supports now models with default 3D material as well! :heart:

It makes my video about render script outdated a bit though :sweat_smile:

9 Likes

Sorry for that =/
But we decided that we have to improve our default render script.
I think we will do a few more improvements in the near future to cover most of the basic needs users have

7 Likes

No worries!
That would be actually great! :star_struck:

Love the new render script organization. Now I just need to port my own changes into it :wink:

Is there any plan to integrate mouse coordinates conversion as well so that new and less experienced users are not thrown off by it?

4 Likes

Oh yes! This was a topic for a discussion this morning. We want to improve the camera and the default projections so that we can have something like camera.screen_to_world() conversion. I’d like for us to start working on this soon.

16 Likes

thank you for all this great work !

:fire::fire::fire:!

1 Like

NOOOOOO! I was just starting to get it! :sob:😵‍💫:rofl::rofl::rofl:

1 Like