I am “new” to Unreal Engine forums and, for sure, this question has been raised before but I could not get a “great” explanation.
I have been using Unreal Engine 4 for a while now.
I am not an ace with C++ Programming but I am studying to create a game.
That is when I saw people talking about “Blueprints” in UE4.
I think most of you already saw the game “Lost Soul Aside” which the creator claims that he made everything using Blueprints by himself and no c++ since he is not a developer yet an artist.
So I wanted to ask, what is the difference between blueprints and c++?
Do I have to know them both?
Is blueprint better than c++ or vice versa?
Is there any limitation?
Guys, thank you so much for your attention. And sorry, in advance, if any rules are being broken because of my topic.
Okay first of all, BP is a visual programming component built on top of C++, there is no vs one or the other, they are essentially the same.
2. C++, as EPIC docs states, is assisted C++, so things like garbage collection are taken cared of for you(which is not in pure C++)
3. BP code can be “nativized” in UE4, that means code in BP will be converted to C++ code.
I prefer BP because I want to get things out quickly,
Remember, the programming logic will the same no matter what you use, so learn good programming habits.
If you only use Blueprint you will eventually hit a limit with what you can do. C++ will always be more powerful. In my workflow I combine Blueprints and C++.
Actually… the BluePrint programming language works with a virtual machine which like any virtual machine is always slower than native code C++ in this case. The nativization BP->C++ converter is still not reliable enough with plenty of issues reported on the answerhub as far as I can see.
Epic Games explains why BluePrint is slower than C++ and comparable to the UDK UnrealScript language here: A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums
Coding everything in C++ would obviously be better to achieve the fastest performance but due to lack of updated API documents for UE4 C++ it can be very hard if not impossible requiring to waste a lot of time studying the UE4 source code directly just to figure things out (something that plugins developers can do to get better results but a whole game is a way larger project that would involve many more APIs than what a plugin can do with its limited use of APIs)
So trying to code in C++ the most complex algorithms and those consuming more processing resources would be the best thing to do to improve any game performance and use BluePrint for everything else. It all depends on how much time anyone can spend on any project searching for C++ coding details in the UE4 source code when documents don’t help much and the BluePrint API counterpart doesn’t either.
I keep hearing about the power of C++ over BP, but I don’t see it.
Can you give me an example?
Try communicating with your database without any plugins.
Why would I need a database? What would I store? I thought I would use save game module.
Epic could do a better job of clarifying what games you can / can’t ‘typically’ make in BP…
I love Visual-Programming but you always wonder where you’re going to run out of road:
Some quick examples of where BP won’t cut it, or where C++ is usually needed etc:
Networking / Multiplayer / Steam…
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…
Anywhere Customization is needed. Just a General example:
Wanted to change Skylight properties at runtime the other day…
Couldn’t do it, because nothing is exposed or its all Read-Only…
I use Blueprints for everything they can do. For things they cannot do, like HTTP Communication, I use a C++ plugin.
What happens when that data is accidentally wiped from the player’s pc? What if you can’t trust the player with keeping track of the data, for things like in-game purchases?
Blueprints are great and you can do pretty much stuff with them…
I started c++ before i downloaded ue, then i found BPs and started programming with them over year… i done playable multiplayer demo with BPs anci was able to play with my friend online…
Now after year i started learning ue4 c++ again because i want to develop seriously but im not tryharding, i just learning c++ 30 minutes / day and i hope in 2-5 years ill be able to code efficiently in c++.