godotengine / godot-proposals

Godot Improvement Proposals (GIPs)
MIT License
1.12k stars 69 forks source link

Include nodes from the asset library in the Create New Node dialog #6934

Open cassandrus opened 1 year ago

cassandrus commented 1 year ago

Describe the project you are working on

Engine GUI Feature

Describe the problem or limitation you are having in your project

As the engine core will not include any additional features, it's crucial to have comfortable way of installing plugins from engine itself. Currently, there's no clear source of info on plugins, official plugins or any other additional assets.

Describe the feature / enhancement and how it helps to overcome the problem or limitation

I propose to add "Include results from marketplace" checkbox (and additional tab) to "Create New Node" dialog. This will greatly improve observability of plugins.

Describe how your proposal will work, with code, pseudo-code, mock-ups, and/or diagrams

image

Additional metadata for marketplace plugins will be needed to describe what plugins add nodes (and their description, icon and so on).

If this enhancement will not be used often, can it be worked around with a few lines of script?

It will be used often

Is there a reason why this should be core and not an add-on in the asset library?

It's about asset library

Zireael07 commented 1 year ago

I'm against - this window can get sluggish if you have many addons, and having it connect to the asset store will only make performance worse

cassandrus commented 1 year ago

I'm against - this window can get sluggish if you have many addons, and having it connect to the asset store will only make performance worse

That's why I added checkbox. If it's too slow for you, just uncheck it. The whole idea is that there's no better place to put this. When a newbie user tries to check if some needed feature is available he opens exactly this window.

Zireael07 commented 1 year ago

That's why I added checkbox. If it's too slow for you, just uncheck it.

This should be off by default. If my net is too slow/CPU tanks, the editor may freeze and I won't be able to uncheck.

When a newbie user tries to check if some needed feature is available he opens exactly this window.

Lots of things can be done without using a custom node. This might be a misfeature in general, training people to expect everything to be shown here.

Calinou commented 1 year ago

There is no central registry that associates each add-on to the node(s) they provide, so this isn't technically feasible.

theraot commented 1 year ago

With "Add support for global plugins/universal addons" (https://github.com/godotengine/godot-proposals/issues/831) I'd be OK with this feature but searching among the installed "universal addons". Otherwise, let us say I'm not enthusiastic about it.

aaronfranke commented 1 year ago

@theraot That would already be the case though, if we have a global plugin / universal addon then its node types will already show up in the Create New Node dialog like a regular project-specific addon. However you would want to copy the addon into your project if you want to keep using that type in your exported game.

me2beats commented 1 year ago

I like the idea and the amount of downvotes is surprising to me. I imagine people can install official addons this way as well. But yea as Calinou notes there is a lack of some features in current AssetLib implementation

Jurorno9 commented 1 year ago

I think common node names (ie main,map,menu) could clog/make this feature useless

theraot commented 11 months ago

I had forgot about this proposal. Thank you for bringing it up in #8114

My concerns with this was that it might result in searching online by accident, and that both installed and not installed results would be mixed. And hence I was thinking of having add-ons installed in the machine, from where you would search to add to the project.

However, my current thoughts are that we should have it as a tab in the window instead of a check box. I believe that would be sufficient to avoid the possible mentioned accidents, as it would keep the online search and results separated from what is installed on the system.