I’ve decided to jump into the C++ boat with you as it seems inoptimal to use Blueprints only. However, what parts of your game do you write in C++ and what parts do write in C++?
Obviously, some of you write everything in C++ and some (probably) in Blueprints. I think (it’s more like an assumption) none of these two edge cases are optimal in regards to exposed API and productivity. So a mix between the two seems like the most logical path in my view. But create with what (C++ contra Blueprints).
I ask the question because just by looking at one of the C++ templates, let’s use the famous Third Person Template, one thing that immediately strikes me, is how easy it is to (un)tick a box, adjust the camera og adding some component to a blueprint and edit its values, making a timeline etc. contra writing all that in code.
It makes me think that in order to stay the most productive and still have access to full API, I should limit myself to writing base functionality and things that are not exposed to, or easilly implemented in, Blueprints, in C++. However, I might missing something very important.
Any input will be highly appreciated. I’m (as you have probably guessed by now) quite new to UE and game development, so… yeah, what are your thoughts on this, your routines or suggestions?
Yea, that’s pretty much the process I’ve followed - mostly just expose things to Blueprint and code the really performance heavy stuff (and the things that are just easier to code than create a monster blueprint). I think of it like Legos, build the individual bricks in C++ - but do all the final assembly in Blueprint. That way it’s easier to tear systems down and iterate on them without breaking things, it makes it safer for non-coders to tweak and experiment, and it gives you a nice visual ‘map’ of how the logic behind your game is structured. Once you’ve got something you like in Blueprint, and all tweaks are done, you can always re-write it in C++ for performance if it’s necessary.
A mix of both worlds is the most productive solution. For example, I have a C++ version of any classes I use, while I only try to reference the BP versions of that class. This way I have my base classes in C++ and the classes that are then used or even specialized more in BP for flexibility.
C++ is obviously more efficient that BP but for normal GamePlay code like acting to events etc you wont notice any difference. The best way is starting to experiment what fits best your needs but having at-least a base C++ class in your inheritance chain will prevent you some headaches.