Blueprint or C++ for spellcreation

Hi all Epic programmers and artists!

I am quite new to the unreal engine 4 and have been playing around with meshes (making collision and so on) made in blender. I and a couple of friends are creating a game and one of the things I am supposed to do are creation of spells. I wonder if there is any need to learn C++ for this or if it is enough to use Blueprint. What are the advantages with creating spells in C++ and what are the advantages with Blueprint?

Also if there is any need to use C++ i would also ask you guys if you know of any tutorials that are good for learning C++ from the start (never programmed C++ before but have done so in other languages before :p).

Thanks guys for helping me out :slight_smile:

Blueprint’s pretty much for 2D and where C++ is overkill. There is limitations though: no unsigned types, no map/pair/set types, no double precision, no 16/64 bit integers, no signed bytes, I don’t think bitflag enums work with it either.

Here you can find my post about Blueprints vs C++ it might help with a decision.

What if it’s a 2.5D game on mobile/console? Not a lot of Paper2D C++ tutorials

The simplest way to decide is to base the decision on whether or not you want to learn C++, or whether your time is more valuable than that. Time is your most valuable asset when it comes to programming. Blueprint is fast enough for most games to run just fine, and if you can create it in half the time using those tools and it still runs at your target FPS - use Blueprint. Nobody is going to frown on you for it and there’s nothing impure about it :wink:

If you fancy a challenge though (one that might be very frustrating at times, but ultimately very rewarding when you work through it), try a hand at C++. Combining both can give you the best of both worlds, creating your overarching classes in C++ and then setting up their properties in Blueprints is a common way to approach it.

In reality, C++ is only going to help you if you know it enough already to be efficient with it. There’s the danger that you can do something very wrong in C++ and cause yourself more headaches than you can deal with. Blueprint is a bit more flexible, you can get away with making some mistakes. Unfortunately however, Blueprint has the tendency to produce people who don’t program very well - by that I mean they get something working but it’s not necessarily the most sensible or optimized way to do so. C++ is much stricter and you are likely to become a much better programmer in general by learning and using it.

Personally speaking, I started learning C++ last year because I was fed up of being scared off by it. It’s turned out to be the most liberating thing I’ve done in Games Dev since I started and I enjoy it as much as FX/shaders now. I was very out of my depth to begin with, but stuck at it and a year or so on and I’m comfortable programming networked physics-based vehicle games with client side prediction and all that good stuff. I have been fortunate enough to be working alongside an ex-EA programmer of some 10+ years for the last 9-10 months or so, who actually takes the time to explain things to you properly. That helped a lot :stuck_out_tongue:

Learning C++ is an incredibly useful skill, and you will become a better programmer by doing so. If you just want to get busy with a game though, perhaps use Blueprint for a while until you’re comfortable with the UE4 API, then you can move onto C++ if you find it’s too limiting (which to be honest, you probably won’t).

You sir are an inspiration for all :stuck_out_tongue: I’ve been try to tackle a top down space explorer/shooter in C++ and it’s defiantly difficult but very rewarding when you get rid of that bug that’s been there for 2 days you jump for joy and prance around (Literally) :smiley:

Agreed! I had a physics bug that was trolling me, literally for months. Even Blueprinting the code to work my way through it didn’t help. I ended up fixing it by dragging some nodes around randomly just for S&G’s, and all of a sudden it worked… couldn’t frigging believe it. Wrote everything up again in C++ and it worked. Best fix ever!

Blueprint definitely proved it’s worth there. It’s certainly easier to experiment with, but learning how to then do that in code and in the best way possible definitely helps you become a better programmer! Would probably cringe at the Blueprints I used to make now…

In a case such a an spell or hability system, i would create a master “Spell” class, with some defined events and functions that do a lot of stuff, and then build the individual spells by using those functions and events you are declaring and programming in C++.

Just so that I understand:
Do you mean that I should make the “Master Class” in BP or in C++? :slight_smile:

He means C++ :slight_smile:

Okey :smiley:

Thx everyone for helping me (us) out!