Build games with only C++ and no Blueprint???

Hi there! I’m just getting started with UE4, and I want to get your opinions here. I’ve searched the other threads, and can’t find an answer to my questions, so I’ll post them here (if you think that there is an existing thread or webpage that clearly answers these questions, then please feel free to just direct me there):

  • With all of the talk about Blueprints, and how powerful it is, what is the benefit of building your games entirely with C++, and avoiding BP altogether? Why would someone do that? For merely preferential reasons? Or better performance optimization? Or the (now) super-rare occasion where you will need to extend Blueprints functionality? Is there any other reason outside of those?

  • Does the hybrid approach (using both C++ AND Blueprints) improve your productivity/workflow? Or is that just dependent on how comfortable/fast you are with programming? Does it really matter?

I’m on a journey to master C++, and I wanted to use UE4 as my new and primary training grounds for practicing the language, since I love developing games anyway. When I used UDK, I found that, while I was VERY good with Kismet (able to pull off stuff that most people were not aware was possible), I found myself more comfortable with doing most, if not all, scripting within Unrealscript (I’ve fallen completely in love with programming, now, and I’m now currently reading several C++ books/tutorials, and building small programs with it). Is that possible/preferable here, or should I be taking a different route?

Thank you, ahead of time, for your kind and patient responses. I still have a lot to learn, so please excuse any ignorance that is displayed in my questions. :slight_smile:

Performance, accessing UE4 functionality not available in blueprints and accessing devices or libraries not available in Blueprints are all reasons to write parts of your game in C++. If your developers are experienced with C++, learning Blueprint may not make sense for them.

It depends on the individual. Blueprints is mainly designed to make it easier for non-programmers/artists work on engine code, however the tools can benefit programmers as well. I’m a very experienced C++ programmer, so I find working in the graphic environment less productive then working in text, but others will find it easier.

There is no right answer here. It depends on what your goals are for learning the language. Are you doing this as a hobby, to start an indie production company or to get a job in the industry? With C++, you have full access to the engine at all levels, which can be very powerful. If your goal is to be an engine developer and work on rendering, network or similar low level topics, C++ is necessary. However, most games don’t need this level of control, so if your focus is on games, you should spend more time in the editor and balance your study of C++ with some time with Blueprints.

I would recommend learning how to make the best of both. It’s pretty awesome how Blueprints can interact with C++. If nothing else you’ll want to expose C++ stuff to Blueprints through properties so you can easily adjust values on the fly. But there’s so much more. You could for example raise an event in C++ and handle it in Blueprint. If you ever work in a team you can empower content creators by providing them with custom nodes and as much tweakability as possible. Last but not least, Blueprints are actually a great way to get accustomed to the UE4 API. It’s much more straightforward to browse through nodes and hook stuff up to see what happens instead of digging through C++ classes.

So definitely don’t ignore Blueprints, even if you do most stuff in C++ it’s worth getting into.

I’m very new to UE myself and this is what I’ve found: I find Blueprints are totally awesome at graphical manipulations like animation, building levels and adding logic that allows you to craft a level. However, implementing game logic I find much easier in C++. I find 30 seconds and a few lines of code often accomplishes something that takes several blueprint nodes and fiddling around, but then I’ve only been using blueprints for barely any time and I’ve been programming for a long time.

I think it’s better to prototype your game in Blueprint with for example an actor coded in C++ to acces some of the potentiality of UE4 not accessible in Blueprint.
And after that rewrite some of the blueprint node or functions in C++.

But let some of the possiblity directly in blueprint to change easily something if you or a memeber of your team need it.

I think the mix of two is really powefull !

Blueprints is awesome for settings animations or audio, or not difficult logic like open the door, for game logic better C++, it’s my opinion )

I’m sure that no matter how much experience and knowledge you might have with C++ there will be always advantages in using blueprints (for example the faster iteration times, you don’t need to wait for anything to compile with BP) so a hybrid approach makes the most sense to me for sure… there is no reason to limit yourself when you can use the best of both worlds.

The way I personally do it is to prototype everything I can with blueprints, then after I get to a decent/stable point, I run some tests/benchmarks and then if I need to I rewrite some of the heavier stuff in C++… however there are definitely things that are probably best to just be written with C++ right from the start. Use the right tool for the right job kind of thing I guess :stuck_out_tongue:

I’ve read all of your posts in detail. Thank you for your detailed answers. When it comes to my development style, I’m sort of a “jack of all trades”, but I’m wanting to focus on one thing as my primary skill, and the thing I find myself most excited about is the game programming aspect. While I’ll likely try to do as much as I can in C++ (I want to make games professionally, so it would be a solid industry skill to master), it seems like there are many reasons to become just as proficient in Blueprint, ESPECIALLY if I’m going to be working with a team (which I sometimes do). Thank you for your friendly responses and the good advice! :slight_smile:

Oh and one more question: Is VS and Xcode the only code editing tools that will allow you to compile while the editor is still open, or will you be able to make quick changes to the code via, say, a text editor and then save and recompile without closing the editor?