Jump to content

  • Log In with Google      Sign In   
  • Create Account

Visual Programming


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
41 replies to this topic

#1 Rebin   Members   -  Reputation: 188

Like
8Likes
Like

Posted 22 June 2014 - 05:56 PM

Latest Update: I have released a very very (I can't stress this enough) early ALPHA version which can be found here http://korduene.com.

 

I have been a regular visitor to this site for a long time, unlike some other places, this seems like a nice community, so today I decided to sign up, get your input on the topic.

 

I've been programming for a couple of years now, while back I thought it might be a good idea to create something for those who are not so good at programming or just don't want to program, but like to create programs.

 

I've researched online a bit and it seems like (to my understanding) there aren't lots of programs like this out there (they are mostly a part of game engines or 3D packages), and the other ones missing lots of features and quite limited.

 

Here is what I have done, a program to create windows applications (for now) where there is absolutely no coding (but you have the option to write your own code) plus a window designer (like the one in visual studio for the .NET languages), compiling the application is as easy as clicking a button.

 

I have been working on this for ages and half of it is finished.

 

So, what I want to know is:

Is it really worth it? (I mean finishing the development of the program).

How successful a program like this would be out there?

Would people (or would you) be interested in something like this?

What features should this program have in your opinion?

What features should this program have to make it a success?

 

Any input is much appreciated.

 

 

 

Screenshot of the graph editor.

scr_Shot.png

 

new1.png

 

new2.png

 

Update 1: Here are screenshots of a really really ALPHA version of the application (Everything is subject to change).

 

app1.png

 

app2.png

 

Update 2: I have released a very very (I can't stress this enough) early ALPHA version which can be found here http://korduene.com.


Edited by Rebin, 14 September 2014 - 12:01 PM.


Sponsor:

#2 Jason Z   Crossbones+   -  Reputation: 5432

Like
9Likes
Like

Posted 22 June 2014 - 07:14 PM

Have you seen the visual editor in UE4?  I think it targets the same or similar functionality that you are implementing.  That should tell you that there is at least some demand for such a feature - most likely to allow designers to get in on behavior modification and things like that.

 

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!



#3 ChaosEngine   Crossbones+   -  Reputation: 2506

Like
7Likes
Like

Posted 22 June 2014 - 07:33 PM

Tools like this tend to be good for designing workflows in a functional manner, so they work really well for things like the applying shaders in the UE4 engine as mentioned above.

 

The problem with them for general purpose programing is that they become unwieldy very quickly. Representing constructs likes loops and branches is difficult to achieve. 


if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

#4 Tutorial Doctor   Members   -  Reputation: 1693

Like
0Likes
Like

Posted 22 June 2014 - 07:42 PM

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, 22 June 2014 - 07:46 PM.

They call me the Tutorial Doctor.


#5 cardinal   Members   -  Reputation: 904

Like
2Likes
Like

Posted 22 June 2014 - 10:23 PM

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.



#6 Rebin   Members   -  Reputation: 188

Like
0Likes
Like

Posted 23 June 2014 - 06:07 AM

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.



#7 Rebin   Members   -  Reputation: 188

Like
0Likes
Like

Posted 23 June 2014 - 06:09 AM

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.



#8 Rebin   Members   -  Reputation: 188

Like
0Likes
Like

Posted 23 June 2014 - 06:11 AM

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 :)



#9 Rebin   Members   -  Reputation: 188

Like
0Likes
Like

Posted 23 June 2014 - 06:21 AM

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?



#10 SmkViper   Members   -  Reputation: 1280

Like
0Likes
Like

Posted 23 June 2014 - 08:24 AM

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

#11 Ohforf sake   Members   -  Reputation: 1832

Like
4Likes
Like

Posted 23 June 2014 - 09:10 AM

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.

#12 Rebin   Members   -  Reputation: 188

Like
0Likes
Like

Posted 23 June 2014 - 09:54 AM

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.



#13 Amr0   Members   -  Reputation: 1159

Like
3Likes
Like

Posted 23 June 2014 - 10:12 AM

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



#14 Rebin   Members   -  Reputation: 188

Like
2Likes
Like

Posted 23 June 2014 - 11:58 AM

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 :)



#15 frob   Moderators   -  Reputation: 22792

Like
6Likes
Like

Posted 24 June 2014 - 08:31 AM

There is nothing particularly new about it. 

 

It is just a pretty picture to represent a state machine.

 

I've used graphical state machine tools since the mid 1990s. Even before that, I've used state machines with non-graphical representations.

 

You have a start node, then transitions to other nodes, and eventual exit nodes. There is nothing new about this. State machines predate modern computers by centuries.

 

 

Using visual graph tools rather than tables started to be common in games around the mid 1990s. Professionally I saw them in The Sims (released Feb 2000) which had several graphical state machine tools where designers and gameplay engineers could compose behaviors out of existing pieces. The tools were built in about 1997. You build your graphical state machine with a start state, fill in the parameters from the list of options the system provides, and assign actions and animation clips for every node in the state machine.

 

There are similar tools built into most major engines. They are in Unreal, Unity, C4, and others. It is just a graphical representation of a classic state machine.

 

You still need to write components for the system to use.  The state machine graphs that detail how parts work are great in data driven systems. The state machine is data. You still need to provide the system part. Your state machine tool might provide a "walk to" action and then a dropdown for places you can walk, but you still need to write the code for what it means to actually walk. Your state machine tool might provide a "play animation" action, but you need to write the animation controllers. 


Check out my book, Game Development with Unity, aimed at beginners who want to build fun games fast.

Also check out my personal website at bryanwagstaff.com, where I write about assorted stuff.


#16 Rebin   Members   -  Reputation: 188

Like
0Likes
Like

Posted 24 June 2014 - 08:55 AM

@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.



#17 King Mir   Members   -  Reputation: 2050

Like
1Likes
Like

Posted 24 June 2014 - 12:53 PM

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.



#18 Rebin   Members   -  Reputation: 188

Like
0Likes
Like

Posted 24 June 2014 - 01:24 PM

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.



#19 ChaosEngine   Crossbones+   -  Reputation: 2506

Like
2Likes
Like

Posted 24 June 2014 - 06:02 PM

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.


if you think programming is like sex, you probably haven't done much of either.-------------- - capn_midnight

#20 Rebin   Members   -  Reputation: 188

Like
0Likes
Like

Posted 25 June 2014 - 05:12 AM

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, 25 June 2014 - 10:51 AM.





Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS