Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Making visual script easier to organize or put in compartments . . #3943

Closed
charlesmlamb opened this issue Feb 10, 2022 · 18 comments
Closed

Comments

@charlesmlamb
Copy link

Describe the project you are working on

A car - game . .

Describe the problem or limitation you are having in your project

I've been thinking, something I find difficult, is when visual script is bit spaghetti . . It's mostly bec. it's difficult to read, or, say, get an overview . . An example, simple one . .

image

One tends to have boxes, that look like that . . In a way, the ' IF ' box, sort-of leads to that, not sure . . .

I've been thinking, what can even be done . . . My idea at first is, lowered the 'opacity' of some lines, so, one can 'hide' them, in the background, a bit . . . This is a REALLY bad example, I use MS Paint . .

image

It's an idea . . Another way is to make the lines dotted, dashed . . And, set something like color, or so, for lines . .

What I've been thinking was, if one could lower the opacity, of some lines, say there was a small menu, where one could select some groups of lines, or, right-click a line, put it in group 1, group 2, so on . . And, set the color, also, the opacity, for all lines in a group, or, an individual setting, a custom setting, for each of the line . . Then, one could hide lines . . This WOULD make the visual script much more un-readable, for a person that didn't make it, the lines would still be visible, just less ' spaghetti ', that's what is really difficult, to read, not sure . . . .

So, after one has made that, here's the point, this is ONE idea, for fixing the spaghetti . . It's mostly bec. it's unreadable, and, makes scripts look ' bad ', or, unreadable . . Or, dashed, dotted, or so lines . . . Right-click, maybe shift, or alt + right-click, to set color, opacity, or saturation . . .

This is about finding modest alternatives, to make scripts more readable, ie. to lower spaghetti, in, visual script . . .

Now, amazing new feature, nodes in a comment, move with the comment, wow, 9 / 10, etc . .

image

The next thing, I can even think of, to lower spaghetti, after lowering the alpha, opacity, is to make the comments have different colors . . Why, sort-of for each coder, one will have some specific colors, for say condition boxes . . It's a way of READING the script, that's also visual, just, having colored boxes, that's where I struggle, to find right words . . If one made the colors oneself, and had a convention, and, used that for all scripts, so on . . . One would almost effectively be able to read big scripts, in large projects, just by looking at them, no need for spaghetti, almost . . I realize this is prob. a bad idea, maybe it can be explained sort-of better, it's more about ideas . . . If I knew, when there was an condition, IF . . That the top box was yellow, and, the lower box, in first, was always say light green, or blue . . I'd be able to read scripts, with a convention, for colors, quiet easily, myself . . It'd HELP read scripts, if one has a ' rule ', or, convention, and, possibly avoid spaghetti, it's about readability . . So, not sure, could this be a way, to make scripts more readable, a DIFFERENT way, that some coders might like, to read, or, even get an overview, of larger pieces, of code . . Over time, everyone that did this, would make certain conventions, and, be able to read scripts faster . . . That's the idea, sort-of implementing that, in a user-friendly, also somewhat effective way . . If it's a bad idea, that's what I'm not sure . . . It's about readability, and, not removing, but bit less spaghetti, sort-of for reading, overview, also, quickly reading a script, or, finding stuff, in an old script . . Each user, could use it as much, as they wanted, or, needed, some would prob. use it sparingly, others, could use it more, it'd be individual, so on . . .

So, I'd like to be able to make the comment boxes different colors, not bec. it's cool, but, in a way, to make a DIFFERENT way, sort-of, to make visual script readable, notice the feature is also used by artists, that can't, perhaps don't want to code . . However, it'd work for anyone, one could use it, as much as one needed, that's, the point . .

So, the question is, could these things help make scripts more readable, and, lessen the ' spaghetti ' factor . . I don't have a problem with, it's more about readability, and, sometimes big scripts bec. chaotic, or, it's difficult to get an overview, at least, fast, etc . .

So, the discussion here is, even if all users might not use it, is there a way to make visual script more readable, using systems like this, for the visual coders, esp., that like to work this way . . I'd use it, bec. it makes scripts easier to read, also, read faster . . . I'd know my own colors, or ' convention ', and instantly be able to read a big script, or, find old code, by looking at almost a ' pattern ', on a big canvas . . . It's a different way, more artistic, also ' logical ', of moving around, finding stuff, and, solving problems, in a visual script . . And, it get rid of some of the ' spaghetti ', I don't really mind it, problem is in visual script, it makes things unreadable, say, for complex scripts . .

So, what else could one do, to add to readability . . In my opinion, the ability to sort-of make some boxes, into a box, a ' composite ' or, ' group ' box, or node . . . Sort-of, like this . . .

image

So, one could select a few nodes, right - click, and, select ' group ', or ' composite ' . . Or, it'd technically be called a 'functional' node, bec. it'd make a function, of some nodes, or, make a ' functional ' node, etc . .

This would make visual scripts more easy to read, readability, not sure, that's the discussion I'd like . . . It's a way to provide an alternative way, of reading scripts, that's just as effective, while, avoiding visual coding's big problem, ie. spaghetti - code . . I don't have a problem with it, it doesn't bother me, it's just something, that might be more readable, or, understandable, or so, the script, so on . . .

So, these are some ideas, for readability, how one can add other visual elements, that help the ' reading ', or, say ' locating ', of stuff . . . Since not all might use it, having it as an option, for some, could be nice, then, it's a feature, yet, not required, for all users . . Some might use it not so much, others, might like to work like that, more ' visually ' . . That'd be to the individual user, I'd prob. use it modestly, have a strict ' convention ', and, some rules . .

The last thing I'd suggest, is to have break-points, sort-of this . . .

image

For me, that'd be nice, I like visual script, it's more when the lines start to cross, perhaps needlessly . . I don't necessarily mind that, but, it makes it sort-of almost unreadable, and, difficult to find stuff, etc . .

That's why, the goal here is not just to ask, for these things, rather, to have a small debate, discussion . . How to add, to readability to visual script, esp. for big scripts, or, reading scripts made, some time ago, so on . . .

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

Well, like above . . Not to add these features bec. they're ' cool ', or so on . . . Question is, could this add to readability, and, if not, are there other stuff, could be done, so on . . .

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

Well, like above, just, an idea . . .

If not, I'd like people that use, or, understand visual script, to give some ideas, for other ways, to increase readability . . .

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

I can't do that, this is sort-of engine stuff, can't code, at least, write . . . :-OO

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

Well, it'd be not much code, and, might be used by enough users, to individual degree, to make it core, if it is useful, adds to readability, or, help say getting an overview, or, finding / locating say old code, thx, etc . . . :-OO

@Zireael07
Copy link

You lumped several things here. You requested dashed/dotted lines at least once already, you can move nodes in a comment as you pointed out, and having different colored comments and lines falls under the umbrella of your earlier proposal to make visual script more customizable.

@charlesmlamb
Copy link
Author

Well, the last time I asked, it was specifically for what I was working on, or, my theme . . It was not so much, about the engine . . .

I've thought about it, and, I think there may be something here, that'd make visual script easier to use, or, specifically more readable, for all users, I've given it a ton of thought, I think, this is more sensible, it's sort-of about all users, the question, not sure it'd be a good idea, I think it makes much more sense, since it's about all users, not only what worked, with my theme . .

I've given a lot of thought, to just making visual script better, since, I use it for most projects, or, don't plan to learn written code, if visual script is as good, or, sort-of close, or similar . .

I want to use the feature, for several small, also medium - sized titles, so, it's important it's as good, as possible . . .

Uhh, you are right, it's perhaps bit the same, as the other suggestion, sorry . .

The idea is, one can sort-of recognize the ' image ', or boxes, to quickly see how scripts work . . It'd be a navigation, also even 'overview' feature, esp. when zoomed out, it'd be easy to find, a particular place . . It's instead of a search function, that'd prob. look, for bunch of boxes . . . This way, one could use the ' image ', as a reference . . . For instance, one could make math stuff light blue, AI light green, so on . . Having such a standard, it'd be easy, to look through visual script canvas, even, when zoomed out, so on . . .

Example . . .

2022-02-10 0443

It ends up, bec. an image, one can look at, when zoomed in, also zoomed out . . It helps navigation, and searching, also overview . . It'd be instead of a search function, I think it might be better, sort-of easier, or faster . . . .

@charlesmlamb
Copy link
Author

charlesmlamb commented Feb 10, 2022

Here's the opposite example, the script or, canvas looks the same, in all areas, just some boxes, that are differently colored, but, there's no sense, this is where say AI, or math happens . . Colored boxes, would help that . . .

image

A really bad example . . When zoomed out, one loses all overview, and, searching for something, is more difficult . . .

image

Having such colored say notes, would make it much easier . . . It'd break up the immediate chaos, and, even create a pattern, one could see, as an ' image ', or almost painting . . .

When, adding boxes, with colors, suddenly a ' pattern ', or image appears, it helps navigation, and, also ' finding ' boxes . . .

image

For instance, one could just have a convention, AI is one color, custom functions are defined in one other color . . One could navigate big canvas, or scripts, and, still find thing quickly . . . I think it's the ' search ' function one should have, in visual script . . .

@charlesmlamb
Copy link
Author

Idea, is sort-of use your eyes to search, instead, of typing, so on . . . #visual #script #search #overview . . ? #thx . . !

@charlesmlamb
Copy link
Author

charlesmlamb commented Feb 10, 2022

It'd sort-of make it into an ' abstract ' painting, it'd be esp. useful when zoomed out, it'd be super-easy to recognize almost a painting, for a visual thinker, or, more using, of visual memory . . .

image

The idea is, even when zoomed out, you can't read text, see what node is what, you could see a colored area, or, even when zoomed very far away . .

Or, it'd make it look, sort-of like an expressionist painting, or so . . .

image

Why, bec. it creates shapes, that are easy to remember, or re-call, for visual thinkers . . Later, it'd be like looking at an old painting, also, sort-of for getting, an overview . . .

The alternative is the blank chaos, of the first image, or . .

image

You could recognize stuff, maybe two months later, if one had a good visual memory . . It'd end up looking, sort-of like an abstract painting, I'd not use it much, but it'd be a big help, when zoomed out, so on . . . The brain re-calls shapes, for instance, I can remember comics, I read twenty years ago, just looking at them, or, cartoons . .

I think a real search for nodes option, would be better, but, this is more about, sort-of putting bit order, esp. when zoomed, to any visual script, with bit creativity, one could make almost art, to say remember code, so on . . .

I'd not use it much, mostly for overview and, recollecting . . But, it'd be a help, at least, for visual thinkers, etc . . .

It's sort-of, bec. I sat down and thought, are there ANY ways, to make visual script better, just made a quick list, this might help, why not add this, is this possible, etc . . .

@charlesmlamb
Copy link
Author

charlesmlamb commented Feb 11, 2022

Sigh, I'm really serious, but, this'd be the way to help Visual thinkers, ' remember ' or, overview a script . . . $

Sort-of, like reading an ' image ' or, sort-of a classic painting . .

I'm not sure it fits in Godot, sort-of not sure how far one might ' push ' it, but, it'd be much better, than a search function, sort-of for artists, or, ' visual ' thinkers . . Question is, is this an acceptable feature, for the GODOT project, sort-of, a big help, so visual thinkers or, ' organizers ' . . . #thx . . . . :-OO ! . .

It's a bit weird, but some users, might find this the ' way ', to learn, or use code better . . .

That's all, #break #bitweird . . :-OO

I just hope you'll think about it, and if possible, make a modest, nice Godot - version, IF possible . . .

Sort-of, suddenly ' visual ' thinkers, artists could code much better, remember scripts or, ' overview ' them, it'd be a help, sort-of almost, an accessibility feature, for artists, ' visual ' thinkers :-OO . . .

I'd need it, use it modestly, but could overview 500 - 1000 lines of code, this way, sort-of easily, not sure, it might help others, esp. since visual script is getting good, almost best-in-class UI, though, it could be even better, if one had this, as the goal, question is, could it fit, in Godot, as an aid, or a ' help ', for certain coders . . . . #thx . . .

I suppose, artists could make much better code this way, but, how to ' make ' the feature, so on . . .

@charlesmlamb
Copy link
Author

charlesmlamb commented Feb 11, 2022

The end, ' visual ' thinkers, sort-of coders think bit, like this . . .

image

Many of them, can remember old paintings, how they painted, or here's the thing . . ' Why ' they painted . . . Etc . .

image

If I've seen a painting, for me comic, I can remember it, years later, the story . . .

I think, this would allow teams, of mostly artists, to do the sort-of coding, almost alone, sort-of allowing more people to use Godot, bit, of accessibility, or so . . #thx . . . .

It'd be a nice feature, if someone made it modest, modern and, robust . . :-OO Might fit, Godot, to add to Visual script, or so . . .

After you made it, the colors, shapes, or ' zones ' help visual coders break it down, into almost ' logic ', or so . . .

image

Sort-of, a slightly weird accessibility stuff . . One remembers moods, sort-of when, or maybe ' why ' one painted, or, added those shapes . . . It'd be ' visual ' coding, sort-of, at the highest level #impressionism #expressionism #modernism ? #thx . . .

Be a big help, for me, I'd sort-of use it, for most, of my projects, might finish them faster, or, just ' better ', etc . . . Is it, possible, could one have this mild accessibility feature, or so . . . Not sure, it's ' too ' weird, had to be done well, sort-of modest, ' clean ' . . . :-OO . .

#cubism . . . I'd really like it, but, it'd have to be approved, as an accessibility, or well ' readability ' feature . . . :-OO . .

The question is, would it be popular, also sort-of used . . ? Might allow visual coders to do entire games, if it was #impressionism #modernism #expressionism and, #cubism, thx . . . :-OO The ideal, sort-of ' logic ', for visual thinkers, sigh . . :-OO #thx . . .

@Zireael07
Copy link

for me, I'd sort-of use it, for most, of my projects

Saying "I'd sort of use it" doesn't make the devs more inclined to develop this. You're the only person to request this, you request a lot of things around visual script (which is nice! but devs have their hands full with 4.0 atm so there's no one left to really improve Visual Script currently), and you only "sort of use this"?

Also: I completely get the point that having colored lines would make the overview readable at higher zoom levels and that it would make it look like an abstract art, where you don't need to see the details to get the point. That is a very good point, but again... I'm sure greater customization for VS (which will allow achieving your desired effect) will come, but not very quickly.

@charlesmlamb
Copy link
Author

charlesmlamb commented Feb 11, 2022

What I mean sort-of, is I'd 100 % use, I'd just not use it, like sigh cover the screen, in shapes, I'd prob. make this, for most scripts, sort-of that level . . .

image

If I could add a few abstract shapes, perhaps sort-of an ellipse, that'd be what I'd use, in almost all the scripts, except very short one's, maybe 3 - 4 nodes, so on . . .

So, I'd use it, in almost every script, but, not COVER screen, in shapes, that's all . . . .

Last, what might help visual thinkers, sort-of was stickers, or shape decals . . .

image

I'd recommend, sort-of eight colors, red, green, blue, green, and, inbetween colors, cyan, magenta, or so . . Violet, one more . . . It'd be like placing ' notes ', on the canvas, for a ' visual ' coder . . . Sort-of ' reminders ', you'd HAVE to be a visual thinker, to understand this, to others it'd be non-sense, I'd use some, prob. 10 - 20, for a really big script, others might use it more . .

I could make a similar ' overview ' system, for ' logical ' thinkers, it'd be for written code, sort-of they'd not use shapes, but math-symbols, number, say letters, and, symbols . .

image

It doesn't belong here, but if one could add symbols, to the overview chart, or, next to it, but readable . . One could overview big scripts, if one was ' logical ', etc . . .

It'd be a new suggestion, so it's only an example . . .

image

If one could add ' symbols ', that are custom, or unique, written coders could overview 10.000-20.000 lines of code, it's to show the same thing, so written coders can understand it, will make another suggestion, later . . .

For ' visual ' thinkers, it'd be shapes, like this . . . Quickly, for written coders, one would need THREE colums, with notes . .

1st column: Number
2nd column: Letters, symbols
3rd column: Algebra, or math logic, or so . . .

image

If a written coder, ' expert ', could write NOTES like that, in columns, next to the code, and, it'd appear, in the sort-of mini-map, it'd be possible to overview vast code, by thinking of it as math, logic, words, or, code . . .

This is the idea, for visual code, I'll make the one for written code, later . . .

It'd allow a very ' logical ' person, to overview 100.000 - 200.000 lines of code, and, know exactly where to zoom in, or, find some line of code, etc . . .

I think, both systems should be in Godot, to give world-class coding experience, I can only explain the visual stuff, I mostly understand the logical stuff, 98 %, but, that's where I can't 100 % see it, etc . . .

Sort-of hope it might get done, not sure, is it a good idea, thx . . !

@charlesmlamb
Copy link
Author

charlesmlamb commented Feb 11, 2022

Suddenly, order appears, from the chaos, it'd work as an overview, or sigh ' comprehension ' tool . . $

Suddenly, some crazy complex code, at the highest level, is just some symbols, letters, or equations . . It would only have to make sense, to the person writing it . . Idea was to make it, for visual coders, it'd also be possible, for written coders . . .

image

It'd be like having a phone-book, for WRITTEN coders, where they'd have an ' overview ', of the entire thing, by looking at the letters, numbers, symbols, etc . . $

It might be the BEST coding - experience, one can make . . Was hoping we could perhaps get it, for ' visual ' coders, don't write code, been thinking about it, for now, visual script does work, so on . . . Will have to make a new suggestion, for the written stuff . . . Would be possible, to almost ' remember ', where a single variable was SET, or so . . If, one was really good, even for 100.000 lines, of code, or so . . $

Technically, an ' accessibility ' feature, for visual coders, for written coders, it'd just be a simple over-view sort-of system, etc . . . I hope, we can get both, in a modest, functional, and ' nice ' way . . . :-OO

@charlesmlamb
Copy link
Author

charlesmlamb commented Feb 11, 2022

One could even add, a fourth column, for written coders, with hex, or, so . . .

image

It'd be clear, the entire thing, from the highest level, to, almost details, etc . . :-OO

Sort-of, I use visual script, that'd be the ' written ' code side, #thx . . .

If one could read hex - stuff, that'd be the last column . . Maybe, a short one, #F04D, #BA74 . . Classic overview, almost, like code, etc . . ! Was hoping, some people that are experts on visual script, might help, at least make the visual script version, etc . . .

Or, I'd have to learn written code, no big problem, just, don't have the time, to study it, for six months, like, well at school . . . .

Having, it for visual script, would be a big help for me, it's mostly useful, works, almost like coding system, don't really need written code, if it runs well, the visual stuff, it's gotten much better, can use either system, both, are nice, for now, I use visual script, #thx . . !

@charlesmlamb
Copy link
Author

So, I'm talking about making the coding experience, 200 % better, in Godot, written coders, also, for ' visual ' thinkers . . .

That's why I think it's important, and, maybe could hopefully, be looked at, thx . . !

@SilencedPerson
Copy link

Good lord, Charles, you need to learn how to get your points across in less than book worth of characters and much more coherently.

@charlesmlamb
Copy link
Author

charlesmlamb commented Feb 11, 2022

It's fine, it'd make coding 100 % better, maybe 200 % . .

Sorry, it was difficult to explain, had idea about yesterday, took few hours, to think about it, before posting, still didn't know 100 %, the details . . .

In the end, it doesn't matter if it happens, I'm not that visual, can also just learn code, I like visual script, thought it'd be faster, as well . . . I think, one thing I forgot, say a person was very visual, in thinking, etc . . Right now, visual script might not be enough, this might help even more people code, or, work on sort-of more impressive projects, solo, or, in say small teams . . :-OO

That's why I took so long, wanted to explain why it was important, gotta go, can just use it as it is, not really that visual, for me it'd be a modest help, I'd use it, if it was there, to code, so on, I'd use it in almost all the scripts, in a modest way . . .

@fire
Copy link
Member

fire commented Feb 19, 2022

My best design was a Google Summer of code to do visual script modules. We had integration problems with Godot Engine master.

The idea was use computer science abstraction to group and ungroup nodes.

I don't think better styling will change the number of information-bits in the graph. A node that represents many other nodes will.

godotengine/godot#45294

@charlesmlamb
Copy link
Author

Sigh, this is problem explaining this, to people that are not visual thinkers . . It actually helps, for me, if I read an old comic, seeing first two pages, I can remember everything, story, almost dialogue, characters . . .

Some people, have a really good sort-of memory, when it comes to visual stuff, they can remember paintings, some can remember an entire painting, in accurate details, just looking at a corner, guess it's more rare . . .

We need that, ' group ' nodes into a single node, this is more an idea, for an mild ' accessibility ' feature, that will help visual artists overview big canvas, I think, if there are some, that are so visual, even the current visual script isn't enough, they could basically add stuff, and, almost anybody could code, it open Godot to more users . . .

Here's an exaggerated example, for most people, this is complete, sort-of almost chaos . . To a visual thinker, it makes sense, it's also easy to remember later, find details, or overview, so on . . .

image

To be clear, I don't think the feature, should be this much, I think it should have basic abstract shapes, geometric, and, not sure oblong shapes . . .

image

You'll find, people that currently struggle, with visual script, bec. it's too logical, might be able to code, and, do amazing things . . One can only add certain, basic shapes, sort-of at best, abstract shapes, etc . . My guess is, people that have even trouble with visual script, might be able to code, sort-of make almost infinite code, depending on how visual they are, so on . . .

It'll lead to, a group of people that currently can't use Godot, will be able to code, or, make more complex, or, even bigger scripts . . . It's technically a usability feature, or accessibility, but, that doesn't mean it shouldn't be there, sorry that's what I'm asking, need a break . . Again, I'd use it, a few shapes, esp. for big scripts, to overview, or so . . Later, some might use more shapes, it's not important, so long as it's only basic, or simple shapes . . .

My guess is, it'll lead to more games being made in Godot, esp. visual coders will be more confident, and, perhaps, more productive . . . It'd work for me, that's why I'm asking, I think, every single visual thinker will be able to code more, assuming they think bit like me, sort-of remember shapes, colors, is in a way, easy . . .

To be honest, I'd use in sparingly, modest . . But, in almost every script, unless it was so simple, or, almost redundant, I think it'd make Godot a better coding experience, easier to learn, or, understand, thanks . . . . !

@charlesmlamb
Copy link
Author

charlesmlamb commented Feb 20, 2022

If you did this, I'd be able to code more, also, more difficult, or, advanced stuff . .

It'd be easy, to remember later, overview, find details, and, ' generally ' understand . . . I don't know why, always been a bit visual, not, that much, but it's a big help, don't know how many others would really use it, I think every visual thinker, or artist might use this, to better well code, so on . . . .

The question is, since it's technically an ' accessibility ' feature, it'd have to be approved, as that . . . That's where, it's sort-of a decision, for engine coders, if there could be some accessibility features, also, for the more visual coders, that'd use it alone . . .

The advantages, have been listed above, better games, more complex, or varied / difficult, from visual artists, creative, more . . .

It'd be used, not differently, but to different sort-of degrees, by artists, depending on how visual they are, so on . . .

Having the basic, abstract shapes would be enough, etc . .

Add : It'd mean a team, of visual thinkers would need one, maybe two projects leads, to make something like say GTA, so on . . . It'd be quite powerful, allow visual coders to work more alone, or, in small teams, finish more complicated projects and, maybe, have fun . . . Some people, that can't even use visual script, right now, would be able to start coding, or, perhaps learn coding . .

Those are reasons, I think it's important, etc . .

This is prob. the edge, of how far one could or, should go . . .

image

I think, it'd allow many more people to Godot, or code, and, finding the right balance, it'd be a nice feature, as well . . .

This, sort-of abstract shapes, etc . .

image

It'd allow visual thinkers, to remember, overview, or ' read ' really big code, for some, almost infinite, so on . . .

@YuriSizov
Copy link
Contributor

Closing this proposal as we have officially discontinued the VisualScript module. It may return in future as an engine extension, then all the feedback can be reevaluated by maintainers of that extension.

Thanks for your suggestion nonetheless!

@YuriSizov YuriSizov closed this as not planned Won't fix, can't repro, duplicate, stale Aug 24, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants