A couple questions about blueprints/visual studio combo use

hey everyone,

I have been learning to use unreal a bit recently for some R and D for my indie game company. We have used Unity up until this point in time. Recently I have been looking into unreal a bit because Unity and Unreal are pretty much the top two industries standards it seems when it comes to this line of work. I was very hesitant about even taking a look at blueprints as a programmer i felt from the outside looking in that it would be too limiting and constrictive to any creativity that I wanted to show. To my surprised I have found that not only can you still “program” using a visual system with blueprints but that i read you are supose to be able to add straight code on top of bluprints to really customize your application if you need the extra control. My question is two fold, first… how would i go about adding an actual script to my “blueprint started project” and second would it be possible to use C# as the language instead of C++ as the recent .10 update says that you can use visual studio 2015 now with it? Thanks!

Any information regarding these questions would be awesome. I really am starting to think that once i can get a real good feel for how this system works and the work flow is set up in unreal that my company may switch to all future projects outside of mobile being done here with unreal. (i have yet to look into how unreal does with mobile gaming but if it handles it well also it maybe what we just switch to for our main engine). Thanks again for taking the time to read my post and I hope that you are all having a great day.

~Sylvir

  1. You just right click and add c++ code to your project. Or right click on something and add c++ child, etc. You need to make sure your visual studio can use c++ though, when you install visual studio make sure to check the c++ box under additional languages or something like that.

  2. I’m pretty sure you can’t use c#, but if you already know c# then it’s not that hard to learn c++, you just have to do a bit more work, but it’s tedious, not hard. A few things you should be aware of:

  • instead of stuff you put into the world inheriting from MonoBehaviour, we inherit from AActor

  • instead of Start() it’s BeginPlay()

  • instead of Update() it’s Tick()

  • until you understand what they do, you should put UPROPERTY() on the line above your variables, UFUNCTION() on top of your functions, UENUM() on top of enums when you’re defining them, and USTRUCT() on top of structs when you’re defining them

  • instead of going foreach (type name in place) {}
    you go for (auto name : place) {}

  • instead of dictionary<typeA, typeB> name
    it’s TMap<typeA, typeB> name
    If the TMap doesn’t already hold something for typeA, you can’t just go name[valueA] = valueB, you have to go name.Add(valueA, valueB);

  • instead of Mathf.thing we use FMath::thing

  • when you have a pointer to something and you want to access something inside of it, instead of going thing.var, you go thing->var

edit: We also use FVector instead of Quaterinions (or however you spell it) for rotations, and that alone is worth switching from Unity to Unreal lol

It’s not that C++ goes on top of Blueprints, but that Blueprints are extending C++. You can at any point make a new C++ class and then rebase your Blueprints to it. Having a Blueprint on top of your C++ classes makes it much easier to work with assets.