godotengine / godot-proposals

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

Visual Scripting needs a Overhaul #1733

Closed YusufSuleman closed 3 years ago

YusufSuleman commented 3 years ago

Describe the project you are working on: Visual Scripting RPG

Describe the problem or limitation you are having in your project: The Visual Scripting System is more complicated than GDScript. No one can use it and most people go toward GDScript and leave out people who can't code. Describe the feature / enhancement and how it helps to overcome the problem or limitation: Make the system more like Unreal Engine 4. Advertise Visual Script lots more than GDScript and make it default and a convert button. Have people psychologically use Visual Script. It is not supported Describe how your proposal will work, with code, pseudocode, mockups, and/or diagrams: Unreal Engine 4 but in a Godot Theme. If this enhancement will not be used often, can it be worked around with a few lines of script?: Have the old Visual Script as an option. Is there a reason why this should be core and not an add-on in the asset library?: It could be hard to implement as an Addon. There would be less support and 3rd party tutorials would exist in very low quantity or they wouldn't exist

mrjustaguy commented 3 years ago

... What? I think there's a bit of clarification needed on like over half the things said.

  1. Yes, Visual Scripting is more complicated than GDScript. that's a fact with it's current implementation.
  2. GDScript and VS are equally advertised, however more focus is put on GDScript in the docs and all because everyone is using it and it has been out longer
  3. convert button.. Unclear, do you mean VS to GDScript and other way around? If so, that functionality is difficult to implement with current VS-GDScript differences. I've Tried and it's a TON of work to implement VS to GDScript because of those differences.. like 1k+ lines of code just dedicated to converting each Constant/built-in function from their "int" form to String needed for turning them into a line of code or part of a line of code... and getting the whole data line and turning it in to an argument that is exactly the same as in VS is a pain. Converting GDScript to VS has other problems, such as determining exactly which part is which node in VS and how they are supposed to be connected for the exact same result.. In general there's a TON of data you have to generate/find for each line of code/node and then use all that accurately to compose the other type of script..
  4. Why not use unreal if that is what you want?
  5. Visual Script doesn't have many tutorials because on the surface it's very similar to GDScript, and just takes more to work with and the preformance varies from GDScript a lot (for example VS has faster iteration for whatever reason, when compared to GDScript 1.0, while some other logic is slower).. Please note that On the surface and underneath the hood it's a different story and the 2 are different implementations of the same thing more or less - thus the issues with converting between the 2
  6. Why have an old VS option if UE4's Blueprints are fairly similar style wise? Godot only lacks some features of Blueprints and isn't as polished
Xrayez commented 3 years ago

The Visual Scripting System is more complicated than GDScript. No one can use it and most people go toward GDScript and leave out people who can't code.

Perhaps VisualScript was not intended to be like this? See Vivraan/godot-lang-support#1.

Make the system more like Unreal Engine 4.

reduz says:

Unlike Unreal, this is more meant as a complement to programmers, so game designers, level designers, etc. can work more easily.

fire commented 3 years ago

The Visual Scripting System is more complicated than GDScript. No one can use it and most people go toward GDScript and leave out people who can't code.

I cannot force visual script to be the default and make text based coding a second class citizen like Unreal Engine can.

So the best I can do is make proposal and prs like https://github.com/godotengine/godot/pull/39649 and https://github.com/swarnimarun/godot/pull/7, and https://github.com/godotengine/godot-proposals/issues/1253.

I'm not sure how your proposal to make visual script Unreal Engine 4 but in a Godot Theme is even achievable.