Comparative differences between games design and simulation design - Part 12: Blueprinting and Coding... Does visual scripting actually do anything beneficial?

Do visual scripting actually do anything beneficial?

So continuing from the java development breakdown

After my discussion in regards to the Java learning, I went back and did research into my own project and how I can edit / develop my program.  After looking into it, I started trying to relearn C++ but after working on trying to relearn, I realised that I am not going to have enough time to edit and convert my program to be more C++.

I have been trying to relearn C++ in my spare time (in the middle of not blogging, learning my job and development) which although easy to understand basics of variables... the formatting, structure changes and development differences between c++ and Java made me learn so many different things which I want to go into.

More specifically, I want to look at the following:

  • Why as a designer, coding can be perceived as difficult
  • Why visual scripting can be useful to start into but not to stay attached too
  • Is there something weird with how visual scripting compiles and runs code?

What is the issue with coding when you're a designer.

When you've been teaching games design to students from level 2 to level 6.  The major issue perceived from teaching them designing using visual scripting is their own mentality and what they perceive designing to be.

When I initially started to teach design, the initial issue was a massive reluctance to learning code.  The initial reaction was based around that it was "too complicated" or not exciting and it would be too hard, although understandable it is slightly the way of the designer put bluntly.  To put it into a more easier context; a designer has been taught to model the easy way, work with least effort but the quickest way to get the best result.  Although this sounds like a dumb view to take, it makes the most sense compared to working within design.

As design makes the most around doing the same processes to make models, the problem comes to trying to change that mentality that you can be as creative in coding as you can as a designer.  This for most is a strong and hard process to try and breakdown; Coding, is perceived to be an incredibly computational process where the idea where you need a high level of mathematics as well as a strong understanding of processing and fixing coding issues.

So the main issue when i was a teacher was to change my mentality.  Which is when visual scripting was introduced into the development of unreal engine 4.  UE4 brought with it a visual scripting program that allowed users that aren't very strong with coding a different aspect to develop with a visual script instead.  The visual script was kind of a weird way to imitate an node style of design but with a strong coding background.  This strangely made coding really fun to work with especially with students as it allowed them to follow along without looking at white based text development which was coding.

The nodes presented what the ability or task could allow with a simple input / output system.  It was fun to work with with the students and more fun to show them after developing for several months that they were coding without coding.  Simply by copying a node and pasting it into notepad.  The code for that node presented what it is if it was written.

Whilst developing for this project, and learning about development via Java and C++, I started to query why games have not fully been made only with blueprinting as surely it would be easier... with that said, I looked into it and found no examples... that then started making me think if there is justification for that.. then I started noticing things within my own prototype.

An interesting find with unreal and coding - visual scripting?

It was strange but I started noticing, specially within the development of the AI small ticks of delay appearing but it made me wonder why that would happen, specially as technically there isn't a lot of coding compared to possibly a full title but then the other question is why aren't there any big games made with visual scripting.I started looking around the forums on unreal; i found some interesting breakdowns to how the scripting works.

So as discussed previously, visual scripting works as an overlay process to coding with use of a visual API.  After doing some research and reading what people put in the forums, builds of the engine compile and streamline the data.  It wouldn't be strange to think that it would be easy for it to convert and compile the visual scripting into a code variant for ease of processing when running as a compiled product.  This however is not the case, it's weird but it gets the compiled with the visual scripting part of it within the engine itself, when it processes the coding, it processes the API and then followed that the code node data.

Although the process makes no sense, its how UE4 processes the data.  This make me curious to why it doesn't do the processing and compiling of the coding more efficiently to make the process much easier.  As i researched people presented a breakdown and calculation that it's apparently 4 to 200 times faster to do it with C++ than to do it with visual scripting.  So there are areas where coding is apparently bad to use:

  • Networking / Multiplayer / Steam connectivity
  • Advanced Math topics like Quats
  • Helpers in areas like Split-Screen
  • Databases for RTS / RPG games
  • Large Worlds: Rendering + Double Precision etc.
  • Anything heavy on Physics i.e. Physics Rewind.
  • Advanced RTS games or MMORPG in general. 
  • Spherical-Terrain / Spherical-Navmesh / 'Planet' type games
  • Runtime Terrain - Making Landscape changes in-game etc

Visual scripting vs Blueprinting / Visual Scripting vs Coding

 So the three versions of coding are orientated around two specific styles, one uses a visual scripting program such as Microsoft visual studios whilst the other two, use the visual scripting part.  I played around with unreal to look specifically at the coding with aid from a video that produces a breakdown of the different codes using triggers and examples.

With help, I made a project that works around the premise of using all three variations of coding.  It works around the idea of processing data which presented clear timings... that said, the coding I used didn't go into as much details as one project I found that comparatively breakdown various test setups as well as a breakdown with both FPS and ms breakdown of data.

Researching into the different variants presents a clear difference within the way the processing happens.  From looking at the end results alone between pure C++ to blueprinting, from the development processing, there is a massive difference although the difference in FPS is massive, the processing within the data via ms.  Even on the basic settings, the 140 ms processing per time is a massive significant difference of 11 times.  When it's increased, the massive increase turns still stays around 11 times higher.


Although not much in just statistics, the heavy load can cause significant issues over a long duration.  If you believe the same within coding development, the process can be significantly slower due to the amount of processing that needs to be done.  In games development, especially in toady's modern processing, the idea of slow processing of data, low graphics and game slow down has significant drawbacks from the users.

With that, this still confuses me that visual scripting still is struggling and doesn't do the idea of compiling into a coding format to save on processing in the end exe.  My hope is that it will change in the future but who knows with BOLT in unity.

Comments

Popular Posts