Visual programming

I think I’ve not been clear enough and I involuntarily mislead you into thinking something that is not true.

With visual programming (again, we’re talking about node based visual interfaces, like the blueprint system of the Unreal engine), you can do exactly the same things you can do with text based programming, with the exact same computational efficiency.

Same input, same output, same algorithms, same resulting program.

The difference is purely interactive (you don’t type characters, or type way less characters, it depends on the user interface) and visual.

With text you get a sequence of words, with nodes you get trees.

And that’s the problem.

Text remains structurally linear. It doesn’t matter what kind of algorithm you use if for. It can be an exponential one that uses a thousand nested IFs but it will be presented to the user as an ordered sequence of words.

Trees don’t do that, the visual complexity of their structure matches the complexity* of the algorithm. When you have a branch in your algorithm, you get a branch in your tree.

That’s the difference and the unsolved problem. Not speed, easiness, powaaa!. It’s even more than reasonable to think that it should take less time to learn how to write a program with a visual tool. Programming languages have highly constrained syntaxes and that’s an aspect that it is better depicted by something like a disabled button or a grayed out socket, text can only tell you that what you wrote was wrong after you wrote it, it’s not good at giving you preemptive feedback. A wonderful feature, that’s why people thought about visual programming.

But it becomes an unfathomable mess, with a rate that matches the growth of complexity* of your program.
Granted, 100%, no way to avoid that is known to human kind at the present time.

*this is not strictly computational complexity

Lucrecious, I lured you in the same trap I inadvertently laid out for Leinadien. And thanks to your quote I also see where.
I used “better”, a thing I should be (and I am) ashamed for. Metrics and quantities pgi, metrics and quantities. Astrologists use “better”.
I am sorry.
I think I clarified (and quantified) my thoughts in the reply I posted (above or below this repentance).

Yeah that’s agreeable - text doesn’t match actual complexity. I can write incredibly complex code without it being impossible to read (which is what I think you were getting at). So because of that, the the fidelity between the thing presented and what is actually observed, isn’t really a negative to me.

It also would be really nice to receive preemptive feedback, but that’d be equivalent to solving the halting problem lol (if it were to work in all scenarios).

Maybe I was unclear, if you know programming there are few reasons you would abandon it and only use visual programming like blueprints. That’s what I took from your post and I grant you that, but we’ve not got infinite time at our disposal. Some people just need nothing more than letter by letter text and a frog jumping around on moving platforms, no more no less. Six months of studying to achieve that, or pulling some logic bricks together, the choice is obvious. You’ve already spent 6 months, years coding, some of us haven’t got that time, we’ve spent that time on art. I see little point of discussing replacing traditional programming with visual programming, a programmer would obviously prefer using text. An artist would prefer to put something together with nodes because it’s easier and faster to LEARN.

I think I went ahead and solved the whole game logic thing as far as bge goes.

I could use a faster path finder but check this out.

An artist would prefer to put something together with nodes because it’s easier and faster to LEARN.

I disagree.I do not think it is faster to learn.

[TABLE=“class: grid, width: 600”]

Textual
Visual
Better?
Time

Interaction
Typing on keyboard
Clicking with mouse
Text
Day

Syntax
Learning what order words have to go in, and when to use which bracket

Learning what order elements have to go in, and when to use which entity.
Visual
Week

Programming
Figuring out how to make the computer actually do what you wanted
Figuring out how to make the computer actually do what you wanted
Neither
Months

[/TABLE]

The week to learn the interaction and syntax is insignificant in comparison to the time it takes to learn to program - which is dominated by something where neither visual nor textual is better. Figuring out what an if-then-else statement does takes you the same length of times whether you type to describe it or drag some visual structures to describe it. It takes time to learn the underlying concepts of programming, regardless of form of interface. Similarly with math (the majority of programming): dragging a brick that multiplies the input by two does not simplify an AO 2D filter. The underlying systems are exactly the same, visual or textual, and that is what it takes time to understand.

Examples from my experience:

  • When I learned BGE’s logic bricks, it took me a year or so to get proficient. When I learned python, it took me a year or so to get proficient.
  • When I learned blender’s material nodes, it took me 5 months or so to figure them out. When I learned GLSL, it took me a 5 months or so to figure it out.

In my understanding, programming in code teaches you the underlying concepts directly. You have to think about them. As a result, after learning python, you can pick up javascript, C, matlab and most other programming languages in a matter of weeks. But learning a visual programming system? Can you translate concepts from BGE’s logic bricks to Unreal’s blueprints? Nope. That’s because visual programming systems operate at a higher level of abstraction, and those abstraction layers both mask what is going on underneath (which is sometimes a good thing), and are different to other visual programming systems.

***In 2009 or 2010, somewhere on blenderartists, is me stating that logic bricks should be perfectly suitable for most projects. And then I learned python…

My advice: start small. Start by reading other people’s python and trying to understand it (normally reading it is a lot easier to writing it). Then try making small changes to these existing scripts. Finally, try writing your own. It’ll take several months, but it’s worth learning a programming language. It will change your life - even outside of the computer.


On the subject of learning programming languages, there was a paper, unfortunately I forgot the name, published by a group of uk universities’ professors (perhaps this year?), that analyzed the results of teaching the subject to undergraduate students, and concluded that no one really knows how to effectively teach programming languages.

Maybe (my hypothesis) text plays a role in that. Xerox-Park labs (there you go, paleo-reference) went visual when they studied a platform for teaching programming to children. A different kind of visual than plain nodes though - anyone can check its spiritual successor, the amazing Squeak platform.

It clearly didn’t succeed - we still use text. But it’s inspiring.

@lucrecious, I think the halting problem is (of course) absolutely true in being undecidable but a bit overrated. We don’t write any possible program and we don’t have ideal turing machines. In particular, if you there is an upper bound the amount of memory used by the program - a thing that depends on the algorithm - then we can always check if the program halts. But we can also relax time: we may not be able to decide if some program ever ends but we can definitely check if any implementation of a program ends in a given amount of time. It’s not logically useful - you can’t prove the program ends - but practically it’s all that matters.

That’s a complete misconception. Why don’t you just learn programming instead of lamenting how your lack of autism is holding you back from being a great programmer? Abstraction is very important in programming these days and most programmers are not autists.

I hope blender’s game engine realises that great visual programming enables the engine to be used by people who understand visual mediums better than those who do math.

The math in most programming is simple logic and arithmetic. Everybody who finished grade school can understand it, it’s just that people don’t have the patience. A visual programming language will not absolve you of this.

You’re getting a wrong impression because you’re used to getting a lot of high-level “lego bricks” which you can use to achieve some things. If you don’t understand how to create those bricks yourself, you will be forever dependent on someone else to make them for you. If that’s what you want, you need to team up with an actual programmer.

Back in the 80s programmers made games, today they’re made by artists, it’s important to acknowledge this and enable artists to make indie games.

The vast majority of games today still can’t do without “real” programmers and it’s absolutely not important to help anyone make more games. There’s more than enough indie games. Who is gonna play all that stuff?

Making it easier for impatient would-be game designers to produce games on their own will just result in even more sub-par games being shoveled onto an already oversaturated market.

This is probably one of the most pointless discussions I was ever involved with. Learning one or the other aside…textual programming is more efficient period.

If you want to make a mario game…knock yourself out with bricks…or nodes or whatever…it will still be a mess…
Textually it will probably be about 1000 lines with sound, level changes animations …everything…some could do it in less, but not me…I am a crappy coder :slight_smile: I merely scrape by…learning what I need when I need to.

Dude, you seriously underestimate what people on the spectrum are capable of art-wise , I don’t know if you buy into the stereotype that all autistic people are stupid, but I have noticed that none of these statements come with links to studies that would back them up.

Also, I do wonder what your obsession with autism is. There is a trend on the internet right now where people are pretending to be experts on the subject, “diagnosing” people who don’t actually have the condition, and using it as a derogatory term. Are you one of those people?

In the 80s games were made by programmers, from the mid 90s to present time they’re made by artists. (Except crappy indie games)

I can’t tell if Leinadien is trolling or not lol

The top Steam games are all mostly made by programmers LOL It’s not that artists aren’t good at making games, it’s that games need to be coded somehow, and thus, most games are created by primarily programmers (many of whom are acquainted with some art as well).






Clearly, because I am on the spectrum, I am not an artist.

True, you can make a good game with poor graphics, but it never EVER works out with nice graphics and crappy code. I would like to see someone prove that wrong.

I do not see that programmer and artist are exclusive. They are more or less two different roles (dependent on the interpretation of artist). Both need skills to create what they want to create.

Visual programming and text based programming are both “skills”. They have to be learned (trial and error is a sort of learning too). In my mind the biggest weakness is not to know how to use either of them. It is the ability to determine what you want to achieve and use the available skills to implement that.

If you do not know how to describe the behavior of an healthbar, the best Visual programming tool will not create an healthbar neither the best IDE in the world. A good library can help (e.g. when it provides healthbar behavior).

And still even when you know the syntax and a ton of libraries and all the little gimmicks of the tools of your choice … you still need to know what you want to get. Be honest, most of the time we just have vague ideas that are not even on the same level or have any relevance.

you can make artistic “game” and some simple games only with visual scripting tools but for a more complicated games need learn some lanquage…and Python is cheap for learning…learn along with your game…from simple code to more complicated code and repeat…learn new piece of code and repeat again…write logics/functions by words exactly what func. must do in your game…learn by examples of code.For a oneman team dev. is’nt another way…learn it’s not that hard😀 With Python in your pocked you can use Upbge(bge) or Godot engine because Godot’s haveGDscript lanquage similiar to Python…you can only win.I’m artist but i can Tell you …I enjoy code…is creative too

When I learned BGE’s logic bricks, it took me a year or so to get proficient. When I learned python, it took me a year or so to get proficient.
When I learned blender’s material nodes, it took me 5 months or so to figure them out. When I learned GLSL, it took me a 5 months or so to figure it out.

That’s a long time, I learned using cycles’s material nodes over a weekend and logic bricks in an hour.

I can’t tell if Leinadien is trolling or not lol

The top Steam games are all mostly made by programmers LOL It’s not that artists aren’t good at making games, it’s that games need to be coded somehow, and thus, most games are created by primarily programmers (many of whom are acquainted with some art as well).

I’m not thinking of super meat boy or farmville, I’m thinking of games like:
•Dark souls
•Final Fantasy
•Tekken
•Assasin’s creed
•Mass effect
•God of war
•Total War

You’ll find that if you want a lot of people to play your game or if you want the people that play your game to be of a certain quality you need to incorporate good music and art into your product. Otherwise your game is going to look like some game from the 80s and yes there’s an audience for such games, go make a goat simulator or tetris, but don’t think such games could possibly compare to any of the games I listed above. What makes Tekken more popular than other fighting games isn’t the gameplay, it’s the characters, stories, music and graphics. Programming is hardware, stories, characters and graphics is software.

Also, I do wonder what your obsession with autism is. There is a trend on the internet right now where people are pretending to be experts on the subject, “diagnosing” people who don’t actually have the condition, and using it as a derogatory term. Are you one of those people?

I have been on multiple forums, some for modding and others for actual game creation. Always I have had to confront self proclaimed autists about some issue that grinds my gears. For instance a poorly made port of some game was released on steam some time back, I wanted to fix the port so I could send it to my buddy as a gift. I made a topic on the modding forum listing all the issues and asking for ways to fix them. Lots of programmers responded, eventually we started to argue about what’s worth changing and what’s not worth changing. And then there was this one guy who was obsessed about changing all the music in the game to some techno beats or whatever, I argued my case too well and got all the forum upset, some guy didn’t know how to spell and just reading his posts made me lose IQ points, so I called him “kid” because that’s what he seemed to be to me. Then it turns out he’s autistic and not only he but the moderator too, long story short I was banned by autists for wanting to make a pc port more truthful to the original game. I have had similar experiences on other forums and this forum too. You’re autistic, fine, I don’t use it as an insult I use it as a statement of fact. How you feel about being autistic or gay or whatever it is, that’s your issue, don’t ban me for it.

Your problem with me is that I point out that programmers don’t make good artists and that artists is the reason games have reached higher quality in recent years. It uspets you because you’ve spent years under the illusion that programmers make games and not writers, composers, artists. No offense but in some ways you’re like some guy walking into an auditorium telling the composer to play some reaggae music. Your opinion is just as valid as the guy who has spent all his life mastered all instruments and composes highly complex classical music. Yes you can model a minecraft character or maybe even some little cartoon blob but don’t equate your creation with this.


I would never say I know how to code better than some of you guys because I don’t, but for some reason people seem to feel they understand art just as well as any other person. Maybe it’s because it’s so easy to understand the method by which art is made and therefore people think they’ve mastered it. Using a pencil or a chisel or even pulling vertexes around, easy. Yes but you’re still no michelangelo and you still would not understand how to make a game graphically appealing. Instead of speaking to you I’m going to use myself as an example.

I would never tell a composer of music how to make good music for something I’ve made, I might say; I’ve made this barbarian figure, he needs a theme that would fit a barbarian. I wouldn’t be more specific than that because I don’t understand music to the same degree as the musician. It’s the same thing with any person who has more or less mastered some medium. You don’t tell them how to do their work unless they’re your peers, without exception what every single one of you seem to fail to understand is that artists, musicians and writers are so so so important to make a game good.

Try to acknowledge this and then realize that blender’s game engine, if it’s going to be used at all it’s going to be used by indie developers. Ok so a very small team of people are going to be using the engine, hmm how do we as blender developers ensure good games are produced by the engine. Do we try to convince artists, writers and musciains to spend 6 months learning C# or other programming languages, or do we develop the logic bricks further? I think the answer is obvious, yes you would see a lot of 3d platformers, sidescrollers and racing games. But surely such games would be preferable to running around as a cube or rolling down a hill as a rock.

Logic bricks are very limited and they could usually be represented with a few lines of code. Learning and understanding those few lines of code would also not be that complicated. That’s why they are also very limited.

Whenever there is a team that wants to create a game, they have to understand the medium they are using very well. Usually, those teams need at least one programmer or technical artist who creates the necessary framework and tools for them, such that they can focus on their work.
The gap that is being bridged by those people is likely larger than you think. The work they are doing is usually not trivial and can’t magically be removed.

Creating games is a hugely collaborative effort. That is in the nature of this medium. If you want to have interactive music, which changes or adapts based on the wanted mood, it would be pretty dumb to let your musician implement it. The time of the musician is much better spent if he can work with a programmer to realize that vision exactly as needed.

You answered by yourself:

=> A composer should not tell a programmer how to program unless he has the role of a programmer too.

There is no need for a composer to program. That is not the purpose of that role.

Naturally a person can have several roles. Each of them with different skill levels. As written earlier, these roles are not exclusive.

The whole discussion reminds me a bit of the human organs arguing which one is the most important.

I agree, visual programming can help that non-programmers can easier pick up enough skills to describe behavior. A person might be a bad programmer, but it can be good enough to create a game. The same way a programmer with simple modelling skills can create good enough models. I think the logic bricks in Blender are “good enough”. As a skilled programmer they feel limited (you still have python). If there is another alternative for visual programming, I’m sure it is welcome.

The typical issue is, that you need all roles but you have just one person. This often results in one aspect of the game that is pretty good while some are ‘OK’, and others are bad or simply not existent. To become a jack of all trades means you need the skills for all of the required roles.

I guess this is where this “programmer vs. artists” perspective is coming from.

We all know that high quality games need high quality in every aspect of the game. That is something a single person can hardly achieve. You can create quality games by working with other people with complementary skill sets. Blender can help as contact point (e.g. via this forum). And yes, it means you have to deal with different ideas, opinions and perspectives too.

One can have visual code nodes, representing code that can be edited.

(ie both)

Also, one could have generic “folders” you add inputs and outputs to,

These could be accessed with logic inside the folder.

These folders can have states, and also can collapse/expand
(external and internal logic can edit the state)

With nodes that are Python and built in nodes on a left to right node graph you could indeed code your face off.

If you want a new visual programming(new node logic) you gonna have to write a design doc.