Teaser Fridays and Roadmap talks

Nice to see improvement in the camera area.
Is the camera api going to be expanded with coordinate conversion as well?

Is there a request to increase the GUI node pool from 512? I’m working on a game that I keep hitting this limit. Just doubling it would help a lot. With the bigger screen sizes out now, 512 is just a bit too small. Specifically, for my MetroidVania mapping component. Possibly make it a property we can adjust. That way there we take on the risk and we can design a game to a higher end platform.

Can’t you already change the max number of nodes in the root of the outline of a GUI to higher than 512? Or are you referencing something else?

1 Like

Since 2021 the maximum has been increased to 8192:
https://github.com/defold/defold/pull/5713

2 Likes

Yes. And object picking.

8 Likes

For me changing max nodes doesn’t change anything. I keep hitting a limit which is 512 based on the debug output.

The setting isn’t in game.project, but a property in the individual GUI files:

3 Likes

Thank you! Testing it now.

I came here to post this:
ERROR:GUI: Could not create the node since the buffer is full (512).

Teasers time!

Moved the Templates, Samples, and Tutorials sections from a submenu to the root level to improve discoverability and make them easier to access.


Fixes for Orthographic camera in the editor

18 Likes

Oh - that is great.:partying_face: Thank you very much.

3 Likes

This is brilliant and will save a lot of time when setting up the camera component.

3 Likes

The text layout update is close now.

Here’s a preview of an new example:

  • dynamically loading localization info
    • text + .ttf font
  • adding the .ttf to the label’s .fontc
  • Showing text in LTR and RTL

Yes, there are more quality of life things we’d like to do, but we are at least at a point where we can give a first preview to our users. I’d say it’s one or two versions away.

22 Likes

This is great! Looking forward to playing with it

1 Like

New camera API is coming in version 1.11.3:

  • camera.world_to_screen(world_pos, [camera])
  • camera.screen_xy_to_world(x, y, [camera])
  • camera.screen_to_world(pos, [camera])
-- Place objects at the touch point.
function on_input(self, action_id, action)
    if action_id == hash("touch") then
        if action.pressed then
            local world_position = camera.screen_xy_to_world(action.screen_x, action.screen_y)
            go.set_position(world_position, "/go1")
        end
    end
end
-- Place objects at the touch point with a random Z position, keeping them within the visible view zone.
function on_input(self, action_id, action)
    if action_id == hash("touch") then
        if action.pressed then
            local percpective_camera = msg.url("#perspective_camera")
            local random_z = math.random(camera.get_near_z(percpective_camera) + 0.01, camera.get_far_z(percpective_camera) - 0.01)
            local world_position = camera.screen_to_world(vmath.vector3(action.screen_x, action.screen_y, random_z), percpective_camera)
            go.set_position(world_position, "/go1")
        end
    end
end
-- Convert go position into screen position
go.update_world_transform("/go1")
local world_pos = go.get_world_position("/go1")
local screen_pos = camera.world_to_screen(world_pos)
17 Likes

This is something everyone has been waiting for a long time, thank you. I already started using screen_xy_to_world :slight_smile:

8 Likes

:partying_face::hugs:

4 Likes

Another feature coming in 1.11.3, setting .astc textures directly from gui.new_texture()

16 Likes

Hello everyone, wanted to share a screenshot of the new breakpoints tab we have been working on. You can also enable/disable breakpoints without having to delete them. It will probably be getting merged next week. Feel free to ask any questions!

23 Likes

And guys, warmly welcome Joe who joined the Defold Editor Team recently! :orange_heart::blue_heart:

16 Likes

Sneak peek of setting / getting particle properties via go.get / go.set:

go.set(“/go#test”, “material”, self.red, { keys = {{ emitter_id = “emitter” }} })
go.get(“/go#test”, “material”, { keys = {{ emitter_id = “emitter” }} }

22 Likes