Defold 1.6.4 has been released

:astonished: wow I don’t have to uninstall and install the new version… The editor will automatically check for updates! :heart_eyes: :heartbeat:

Thanks you! :relaxed:

4 Likes

It’s a huge release - thank you!

Excited about it! We’re making a combat heavy game in the Gamedev Camp I am eager to check if this is useful in action!

I wanted to ask about details of memory here. The lifetime of the loaded image is as defined by the scope of the Lua variable? Or until resource.release()? Or different?

1 Like

It’s not a buffer resource, just a buffer object, so it will be equivalent to a buffer.create(). When it goes out of lua scope (i.e garbage collected), it will be removed.

5 Likes

As always, thank you for your hard work!

I’m interested in figuring it out and seeing an example of how to use the new functionality:

I see that documentation is in process, but I wonder if spine objects will be able to use this functionality also?

3 Likes

Since the beta, we’ve updated the documentation. (And I’ve fixed the release notes with the same link)

We haven’t really considered spine objetcs (yet). Are there such examples available online of such a setup?

3 Likes

maybe I don’t understand how multi textures work, for me it’s the ability to use 2 different atlases for a sprite, correct me if this is wrong :slight_smile:

but I was wondering if this could solve the Batching draw calls of GO sprites with GO spine.

1 Like

You are correct.

I haven’t encountered this scenario for a spine scene (yet), so I’d be happy to take a look at some example of it. And as always, feel free to add a feature request on Github!

The other topic you linked to highlights a bigger drawback of our current design, that we can’t batch between different collections and/or component types. We have plans for solving this, but no ETA, and it’s likely some time in the future.

4 Likes

Been getting this error occassionally since updating to 1.6.4.

Seems the message “sound_done” can’t be received because the object that played the sound no longer exists…?

ERROR:GAMEOBJECT: Instance '/instance12' could not be found when dispatching message 'sound_done' sent from main:/sound#exp-small

2 Likes

Updated to 1.6.4. Extension-rive is not building :frowning:

lld-link: error: undefined symbol: void __cdecl dmGraphics::EnableVertexDeclaration(void *, struct dmGraphics::VertexDeclaration *, unsigned __int64, unsigned __int64)
>>> referenced by /tmp/job14116362361621283313/upload/include/private/renderer_private.h:817
>>>               rivedefold.lib(renderer_private.cpp_0.o):(private: virtual void __cdecl dmRive::DefoldPLSRenderContext::flush(struct rive::pls::PLSRenderContext::FlushDescriptor const &))
>>> referenced by /tmp/job14116362361621283313/upload/include/private/renderer_private.h:862
>>>               rivedefold.lib(renderer_private.cpp_0.o):(private: virtual void __cdecl dmRive::DefoldPLSRenderContext::flush(struct rive::pls::PLSRenderContext::FlushDescriptor const &))
>>> referenced by /tmp/job14116362361621283313/upload/include/private/renderer_private.h:1008
>>>               rivedefold.lib(renderer_private.cpp_0.o):(private: virtual void __cdecl dmRive::DefoldPLSRenderContext::flush(struct rive::pls::PLSRenderContext::FlushDescriptor const &))
>>> referenced 1 more times
	clang++: error: linker command failed with exit code 1 (use -v to see invocation)
	com.defold.extender.ExtenderException: java.io.IOException: lld-link: error: undefined symbol: void __cdecl dmGraphics::EnableVertexDeclaration(void *, struct dmGraphics::VertexDeclaration *, unsigned __int64, unsigned __int64)
>>> referenced by /tmp/job14116362361621283313/upload/include/private/renderer_private.h:817
>>>               rivedefold.lib(renderer_private.cpp_0.o):(private: virtual void __cdecl dmRive::DefoldPLSRenderContext::flush(struct rive::pls::PLSRenderContext::FlushDescriptor const &))
>>> referenced by /tmp/job14116362361621283313/upload/include/private/renderer_private.h:862
>>>               rivedefold.lib(renderer_private.cpp_0.o):(private: virtual void __cdecl dmRive::DefoldPLSRenderContext::flush(struct rive::pls::PLSRenderContext::FlushDescriptor const &))
>>> referenced by /tmp/job14116362361621283313/upload/include/private/renderer_private.h:1008
>>>               rivedefold.lib(renderer_private.cpp_0.o):(private: virtual void __cdecl dmRive::DefoldPLSRenderContext::flush(struct rive::pls::PLSRenderContext::FlushDescriptor const &))
>>> referenced 1 more times
	Line 2: In file included from build/defold-rive/rive_ddf.cpp:2:
In file included from /var/extender/sdk/4689e4033ebfc982176b92545900302d0fcb03b3/defoldsdk//include/ddf/ddf_math.h:26:
In file included from /var/extender/sdk/4689e4033ebfc982176b92545900302d0fcb03b3/defoldsdk//sdk/include/dmsdk/dlib/vmath.h:18:
In file included from /var/extender/sdk/4689e4033ebfc982176b92545900302d0fcb03b3/defoldsdk//sdk/include/dmsdk/vectormath/cpp/vectormath_aos.h:40:
private field 'd' is not used [-Wunused-private-field]
   63 |     float d;
      |           ^
	Line 2: private field 'd' is not used [-Wunused-private-field]
  607 |     float d;
      |           ^
3 Likes

It seems we havent updated the extension. @jhonny.goransson is this something you can look at?

2 Likes

We’ve just released a hot-fix 553487eb9c84a23b6ddd2afcba0ff6085784a5fa which fixes a case when an atlas image was both rotated and also trimmed. (thanks @Qwarr who reported the issue)

1 Like

Thanks! Looks like there was another issue still there though.

2024-02-13 08_22_10-Big Klondike - Classic Solitaire

Seems sprites that are rotated that have trim mode enabled are getting the wrong parts trimmed?
Turning sprite trim mode to off does “fix” the issue.

I updated my example repo to demonstrate the issue: GitHub - Qwarr/AtlasRotation

1 Like

There’s also a sample project here: GitHub - defold/sample-normal-maps-2d with demo: Normal Maps 2D 1.0

3 Likes

this is really the update of all time

4 Likes

A new PR has been submitted, and should land within a few hours.

yes, I have encountered the same errors in my projects.

ERROR:GAMEOBJECT: Instance '/instance2' could not be found when dispatching message 'sound_done' sent from example1:/sounds#fireball_burst_a

It seems that playing a sound and deleting an object at once without waiting for a message causes an error. Such constructions can be for example in bullet collision handlers, when a “bang” sound is emitted and the bullet is deleted at once.

sound.play("/sounds#bang")
go.delete()
5 Likes

I’ve rectified this issue by moving all sound generation into a dedicated sound manager game object which is never deleted.

2 Likes

The latest fix for the atlasimage uv rotation issue is now live in the editor (engine sha: 7bafadda047312e68a7094c2928e5a403ebf90d8)

Fixed for the next version Sound.stop error message if object is deleted without 1.1 seconds minimum added to a timer.delay · Issue #8541 · defold/defold · GitHub

2 Likes

Any update on this? :wink: