⇠ More posts

Defold release 1.6.0

By Björn Ritzl on Sep 25, 2023

Tagged as: Release notes


Defold 1.6.0

Summary

  • BREAKING CHANGE: (#7967) Added option frustum_planes to render.draw()
  • BREAKING CHANGE: (#7971) Renamed dmSpinlock::Init() to Create() and also added Destroy() function
  • BREAKING CHANGE: (#7972) Remove embedded builtins resources from release builds
  • NEW: (#7866) Custom vertex format support for ParticleFX components
  • NEW: (#7961) Added sys.exists() for verifying the existence of a file or directory
  • NEW: (#7936) Automatically build SPIR-V shaders when using the Vulkan backend
  • NEW: (#7868) Show notifications about fetch library issues
  • NEW: (#7890) Add filtering to the editor Console
  • NEW: (#7854) Add gui.max_animation_count propertin in game.project
  • NEW: (#7914) Make editor load natives only for its platform
  • FIX: (#7949) Fix issue when window (on Mac) opens without focus
  • FIX: (#7681) Create depth / stencil buffers as textures for render targets
  • FIX: (#7928) Fixed a fullscreen issue for newer macOS versions
  • FIX: (#7921) Add ability to ignore bundling for native extensions in .defignore
  • FIX: (#7851) Delete sound instance if stopped before play issued
  • FIX: (#7827) Fixed non-Western character input not working on Windows and MacOS.
  • FIX: (#7969) Fix using state name as a temp resource name during the build process
  • FIX: (#7987) Make sure that all the excluded collection detected even using local cache
  • FIX: (#7983) Use EngineLoader.wasm_size if response doesn’t have Content-Length header
  • FIX: (#7985) Fix for calling Unmount when removing a live update archive
  • FIX: (#7950) Show right error when bundling
  • FIX: (#7887) Separate glyph data from fonts
  • FIX: (#7934) Less aggressive rounding of numeric values in the editor
  • FIX: (#7904) Make .image-view styling more efficient
  • FIX: (#144) Fix spine related crash in the editor when loading many spine animations at the same time
  • FIX: (#7908) Property editor fixes
  • FIX: (#7938) Make adb devices parsing more resilient
  • FIX: (#7958) Send correct Content-Length HTTP headers in responses to engine HEAD resource requests
  • FIX: (#8003) Updated our sound backend library for HTML5

Engine

BREAKING CHANGE: (#7967) Added option frustum_planes to render.draw() The flag is set as render.FRUSTUM_PLANES_SIDES as default, making sure only the 4 side planes of the frustum is used. By specifying frustum_planes = render.FRUSTUM_PLANES_ALL, the user can make sure all 6 frustum planes are used.

Example:

render.draw(self.model_pred, { frustum = proj * view, frustum_planes = render.FRUSTUM_PLANES_ALL})

BREAKING CHANGE: (#7971) Renamed dmSpinlock::Init() to Create() and also added Destroy() function On some platforms, the spinlock needs to also be properly destroyed. To make this more apparent, and also have good naming, we renamed the functions to Create()/Destroy().

BREAKING CHANGE: (#7972) Remove embedded builtins resources from release builds We’ve removed the system debug font as a default gui font. This will save some size in the final executable. This is a breaking change but it is likely to affect only a few users. If you are using gui text, and your gui scene doesn’t have a font, the text will not show. If that is the case, then the fix is to add a font explicitly to your gui scene.

NEW: (#7866) Custom vertex format support for ParticleFX components Particle FX nodes can now utilise the custom vertex formats previously added to sprites. This enables you to pass custom data from the editor into shader attributes when rendering particles.

NEW: (#7961) Added sys.exists() for verifying the existence of a file or directory With this function it is possible for the user to check if a file exists before trying to load the file.

FIX: (#7949) Fix issue when window (on Mac) opens without focus Fixed an issue when a window on Mac opens without focus. In such cases, the window doesn’t react to most input events, and only double-click works.

FIX: (#7681) Create depth / stencil buffers as textures for render targets Added support for creating render targets with depth buffers as textures, which enables you do bind them to a shader like a regular texture without the need to write the depth data to the color texture. To create a rendertarget with a depth texture, pass in the render.TEXTURE_BIT flag in the depth buffer parameters.

-- Creating the RT in a render script:
local color_params = {
    format = render.FORMAT_RGBA,
    width  = render.get_window_width(),
    height = render.get_window_height(),
}
local depth_params = {
    format = render.FORMAT_DEPTH,
    width  = render.get_window_width(),
    height = render.get_window_height(),
    flags  = render.TEXTURE_BIT -- this will create the depth buffer as a texture
}

self.my_render_target = render.render_target({
      [render.BUFFER_COLOR_BIT] = color_params,
      [render.BUFFER_DEPTH_BIT] = depth_params
  })

-- bind / enable the depth texture to a texture slot on a material:
render.enable_texture(0, self.my_render_target, render.BUFFER_DEPTH_BIT)

FIX: (#7928) Fixed a fullscreen issue for newer macOS versions The issue was that on macOS Ventura, the fullscreen mode would not render anything as it got a window size of (0, 0). We now detect this case and then use the window frame rectangle.

FIX: (#7921) __Add ability to ignore bundling for native extensions in .defignore __ Added ability to use .defignore to ignore native extensions when bundle in bob.jar.

FIX: (#7851) Delete sound instance if stopped before play issued Fixed an issue where a delayed sound was stopped before it started playing.

FIX: (#7827) Fixed non-Western character input not working on Windows and MacOS. It is now possible to input Chinese, Korean and other non-western language characters using a keyboard on Windows and macOS. The action table of the on_input() text event will contain the pressed key, just like for Western keyboard input.

FIX: (#7969) Fix using state name as a temp resource name during the build process Fixed issue when bob.jar creates state file for its internal data. It makes it impossible to use this word as a name for a folder in the project.

FIX: (#7987) Make sure that all the excluded collection detected even using local cache Fixed issue when using local cache may affect detection of the excluded collection proxies for LiveUpdate.

FIX: (#7983) Use EngineLoader.wasm_size if response doesn’t have Content-Length header dmloader.js will use EngineLoader.wasm_size if response doesn’t have Content-Length header in setupWasmStreamAsync.

FIX: (#7985) Fix for calling Unmount when removing a live update archive This fixes an issue where the memory and file handles of a live update archive would linger until the next reboot.

Editor

NEW: (#7936) Automatically build SPIR-V shaders when using the Vulkan backend Improved the flow for using the Vulkan graphics backend in the engine:

  • Bob will generate spir-v shaders automatically when a project is using an appmanifest file with vulkan link flags
  • The editor will always generate spir-v shaders now in order to catch potential errors and pitfalls early
  • The “output_spirv” project flag has now been deprecated, but not fully removed yet, so old projects will continue to work regardless

NEW: (#7868) Show notifications about fetch library issues The editor will now show notifications about failed attempts to fetch libraries.

NEW: (#7890) Add filtering to the editor Console This changeset adds a Filter function to the editor console. The editor supports 2 types of filters:

  • inclusive filters, e.g. only show lines with text “my-app-subsystem” with my-app-subsystem filter
  • exclusive filters, e.g. exclude lines with text “chatty-subsystem” with !chatty-subsystem filter

Additionally, you can use multiple filters simultaneously.

NEW: (#7854) Add gui.max_animation_count propertin in game.project Now it’s possible to specify count of animations in GUI component in gam.project->gui.max_animation_count (by default 1024).

NEW: (#7914) Make editor load natives only for its platform

FIX: (#7950) Show right error when bundling Show right bundle error instead of game/build/default/game.arci (No such file or directory)

FIX: (#7887) Separate glyph data from fonts Improved the font resource memory footprint by separating glyph data from common font settings such as material and shadow parameters that are generally not needed for the glyph data. Building a font file will not result in two resources on disk, one ‘.fontc’ and one ‘.glyph_bankc’ respectively. The glyph bank may be shared between two or more font files depending on font settings.

FIX: (#7934) Less aggressive rounding of numeric values in the editor

  • Less aggressive rounding of numeric values in the editor.

FIX: (#7904) Make .image-view styling more efficient Improve editor performance when scrolling the Assets pane

FIX: (#144) Fix spine related crash in the editor when loading many spine animations at the same time This fixes an occasional editor crash when using the Spine extension.

FIX: (#7908) Property editor fixes

  • Fixed some situations where the Property Editor would take longer to redraw after editing a property.
  • Fixed a situation where a property could be reverted to its previous value shortly after an edit.
  • Fixed a situation where duplicate undo steps could be created after committing a property change with the Enter key.

FIX: (#7938) Make adb devices parsing more resilient APK installation on Android is now more resilient to different formats of adb devices output.

FIX: (#7958) Send correct Content-Length HTTP headers in responses to engine HEAD resource requests

  • Fixed an issue where rebuilding the game project with the game already running would shut down the game with an error message.