godotengine / godot-proposals

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

Rewrite visual shaders as a gdscript plugin #7748

Open QbieShay opened 11 months ago

QbieShay commented 11 months ago

Describe the project you are working on

Godot Engine

Describe the problem or limitation you are having in your project

The current implementation of visual shader is in c++ in the engine sources. By hanging out in the various Godot communities, I have noticed multiple times people wanting to help but being completely stuck at the difficulty of contributing to the engine.

Having a low contribution barrier it's always been one of Godot's biggest strengths. But the barrier for non-coders is still way too high. Remember that arists spend their life improving their craft, and just like a person can't pick up a pencil and be expected to make a masterpiece, it's really silly to expect artist to pick up c++ engine coding.

In addition to that, technical debth has accumulated on the visual shader editor plugin in a way that's hard to address without in-depth refactoring, so contributing is complicated even for people that are fluent at godot c++.

My aim with this proposal is to lower the contribution barrier for artist tools, starting from visual shader. Ideally, we can exend this philosophy to other parts of the engine, but for now my focus is on shaders because it has a unique crossing of techical savy and art savy. It's a great place to start.

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

A new VisualShader plugin, official in some capacity. What I need here is not help, I have enough reach to start this initiative, but some form of confirmation that this is something desired and won't go against the engine.

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

A new plugin, compatible with existing visual shaders. This may need a bit of work on the UI side of the editor to make it possible to integrate.

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

/

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

/

Janders1800 commented 11 months ago

You can already writhe new visual shader nodes in GDscript, in fact there are some plugins already with extra visual shader nodes.

https://github.com/paddy-exe/GodotVisualShader-Extras

QbieShay commented 11 months ago

I am aware, but this is not just about adding nodes, this is about working on the UX of visual shaders as a whole.