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:

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

17 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)
16 Likes

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

7 Likes

:partying_face::hugs:

3 Likes

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

14 Likes