Exclude Engine Components

How does the team decide which component exclusions to add to the .appmanifest file? Currently there aren’t many of them, and there are plenty of heavier features that aren’t listed like tilemaps and gui, which are examples of features I don’t use due to design flaws (in my opinion of course). During some time away from Defold, I noticed that frameworks like Raylib and SDL allow a lot more customization.

I remember submitting this ticket some time ago. Should I add more like this, or is this kind of suggestion not something that needs to be tracked via ticket?

6 Likes

The engine has evolved over a long period of time and some of the older systems will require more work to exclude. It’s also a matter of how much size would be gained vs effort to make it “excludable”. And the likelihood that someone would ever want to exclude the specific component or system.

Your request to exclude the GUI is a good one, but it’s also complicated to exclude the GUI. We have a goal to completely remove the GUI or at least get the gui and go worlds closer together.

Yes, please!

3 Likes
2 Likes

Thank you!

3 Likes

I’m particularly excited about the ability to exclude the gui system as it actually has a pretty big impact on the binary size (~180kb in a wasm build).

2 Likes

That’s really cool. Speaking of building GUIs without the GUI system, what is the recommended way to do that? I think I’ve seen some extensions that have explored that route, but at what cost? I assume the built in GUI system is way more efficient than whatever we can cobble together with Lua 5.1 for the web.

I’m currently building a game that will mostly have diegetic ui, so I’m thinking of maybe skipping the gui system for the few parts that need it.

It really depends on what you need from your gui? You could easily build a button with a sprite and a label for instance.

Rive is perfect for UIs, but the runtime is a bit heavy. It could still be a good option, especially if you have a UI heavy game or a game where you also plan to build cut scenes and transitions etc using Rive.

Dear ImGUI is another option, but perhaps more as a way to build development tools and menus.

I was thinking of something that offers the basics, like layouting, buttons, sliders, scrolling, rich text, input fields, etc. Kinda like Druid.