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,

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.

1 Like

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.

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