Vertex attribute bone_weights(3) is missing from the vertex descriptor.
ERROR:GRAPHICS: Vulkan Error (../src/vulkan/graphics_vulkan.cpp:1631) VK_ERROR_INITIALIZATION_FAILED
Assertion failed: (0), function GetOrCreatePipeline, file graphics_vulkan.cpp, line 1631.
I came across another strange behavior when using skinning. They have different material tags(model and outline) and are rendered like this (nothing special)
We have decided to mark this version as 1.10.0 instead of 1.9.9 to more clearly signal the fact that the Box2D 3.0 update is a breaking change for certain use cases. Also the fact that the implementation of Box2D has been rewritten from scratch is enough reason to flag this as a breaking change.
We ask you to pay extra attention to the release notes about the Box2D update so that you can take the appropriate action and deal with known breaking changes OR use an app manifest to fall back and use the legacy Box2D version.
Yes, there is some strange when we call render.draw for skinning model more than once per frame. This happens if we want to render shadow map, outline, etc.
Yes, itās a breaking change. That is, our Puffy Cat, a fairly simple game, is completely non-functional - the triggers donāt work (we got the point about kinematic/trigger bodies and collision_response message in Box2D 3.0 and weāll fix it) and the joints we use to create the āsoft bodyā behave very differently. Weāre still investigating what the cause is.
Note that trigger to trigger collisions are not working in the new Box2d version, but trigger to kinematic and trigger to dynamic objects should work just as before.
This is not something we noticed while testing the new version. Please let us know more about the specifics of your joints.
On my test device on Box2D 3.0 I see performance 2 times lower than on legacy Box2D, i.e. 25 fps vs 12 fps. The device is based on Unisoc T616 - probably the most popular chip for low end phones. Perhaps performance in 3.0 isnāt the main thing.
The second thing is more important: the project built on Defold 1.10.0 BETA for web does not run on iPhone 7, Safari 15.6 at all because of the error:
CompileError: WebAssembly.Module doesn't parse at byte 499: invalid opcode 253, in function at index 217
Great update, thank you so much! I found another small difference in physics:
legacy Box2d
local id = factory.create(factory_url, position) -- go with dynamic collisionobject (sphere shape)
local co_url = msg.url(game_hash, id, co_hash)
b2d.body.set_linear_velocity(b2d.get_body(co_url), velocity)
VS
new Box2d 3.0
local id = factory.create(factory_url, position) -- go with dynamic collisionobject (sphere shape)
local co_url = msg.url(game_hash, id, co_hash)
timer.delay(0, false, function()
b2d.body.set_linear_velocity(b2d.get_body(co_url), velocity)
end)
Not sure what heās referring to. Setting the linear velocity is a synchronous function call.
Edit: Reading his code a few times, I guess that the componentās body doesnāt register immediately.
Not sue why that is though. If itās a Box2D thing, Iām not sure we want to add extra code to handle it, as we generally want to avoid making custom changes to the Box2D code.