I would like to know what is the real different between blueprint and c++ in performance, not estimated values, real values, thanks .
Announcement
Collapse
No announcement yet.
Blueprint vs C++ performance .
Collapse
X
-
Blueprint vs C++ performance .
Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmareTags: None
-
https://answers.unrealengine.com/que...-overhead.html
Do a search on Google before making threads next time.The overhead will be comparable to any other scripting language. So much slower than C++, but unless you're executing a ton of blueprint code you'll likely not even notice, because far less blueprint code is run compared to C++. Hope that helps.
Cheers, Nick (Epic Games)
-
I did, and it still doesn't answer precisely, after i posted it i found that a developer or ue4 said it is about 10x faster, but i already posted it, so i would like to know what others have to say, and it will also make the search of other users easier .Check out my game OldSchool Nightmare : http://www.indiedb.com/games/oldschool-nightmare
Comment
-
--------------------------------------------------------
[New On Marketplace] Custom Character Creator
--------------------------------------------------------
[Marketplace]Multiplayer Melee Combat System - Animated Crossbow
--------------------------------------------------------
Comment
-
As I posted in another thread here, normally it should be okay to run a scripting VM (like Blueprint) because most games are bottlenecked by the GPU rather than the CPU from what I've seen on PC, etc.
So, I am not sure what your objective is in asking this question. Also, as a rule of thumb, optimize when you need to (not before). I wouldn't worry about Blueprints over much unless it pops up on the profiles. Then you gradually move those expensive routines into C++. I personally haven't had any issues with blueprints but my project is in the infant stages
Comment
-
Blueprints do not perform particularly well compared to C++. Still, most people share the opinion that for the most part "slower than C++" and "too slow to be used" are different things. Obviously, people don't mind using blueprints and Epic supports them. I don't know how blueprints compare to UnrealScript or C#, but I think they don't have a reason to be a thousand times faster...
Some of you will dismiss me after saying that I don't like coding in C++ and think that it feels ancient. However, that's the primary reason I would like to have a more modern alternative. I am sure there are many people who feel the same way, especially since UE4 tries to step into indie world.
Would it be impossible to allow another language to be used the way blueprints are used? Can't a more modern language run on top and call C++ functions for the heavy lifting?
There are the hardcore coders that like C++, and there are the people who faint when they look at any code (hence blueprints). But there are also the people in the middle who can code, but don't want to go back in time and learn C++ - a language that takes a significantly greater effort to learn properly. The thought of learning C++ certainly does not excite me, it gives me feelings that are very contrasting to game development, which is inspiring and creative. If a game is created by 1-3 people, chances are they have to work on all kinds of things (game and level design, modelling, textures, game logic, promotion etc) So the team probably doesn't include a hardcore programmer.
On the other side of things, blueprints feel less powerful and not suited for complicated logic. Duplicating nodes, dragging lines and ending up in something that I need a 27 inch monitor to be able to see even partially (and then pan horizontally and vertically) makes me feel inefficient, having in mind my coding skills. Something that can be coded in 100 lines (that would look much cleaner and maintainable, especially when the algorithm is complex) shouldn't be done in blueprints that if printed would take an A1 sheet.
So there is a big gray area between blueprints and C++ that I fall in, and for me this is one of the biggest disadvantages of Unreal Engine 4.
Comment
-
Originally posted by dimitrov View PostThere are the hardcore coders that like C++, and there are the people who faint when they look at any code (hence blueprints). But there are also the people in the middle who can code, but don't want to go back in time and learn C++ - a language that takes a significantly greater effort to learn properly. The thought of learning C++ certainly does not excite me, it gives me feelings that are very contrasting to game development, which is inspiring and creative. If a game is created by 1-3 people, chances are they have to work on all kinds of things (game and level design, modelling, textures, game logic, promotion etc) So the team probably doesn't include a hardcore programmer.
On the other side of things, blueprints feel less powerful and not suited for complicated logic. Duplicating nodes, dragging lines and ending up in something that I need a 27 inch monitor to be able to see even partially (and then pan horizontally and vertically) makes me feel inefficient, having in mind my coding skills. Something that can be coded in 100 lines (that would look much cleaner and maintainable, especially when the algorithm is complex) shouldn't be done in blueprints that if printed would take an A1 sheet.
Yeah I feel the same way. I can code, but I don't want to learn c++ because it really feels and looks like a step back. So I am using blueprints instead, which is basically just coding, but sometimes just a lot more inefficient than writing lines of code.Easy to use UMG Mini Map on the UE4 Marketplace.
Forum thread: https://forums.unrealengine.com/show...-Plug-and-Play
Comment
-
I'm still new to UE4 but when I look at Blueprint code, what is produced reads the same as their assisted C++. So a visual programmer in Unreal is an assisted C++ game programmer, as far as I can see.
The downside with visual scripting is you can't do anything complex, without making it difficult or impossible for others to read and maintain. Another thing, you can't do a diff and see what functionality has changed and you can't use your script in any other engine or code base. There is also the problem where it obscures how classes are interrelated. And if Unreal decides to discontinue BP like they did with UnrealScript, you will have to start again. So I think getting heavily into BP and ignoring C++, will ultimately stunt your growth as a programmer.
I personally think scripting is for making games - do all the heavy lifting in C++ and have a very simple network of game logic. That means no while loops, just a sequence of functions in response to game events. Not only can you make games quickly using that method, players with no programming experience can also mod it.
However I have come around to the idea that all interfaces should be scripted.
Edit:
To answer the OP, according to this BP is around 10x slower than C++, but that is assumed with script.
https://forums.unrealengine.com/show...ance-BenchmarkLast edited by Ariegos; 06-15-2015, 03:42 PM.
Comment
-
If I create the main character in C++ and make it into a Blueprint so I can tweak some values (only changing Default Class values), then I manually place that blueprint into the world (drag and drop from content browser). Am I losing all the speed advantages of coding in C++ in the first place?
Comment
-
No you will not as variables are set at initalization time.
To avoid performance issues just minimize bp to c++ calls during tick events...C++ BP Developer. working on Airland Helicopters, an helicopter rescue sim developed in Unreal https://www.helisimmer.com/airland
- 1 like
Comment
-
I agree partly with this. I am not a programmer (at least not a skilled one), but having used Blueprint and then trying to get into C++ for UE4 made me understand code a lot more. However, Blueprint can do a lot more complex things than traditional visual scripting, even while remaining readable for others. I also thought that it was somehow possible to compare two version and see what has changed. On another note, UE4 uses C++ very differently. The core of the engine is written in pure C++, but the more you move up, the more has been simplified. Basically, the code you write when developing a game does not have to be pure C++, Epic has created a lot of macro's and classes that would make coding easier, which also means you cannot reuse code in another engine.Originally posted by Ariegos View PostI'm still new to UE4 but when I look at Blueprint code, what is produced reads the same as their assisted C++. So a visual programmer in Unreal is an assisted C++ game programmer, as far as I can see.
The downside with visual scripting is you can't do anything complex, without making it difficult or impossible for others to read and maintain. Another thing, you can't do a diff and see what functionality has changed and you can't use your script in any other engine or code base. There is also the problem where it obscures how classes are interrelated. And if Unreal decides to discontinue BP like they did with UnrealScript, you will have to start again. So I think getting heavily into BP and ignoring C++, will ultimately stunt your growth as a programmer.
I personally think scripting is for making games - do all the heavy lifting in C++ and have a very simple network of game logic. That means no while loops, just a sequence of functions in response to game events. Not only can you make games quickly using that method, players with no programming experience can also mod it.
However I have come around to the idea that all interfaces should be scripted.
Edit:
To answer the OP, according to this BP is around 10x slower than C++, but that is assumed with script.
https://forums.unrealengine.com/show...ance-Benchmark
But, I do not think Epic will discontinue BP anytime in the foreseeable future. They highly advocated BP as an alternative to coding, and also make extensive use of it. It is a core feature of the engine, and considering its predecessor UnrealScript having been around from 1998 all the way to 2013 with the last UDK version, I think it's here to stay. If they do replace it, than I think we would have enough resources to switch over.
On yet another note, I think C++ is not ancient. It is still widely used for almost any program (at least those that run on Windows). For me at least, it's not a step back from C#, but a huge step up. I will likely never be able to program complex software, but I am not scared of C++, especially not in Unreal Engine.Last edited by NickEast; 06-16-2015, 04:11 AM.Portfolio: https://www.artstation.com/final-frontier
Stargate & DHD: https://forums.unrealengine.com/comm...5-stargate-dhd
Comment
-
Unreal Engine C++ is not that difficult. Macros do help a lot but you need to get used to regarding how stuffs are done..Originally posted by dimitrov View PostBlueprints do not perform particularly well compared to C++. Still, most people share the opinion that for the most part "slower than C++" and "too slow to be used" are different things. Obviously, people don't mind using blueprints and Epic supports them. I don't know how blueprints compare to UnrealScript or C#, but I think they don't have a reason to be a thousand times faster...
Some of you will dismiss me after saying that I don't like coding in C++ and think that it feels ancient. However, that's the primary reason I would like to have a more modern alternative. I am sure there are many people who feel the same way, especially since UE4 tries to step into indie world.
Would it be impossible to allow another language to be used the way blueprints are used? Can't a more modern language run on top and call C++ functions for the heavy lifting?
There are the hardcore coders that like C++, and there are the people who faint when they look at any code (hence blueprints). But there are also the people in the middle who can code, but don't want to go back in time and learn C++ - a language that takes a significantly greater effort to learn properly. The thought of learning C++ certainly does not excite me, it gives me feelings that are very contrasting to game development, which is inspiring and creative. If a game is created by 1-3 people, chances are they have to work on all kinds of things (game and level design, modelling, textures, game logic, promotion etc) So the team probably doesn't include a hardcore programmer.
On the other side of things, blueprints feel less powerful and not suited for complicated logic. Duplicating nodes, dragging lines and ending up in something that I need a 27 inch monitor to be able to see even partially (and then pan horizontally and vertically) makes me feel inefficient, having in mind my coding skills. Something that can be coded in 100 lines (that would look much cleaner and maintainable, especially when the algorithm is complex) shouldn't be done in blueprints that if printed would take an A1 sheet.
So there is a big gray area between blueprints and C++ that I fall in, and for me this is one of the biggest disadvantages of Unreal Engine 4.
That being said, you should have created a new topic rather than necroing this.
Comment
-
Of course you can't just copy and paste it. You will have to remove some things and add others, but the logic inside the functions remains the same. As an example, I had to do a conversion to use my code base with the the last engine I was with and unless Unreal has better functionality, I will convert the same code base for Unreal.Originally posted by stargatefreak92 View PostEpic has created a lot of macro's and classes that would make coding easier, which also means you cannot reuse code in another engine.
May not be soon, but it will happen eventually. It depends on whether the workflow is judged superior by the masses or not. For instance, friends are telling me another engine is easier to get started with, however I'm pushing through the pain barrier, because the rate this engine is advancing at is incredible. However if Unreal wasn't the technology leader that it is, I would certainly be trying the engine that is easier to learn. If enough people did the same, you would find Epic changing its tune very quickly.Originally posted by stargatefreak92 View PostBut, I do not think Epic will discontinue BP anytime in the foreseeable future. They highly advocated BP as an alternative to coding, and also make extensive use of it. It is a core feature of the engine, and considering its predecessor UnrealScript having been around from 1998 all the way to 2013 with the last UDK version, I think it's here to stay. If they do replace it, than I think we would have enough resources to switch over.
C++ is kind of like QWERTY keyboards.Originally posted by stargatefreak92 View PostOn yet another note, I think C++ is not ancient. It is still widely used for almost any program (at least those that run on Windows). For me at least, it's not a step back from C#, but a huge step up. I will likely never be able to program complex software, but I am not scared of C++, especially not in Unreal Engine.
It was first to become popular in game engines, so it will always be the standard. Also its much faster than anything else and a game engine developed in a slower language, is just not going to be competitive. Of course no need to say that here of all places. lol
Edit:
But yeah each to his own. I wouldn't think about BP at all if there was a C++ section in the marketplace. Anyone know what is up with that? Is a C++ section coming or not?Last edited by Ariegos; 06-16-2015, 06:46 AM.
Comment
-
Does anyone know if they're working or planning on improving blueprint performance in future versions? Or if it is somehow fundamentally impossible for some reason?
Comment





Comment