Download

Porting Unity To UE4

Hi everyone,

So, tl;dr, I’m over 2 years down the line into a Unity project and I’m at the stage where it’s more or less pointless to keep on using Unity. My entire codebase (about 150k LOC) is abstracted out nicely so it wouldn’t be such a nightmare to switch out on the whole in terms of code, apart from translating the API calls over to UE4 (it’s all plain C#, all I do in Unity is use MonoBehaviours to reference backend classes if any physical interactions need to occur). Having access to the source- not a source license, I was given their repository by a friend for finding pitfalls in the big old black box of Unity- has put me off using the engine even more. Some release code is honestly structured like it was put together by a monkey intern, and I’m not talking obscure systems, I’m talking main processes. It’s a mess.

A friend of mine is always telling me of the enormous benefits of UE4 and I desperately want to switch over. On the graphical side, Unity’s default lighting is hugely capping the quality of my renders at this point, and not being a graphics dev I’m quite limited in what I can do about that (not the mention the closed-source limitations).

There are only a couple of things putting me off; I’ve developed an enormous amount of backend editor tools which will likely take a lot of work to get going with UE, and I have a hell of a lot of UI set up with Unity’s uGUI.

In terms of Unity-specific stuff like UI, is it going to be heavily involved moving it over or could I perhaps automate it? I’m assuming that it’s not going to be possible to easily migrate over, given the different UI structures, so even if it’s possible to read Unity’s markup scene format over to UE4 and rebuild, it could end up taking even more time than just reconstructing it.

I am only going to be able to do this if it isn’t going to take a ludicrous amount of time but it’s been on my mind for a while now. I’m seriously disillusioned with Unity and know that it’s putting very strict limits on the quality I can achieve, so if anyone has migrated themselves I’d really appreciate hearing about their experiences, and just get some general thoughts from people around here.

Thanks,
-Josh

I guess it depends on how much time you would be OK with to get it converted over—you can likely get a lot of your scripts converted to using Blueprints, but something like your UI would have to be redone from scratch since the two UI systems are way too different.

Porting from Unity to UE4 can take a huge amount of time, much more than your 2 years spent. It really depends on your knowledge of UE4. Unreal has much much more features than Unity, which mean learning it from scratch is a very long process. You code in Unity is gonna have a tough time transfering to Unreal assuming you are using C++. Developing Editor tool in Unity is a lot easier than Unreal. There are very little documentation on the exact process in UE4. You are pretty much stuck with 2 wiki pages and 1 livestream Youtube video. The process of learning to develop Editor tool inside of Unreal is a long process (involve reading source code) and very crash prone :). It is pretty amazing one you learn enough, to not crash the engine every couple of minutes, but the process of getting there can be longgg.

If you ask for my recommendation, it is to stick with Unity. Make the hard decision of either cancelling the project, or push through to completion. Changing engine late in development is usually a terrible idea, for one feature you gonna like in Unreal there is gonna be another feature you gonna miss in Unity. The worst part is that trying to force Unity design and workflow into Unreal is gonna be a disaster. If you want to try Unreal, I recommend starting with a new project and learning the engine strength and weakness there.

It wouldn’t take longer than it did originally, I’ve gone from UE4 to Unity (though not the other way around) and it took about a month on a project. And I could do it much faster these days.

Didn’t follow if this is a tool or a game, but working on the assumption its a game…
I just find the two engines are way too dissimilar. But in a way that’s also a novelty.
A month DV? Give me 6 months and maybe I’ll have something to show, maybe!
But maybe my skills are mediocre in comparison to you both. So with that caveat…

Personally knee deep in the trenches, I see no real correlation between BP and C#.
BP is like using black-boxes, component-like, but what’s going on under the hood?
Mono / C# is very forgiving… Not knowing much is never really a big disadvantage!

The only way to know for sure is find an equivalent project on both stores & contrast.
To give a specific example take Jet-Fighter-Combat or Space-Shooter physics etc.
Feels easier to custom tweak in Unity but a basic one in UE4 is easy & looks better!
But this is C# vs BP. If you have killer chops, source-access and C++ will trash Unity.

UE4’s UI feels Rigid & Convoluted imho, but maybe it can be automated from C++?

BTW: I tried porting in both directions between all 3 (UDK), it was a fabulous failure!
Unfinished projects left orphaned etc. So I’d finish what you have and start over new…

Was dissapointed to find out that this wasn’t someone recreating unity inside of UE4 :\