Tips and Tricks for a programmer switch from Unity to Unreal.

Hi, i’m Honi and i work for a company that develop software by demand with JAVA, Javascript, html, CSS, PHP…etc. I also graduated last year in digital games as a hobby and a secondary profession. I’m also a big fan of Unity and his C# implementation, i used it every day in college and also never heard about other engines before. FORTNITE showed me Unreal Engine. So, this being said, i want to ask you people something.

I’m trying to use Unreal Engine with C++, don’t get me wrong, BP is very intuitive and a great tool, BUT, as a programmer i want to keep my self always coding for pratice ofcourse and plugin wires won’t help, i don’t have problems with logic.

I want to learn it by my self but, along with the Unity to Unreal documentation i wanna know if any of you guys have some tips and tricks to make everything easier just because i have the weekends to learn.

THANKS!

Just dive in and study some classes in the “GameFramework” folder of the source code. Actor, GameMode, GameState, PlayerState, PlayerController, Pawn, Character, CharacterMovementComponent etc.and derive classes from them and add some functions of your own.

It is quite a lot of code so don’t go through it all but use it to get an idea of how the code is being used. You will notice that a lot of functions and variables are exposed to Blueprint and i would recommend you do the same and get the hang of exposing functions that a designer may want to use in Blueprint. C++ and Blueprint go hand in hand.

The jump from C# to C++ is not that difficult in Unreal since memory management is largely handled by UE4 as long as you use the built in functions to spawn Actors instead of using “new” to create your own objects.

The difficult thing that I had to struggle with myself when starting with UE4 was to learn when to use all the different Macros and what they do exactly.

I can strongly recommend that you get the plugin to Visual Studio named Visual Assist by Whole Tomato Software. It makes navigation and code completion much easier.

I had the same idea when I started with UE but frankly I don’t think it’s worth the effort. You can do almost everything in BP and it’s way easier than C++. I am quite sure I would not be half as far as I am now had I insisted on using C++ since the documentation is practically non existing and if it exists it mostly consists of a repeat of the parameter names without additional info.
If you seriously want to use UE, use Blueprints except for those parts that can’t be made in BP.

I used Unity for about 5 years before finally making the jump to UE4 full-time for my indie projects. If you’re not a reasonably strong C++ coder, go learn that first. Trying to come into UE4 with only C# experience can be really frustrating. I agree with GarnerP57, definitely check out the sample/starter projects the Unreal team provides. Learn how to use BluePrints properly (i.e. like PreFabs that you create in their own editor instead of in the game and promoting).

Once you’re reasonably comfortable, create a few simple things from scratch and take them to completion. This will force you to learn a few things you might have missed (e.g. animation blend spaces).

I find that learning C++ for UE4 was 100% worth it. Spaghetti code is translated into nice and neat C++, my workflow is so much smoother, and it’s not *that *hard to learn. I spent around a year dealing with only blueprints, and found I was limited by a lot. Couldn’t really flesh out complex algorithms without a spiderweb of node connections, a lot of useful stuff is exposed to C++ only, etc. I decided to relearn C++ after completely forgetting it; took me only a few months and I was back to speed.

C++ also gives you a major performance boost for virtually everything. If you don’t need the added performance or you’re just doing a bunch of testing, I’d just go with blueprints.
The workflow that I found works best is to create all your abstract stuff like your player controllers, AI controllers, shared actors, stuff with a lot of internal variables and functions can be C++ classes. Anything that needs components moved around in-editor or child classes at the end of the hierarchy defined as an “end product” would be using blueprints. An example of this hierarchical workflow:

Weapon (C++) -> RangedWeapon (C++) -> BlasterWeapon (C++) -> Tri-Blaster Lvl.2 (Blueprint)

This workflow works for me, and seems to be the general standard when it comes to integrating C++ into your game.

THIS! I did a lot of playing around with different approaches and every one of them totally breaked everything.

When working with BP and C++ in conjunction its important to have a clear barrier. Mixing both too often and in the wrong places results in a total mess.
So planning a bit ahead really helps :slight_smile: