Defold 1.7.0 Beta

Defold 1.7.0

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.

We hope this new workflow will highlight any issues earlier, and also get valuable feedback from our users. And please comment if you come up with ideas on improving on this new workflow.

Please report any engine issues in this thread or in issues using Help → Report Issue

Thx for helping out!

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 http://d.defold.com/beta/

Release notes

As the version number suggests, in this version we have introduced some breaking changes.
The more important changes are related to texture mip map options, and also the removal of the system_font from the builtins package.
Please read those sections extra carefully.

There is also some “code cleanup” that may strictly be considered a breaking change. It relates to us removing old extension stubs.
It shouldn’t affect anyone, as these extensions have been published to github and been in use for many years.

Summary

  • BREAKING CHANGE: (#8528) More options for min filter in game.project → Graphics → Default Texture Min Filter
  • BREAKING CHANGE: (#8548) Removed deprecated extensions from the code
  • BREAKING CHANGE: (#8559) Removed system_font.font from builtins
  • BREAKING CHANGE: (#8529) Turn mipmaps off in the default.texture_profiles file in builtins
  • BREAKING CHANGE: (#8553) Removed old deprecated messages
  • NEW: (#8424) Render target as a resource
  • NEW: (#8322) Increased length of debug prints for urls to 256 per part and 512 in total
  • NEW: (#8513) Add missed gui.BLEND_SCREEN constant into gui module
  • NEW: (#8525) Add camera focus message’s wrappers.
  • NEW: (#8562) Set custom vertex data API (Sprites)
  • NEW: (#8577) Add support for enabling a render target resource in render.enable_texture
  • NEW: (#8599) Flip image flag for image.load
  • NEW: (#8521) Add world to local coordinate system conversion API
  • NEW: (#8473) Add editor.delete_directory()
  • NEW: (#8510) Use async engine build in the editor
  • FIX: (#8371) Fix http request timeout usage in HTML5 build
  • FIX: (#8477) Fix issue when profiler show wrong count of GUI.ActiveNodes
  • FIX: (#8486) Fixed an issue where the game wouldn’t start if the iframe didn’t allow gamepad usage (HTML5).
  • FIX: (#8484) Fix multi-buffered render buffers on non-opengl graphics adapters
  • FIX: (#8496) Fixed an issue where attempting to use IndexedDB when it is prohibited prevents game loading in HTML5.
  • FIX: (#8493) Fix for crash caused by ray casting followed by deletion of the object
  • FIX: (#8305) add “Support texture handles in render.enable_texture” mention to API documentation
  • FIX: (#8544) Send sound_done or sound_stopped messages only if the sound is played using msg.post() with the play_id parameter.
  • FIX: (#8551) Fixed an issue where bob.jar did not delete some temporary folders after the bundling process was completed.
  • FIX: (#8552) Support sampler names in render.enable_texture
  • FIX: (#8582) Crash fixes for the GDC tool
  • FIX: (#8567) Fixed rendering of untextured sprites in the editor
  • FIX: (#8569) Added support for sprite to not have a texture assigned
  • FIX: (#8579) Check that texture width and height is valid before creating texture
  • FIX: (#8583) Use correct material tag for mesh components
  • FIX: (#8591) Add retry_count and retry_time settings to the game.project file in the html5 section.
  • FIX: (#8547) Fix issues with physics.set_shape() when Allow Dynamic Transformsis on
  • FIX: (#8561) Fixed the way the HTML5 bundler splits and renames resource files
  • FIX: (#8545) Add arm64-osx platform to manifests
  • FIX: (#8522) Graph successor memory optimizations
  • FIX: (#8531) Hide texture formats and texture compressions from *.textures_profiles that are currently not supported.
  • FIX: (#8563) Properly validate sprite texture assignments
  • FIX: (#8593) Paged atlas preview bugfix

Engine

BREAKING CHANGE: (#8528) More options for min filter in game.project → Graphics → Default Texture Min Filter
Now, the field Default Texture Min Filter in game.project → Graphics has the same options as materials do.
This is a breaking change for projects that use mipmaps on their textures and the OpenGL graphics backend.

Old behavior was:

  • Options linear and nearest as Default Texture Min Filter meant TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST and TEXTURE_FILTER_NEAREST_MIPMAP_NEAREST respectively.
  • If a texture without mipmaps was used with a material where Min Filter was specified with mipmaps, it used the Mag Filter option instead.

Current behavior:

  • Options linear and nearest as Default Texture Min Filter mean TEXTURE_FILTER_LINEAR and TEXTURE_FILTER_NEAREST respectively.
  • If a texture without mipmaps is used with a material where Min Filter is specified with mipmaps, it simply ignores the mipmaps part of the filter. For example, for TEXTURE_FILTER_LINEAR_MIPMAP_NEAREST, it will be TEXTURE_FILTER_LINEAR, etc.

BREAKING CHANGE: (#8548) Removed deprecated extensions from the code
In this release we’ve removed old extension stubs for facebook, iap, iac, push and webview.
This shouldn’t affect any users, but is only part of an internal code cleanup task.
The actual extensions are found in the github repositories (e.g. GitHub - defold/extension-iap: In-app purchase extension for Defold)

BREAKING CHANGE: (#8559) Removed system_font.font from builtins
This breaking change was implemented to clarify the usage of predefined fonts in builtins. The old system_font.font has been completely removed from the builtins, and two new fonts have been introduced:

  1. builtins/fonts/default.font, which uses the default df material and can serve as a font for the development process.
  2. builtins/fonts/debug/always_on_top.font, which utilizes a special material builtins/fonts/debug/always_on_top_font.material with the debug_text tag. This font is intended to be drawn on top of other elements and is used for debugging purposes (such as the profiler and the draw_debug_text message) as replacement of old system_font.font. Additionally, changes are required in default.render_script, where the old text predicate has been replaced with the debug_text predicate for clarity.

BREAKING CHANGE: (#8529) Turn mipmaps off in the default.texture_profiles file in builtins
This is a breaking change for projects that use default.texture_profiles from the builtins folder.
If you need mipmaps for your textures, ensure you use a custom default.texture_profiles where this option is enabled.

BREAKING CHANGE: (#8553) Removed old deprecated messages
The following messages were removed:

  1. msg.post(url, "request_transform") and "transform_response" – requests the transform from an instance
  2. msg.post(url, "set_tile", ...) – use tilemap.set_tile() instead

NEW: (#8424) Render target as a resource
A new resource type has been added that creates render targets that can be used as a regular texture in the engine.

The .render file has also been refactored to support this new render resource type. You can now add .render_target files into the render prototype resource. In the render_script, you can use these render targets in the same way as before, except that you can now pass in the render resource name when binding the render target:

-- in a render script:
render.set_render_target("my_rt")

A new function has also been added to .script files to get all the metadata about a render target resource:
resource.get_render_target_info(path)

NEW: (#8322) Increased length of debug prints for urls to 256 per part and 512 in total

NEW: (#8513) Add missed gui.BLEND_SCREEN constant into gui module
Added gui.BLEND_SCREEN, which was missing in the documentation as well as in the gui module.

NEW: (#8525) Add camera focus message’s wrappers.
Now it possible to activate/deactivate camera component via camera.acquire_focus/ camera.release_focus.

camera.acquire_focus("/observer#main_camera")
camera.release_focus("/observer#main_camera")

NEW: (#8562) Set custom vertex data API (Sprites)
Added support for setting and getting vertex attributes for sprites via the go.set, go.get and go.animate functions. Similar to shader constants, the attributes has to be specified in the material:

To modify the my_color attribute:

local my_color = go.get("#sprite", "my_color")
my_color.x = my_color.x + 0.5
go.set("#sprite", "my_color", my_color)

Or alternatively, you can use go.animate:

go.animate("#sprite", "my_color", go.PLAYBACK_LOOP_FORWARD, vmath.vector4(1, 0, 0, 1), go.EASING_INBACK, i))

NEW: (#8577) Add support for enabling a render target resource in render.enable_texture
Render script can now enable render targets specified in the Render Resource table in a .render file:

This can now be done by calling render.enable_texture:

-- draw something to a render target:
render.set_render_target("rt_res")
-- do drawing here and unbind RT
render.set_render_target(render.RENDER_TARGET_DEFAULT)

-- set the RT buffer 0 to a sampler and draw something using it
render.enable_texture("my_sampler", "rt_res", render. BUFFER_COLOR0_BIT) 
render.draw(self.my_predicate)

NEW: (#8599) Flip image flag for image.load
image.load and image.load_buffer can now flip images vertically when loading:

image.load_buffer(path, {  flip_vertically = true })
image.load(path, {  flip_vertically = true })

Note that the second argument will now accept an option table, with these arguments:

premultiply_alpha - True if alpha should be premultiplied into the color components. Defaults to `false`.
flip_vertically - True if the image contents should be flipped vertically. Defaults to `false`.

NEW: (#8521) Add world to local coordinate system conversion API
Add new APIs to convert world position and world transform to game object’s coordinate space.
How to use:

   local test_pos = go.get_world_position("/test")
   local child_pos = go.get_world_position("/child")
   local new_position = go.world_to_local_position(test_pos, "/child")
   local test_transform = go.get_world_transform("/test")
   local child_transform = go.get_world_transform("/child")
   local result_transform = go.world_to_local_transform(test_transform, "/child")

FIX: (#8371) Fix http request timeout usage in HTML5 build

  • Fix timeout option usage in http module for HTML5 implementation.
  • Update http module documentation.
  • Wrap HttpRequestAsync arguments with struct.
  • Fix possible memory leak.

FIX: (#8477) Fix issue when profiler show wrong count of GUI.ActiveNodes
Fixed an issue where nodes that aren’t directly disabled, but are disabled because one of their parents is disabled in the tree, were incorrectly counted in GUI.ActiveNodes by the profiler.

FIX: (#8486) Fixed an issue where the game wouldn’t start if the iframe didn’t allow gamepad usage (HTML5).
Fixed the issue where the game doesn’t start if access to gamepads is disallowed by the permissions policy.

FIX: (#8484) Fix multi-buffered render buffers on non-opengl graphics adapters
We have fixed an issue with models when using a multi-buffered render setup. This should have no effect on OpenGL-based rendering, but is important for console and vulkan adapters.

FIX: (#8496) Fixed an issue where attempting to use IndexedDB when it is prohibited prevents game loading in HTML5.
Fixed an issue where, in some rare cases, if IndexedDB usage is restricted, users may encounter the “Assertion failed: IDBFS used, but IndexedDB not supported” error.

FIX: (#8493) Fix for crash caused by ray casting followed by deletion of the object
Fixed a crash that occurs if physics.raycast_async() is called in the on_message() function and then the object is deleted immediately.

FIX: (#8305) add “Support texture handles in render.enable_texture” mention to API documentation
For now there is no mention to support handles except a rendertarget handle:

But since 1.4.6 we have support texture handles:

-- in a regular gameobject script:
local my_texture_info = resource.get_texture_info("/my_atlas.a.texturesetc")
msg.post("@render:", "set_my_texture", { handle = my_texture_info.handle })

-- in a render script:
function update(self, dt)
    render.enable_texture(0, self.my_texture)
end

function on_message(self, message_id, message)
    if message_id == hash("set_my_texture") then
        self.my_texture = message.handle
    end
end

FIX: (#8544) Send sound_done or sound_stopped messages only if the sound is played using msg.post with the play_id parameter.
The sound component will send sound_done and sound_stopped messages only if msg.post() is used with the play_id parameter, as in msg.post("#sound", "play_sound", {play_id = 1}).

FIX: (#8551) Fixed an issue where bob.jar did not delete some temporary folders after the bundling process was completed.
Fixed an issue where, in some cases, bob.jar did not delete temporary folders. This could quickly fill up the disk on a CI machine.

FIX: (#8552) Support sampler names in render.enable_texture
Added support for enabling and disabling a sampler by a string or hash in a render script:

render.enable_texture(unit|name|hash, texture)
render.disable_texture(unit|name|hash, texture)

Previously a texture could only be bound to the renderer by texture units, which could cause issues when certain graphics adapters optimizes away unbound textures. With this new functionality, you can bind the same textures to multiple sampler names, which will be bound to the matching sampler name by the renderer when draw calls are issued:

render.enable_texture("my_global_texture", self.tex0)
render.enable_texture("some_other_sampler", self.tex0)
render.enable_texture("a_third_sampler", self.tex0)

It’s however recommended that you use the same sampler name for all samplers in this case, this example just illustrates that it is possible to do so!

FIX: (#8582) Crash fixes for the GDC tool
Fixed an issue where the GDC tool would crash immediately after starting. This is due to recent changes to our platform layer.

FIX: (#8567) Fixed rendering of untextured sprites in the editor
Untextured sprites now show up in the editor viewport as long as their shader renders something.

FIX: (#8569) Added support for sprite to not have a texture assigned
This fixes an issue where the engine crashed if the sprite had no textures at all.
Now, the UV coordinates will encompass the entire sprite (since it has no atlas).

FIX: (#8579) Check that texture width and height is valid before creating texture
Calling resource.create_texture() with a width and/or height of zero crashed the engine. This change will check that the width and height are valid and throw a Lua error otherwise.

FIX: (#8583) Use correct material tag for mesh components
Fixed an issue where the wrong material tag was using when producing render lists.

FIX: (#8591) Add retry_count and retry_time settings to the game.project file in the html5 section.
Two new settings are available in the game.project file in the html5 section:

  • retry_count: how many attempts the engine makes when trying to download a file.
  • retry_time: pause in seconds before retrying file loading after an error.

The default template builtins/manifests/web/engine_template.html has been changed. If you use your own custom template, make sure to update it with these changes.

FIX: (#8547) Fix issues with physics.set_shape() when Allow Dynamic Transformsis on.
Fix issues with physics.set_shape() which appears when Allow Dynamic Transforms option in game.project is on.

FIX: (#8561) Fixed the way the HTML5 bundler splits and renames resource files
Instead of using names like game.arcd0 , game.arcd1 , game.arci0 for resource files in the HTML5 bundle, this fix keeps the file extension as is and adds filename counters instead: game0.arcd , game1.arcd , game0.arci . This will facilitate the use of custom server settings for files based on their filetype.

FIX: (#8547) Add arm64-osx platform to manifests
Add arm64-osx platform to release/headless manifests.
Fix js-web excludeLibs list.

Editor

NEW: (#8473) Add editor.delete_directory()

NEW: (#8510) Use async engine build in the editor
The editor now uses async build server API. This should help with timeouts for long engine builds caused by big extensions.

FIX: (#8522) Graph successor memory optimizations
Large projects with a lot of connections will now use significantly less memory.

FIX: (#8531) Hide texture formats and texture compressions from *.textures_profiles that are currently not supported.
All the unsupported texture formats and texture compressions are hidden from *.texture_profiles.

FIX: (#8563) Properly validate sprite texture assignments

  • Fixes a regression where you could build the project without properly assigning textures to all samplers in the assigned sprite material.
  • Fixes an issue where the sprite animation dropdown would contain entries for the non-primary atlas if any sampler apart from the first one was assigned first.
  • Mismatches between paged and unpaged materials and textures are now properly reported as build errors for sprites.

FIX: (#8593) Paged atlas preview bugfix

23 Likes

A few missed release notes added to the list:

4 Likes

1.6.4 worked

:sob:

@jhonny.goransson https://github.com/d954mas/game-blocky-fighting

No errors in console

INFO:DLIB: Log server started on port 55693
INFO:ENGINE: Target listening with name: LAPTOP-K0DFPU0P - fe80::747e:3b65:904b:5c9a - Windows
INFO:ENGINE: Engine service started on port 55694
INFO:GRAPHICS: Installed graphics device 'ADAPTER_FAMILY_OPENGL'
INFO:ENGINE: Defold Engine 1.7.0 (0756258)
INFO:DLIB: Initialized Remotery (ws://127.0.0.1:17815/rmt)
INFO:ENGINE: Loading data from: build/default
INFO:xMath: Registered xmath Extension

INFO:CHRONOS: Registered chronos Extension

INFO:CRYPTEXTENSION: Registered crypt Extension

INFO:ENGINE: Initialised sound device 'default'
DEBUG:SCRIPT: [INFO 21:34:55] LOCALIZATION: assets/localization/localization.lua:18: set locale:en
DEBUG:SCRIPT: [INFO 21:34:55] LOCALIZATION: assets/localization/localization.lua:33: system locale:ru
DEBUG:SCRIPT: [INFO 21:34:55] LOCALIZATION: assets/localization/localization.lua:37: unknown system locale:ru use default:en
DEBUG:SCRIPT: [INFO 21:34:55] WORLD: world/world.lua:15: init
DEBUG:SCRIPT: [INFO 21:34:55] Storage: world/storage/storage.lua:98: load
DEBUG:SCRIPT: [INFO 21:34:55] Storage: world/storage/storage.lua:103: from file:
{"encrypted":false,"data":"{\"options\":{\"draw_shadows\":true,\"sound\":true,\"music\":true},\"worlds\":{\"WORLD_2\":{\"battles\":[{\"completed\":false},{\"completed\":false},{\"completed\":false},{\"completed\":false},{\"completed\":false}],\"state\":\"CLOSED\"},\"WORLD_3\":{\"battles\":[{\"completed\":false},{\"completed\":false},{\"completed\":false},{\"completed\":false},{\"completed\":false}],\"state\":\"CLOSED\"},\"WORLD_1\":{\"battles\":[{\"completed\":false},{\"completed\":false},{\"completed\":false},{\"completed\":false},{\"completed\":false}],\"state\":\"OPENED\"}},\"skins\":{\"COOKIE\":{\"unlocked\":false,\"show_notification\":false},\"NINJA\":{\"unlocked\":false,\"show_notification\":false},\"EXECUTENER\":{\"unlocked\":true,\"show_notification\":false},\"CYBORG\":{\"unlocked\":false,\"show_notification\":false},\"SUPERHERO\":{\"unlocked\":true,\"show_notification\":false},\"TIGER_WRESTLER\":{\"unlocked\":false,\"show_notification\":false},\"TIGER_WRESTLER_BOSS\":{\"unlocked\":false,\"show_notification\":false},\"SOLDIER\":{\"unlocked\":false,\"show_notification\":false},\"KORI\":{\"unlocked\":false,\"show_notification\":false},\"BOXER_GIRL\":{\"unlocked\":true,\"show_notification\":false},\"BEARD_MAN\":{\"unlocked\":false,\"show_notification\":false},\"DARK_SOLDIER\":{\"unlocked\":false,\"show_notification\":false},\"EAGLE\":{\"unlocked\":false,\"show_notification\":false},\"POLICEMAN\":{\"unlocked\":false,\"show_notification\":false},\"RACHEL\":{\"unlocked\":false,\"show_notification\":false},\"RAINBOW\":{\"unlocked\":true,\"show_notification\":false},\"ROUGE\":{\"unlocked\":false,\"show_notification\":false},\"SHAY\":{\"unlocked\":false,\"show_notification\":false},\"TOM\":{\"unlocked\":false,\"show_notification\":false},\"TOM_HAWAII\":{\"unlocked\":false,\"show_notification\":false},\"WONDERGIRL\":{\"unlocked\":false,\"show_notification\":false},\"LAYER\":{\"unlocked\":false,\"show_notification\":false},\"NOOB\":{\"unlocked\":true,\"show_notification\":false},\"ROBOT_SUIT\":{\"unlocked\":false,\"show_notification\":false},\"METALMECHA\":{\"unlocked\":false,\"show_notification\":false},\"MECHA\":{\"unlocked\":false,\"show_notification\":false},\"HUMAN_1\":{\"unlocked\":false,\"show_notification\":false},\"GENERAL\":{\"unlocked\":false,\"show_notification\":false},\"DEFAULT\":{\"unlocked\":false,\"show_notification\":false},\"COOL_GUY\":{\"unlocked\":true,\"show_notification\":false},\"BOXER\":{\"unlocked\":true,\"show_notification\":false}},\"gloves\":{\"MUSHROOM\":{\"unlocked\":false,\"show_notification\":false},\"ALARM_CLOCK\":{\"unlocked\":true,\"show_notification\":false},\"FLOWERS\":{\"unlocked\":false,\"show_notification\":false},\"CARTOON\":{\"unlocked\":true,\"show_notification\":false},\"GLOVES_BLUE\":{\"unlocked\":true,\"show_notification\":false},\"HEAT\":{\"unlocked\":false,\"show_notification\":false},\"ASSASIN_GLOVES\":{\"unlocked\":true,\"show_notification\":false},\"DRAGON_GLOVES\":{\"unlocked\":false,\"show_notification\":false},\"BONE_KNUCLE\":{\"unlocked\":false,\"show_notification\":false},\"NAILS\":{\"unlocked\":false,\"show_notification\":false},\"GLOVES_RED\":{\"unlocked\":true,\"show_notification\":false},\"TIGER_PAW\":{\"unlocked\":false,\"show_notification\":false},\"CANNON\":{\"unlocked\":false,\"show_notification\":false},\"BOMB\":{\"unlocked\":true,\"show_notification\":false},\"GIFT\":{\"unlocked\":true,\"show_notification\":false},\"CAT_PAW\":{\"unlocked\":true,\"show_notification\":false}},\"game\":{\"exp\":0,\"level\":1,\"money\":7003,\"gifts\":0,\"skin\":\"EXECUTENER\",\"last_time\":1709058870.3206,\"gloves\":\"GLOVES_RED\"},\"version\":37,\"debug\":{\"draw_debug_info\":true,\"draw_physics\":false}}"}
DEBUG:SCRIPT: [INFO 21:34:55] Storage: world/storage/storage.lua:134: data:
{"options":{"draw_shadows":true,"sound":true,"music":true},"worlds":{"WORLD_2":{"battles":[{"completed":false},{"completed":false},{"completed":false},{"completed":false},{"completed":false}],"state":"CLOSED"},"WORLD_3":{"battles":[{"completed":false},{"completed":false},{"completed":false},{"completed":false},{"completed":false}],"state":"CLOSED"},"WORLD_1":{"battles":[{"completed":false},{"completed":false},{"completed":false},{"completed":false},{"completed":false}],"state":"OPENED"}},"skins":{"COOKIE":{"unlocked":false,"show_notification":false},"NINJA":{"unlocked":false,"show_notification":false},"EXECUTENER":{"unlocked":true,"show_notification":false},"CYBORG":{"unlocked":false,"show_notification":false},"SUPERHERO":{"unlocked":true,"show_notification":false},"TIGER_WRESTLER":{"unlocked":false,"show_notification":false},"TIGER_WRESTLER_BOSS":{"unlocked":false,"show_notification":false},"SOLDIER":{"unlocked":false,"show_notification":false},"KORI":{"unlocked":false,"show_notification":false},"BOXER_GIRL":{"unlocked":true,"show_notification":false},"BEARD_MAN":{"unlocked":false,"show_notification":false},"DARK_SOLDIER":{"unlocked":false,"show_notification":false},"EAGLE":{"unlocked":false,"show_notification":false},"POLICEMAN":{"unlocked":false,"show_notification":false},"RACHEL":{"unlocked":false,"show_notification":false},"RAINBOW":{"unlocked":true,"show_notification":false},"ROUGE":{"unlocked":false,"show_notification":false},"SHAY":{"unlocked":false,"show_notification":false},"TOM":{"unlocked":false,"show_notification":false},"TOM_HAWAII":{"unlocked":false,"show_notification":false},"WONDERGIRL":{"unlocked":false,"show_notification":false},"LAYER":{"unlocked":false,"show_notification":false},"NOOB":{"unlocked":true,"show_notification":false},"ROBOT_SUIT":{"unlocked":false,"show_notification":false},"METALMECHA":{"unlocked":false,"show_notification":false},"MECHA":{"unlocked":false,"show_notification":false},"HUMAN_1":{"unlocked":false,"show_notification":false},"GENERAL":{"unlocked":false,"show_notification":false},"DEFAULT":{"unlocked":false,"show_notification":false},"COOL_GUY":{"unlocked":true,"show_notification":false},"BOXER":{"unlocked":true,"show_notification":false}},"gloves":{"MUSHROOM":{"unlocked":false,"show_notification":false},"ALARM_CLOCK":{"unlocked":true,"show_notification":false},"FLOWERS":{"unlocked":false,"show_notification":false},"CARTOON":{"unlocked":true,"show_notification":false},"GLOVES_BLUE":{"unlocked":true,"show_notification":false},"HEAT":{"unlocked":false,"show_notification":false},"ASSASIN_GLOVES":{"unlocked":true,"show_notification":false},"DRAGON_GLOVES":{"unlocked":false,"show_notification":false},"BONE_KNUCLE":{"unlocked":false,"show_notification":false},"NAILS":{"unlocked":false,"show_notification":false},"GLOVES_RED":{"unlocked":true,"show_notification":false},"TIGER_PAW":{"unlocked":false,"show_notification":false},"CANNON":{"unlocked":false,"show_notification":false},"BOMB":{"unlocked":true,"show_notification":false},"GIFT":{"unlocked":true,"show_notification":false},"CAT_PAW":{"unlocked":true,"show_notification":false}},"game":{"exp":0,"level":1,"money":7003,"gifts":0,"skin":"EXECUTENER","last_time":1709058870.3206,"gloves":"GLOVES_RED"},"version":37,"debug":{"draw_debug_info":true,"draw_physics":false}}
DEBUG:SCRIPT: [INFO 21:34:55] Storage: world/storage/storage.lua:307: save
DEBUG:SCRIPT: [INFO 21:34:55] Storage: world/storage/storage.lua:142: loaded
INFO:ILLUMINATION: Total pixels:873519.Lights texture: 1024 x 1024
INFO:ILLUMINATION: LightsManager inited.Lights:1024 xSlice:15 ySlice:15 zSlice:15 maxLightsPerCluster:256
INFO:GRAPHICS: Transcoding: /_generated_84fc8b7c.texturec from 21 to 6 (TEXTURE_FORMAT_RGBA_BC7 -> cTFBC7_RGBA)
INFO:GRAPHICS: Transcoding: /_generated_18e0caa9.texturec from 21 to 6 (TEXTURE_FORMAT_RGBA_BC7 -> cTFBC7_RGBA)
DEBUG:SCRIPT: [INFO 21:34:55] ContextManager: libs/contexts_manager.lua:86: Context register:MAIN
DEBUG:SCRIPT: [INFO 21:34:55] none: init_controller.script:103: load proxy success:true
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:17: load mesh:char_base.bin
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:20: Character.002 2148 triangles
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:44: mesh load:0.046973900054581
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:28: load animation:die.bin
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:28: load animation:look_around.bin
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:28: load animation:hurricane_kick.bin
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:28: load animation:standing_melee_horizontal.bin
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:28: load animation:fight_idle.bin
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:28: load animation:uppercut.bin
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:28: load animation:pistol_run.bin
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:28: load animation:punch.bin
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:47: animation load:0.073371300008148
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/texture.lua:49: creating animation texture for /__anim_Character.002_1.texturec width:256height:1024
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:63: add animations:0.02947419998236
DEBUG:SCRIPT: [INFO 21:34:55] none: def-mesh/game_mesh_reader.lua:64: mesh total loading	0.1501583000645
DEBUG:SCRIPT: [INFO 21:34:55] none: init_controller.script:122: init time:0.42259319999721
DEBUG:SCRIPT: [INFO 21:34:55] ContextManager: libs/contexts_manager.lua:86: Context register:TOP_PANEL
DEBUG:SCRIPT: [INFO 21:34:55] SCENE: libs/sm/scene_loader.lua:19: start load:[main:/game_scene#collectionproxy]
DEBUG:SCRIPT: [INFO 21:34:55] Storage: world/storage/storage.lua:307: save
Registered mesh_utils Extension
Registered android_toast Extension
Registered lua_script_instance Extension
Registered illumination Extension
Registered game Extension
INFO:DLIB: SSDP: Started on address 192.168.0.102
INFO:DLIB: SSDP: Started on address 192.168.56.1
DEBUG:SCRIPT: [INFO 21:34:56] ContextManager: libs/contexts_manager.lua:86: Context register:LIVEUPDATE_COLLECTION
INFO:GRAPHICS: Transcoding: /_generated_958a4a8a.texturec from 21 to 6 (TEXTURE_FORMAT_RGBA_BC7 -> cTFBC7_RGBA)
DEBUG:SCRIPT: [INFO 21:34:56] RESIZER: features/resizer/resizer.gui_script:69: change size to:16.0x9.0 960x540 scaled:1440x810
DEBUG:SCRIPT: [INFO 21:34:56] Render: render/my.render_script:149: screen size changed. from w:1200 h:675 to w:1440 h:810
DEBUG:SCRIPT: [INFO 21:34:56] SCENE: libs/sm/scene.lua:47: GameScene loaded
DEBUG:SCRIPT: [INFO 21:34:56] SCENE: libs/sm/scene.lua:48: GameScene load time 0.31612430000678
DEBUG:SCRIPT: [INFO 21:34:56] ContextManager: libs/contexts_manager.lua:86: Context register:GAME
DEBUG:SCRIPT: [INFO 21:34:56] none: world/game/game_world.lua:41: LOAD LOCATION:HUB
INFO:GRAPHICS: Transcoding: /blender_location/images/Atlas.texturec from 21 to 6 (TEXTURE_FORMAT_RGBA_BC7 -> cTFBC7_RGBA)
INFO:GRAPHICS: Transcoding: /blender_location/images/Blocks_PixelArt.texturec from 21 to 6 (TEXTURE_FORMAT_RGBA_BC7 -> cTFBC7_RGBA)
INFO:GRAPHICS: Transcoding: /assets/images/empty.texturec from 21 to 6 (TEXTURE_FORMAT_RGBA_BC7 -> cTFBC7_RGBA)
DEBUG:SCRIPT: [INFO 21:34:56] none: def-mesh/texture.lua:19: creating animation texture for /__anim_bones_Character.002_2.texturec width:256height:1
DEBUG:SCRIPT: [INFO 21:34:56] GameSceneController: scenes/game/game_scene_controller.script:15: total level load:0.42309329996351
DEBUG:SCRIPT: [INFO 21:34:56] ContextManager: libs/contexts_manager.lua:86: Context register:GAME_GUI
DEBUG:SCRIPT: [INFO 21:34:56] ContextManager: libs/contexts_manager.lua:86: Context register:GAME_WORLD_GUI
DEBUG:SCRIPT: [INFO 21:34:56] SCENE: libs/sm/scene.lua:95: GameScene show
DEBUG:SCRIPT: [INFO 21:34:56] SCENE: libs/sm/scene.lua:115: GameScene resumed
DEBUG:SCRIPT: [INFO 21:35:13] ContextManager: libs/contexts_manager.lua:99: Context unregister:MAIN
DEBUG:SCRIPT: [INFO 21:35:13] ContextManager: libs/contexts_manager.lua:99: Context unregister:TOP_PANEL
DEBUG:SCRIPT: [INFO 21:35:13] ContextManager: libs/contexts_manager.lua:99: Context unregister:GAME
DEBUG:SCRIPT: [INFO 21:35:13] none: def-mesh/texture.lua:97: free texture:[/__anim_bones_Character.002_2.texturec]
DEBUG:SCRIPT: [INFO 21:35:13] ContextManager: libs/contexts_manager.lua:99: Context unregister:GAME_GUI
DEBUG:SCRIPT: [INFO 21:35:13] ContextManager: libs/contexts_manager.lua:99: Context unregister:GAME_WORLD_GUI
DEBUG:SCRIPT: [INFO 21:35:13] ContextManager: libs/contexts_manager.lua:99: Context unregister:LIVEUPDATE_COLLECTION
INFO:DLIB: SSDP: Done on address 192.168.0.102
INFO:DLIB: SSDP: Done on address 192.168.56.1
3 Likes

I get a crash:

INFO:CRASH: Successfully wrote Crashdump to file: C:\Users\Alex-desktop\AppData\Roaming\8bitskull_bore_blasters_errors\engine_crash_log.bin
ERROR:CRASH: CALL STACK:

ERROR:CRASH:  0 0x7FF735466E00 dmCrash::GenerateCallstack D:\a\defold\defold\engine\crash\src\backtrace_win32.cpp:144
ERROR:CRASH:  1 0x7FF7358091C0 _seh_filter_exe /tmp/job1553859289643239534/minkernel/crts/ucrt/src/appcrt/misc/exception_filter.cpp:219
ERROR:CRASH:  2 0x7FF73585C358 `__scrt_common_main_seh'::`1'::filt$0 D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:304
ERROR:CRASH:  3 0x7FF7357C6AA8 __C_specific_handler D:\a\_work\1\s\src\vctools\crt\vcruntime\src\eh\riscchandler.cpp:389
ERROR:CRASH:  4 0x7FF8BCF52290 __chkstk <unknown>:0
ERROR:CRASH:  5 0x7FF8BCF01030 RtlRaiseException <unknown>:0
ERROR:CRASH:  6 0x7FF8BCF50E90 KiUserExceptionDispatcher <unknown>:0
ERROR:CRASH:  7 0x7FF7355CA8E0 dmGameSystem::FillTextures D:\a\defold\defold\engine\gamesys\src\gamesys\components\comp_model.cpp:359
ERROR:CRASH:  8 0x7FF7355CC2A0 dmGameSystem::RenderBatchWorldVS D:\a\defold\defold\engine\gamesys\src\gamesys\components\comp_model.cpp:1003
ERROR:CRASH:  9 0x7FF7355CE820 dmGameSystem::RenderListDispatch D:\a\defold\defold\engine\gamesys\src\gamesys\components\comp_model.cpp:1182
ERROR:CRASH: 10 0x7FF735494140 dmRender::DrawRenderList D:\a\defold\defold\engine\render\src\render\render.cpp:894
ERROR:CRASH: 11 0x7FF73564EB80 dmRender::ParseCommands D:\a\defold\defold\engine\render\src\render\render_command.cpp:183
ERROR:CRASH: 12 0x7FF7355612B0 dmRender::UpdateRenderScriptInstance D:\a\defold\defold\engine\render\src\render\render_script.cpp:3596
ERROR:CRASH: 13 0x7FF735537A50 dmEngine::StepFrame D:\a\defold\defold\engine\engine\src\engine.cpp:1674
ERROR:CRASH: 14 0x7FF735532970 dmEngineUpdate D:\a\defold\defold\engine\engine\src\engine.cpp:2176
ERROR:CRASH: 15 0x7FF735538500 dmEngine::RunLoop D:\a\defold\defold\engine\engine\src\engine_loop.cpp:83
ERROR:CRASH: 16 0x7FF7354549F0 engine_main D:\a\defold\defold\engine\engine\src\engine_main.cpp:148
ERROR:CRASH: 17 0x7FF7357C6654 __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
ERROR:CRASH: 18 0x7FF8BCA67330 BaseThreadInitThunk <unknown>:0
ERROR:CRASH: 19 0x7FF8BCF02690 RtlUserThreadStart <unknown>:0
ERROR:CRASH: 

INFO:CRASH: Successfully wrote Crashdump to file: C:\Users\Alex-desktop\AppData\Roaming\8bitskull_bore_blasters_errors\engine_crash_log.bin
ERROR:CRASH: CALL STACK:

ERROR:CRASH:  0 0x7FF7355CA8E0 dmGameSystem::FillTextures D:\a\defold\defold\engine\gamesys\src\gamesys\components\comp_model.cpp:359
ERROR:CRASH:  1 0x7FF7355CC2A0 dmGameSystem::RenderBatchWorldVS D:\a\defold\defold\engine\gamesys\src\gamesys\components\comp_model.cpp:1003
ERROR:CRASH:  2 0x7FF7355CE820 dmGameSystem::RenderListDispatch D:\a\defold\defold\engine\gamesys\src\gamesys\components\comp_model.cpp:1182
ERROR:CRASH:  3 0x7FF735494140 dmRender::DrawRenderList D:\a\defold\defold\engine\render\src\render\render.cpp:894
ERROR:CRASH:  4 0x7FF73564EB80 dmRender::ParseCommands D:\a\defold\defold\engine\render\src\render\render_command.cpp:183
ERROR:CRASH:  5 0x7FF7355612B0 dmRender::UpdateRenderScriptInstance D:\a\defold\defold\engine\render\src\render\render_script.cpp:3596
ERROR:CRASH:  6 0x7FF735537A50 dmEngine::StepFrame D:\a\defold\defold\engine\engine\src\engine.cpp:1674
ERROR:CRASH:  7 0x7FF735532970 dmEngineUpdate D:\a\defold\defold\engine\engine\src\engine.cpp:2176
ERROR:CRASH:  8 0x7FF735538500 dmEngine::RunLoop D:\a\defold\defold\engine\engine\src\engine_loop.cpp:83
ERROR:CRASH:  9 0x7FF7354549F0 engine_main D:\a\defold\defold\engine\engine\src\engine_main.cpp:148
ERROR:CRASH: 10 0x7FF7357C6654 __scrt_common_main_seh D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288
ERROR:CRASH: 11 0x7FF8BCA67330 BaseThreadInitThunk <unknown>:0
ERROR:CRASH: 12 0x7FF8BCF02690 RtlUserThreadStart <unknown>:0
ERROR:CRASH: 

INFO:CRASH: Successfully wrote MiniDump to file: C:\Users\Alex-desktop\AppData\Roaming\8bitskull_bore_blasters_errors\engine_crash_log.bin.dmp

engine_crash_log.txt (50.0 KB)
engine_crash_log.bin.txt (120.1 KB)

3 Likes

It seems fine for me :thinking:

3 Likes

:frowning:

Mb something with windows?

Test web build it worked.

Test bundle for windows, same as run from editor.

When i comnent defos. I can play game but is jitter and also when i change application size it not worked correctly.

--defos.set_view_size(nil, nil, size[1] * RESOLUTION_SCALE * size.scale, size[2] * RESOLUTION_SCALE * size.scale)

1 Like

Problem with “resource.set_texture”
if i comment all this functions no blinking issues. (render for characters not correct it ok)
Look at commit “remove resource.set_texture 1.7.0 beta”

2 Likes

I hope this will help you. Problem is appeared if i change texture too often(5 and less frames after last change)

1 Like

I haven’t been able to reproduce this.
Do you have any hints or a small repro?

1 Like

Done a bit of investigation and I can provide some hints. This crash is happening in BORE BLASTERS, and you have access to the repo. It crashes on the main menu, and it seems to have something to do with the shader that creates the orange light effect on the rocks behind the title.

If I do not activate the shader, the game does not crash.

We activate the shader by messaging the render script:

msg.post("@render:", "toggle_highlights", {state = true})

On receipt the render script creates targets:

if message_id == TOGGLE_HIGHLIGHTS then
		highlights_enabled = message.state or not highlights_enabled
		if highlights_enabled then
			diffuse_target = create_highlights(diffuse_target, "highlights")
			light_target = create_highlights(light_target, "lights")
		end
	end

The create highlights function:

local function create_highlights(rt, id)

	if rt then
		render.delete_render_target(rt)
	end
	
	local rt_params = 
	{
		[render.BUFFER_COLOR_BIT] = 
		{
			width = render.get_window_width(),
			height = render.get_window_height(),
			format = render.FORMAT_RGBA,
			u_wrap = render.WRAP_CLAMP_TO_EDGE,
			v_wrap = render.WRAP_CLAMP_TO_EDGE
		}
	}
	
	return render.render_target(id, rt_params)
end

We draw the highlights like so:

local function draw_highlights(self)

	if not highlights_enabled then
		return
	end

	--highlight pass
	render.enable_render_target(diffuse_target)
	render.clear({[render.BUFFER_COLOR_BIT] = clear_color, [render.BUFFER_DEPTH_BIT] = 1, [render.BUFFER_STENCIL_BIT] = 0})

	render.set_depth_mask(false)
	render.disable_state(render.STATE_DEPTH_TEST)
	render.disable_state(render.STATE_STENCIL_TEST)
	render.enable_state(render.STATE_BLEND)
	render.set_blend_func(render.BLEND_SRC_ALPHA, render.BLEND_ONE_MINUS_SRC_ALPHA)
	render.disable_state(render.STATE_CULL_FACE)
	
	render.draw(highlight_pred, frustum_table)
	render.disable_render_target(diffuse_target)

	--lights
	render.enable_render_target(light_target)
	render.clear({[render.BUFFER_COLOR_BIT] = clear_color, [render.BUFFER_DEPTH_BIT] = 1, [render.BUFFER_STENCIL_BIT] = 0})

	render.draw(light_pred, frustum_table)
	render.disable_render_target(light_target)

	--Shader
	render.enable_texture(0, diffuse_target, render.BUFFER_COLOR_BIT)
	render.enable_texture(1, light_target, render.BUFFER_COLOR_BIT)
	render.set_view(IDENTITY)
	render.set_projection(highlights_projection)

	render.enable_material(str_highlight_mat)
	render.draw(lit_tiles_pred, frustum_table)
	render.disable_texture(0, diffuse_target)
	render.disable_texture(1, light_target)
	render.disable_material()
end

These are the materials and fp related to the shader:
highlights_shader.zip (2.0 KB)

Happy to provide additional information if required!

2 Likes

Thanks, I can reproduce it now!

2 Likes

I Have a fix + PR, so it shouldn’t take long before it’s working again.

4 Likes

If I’m reading the source correctly, go.world_to_local_transform is calculated using the GO’s transform from the most recent “update transforms” step. The API reference doesn’t specify this, which may cause confusion. This is clarified in the description of go.get_world_transform:

go.world_to_local_transform()

go.world_to_local_transform(transformation,url)

convert transformation matrix to game object’s coordinate space

go.get_world_transform()

go.get_world_transform([id])

The function will return the world transform matrix calculated at the end of the previous frame.

@Alex_8BitSkull The latest beta is updated, and should work well with your project again.

2 Likes

Confirmed! Well done.

thumbs-up-eating

5 Likes

Thanks! I’ll add the same clarification to new APIs.

3 Likes

This is a significant backward-compatibility-breaking change, right? Also, it doesn’t seem to include any update to the API docs(?).

I think you guys should make a decision to either remove things from your PR checklist that you don’t actually require, or stop merging pull requests that don’t satisfy the requirements.

Yes, it is. This breaking change happened 2+ years ago. More likely by mistake and nobody noticed (because everybody uses callbacks). I fixed it in the previous version, and we got a ton of complaints because of that (because it works, not because it’s been broken for two years). So we decided to remove it again since it didn’t work 2 years (or worked just in one version for the last 2+ years) and brings nothing but complaints.

UPD:
I found the exact commit, it happened 5 years ago, not 2 years ago.

3 Likes

Broken for 5 years and no one reported it, haha. I believe it. Fair enough. :+1:

Was there/will there be an update that removes those messages from the API docs?

:face_with_monocle: …It seems that the reports about it in last release’s thread were because it was still broken, not because it suddenly worked flawlessly. It is directly stated in the Sound manual that you can delete the game object that a sound component is on and it should still work fine.

“A sound will continue to play even if the game object the sound component belonged to is deleted.”

At any rate, I have no objection to the “change”, I’m just concerned about the docs getting out of date.

2 Likes