Visual Scripting Experience
I've spent the last 10 days trying to create a scenario with the Visual Scripting Tool. It's been a very painful and frustrating experience. I can see that the devs have put a lot of effort in VST but so far it's not really paying off. For the record, I'm an experienced programmer and I'm used to working with new languages and programming tools. I'm not complaining about the usual frustrations that come from learning a development environment.
It would be much easier for me to write a scenario if I could write C# directly and the if the API is much more complete. i.e. if it was like writing code for a programmable block. Even just adding a "C#" node to VST would be really helpful.
Here are my findings.
VST is Very Unstable
- Common editing actions can cause it to crash to the desktop.
- Cut and paste corrupt scripts.
- Some valid scripts won't compile.
- Sometimes it looks everything in a script has been deleted.
So far on my project I've spent about half my time raising bug reports or finding workarounds for scripts that are perfectly valid but don't compile.
VST is Very Limited
Here are just a few of the things you can't do in VST:
- rename scripts
- edit input parameters in any way
- organise scripts
- create any kind of object or data structure
- access the methods and properties of objects such as MyEntity even though they're used by the API
The API is Very Limited
- some functions identify blocks by id and some by name
- you can set a block's Custom Name but you can't read it
- the Text Panel API supports private descriptions but these no longer appear in the game
- you can't access CustomData or the vast majority of block specific behaviour
VST Generates Very Inefficient Code
For example, almost all block manipulation methods start by searching for the block by name or id. You can't cache a reference to a block and just keep accessing the same object. This is a concern because performance is always critical in a game loop.
Visual Scripting is Very Cumbersome
Disclaimer: I'm a programmer and I'm used to working with code so VST isn't really aimed at me. However, everyone is going to find the following:
- you can't easily compare or diff scripts
- you can't take an example from the internet, copy it and modify to taste
- wiring things up is fiddly
- it's hard to tell what's connected to what in a large or medium sized script
- you can't use a different IDE or text editor
- if VST says the script compiles then the game will load it and run it
- the UI displays an exhaustive list of all functions
- the "Code debugger" button shows you the underlying C# (sometimes!)