I am very new to unreal engine, and C++. My goal is to make a 3d survival horror game, I don’t know what BPs are good for and what c++ is good for, any help on which I should use?
It all depends on preference and what you are hoping to achieve. Some things can be done in C++ that cannot be done in blueprint (but this is vary rare) and some things are easier to do in blueprints, especially with UI work and prototyping. You are also able to mix C++ with blueprints very well in Unreal once you get the hang of it.
The basics are macros called UPROPERTY() and UFUNCTION() in C++ that then expose properties and functions to your blueprints you create (inherited from your base C++ classes). I would recommend hitting the tutorials and looking at a mix of both, however if you are new to games development the blueprints are good and easier start.
It all depends on the scope of your project. You can definitely go with blueprints to get used to the engine framework and then dive into c++ when you find the bottlenecks for your project.
Also, there’s tons of tutorials for survival games over the internet, most in blueprints, to accelerate the process for you.
(I’m assuming your goal is to make your game prior to become a better programmer. Otherwise go for C++ as soon as you learn the engine framework)
Personally I really like using blueprints. I know how to develop in C++, but I find it easier to use the blueprints to try test things quickly. In C++ I find that the compilation process is slowing down the whole developement process, and moreover it’s harder to debug than blueprints.
I reserve C++ for when I have to write some complex functions with a lot of mathematical expressions. In this situation, the blueprints tend to become a pack of spaghetti. There are also some cases where I’m forced to write C++ (because there are no other way), but it’s pretty rare.
But the blueprints and the C++ aren’t exclusive. I frequently end up using both in my projects.
I take the opportunity of this thread: what is the best way to blend c++ and BPs:
-create a blank C++ proj and create blueprints
-create a blank BP proj and create c++ classes when needed
However, i think that especially you are a beginner you should go with blueprints, they are so powerful and easy to learn, use c++ isn’t that if you don’t know the Language yet |
The best scenario is when C++ is underlying Blueprints.
You would always want to make the base, structural code in c++, expose them and extend in Blueprints to tweak values or make simple logic.
Make Blueprints the “FrontEnd” development of your project.
With that said, I suggest you start a c++ project that creates the basic classes for you, expose the properties and extend it in Blueprints.
You can do amazing stuff with BPs, and C++ can slow down your process if you don’t know it well. But, again, the choice of BP over c++ will depend on the scope of your project and the bottlenecks of the language.
Blueprints are good for doing things quick. C++ is good for being in complete control.
I use C++ for low-iteration, computation-heavy code that is re-used across the project. Blueprint function libraries, base classes and stuff-that-cannot-be-accessed-from-BP like more fine grained network functions, customizations to the viewport class, using the gameplay abilities plugin and such. High iteration code, like control handling, UI logic, business logic, etc, goes in blueprint.