Visual Scripting - Alternative to C# Scripting, Easy & Powerful, Console Friendly

SolarSupremacy shared this feedback 22 days ago
Not Enough Votes

Summary
Visual scripting, also called block-based scripting, allows people to create functions/scripts without needing to write a program by hand.


  1. This would be a significantly more accessible option as players wouldn't need to learn C# (plus an API) or worry about setting up an IDE.
  2. It could be done on console as it would only require minimal text entry (names and values).
  3. It would be safer than executing raw code as there's no code interpretation. If that's the reason scripts aren't allowed on console, visual scripting could solve that.

Technical
There's different styles to build a visual scripting system. I haven't put enough consideration into it to say which is best. In fact, I believe multiple of them could be implemented for different blocks/features in SE2. That's a longer discussion.


Examples
[Block-Based Scripting] Google's Blockly:

10621eeb5d3783afd741dffb0ecf43cb


[Node-Based Graph] Unreal Engine 5's Blueprints:

?u=https%3A%2F%2Fsbanimation


[State-Machine Graph] Unreal Engine 5's Behavior Trees:

behavior-tree-quick-start-step-3-11


[Data-Flow Graph] Houdini:

(Visually nearly identical to node-based graph. In practice, it's used for data processing, not control, such as shaders. But, for the purposes of providing examples of what visual scripting looks like, it's just another pretty screenshot.)

Replies (4)

photo
1

YES PLEASE!!! We can't all be C# coders, nor do most of us want to be. This is how both scripts and even regular block logic should work. The previous system of choosing blocks and actions from multiple lists on different blocks' settings pages was cumbersome and confusing. Rather than having two systems, scripting and block logic, the entire concept of automation should use a single system like this. It's visual, intuitive, and doesn't require coding. And you can eliminate having to build tons of separate blocks just to do simple automation actions which could all be handled inside a single automation block.

Other good examples to follow would be Microsoft Power Automate or Apple's iOS automation. You still get the functionality of logic instructions like loops, if/then, etc. but you don't need to know C# or any other particular programming language. Not only is C# way too complex for the purpose it serves for most users, but everyone already has their favorite scripting language.

photo
1

As an _addition_ to C#, or better, for programming timer/event/... blocks instead of filling toolbars and dialogue boxes? That's awesome; yes, please!

As a _replacement_ for C#? Having talked to people who have had to do Real Programming using visual programming languages? Oh, heck no.


Also: ...hasn't this been proposed before?

photo
1

I would love to see scripting and the PB to be more accessible like everyone else without having to know a ton of C# myself, but I wouldn't say this should outright replace it. I would suggest they should somehow find a way to let folks pick. Anything that makes it easier or could make it easier to do custom effects without needing to be a master coder is good in my book.


Now that in mind, scripting not being a thing for consoles isn't because of Keen not wanting to do it. That's because Microsoft and Sony don't want scripting on the consoles because of it potentially being used for other stuff.

photo
1

Sure, if you want to do complicated stuff with C#, keep that as part of modding. Everything in-game should be more accessible.

photo
1

Those statements don't go together like that. If you want to make it more accessible then this means making even some of the complex stuff more open. Yet if you want to keep all the complicated stuff out, this tells me you only want certain things more accessible thus defeating the purpose of the original statement. Because your statements are polar opposites.

photo
Leave a Comment
 
Attach a file