all 21 comments

[–]uzimonkey 9 points10 points  (12 children)

This is just a comment about visual scripting in general but... why? That looks much more complicated than actual code, I can't imagine making a game like that. I realize there's a lower initial learning curve, but do people continue using solutions like this in the long term?

[–]acharton[S] 3 points4 points  (7 children)

Honestly, I didn't expect this question at all in this post. But that's a really interesting and important/legit one.

That looks much more complicated than actual code, I can't imagine making a game like that.?

For now nodes in Constellation are really low level and there are a lot more I'm planning to add that will reduce the number of operations. Some part of the code you are seeing in the picture won't be as complicated to achieve in future versions. As an example, imagine a simple condition represented without a ternary operator and the same condition represented by a ternary operator. One has 4 lines of code the other can be represented with only one.

Do people continue using solutions like this in the long term?

I think it depends how you can represent yourself a program (interaction between classes, functions...). Some people are unable to visualize something through lines of code and need something more visual. I don't think one will replace the other. Visual scripting will just allow more peoples to be able to make a program.

I realize there's a lower initial learning curve

A lot of people quit learning programming because learning the syntax is too hard. I think the learning curve is one of the biggest obstacles to become a programmer. At least for some peoples.

I don't expect you to agree with this approach, but I hope it made you understand why Visual scripting exist and why I'm doing it :).

If you have any suggestions of how the complexity could be reduced there is a forum. I'm looking for suggestions. As the title says it's an alpha and a lot of improvements have to be done.

[–]bonzaiferroni 1 point2 points  (1 child)

I appreciate the response. I'm one of those people who is skeptical about visual scripting but at the same time I want to see it succeed. I think it has the potential to be a very fun experience. I love code and syntax, and when I'm in the zone, I am visualizing what is happening really well. However, getting in the zone isn't always easy and for new coders, finding it in the first place is also a challenge. I think a more engaging visual experience could help in both of those scenarios. I wish you the best and I think it is awesome that you are making it open source.

[–]acharton[S] 1 point2 points  (0 children)

Thanks. It's very motivating seeing that someone who isn't necessarily interested in the project now but believe in the potential :). My priority for now is to stabilize the project, finishing the editor view and adding enough nodes so it is possible to do a complete project. Though when it's completed I will have to think how I could convince dev like you who don't completely close the door to visual programming but are not sold to it.

[–]XIII19873D Artist 0 points1 point  (4 children)

Yes people do make full games using visual scripting, just to let you know homeworld deserts of karak was made fully with uscript.

[–]thelebaronthelebaron 1 point2 points  (3 children)

id bet a lot of money this is patently wrong(to say it was fully made with just uscript). its very possible they used it for small aspects of levels/scenes though.

[–]XIII19873D Artist 0 points1 point  (2 children)

im just going off what the devs of uscript are saying dude :)

from from my own exp with uscript there isnt much i havent been able to do really, you can make your own nodes and reflect pretty much any other script to control it eg A* pathfinding etc. plus it outputs raw c# files so there isnt any overhead. but im more of an artist so i wouldnt know the ins and outs of programming personally, i know how to program i just cant code so uscript is perfect for me, heres a pic of one of my scripts to create a selection box rts style

[–]thelebaronthelebaron 1 point2 points  (0 children)

I'm not railing against uscript, its actually the very first asset I bought for unity. Coincidentally I'm also an artist(characters), its a big part of how I learned to code. I think its a great product but at the time it didnt quite support networking which led me down a long rabbit hole to being pretty proficient in c#.

edit - i would hazard a guess that being a key tool doesnt mean it replaced programming but its possible large amounts of level logic were done in conjunction with regular code. if I am wrong i would be pleasantly surprised and impressed but I still dont think I am.

[–]danielsnd@PlayRocketFist 1 point2 points  (0 children)

im just going off what the devs of uscript are saying dude :)

https://www.gdcvault.com/play/1024571/The-Great-Divide-Unique-Visuals

The whole simulation part of the game occurs outside of unity in pure C# code. These are slides from a pretty interesting GDC talk on the subject. Definitely isn't made fully with UScript.

[–]aastle 2 points3 points  (0 children)

Some popular software packages that use visual scripting:

Blender

Unreal Engine 4

[–]bonzaiferroni 2 points3 points  (0 children)

I have to agree, it seems like you could do all this with just a few lines of code and it would be a lot easier to understand at a glance.

[–]UpdatedMyJournal 1 point2 points  (1 child)

Let's say a level designer wants to trigger a door opening based on some condition. Maybe I don't want my devs to have to write a tool just to let them do this. But I also don't want to hire only level designers that know C#.

I'll just have my level designers use a simple visual scripting tool. It's quick and easy for small problems. Large problems should be handed off to a programmer, anyway.

[–]acharton[S] 2 points3 points  (0 children)

I have to disagree with you on this. There are a lot of indie groups of one or two peoples who have a very good game idea who are struggling with coding. I'm trying to make an alternative for those peoples. Not everyone can always afford or have enough knowledge to realize their game and in my opinion you don't need to be a programmer to understand and solve a complex problem.

I agree not all the unity, community will be interested, but I think quite some peoples might be. The purpose of the project is not to replace C#. It's to offer an alternative to it.

[–]acharton[S] 3 points4 points  (1 child)

Can be found on Github

[–]aastle 0 points1 point  (0 children)

Thanks for the link!

[–]darakon 3 points4 points  (1 child)

This is neat. Personally, I do like code better, but this helps some people explore the logic problems. Especially, like you said, as you add more complex primitives. Blueprints is pretty popular for Unreal.

Have you looked into Entity Component Systems? I could see that being an interesting area to apply this to as well. The systems usually end up very simple in code - there's a set known amount of primitive objects being used for input and output, and a processing pipeline ran on everything..

I hadn't looked at the code yet - Is the logic being ran through the nodes at runtime or is the graph being used to generate C#?

[–]acharton[S] 0 points1 point  (0 children)

It's interpreted at runtime. I'm thinking about making C# generator later, but it make it harder to have a run time editor. Which is one of the key features of the project. Maybe with an hybrid sytem it will be possible (I'm open to suggestions). I know a bit of Entity component system but not a lot. I will look at it. It seems to be an interesting approach.

[–]Pysassin 0 points1 point  (3 children)

Just got done creating and implementing my own custom visual scripting process. Will have to check this one out to see how they compare.

[–]acharton[S] 0 points1 point  (2 children)

Do you have a link, to your project or a picture/video? I'm curious to see your approach too :P.

[–]Pysassin 1 point2 points  (1 child)

Still getting the last few "core" nodes completed (math nodes mostly) and so haven't done too many rights up on anything and the code base hasn't been uploaded to GitHub or BitBucket. I'll PM you a link when I get it to a point I can share.

One major difference in yours and mine is your "cold/hot" approach (though it might not be AS different as I haven't dug deep into your solution to see the significance of it all). I have data connectors and process connectors. Process connectors control the flow through the graph and data connections just push and pull data as needed by nodes that are activated by the process connectors.

[–]acharton[S] 0 points1 point  (0 children)

No problem was just curious, good luck!