So, I recently got UE4, and I’m a programming expert with JavaScript, but I have only a little basic C++ knowledge, and I read somewhere about UE4 having another way to program without / with really little C++. So, is this true? And what level of a C++ programmer should I be to make tiny indie games, say, like Five Nights at Freddy’s?
Please elaborate on your answer, and tips / guidance will be really appreciated.
As the comment from rantrod pointed out, blueprints is the best way get into UE4 development if you don’t know much about C++.
Although, in my opinion the biggest issue with learning Unreal Engine is not knowing or not much about C++. The real issue is to understand the way Unreal Engine works. The documentation is a good start point but it’s sometimes hard to find what you want or basic things.
If you know JavaScript you won’t have too much issue getting into C++ (I didn’t have hard time to do the opposite). The only thing that could disturb you at first is that C++ is more low-level that JS.
Anyway, if you want to learn UE4 (as I’m doing right now, although I’m still a newbie), go for blueprints and follow tutorials. Or if you have more time you can also download some projects from the “Learn” section of the launcher and look how it works !
I don’t think so. Think about blueprints as “Visual scripting”. It’s mostly designed for fast and visual gameplay development. You can still do very complex things with blueprints though, but your blueprints will be very complex too, it would be a real mess.
C++ is the best way to do technical stuff. It also executes faster I think (correct me if I’m wrong).
Finally, you will probably at a time face the “■■■■, this C++ engine function is not accessible from blueprint”.
As Joris has mentioned, there’s a propensity for blueprints to become unweildy when they get complex enough. That said, I don’t think the problem is insurmountable. You can write convoluted code in any language. It just takes some discipline and planning to avoid the pitfalls.
There are a few problems with blueprints. In some cases, I end up having to copy blueprint variables from one blueprint to another; especially true with Anim Blueprints, debugging is worse than C++, behavior trees are difficult to follow/debug/comment, and a few others. I think with time and practice you can find ways around these problems.
Contrary to what Joris said, there’s a feature in 4.12 that allows you to convert your blueprints to native code (via an intermediate conversion to C++ that happens under the hood) called “Nativize Blueprint Assets”, so you can hopefully get similar performance to writing your game directly in C++ code (depending on how those conversions are done - I haven’t tested it).
If the Nativize feature is implemented well and if you go through the effort of carefully planning and implementing your blueprints, I think you can make any kind of game you want.