Why Do You Use Visual Scripting??

Since recently more and more of these tools seem to pop out of the ground, maybe now is the time where an artist or a non-programmer can explain to me how imitating scripts using a visual designer can be easier than programming ;)? I tried so many just for fun in the past and I always feel like in a prison… But well, I am programming since I can think, though… Actually I think if you can control one of these scripting tools you should in theory also be able to write scripts yourself ^^. It does somehow “visualize” the syntax, doesn’t it? So why not just learn the syntax and write code? Isn’t this more like drawing what you want to say, just because you can’t speak ^^? I think here, everyone would agree that learning how to speak is more rewarding :wink:

Please note: This is not to offend anyone. I am seriously interested in your reasons for using something like that!

Yes knowing how to program would be more rewarding in terms of what you can and can not do, snice those visaully scirpts are highly limiting. They are also confusing to me, but I bet if you can find one that does exactly what you want it to do and actually learn how to use it, it would be quickier in the short run to use. Some poeple also can’t even wrap there brains around programming, but they still want to make games so they use visual scripts. I would prefher programming form strach if I could, but I can see how those things are becoming popular.

simple visual scripting is shit if u know how to program already…and i dont think ppl who are good at programming would prefer visual programming.

and more over it is pretty much limited.

From an artist point of view, it’s kind of like using prebuilt materials vs. writing your own (obviously visual scripting is much more limited), but for quick turnaround and prototyping, it’s a great tool for people that either don’t have the time to learn how to code, or simply don’t have the capacity to learn how to code. If you are a developer, well thats like me using crayons to try and create fine art, just not gonna happen. Overall I like it–it gives artists a chance to get something in game instead of always having to rely on somebody else (which feels extremely helpless and not good)

Visual scripting should be the way you do programming. I believe humans are more wired to the visual than to language symbols. That’s way visual representation is more appealing to newcomers in programming. Or artists.
But for many of us the training in symbols started with learning how to read and write starts so early that it seems like a second nature. Some get very skilled in understanding relations between those symbols and so they become very skilled with things like OOP. Is not easy to grasp the complexity of an normal project, to visualize and understand the relations between various entities, the normal flow of an application.
Not to mention is a complete nightmare to grasp the logic of a project only from code. That’s why UML was born.

What I expect from an editor like this is to help me understand the big picture and let me see the data flow. I’ve done something similar in university with National Instruments software and it was very easy to understand how those circuits function, just by looking at the data flow in simulation.

I can code. In fact, I find it a trivial task. What I can’t seem to understand about all these “too cool for visual coding” opinions is what is so inherently limiting about visual scripting as a concept. Obviously specific implementations may have limitations, but that’s not an argument against the general concept. The closest I’ve heard is “well large scripts can be confusing with all those connections”, and my first answer to that is, so can a wall of text with minimal or meaningless comments and lazily named variables, and if that is the issue, you should probably look at the fundamental design of your code, not the language/interface you’ve chosen to construct it. I also think that what is “confusing” is highly subjective, as some people can look at the large spiderweb and see what is going on, believe it or not…

Plus, I see a lot of so called “coding experts”, whose problem solving abilities seem to start and end with: implementing an already created algorithm they found on the web, into whatever their “language of choice” is, all the while talking about how the particular syntax they happen to know is vastly superior to something else for the one anecdotal piece of data they can provide from the curve of information.

This makes me think that they mostly learned to: memorize keywords, basic structures, how to search and implement pre-existing libraries, and how to translate. As far as I’m concerned that is pretty much not what programming is about, and pretty much equates to “code monkey” rather than “engineer/computer scientist”.

Regardless of my little observations, in the end, completing a game/project that runs well enough, that you like, and/or others like, or enjoying the process if you’re a hobbyist, is all that really matters, so use whatever makes that a reality, no matter what type of “code monkey” you happen to be. :smile:

I dont use visual scripting probably never will.I just like old school coding when i make something and say to myself “Oh thats cool i just made that thing move!” and i fell happy like a little kid with a lollipop xD.

I could imagine that in the future there could be a hybrid system.

  • Create blackboxes with input/output with traditional programming.
  • Wire up the Blackboxes (Modules) via UML or something like it.

Just like today, you do alot of Enginnering in UML and then ship the Design of to India for them to implement that.

Why do people use photoshop instead of paint and brushes? Why do people use word processors instead of pencil and paper? Why do people eat out instead of killing and cooking your own food?

Oh, and I’m dyslectic so code is usually just a jumble of letters and symbols.

And they send you back a product that doesn’t work the way you ‘visualized’ it. Then you spend the next 3 months coming into work at 3 in the morning so you can talk to your offshore division / subcontractor and tweak the product till its actually complete. In the process, you end up reworking large portions of the work they sent back anyway.

At least that’s the way it happens for me. :frowning:

I am with you on that one andorov :sunglasses:

Thanks for all your answer ^^. Even though I still don’t really get it the point about Visual Scripting…

I don’t think that this has much to connection ^^… What you mention are actual improvements. This is more a step backwards so to speak ;).

Sounds like a great idea ;). No wonder that all these software often is just a piece of crap (nothing against the indians, but software dev is nothing like mechanic production you can just outsource to china)…

Yes I am pretty sure something like that will come, at least for general software, that only requires this kind of connections…

Well it is pretty simple. Seeing the symbols on screen is visual scripting as well and it is the most flexible form (as for now) to do programming ;).

I agree with you that someone like that is a coding monkey ;)… But as you said that is not what programming is about.

I disagree… ^^ Maybe something hybrid like joshimoo suggested. If you can program, it will probably be like for me. I think not one single second how to “express” my idea in code. It just pops out. The only thing I think about is what I want to do… And coding this way is just the most efficient way for now, to get the computer doing what I want ;).

Yes I thought about that. Still I don’t get it what is so hard about coding? What I mean is that the flow complexity is not hidden by visual scripting anyway. So that can’t be the reason. It really has to be the syntax then? To “see” what is going on just from text ^^?!
And yes, I get brain damage when working with blender or Maya for more than an hour xD. I think I will never get past the basics there…

I use Playmaker simply because I don’t wan’t to waste time writing my own FSM.
I use Universe simply because I don’t like to write code all the time and diving into Unity’s docs everytime I don’t remember a method I did not use for a long time.
I don’t use uScript because I felt like I were in jail using that.
Still most of the time I’m writing code to build my own tools/nodes/blocks I use and re-use in Universe. Thats nicer for me than reusing generic libraries of code I wrote a year ago and remember nothing about it, wasting a lot of time reading stupid comments and reverse reading program flow to figure out what I did in there to make it work.
Its not about “because people can’t code”. It just saves time avoiding a lot of trivial tasks.
But theres some little things where you can just write a small script and get it made quicker than visually building.

The only thing I don’t like about those tools is that some of its sellers keep on saying no-coders can build entire games using that, not knowing anything about coding and thats not true, I hate this kind of erroneous advertisement. People who can’t understand program flow will never build an entire game, at least not a polished one.

Well ok ;), but that is more your fault then…

I think I am right in saying that there is nothing more efficient than programming to avoid trivial tasks ^^. Name me something trivial you have to repeat more than once in programming…

I can understand that people who can’t program don’t have the time, etc. to learn it… But once you can program, I mean where you really can program, I can’t see any reason you would ever need something like that again. That is just what bothers me right now since some people here claiming to program but still using these tools. that is something that I can’t understand at the moment ^^. Maybe I am missing something ;). Or is it more like even if you can already walk its sometimes nice to drive around in a wheel chair xD…

I’m a designer, though I’ve always been interested in programming, I played with basic when I was young and didn’t get much further than some asteroid type games.

Then I started to use grasshopper for rhino3d, which is a generative and parametric modeling add-on for rhino which lets you script visually… this makes perfect sense in this program as the primary user base are architects like me, (or other designers).

Using grasshopper made using universe very easy for me to understand.

For some reason, I feel much more comfortable in universe than in mono develop. I like having methods displayed with all the arguments I have to pass them organized so I know what the inputs and outputs are expected to be. It’s like a complex physics problem where all you know is what the units are supposed to end up as.

I’m learning more translating code I find to work in universe, than I ever did trying to read it. I’d read a section of code twenty times and have to re-read it again… and draw it!

Now as I build the graph it all just kind of clicks… maybe I’ll stop using universe eventually, but I really dig it. hah.

As an artist-turned-programmer, I think the main draw to visual scripting is this:

The left side being C# and Javascript/UnityScript, and the right side being a visual node. At a basic level, the node seems incredibly simple in comparison to having to worry about where you’re putting your variable type, your semicolon, your equals sign, etc. I was very drawn to nodes when I first tried to work with a game engine and Cinema 4D.

Eventually, I learned ActionScript 3.0 for Flash, and later switched over to Unity. Then I took a class where we had to use Kismet in UDK - all the draw that had once been there for node system was gone. Kismet felt like being put into a straight jacket and being told that I needed to run through a maze in order to figure out why I was in the jacket to begin with.

Essentially, visual scripting makes very simple scripts more simple, but as your needs get more complicated, your “visual scripts” get exponentially more tangled and messy. Largely, this is because there are lines connecting everything, but also simply because, in most cases, the only way to reference a node’s output is to use the same node for everything that references it. Obviously this could be countered by allowing users to create “instances” of existing nodes - but that really just makes for more boxes and lines to get lost in.

In my opinion, there really needs to be a focus on making text-scripting more approachable for visual thinkers - mostly through the programming environment. For example:

  • auto-highlighting all references to the currently selected variable
  • views that show the contents of a method you have selected without having to find the method itself
  • auto-filling
    () {

}
whenever you type “if”

  • auto-filling an “else” or “else if” if you start typing on the same line that an if is closed.
  • right-click > new variable > list of types ordered by commonality and recent use

Anyway - that’s my 2 cents.

689312--24791--$Untitled-1.png

deram: the points you mention there are exactly why people should:

  1. Stop using unityscript. Yes its nice but even if the pace the stuff for it is done is doubled you wait till 2012 before it gets on a level where it can compete with what the C# IDEs do today already. Also unityscript lost any benefit since C# 3 as you can use var bla = new GameObject() or whatever too)

  2. stop hating MonoDevelop cause it does all that stuff

  3. Just for the hell of it use MonoDevelop / Visual Studio and realize that unitron is a crap editor lacking more features than it offers compared to MonoDevelop and VS :slight_smile:

and you don’t even need right click. press the auto complete keycombo (I set it to ctrl-space as thats what VS has too, I think standard is ctrl-. or alike) and the autocomplete list pops up. Same happens as you type to complete the current text with possible classes or variable names, when you add the . after a variable, all possible functions for the objects are shown etc

Visual scripting has now come to a level in which it’s actually not limited more or less then a text based scripting or programming language. For instance I used both C# and antares VIZIO a lot. But in essence they can both produce the same complexity of code but the benefit of visual code is that it’s more readable and editable at runtime. That is if you refactor right otherwise it can become a very messy plate of spaghetti. C# kinda forces you to code in one mindset thats what I like about C# also if other people need to understand my code it’s better to use C# because more people use it. But for myself when I’m doing a project alone I prefer visual scripting clear benefits are:
readability
editing at runtime
never make a syntax mistake ever again
seeing the program flow
using own colors and symbols besides text
code reusability (if you have something that works just make a block out of it)

I started out as a text based programmer with basic first later moved to C++ and then I got to know visual languages Quest 3D and Virtools. For me Quest 3D sucked but I kinda liked Virtools. Now switched to Unity I started out with C# but I’m seeing myself code in VIZIO more and more everyday just because I get things done quicker. There is no wrong or right better or less in either visual or text based programming. It’s just what you prefer.

Exactly, this is what I was thinking about too… I mean hell, how do you tell the visual script to do something like Voxelterrain ^^, while it will fail already with much simpler stuff.

Maybe that… But also about what you want to code I suppose. If you are going to write something more middle ware related you won’t actually use visual script ^^. But I admit, that for simple game logic and stringing together some blackboxes, visual scripting might really have a benefit. But this way you still depend on programmers to code these black boxes… Visual scripting reminds me of state machines somehow. And they get really messy as soon as the thing you want to describe causes state explosion, while it might actually have a considerable benefit for things like game states, where a clean visual state transition diagram will probably unveil more than some script code.

I can only speak for shader editing, but I started doing it with node-based/visual editors because it was a lot easier for me to get my head around the different functions and plugging stuff into other stuff and seeing what happens.

That’s a bit harder to do with raw code - especially when it’s entirely new to you.

But now I understand what those functions do, I code via text editor as most folk would.

So yeah, the visual aspect of chaining up clearly labeled nodes and plugging/rewiring helps to show the “flow” of logic that’s required. As a non-programmer myself, looking at code of intermediate-advanced complexity can often appear just a wall of gibberish text, with the logical progression being abstracted out into different functions dotted around the place. Kinda hard to follow :stuck_out_tongue: