Here are some suggestions and proposals for VisualScript:
Get Local Variable node should find other Set Local Variable nodes with the same variable name and set it's type to thatUpdate function arguments, name and output
The nearest port should be dragged, not a random one in range
When adding a node, it should automaticly drag out the first output/input
Parent methods don't get displayed
Base type gets long when it's a custom script
Conditions should be configurable
VisualScriptLocalVarSet, VisualScriptVariableSet and VisualScriptLocalPropertySetAlso, in 4.0 there's a change that'll allow text visual script and materials
https://github.com/godotengine/godot-proposals/issues/6
There's a hot spot zone for the port connection. We can tune the size of it.
The nearest port should be dragged, not a random one in range
There's a hot spot zone for the port connection. We can tune the size of it.
The nearest port should be dragged, not a random one in range
The issue with that it that it doesn't use the nearest point in range, but rather the first point in range it finds, which isn't always the closest one.
Grouping and regrouping random nodes
Do you mean the random nodes (Rand, Randf and Randomize)?
Unifying custom nodes, comment and expression nodes
That seems totally pointless and not backwards compatible.
Groups (interface with code)
What do groups have to do with interfacing with code? Do you mean interfacing with other vs scripts or gdscripts?
Useful for merge and removing the merge of entire groups.
What do you mean by merging? Merging functions or scripts? What is "removing the merge"?
Groups have a title, a list of grouped nodes, input-output port, and position.
So basically like every other graph node, just that they store a list of nodes. For what is this list needed?
Custom nodes derives from group
Why is this needed? For what would a custom node use a list of nodes?
Custom nodes are like groups except has Gdscript.
Custom nodes can also have every other type of script Godot supports, including VisualScript
Expression derives from group
That also seems strange to me.
To do for loops requires a generic shader node.
What for loop requires a "generic shader node"?
I will message you in discord and we can rewrite a summary. There's a summer of code proposal for this.
Seems like Display Scaling is related but not necessarily dependent to DPi... Sheesh.
What do I need to do to split this list into 10-20 issues? Alternatively we can create markdown documents. It is difficult to comment on the proposals @swarnimarun .
I'd like to add some nodes to the Visual Script system but I want feedback before I start implementing it.
I'd like to add some nodes that abstract away some of the complication of visual scripting to make it more accessible and bring the difficulty of visual scripting closer to that of GameMaker.
Some possibilities include a two way input node that returns a float based off of input. Also, a four way input that returns a Vector 2.
The idea is just to simplify some of the common actions and reduce the number of nodes required to do some of the basic tasks.
I'd like to see this included in Godot and not as an addon to make Visual Scripting as accessible as possible for folks.
I realize most of the talk here right now is in the UI of visual scripting, and I don't mind working on these on the side.
Thoughts?
We're thinking of making a way to create "groups" easier so that custom nodes are in visual script instead of gdscript. So your two examples can be done via a collection of visual script nodes.
I was thinking of making those without any input ports, but having the actions selected in the sidebar, like the action node right now.
Are you looking at having any built in group nodes, again to abstract away some of the complexity for new users?
One of the pending ideas is removing the sidebar, and using control - f (generic search) for everything. Can you make a new proposal and draw a design?
We can bundle the various combined nodes we have and will have as "visual script nodes". We already have a long list of bundled nodes.
Other nodes that come to mind might be:
restart current scene
quit
load scene
I realize that those can be done with just a couple nodes, but for some users having a single node would simplify things a lot.
I'm wondering if "combined nodes" still will confuse new users. If there are some helper nodes to take care of some basic functionality that will make visual scripting easier to adopt for non-programmers or for example in schools (I teach middle school).
Imagine that we can double click into the nodes and see how they work and the combinations show in the debugger too.
Got it. I like it.
Closing and maybe rewriting later to follow #10
I highly recommend making a SEPARATE issue per task.
i really would like to see Reroute graph connections, that will make clean up the VS much easier
For the time being you can use this:
https://github.com/swarnimarun/visual-scripting-node-library/