Sign in to follow this  

Unity Visual Programming

This topic is 1181 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I posted on "Node Based Programming" a while ago, and I am still very interested in it.

 

http://www.gamedev.net/topic/650883-examples-of-node-based-programming/

 

There are a few links to examples there. 

 

Try out GamePress if you have an iPad. It is the best use of node programming. I wish it had desktop version. 

Edited by Tutorial Doctor

Share this post


Link to post
Share on other sites

A lot of high end engines are moving to node based approaches. The new Ubisoft Snowdrop (is that the right name???) does judging by the videos they've released, UE4, and most of the proprietary AAA engines use such an approach these days.

 

The most time consuming aspect of making a AAA game is content creation. You need to empower content creators (artists, designers, etc.) to build simple behaviours. You need to spend your SE time on difficult technical problems to set your game apart, not on grunt work scripting simple behaviours like windmills spinning and AI behaviours.

 

What are your goals with this? If you want to make money, you will probably need to find a niche. Maybe UE4 is more comprehensive and powerful, but if you can find a niche, like "much easier to use" for simple games or apps you could steal a segment of the market.

Share this post


Link to post
Share on other sites

Would you ever see yourself using such a system?  Are you planning to make a product or to provide an open source library?  I would say that if you are learning while you are building the system, then keep on going!

 

I actually do, even though I don't have a problem with programming, i think this would be much easier.

To be honest i don't think it will be open source, however i will be releasing a free edition for sure.

I have learnt more than i thought i would have, so i guess i keep going.

 

Thanks for your input.

Share this post


Link to post
Share on other sites

The problem with them for general purpose programing is that they become unwieldy very quickly.

 

I understand the graph spaghetti madness problem, but i have a couple of ideas that would reduce that as much as possible.

 

Thanks for your input.

Share this post


Link to post
Share on other sites

I posted on "Node Based Programming" a while ago, and I am still very interested in it.

 

Well im happy to see somebody's interested in it, shall let you know when the first beta is out :)

Share this post


Link to post
Share on other sites

A lot of high end engines are moving to node based approaches. The new Ubisoft Snowdrop (is that the right name???) does judging by the videos they've released, UE4, and most of the proprietary AAA engines use such an approach these days.

 

The most time consuming aspect of making a AAA game is content creation. You need to empower content creators (artists, designers, etc.) to build simple behaviours. You need to spend your SE time on difficult technical problems to set your game apart, not on grunt work scripting simple behaviours like windmills spinning and AI behaviours.

 

What are your goals with this? If you want to make money, you will probably need to find a niche. Maybe UE4 is more comprehensive and powerful, but if you can find a niche, like "much easier to use" for simple games or apps you could steal a segment of the market.

 

That's what i thought, however these are game engines, mine is used for creating applications, but i could use the framework to make a game engine too.

 

The whole point of this program is to give non-programmers a chance to be able to create applications without coding. I can see that there are some engines out there use the same concept, but is there really an actual piece of software for creating applications and not games?

Share this post


Link to post
Share on other sites
You may want to take a look at Lightswitch - a system MS has made for creating line-of-business applications built around data storage and manipulation. It's not really node-based, but it's an interesting way to create applications with a certain range of common business-oriented tasks.

If nothing else it may give you implementation ideas smile.png

Share this post


Link to post
Share on other sites
You might also want to look into LabView. It's a graphical programming IDE to control lab experiments.

I personally dislike graphical programming because I think it has too many downsides when compared to text based programming. Things like diff / patch generation, source control, copy&paste, typing speed vs. clicking speed come to mind.

However, there are certain use cases, where graphical programming might be adequate and I would call those (for lack of a better word) "scripting". Stuff that controlls some high level aspect where all the heavy lifting is done by functions/nodes. Stuff that needs to be put together fast. And stuff, that is only intended to be used once, or in a single situation. This holds for pretty much every usefull graphical programming language I have seen, from cutscene editors to node based shader editors to stuff like LabView.

I believe, that if you want your language to be successfull, you should aim for those usecases and provide powerfull nodes for it. For example a graphical shell/bash scripting environment where I can quickly script a search for a file, based on content. Or perform batch resize/rotate of images in a folder.


Actually, come to think of it, mobile phones might be a good platform for graphical programming. Without a keyboard, you don't have to compete with text based programming there and with all the sensors that can be accessed, and all the intents that can be send to other apps, there is a lot of potential for interesting nodes.

Share this post


Link to post
Share on other sites

You may want to take a look at Lightswitch - a system MS has made for creating line-of-business applications built around data storage and manipulation. It's not really node-based, but it's an interesting way to create applications with a certain range of common business-oriented tasks.

If nothing else it may give you implementation ideas smile.png

 

Thanks for mentioning that, i forgot about that, i shall look into it.

 

 

You might also want to look into LabView. It's a graphical programming IDE to control lab experiments.

I personally dislike graphical programming because I think it has too many downsides when compared to text based programming. Things like diff / patch generation, source control, copy&paste, typing speed vs. clicking speed come to mind.

However, there are certain use cases, where graphical programming might be adequate and I would call those (for lack of a better word) "scripting". Stuff that controlls some high level aspect where all the heavy lifting is done by functions/nodes. Stuff that needs to be put together fast. And stuff, that is only intended to be used once, or in a single situation. This holds for pretty much every usefull graphical programming language I have seen, from cutscene editors to node based shader editors to stuff like LabView.

I believe, that if you want your language to be successfull, you should aim for those usecases and provide powerfull nodes for it. For example a graphical shell/bash scripting environment where I can quickly script a search for a file, based on content. Or perform batch resize/rotate of images in a folder.


Actually, come to think of it, mobile phones might be a good platform for graphical programming. Without a keyboard, you don't have to compete with text based programming there and with all the sensors that can be accessed, and all the intents that can be send to other apps, there is a lot of potential for interesting nodes.

 

Thanks for all your input, that is kinda what im going for, where all the heavy lifting is done by the nodes, for example file search with all the search criteria will be done with one node. or other things that might require hundreds of lines of code will be done with one node.

 

Im not so sure about the mobile platform, even though with all the touch sensors (mine already supports touch input) would make it really good, but porting it to Android or iOS won't be an easy thing.

Share this post


Link to post
Share on other sites

I love visual programming, and I think it can be a very empowering tool in certain cases, like empowering artists to create rather complex logic and complex shaders when designing levels and assets. But I don't think it would be easy to use it for general programming. One idea that comes to mind about how this can be achieved is by exposing the majority of the API of an operating system, like the Windows API, to the nodes system and allowing users to create a program using those node.

 

Anyway, I worked for a while on such a system for creating hardware shaders, but it is still not finished, and I put it on hold. I am intending to pick it up again. Here is a screeny :)

 

sgss1.jpg

Share this post


Link to post
Share on other sites

What im doing just now is for general programming, but the framework that i have created is completely independent, so i can use it if i decided to create a game engine, or a hardware shader creator like the one you have done or a different thing. All will be needed is some extra nodes, which as you know if you have designed the framework well, it wont take long.

 

Your's look pretty good by the way, let me know if you wanted to exchange notes :)

Share this post


Link to post
Share on other sites

@frob, thanks for your input.

I didn't say it was a new thing, as a matter of fact i have used them long before i thought about creating my own.

I do agree with you, but this is a bit different, all of those you mentioned are game engines, what im going for here is general programming and more specifically windows desktop applications just now.

I was simply wondering if this is a good idea and what features it should have.

Share this post


Link to post
Share on other sites

In order for me to be interested in this, I'd want to be able to convert back and fourth between text and graphics. If you could make a visualizer for the control flow of a piece of code, and allow me to modify the code in graphical form, then it could be a useful tool.

Share this post


Link to post
Share on other sites

Already have that feature, well sort of, you can view the code if you like, but changing the code wont affect the graph, since the code is based on the graph and not the other way around, but you have to keep in mind this is the type of tool targeted mostly at non-programmers, so that feature wont be required.

Share this post


Link to post
Share on other sites

Already have that feature, well sort of, you can view the code if you like, but changing the code wont affect the graph, since the code is based on the graph and not the other way around, but you have to keep in mind this is the type of tool targeted mostly at non-programmers, so that feature wont be required.

As long as you are persisting the graph in some plain text format. Bear in mind that for any piece of code, regardless of how it's represented, it must be useable within revision control.

Share this post


Link to post
Share on other sites

As i said that feature wont be required, and the reason is because the code is re-generated and re-compiled each time you click compile, run or whatever button to test the application.

As for code readability, to be honest at the moment I'm probably the only one who can understand it.

Edited by Rebin

Share this post


Link to post
Share on other sites

 Hi Rebin,

 

I'm interested, is it possible to see more of you work. How do you design a loop (for next / while) in your program.
Currently I also am looking for a way to realize a visual programming application for Workflow related solutions.

Maurice

 

Share this post


Link to post
Share on other sites

Yes, of course, I might upload some more information here soon, and show how loops and some other functions are represented, in the graph.

And for the other part, I'll be happy to help, let me know what you need.

Edited by Rebin

Share this post


Link to post
Share on other sites


to create something for those who are not so good at programming or just don't want to program, but like to create programs.

 

It seems weird to me that your target audience is people who can't or don't want to program, but they like to create programs...  I'm guessing there aren't many people who fall into that classification. Besides your own learning/improvement, what is the purpose? What are these poorly skilled/unmotivated not-programmers supposed to be doing with your graphical programming utility? Can you give me a concrete example of how you see this tool being effective?

 

Back to your question, for desirable features, you might check out http://scratch.mit.edu/.It is a site dedicated to teaching programming concepts via a graphical interface. You drag and drop little programming widgets that plug into each other. 

 

You might also do a google search for SQL SSIS package or SQL DTSX package tutorials (or image searches). I had to do some research on that at my last job. And even though I wouldn't wish that task on my worst enemy, DTSX packages had some interesting concepts (just poorly executed). It's a visual tool that allows the automation of sql tasks or the importing/tranformation of data. You have different types of nodes that perform different tasks. You could branch on conditions you specify. And one thing you might find interesting is the node type that let you run another DTSX package. 

 

Another feature that would be interesting would be a "debugging" feature. Instead of running through the entire program lickity split, highlight the current node, display the content of variables, and allow the user to "step" through the state machine to see what's going on.

 

- Eck

Share this post


Link to post
Share on other sites

@Eck

 

I myself, was one of those people who fell in that category years ago, I really wouldn't have started learning how to code if I had a choice to be honest, it's not about not being motivated, some people just don't want to code (that is the reason why programs like scratch exist), there my not be lots of people, however small or big, I guess I'm filling that gap. I could probably call this unique, because all of the visual programming tools out there today (to my knowing) are part of a game engine, but this is for general programming.

 

Thanks for your suggestions, I shall look into them, as for the debugging, the program is too strict, it almost allows no any errors, however catching errors would be during compilation time, which I do agree with you highlighting the node with the error would be good.

Share this post


Link to post
Share on other sites

We use a system for designers that is totally visual.

 

You have blocks with inputs and outputs.

 

You drop a block on and wire it up to other blocks. Job done.

 

For people like me who have to write the underlying code, it's a nightmare. Particularly if (like us) the system is dynamic.

 

An event can create a new node and insert it into the graph, or remove a node.

 

When that happens we have to resolve all sorts of dependency issues, tearing down a node graph and bringing in another is also a nightmare of dependency counting.

 

Please think very hard about what you expect to gain from a system like this and only use it if the gains overcome the problems.

 

It's not hard to learn languages like Lua, and it's easy to link into game engines. I would think about it a little more before you commit yourself.

Share this post


Link to post
Share on other sites

This topic is 1181 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this