⇠ More posts

Defold release 1.6.2

By Björn Ritzl on Nov 22, 2023

Tagged as: Release notes


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

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.

image

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.