godotengine / godot-visual-script

VisualScript as a Godot Engine c++ module
MIT License
119 stars 22 forks source link

Don't hard code every built-in function #36

Open nathanfranke opened 2 years ago

nathanfranke commented 2 years ago

Source file with the built-ins: https://github.com/godotengine/godot-visual-script/blob/main/visual_script_builtin_funcs.cpp

You can see with this PR https://github.com/godotengine/godot-visual-script/pull/34 how easily this source file gets out of sync with master (~4 incompatibilities within a few weeks). Once VisualScript is rewritten with GDExtension https://github.com/godotengine/godot-visual-script/pull/26, I am assuming some magic could be done to generate these bindings.

AdrianoRegino commented 1 year ago

Totally agree, we could use as example the main difference between Unity Visual Scripting (aka UVS or former Bolt) and Blueprints is that UVS generates 99% of its nodes automatically from Unity's C# scripting API, while Blueprints is a collection of handwritten high-level nodes.

eobet commented 1 year ago

Totally agree, we could use as example the main difference between Unity Visual Scripting (aka UVS or former Bolt) and Blueprints is that UVS generates 99% of its nodes automatically from Unity's C# scripting API, while Blueprints is a collection of handwritten high-level nodes.

Just one comment on that:

Those handwritten high-level nodes is what allows non-programmers to use Blueprints. The downfall of Godot visual script, and why Unity's visual sccripting isn't super popular, is that they are too close to traditional programming, and hence people might as well write code. The brilliance of Blueprints is that it abstracts many coding concepts, and allows right brained people (like me) to do things they wouldn't normally be able to. Heck, even the cuddly visual style of Blueprints (and the old Bolt) appeals to the right brain, while the new Unity visual scripting and Godot visual script was almost as difficult to read as text.

If Godot wants to be accessible to people who have never coded before, or are unable to code due to some disability (which I realize is probably not an official goal), then some hand written high level nodes are a must.

fire commented 1 year ago

The built-in functions have been removed in the refactor, but I'm looking into either restoring them or allowing grouped nodes.

The visual script native nodes removal is a bug.