For the past few months, I’ve been messing around with Unreal Engine 5 since it has become a hot commodity. Unity is fine, but I’m more at home around C++. Not to mention, I like more of the low level access you can get from Unreal vs Unity where they locked out a lot. I’ve been “porting” Stone Shire to Unreal as an exercise to practice with the engine. It has been a wild journey so far, but I’ve gotten the basics of it set up with proper code organization and actor usage. Procedural generation makes use of the the UProceduralMeshComponent class, which has been very helpful.
One big obstacle I’ve had to overcome is that the cartesian coordinate system in Unreal is far different from Unity. In Unity, Y is up and down. In Unreal, Z is up and down. In addition, the texture coordinate system has the origin in the upper left instead of the bottom left. This has made me have to change around a lot of how I organized my vertices and uvs, but I managed to fix it after an hour.
As Tim Sweeney from Epic Games said:
In any case, I have the game practically running. But now I still need to add more of the basics from my Unity project: generating a world procedurally, editing and putting down cubes, and all the other fun stuff in a Minecraft-like game. I will say one thing: the first-person module that comes with Unreal is far more friendly than the basic one in Unity. I love all the little details like the automatic sloping effects of the physics engine, so you can go up and down threshold of heights a lot better. I know this is in Unity in some form, but it’s “smoother” in Unreal Engine 5.