x

Search in
Sort by:

Question Status:

Search help

  • Simple searches use one or more words. Separate the words with spaces (cat dog) to search cat,dog or both. Separate the words with plus signs (cat +dog) to search for items that may contain cat but must contain dog.
  • You can further refine your search on the search results page, where you can search by keywords, author, topic. These can be combined with each other. Examples
    • cat dog --matches anything with cat,dog or both
    • cat +dog --searches for cat +dog where dog is a mandatory term
    • cat -dog -- searches for cat excluding any result containing dog
    • [cats] —will restrict your search to results with topic named "cats"
    • [cats] [dogs] —will restrict your search to results with both topics, "cats", and "dogs"

Some Question for my professional article

Hi everyone!

I am currently writing a professional article for my diploma degree in Game Programming. The topic is "Visual Scripting compared to Textual Scripting in terms of technical performance and efficiency in the process of game developing" and i use UE4 BP and C++/C# code as representatives. So the basic question is: Why are Blueprints awsome or awsomer than C++ ;-P

In order to compare the performance of BP to "conventional" code I am very interested in what happens behind the scenes of the unreal editor. So I hope theres some Insider Unreal Developer who can answer me some questions.

Some question that i would like to answer in my article would be:

  1. What exactly happens to the BP when building/compiling?

  2. If you would code the same behaviour of a Blueprint in C++ code and run it after building, would it be more performant than the BP?

  3. Do BPs and C++ code have the same outcome after comiling?

My personal guess is, that BP and C++ code have a very similar outcome after compiling, cause the structure of both is also very comparable. That would mean, that theres if ever a minimal difference in runtime performance. But for my article I need proofes for that, so if i could get some answers ... and maybe the permission to quote some of them in my article ;-) ... that would be really awsome

Thanks in advance -Max

Product Version: Not Selected
Tags:
more ▼

asked Aug 07 '14 at 11:42 AM in Everything Else

avatar image

Max Heiermann
98 7 12 15

(comments are locked)
10|2000 characters needed characters left
Viewable by all users

1 answer: sort voted first

I'm not an expert on how UE4 blueprints work behind the scenes, but I have spent a lot of time using UE4 blueprints and working with the underlying C++ source.

The first thing to keep in mind is that blueprints are a type of scripting language, whereas C++ is not a scripting language, so you can't compare them directly. It would be easier to compare UE4 blueprints to a managed language such as C#, but they still aren't the same. Behind the scenes UE4 blueprints are usually just calling existing C++ methods. So blueprints are a scripting language built on top of C++. The way to think of this is that blueprints are used to automate existing functionality that has already been coded in C++. This makes the functionality of blueprints limited to what has already been defined in the C++ source for blueprints to use. This doesn't mean that blueprints are inferior, it just means that they have a different purpose. Blueprints were designed so non-programmers could automate existing C++ code to create games. Epic has done an amazing job of creating a visual scripting language that is easy to use, but still retains a lot power. I think the most important feature of blueprints is the fact that they can be extended by the user using C++. If blueprints in UE4 were not extendable, I would probably never use them.

Answer #1: Take a look at this documentation to see how the blueprint compiler works behind the scenes:

https://docs.unrealengine.com/latest/INT/Engine/Blueprints/TechnicalGuide/Compiler/index.html#compilationprocess

Answer #2: Programming the same behavior in C++ (assuming optimum code) is always going to be faster than the BP version, but it may only be slightly faster. In some cases, the BP will just be calling the underlying C++. In that case, they would run nearly the same speed, except for the overhead of the BP making the call to the C++. Epic developers have been quoted as saying that BP's may be 10 times slower than C++, but I believe that was a generalization that won't always be the case. Here is a quote from Billy Bramer (Unreal Engine Developer) that mentioned the 10x speed difference:

https://forums.unrealengine.com/showthread.php?3035-New-Twitch-livestream-with-Fortnite-developers-Thursday-April-17&p=19464&viewfull=1#post19464

Answer #3: The output of a BP will never be the same as the C++, since at a minimum it will always contain the extra calls to the underlying C++. It may also contain additional code depending on how the BP nodes are connected in the blueprint.

more ▼

answered Aug 07 '14 at 06:36 PM

avatar image

Dartanlla
2.6k 62 26 281

avatar image Max Heiermann Aug 07 '14 at 06:54 PM

Thank you very much!

I obviously had a wrong view on Blueprints but this helps a lot to understand how they work. Until now I was programming mostly front-end, so im not really well-versed with what an engine does in the background. You explanation is sth. I can perfectly work with though. I guess every programmer has to decide for himself wether the user-friendliness of Blueprints outweights the lower performance, but a skilled and experienced coder will propably stick to his familiar code.

Again thank you very much for the quick answer and extra links :)

(comments are locked)
10|2000 characters needed characters left
Viewable by all users
Your answer
toggle preview:

Up to 5 attachments (including images) can be used with a maximum of 5.2 MB each and 5.2 MB total.

Follow this question

Once you sign in you will be able to subscribe for any updates here

Answers to this question