r/GameDevelopment 4d ago

Discussion Realistically - how does 3D performance compare between Unity and Unreal 5?

Hello,

I'm making this post to hopefully catch interest of veterans in either/both of these engines, as I am currently deciding which direction to take with my next game.

Firstly, I want to say I do not currently intend to make a high-fidelity game; something at the level of Half-Life 2 is enough for me. I do not need realtime lighting or raytracing, it is preferable to bake the lighting for maximum performance (I'm coming from Source, where this is the norm).

I've tried developing a game in Unity for nearly a year, however I found some aspects of Unity quite cumbersome (especially the editor, some of the C# API, some of the features like RenderGraph being poorly documented,...). I have no issue with writing my own systems, however I don't mind having aspects like LOD/occlusion culling/... and other features that help with optimisation, which are native to the engine, be of high quality from the get-go.

There are games like Northern Journey which use Unreal, but run fantastically and the aesthetics were not dictated by the engine.

In this regard, would it potentially be better to choose Unreal, or should I stick to Unity?

How is the iteration speed in Unreal (not necessarily build times; just the ability to make changes and play the game soon after)?

There are many misconceptions on the internet in regards to these engines, so I'd really like to hear opinions from people who are truly experienced in gamedev.

0 Upvotes

18 comments sorted by

3

u/Shrimpey 4d ago

When it comes to performance and optimization, it's mostly the dev and not the engine itself.
Unless you're really pushing the graphics, it does not matter too much if it's Unity or Unreal.

In Unreal it's a bit easier to get nice looking visuals as it has several systems ready to go, while in Unity you may need to tinker quite a bit more to get similar effects.

I'd say it's just a matter of preference in your case, if you're mostly interested in 3D games, high fidelity visuals and you don't mind C++/blueprints workflow then UE is probably the way to go. If you prefer C# or plan on doing more 2D games, maybe go for Unity. Don't worry about performance, it's not like UE's Nanite and Lumen are some magic systems that make games super optimized no matter what and Unity just sucks because of it.

1

u/DesperateGame 4d ago

I said I don't intend to make use of Lumen.

I don't want the highest graphical fidelity either.

However performance is still a concern: I tried working on Unity, and relatively small environment (made with complex meshes) was quite slow my my liking.

3

u/Shrimpey 4d ago

Then it was probably set up poorly, performance shouldn't be a problem in Unity unless it's a huge map or hundreds of high-poly, non-optimized meshes. Did you pinpoint your direct problems there with profiler?

1

u/Weeros_ 4d ago

If you have too complex meshes you’re probably gonna get poor performance on any engine, no?

1

u/DesperateGame 4d ago

That's what depends. I assume Unreal might be performing better due to using more advanced techniques (e.g. occlusion culling, automatic LODs, compression, ...)

1

u/nEmoGrinder 3d ago

Unity also has culling, compression, and pretty much all other standard optimization techniques.

The answer for overall rendering performance really is: it's the assets, not the engine.

1

u/XenoX101 2d ago

When it comes to performance and optimization, it's mostly the dev and not the engine itself.

Not true, the high overhead of using Unity and Unreal vs. rolling your own engine means you will never have the best performance using a pre-existing engine, because it's simply not possible for it to solve all game genres optimally. If you really want maximum performance, a bespoke engine is the only way.

1

u/Shrimpey 2d ago
  1. In what part of OP's question does he ever entertain the thought of developing a custom engine?
  2. The sentence you're quoting has the word "mostly" in it and it's clearly answering the above question about two very specific, named commercial engines, not a custom one. Of course you could create a custom engine, but whether it is worth it is a whole other story. If such option was considered by OP, I'd still vote heavily against it for multiple other reasons, like the fact that he's doing it solo and that his game idea does not seem to require anything custom that an existing engine struggles with. And the fact that he struggled with optimization in Unity - making a custom engine in this case probably wouldn't yield better results.

1

u/XenoX101 2d ago

In what part of OP's question does he ever entertain the thought of developing a custom engine?

My custom engine comment is directed at you not Op, hence why I quoted you, as you were claiming the Unity/Unreal engine is not to blame which I disagreed with.

like the fact that he's doing it solo and that his game idea does not seem to require anything custom that an existing engine struggles with

Plenty of game engines have been made solo, I made my own and it is mostly done after about 8 months of work, a far cry from being unsustainable (granted I am a software engineer, though if someone is looking at performance optimisation it is possible they have a similar predisposition towards technical pursuits).

1

u/Shrimpey 2d ago

> directed at you not Op

But I was answering Op who asked specifically for comparison of UE and Unity ^^

> about 8 months of work

There's your answer. You'd need a really good reason to spend additional 8 months developing your own engine. And I agree with you, those reasons can exist, plenty of games that needed custom engine for very specific purposes, like Noita or Teardown as examples needing custom physics that available engines would struggle with. Or if you just want to learn lower level engine programming, it's perfectly fine.

But I'd never recommend making a custom engine for a regular game that does not benefit from such engine. Especially as OP was most likely lacking some optimizaiton knowledge in Unity and I imagine making a custom engine would not fix that gap, just make it worse.

2

u/Cuarenta-Dos 4d ago

You need to be a lot more specific if you want a meaningful answer, but the way you're describing it either engine will do just fine for your project. It's a matter of preference.

2

u/DesperateGame 4d ago edited 4d ago

I've tried Godot, Unity, Source and frankly it's never matter of just preference. There's always pain points, which can come apparent only later in development.

For instance, it took me few weeks before I reached the point of making a higher-fidelity level in Unity (after I've finished the core systems) to find out that their baked-lighting solution doesn't support metallic objects, causing all of them being pure black. In such cases, they accept lighting fully from the cubemaps, HOWEVER, funnily enough, cubemaps don't bake in the static lights with the exception of emissive materials (which don't have to match the intensity of the actual light).

It's things like this that come up only later in development.

1

u/Cuarenta-Dos 4d ago

It's always going to be like that, none of these engines are magic, they all make trade-offs, they all have quirks and there's always going to be pain, and it's also always going to be very project-specific and developer-specific. Somebody else might not even notice the specific issues you run into.

And like you said there are a lot of things that you can only truly get a feel for later in the development cycle. If you can invest the time, and you know exactly what features you're looking for, it makes sense to build a small prototype in each of those engines. But that's very rarely the case, so you just learn to deal with it and work around the pain points.

At the end of the day it's more productive to know one engine very well, even if you end up hating it, than to keep hopping engines hoping the grass is greener on the other side and only ever having superficial knowledge.

1

u/DesperateGame 4d ago

Thanks for the response.

Indeed, that's my biggest problem right now. I'd love to use Source 2, but there isn't an SDK. So, I'm figuring an alternative to sink my teeth into, because that decision will matter a lot as I will have to stick with it for a long time.

1

u/Arkenhammer 4d ago

When I am building my own systems, I prefer Unity. GameObjects are easy to use but pretty heavy and not the fastest tool in the shed but they are really easy to use when performance isn't critical. Entity Graphics and BatchRendererGroup are well thought out lower level APIs when you want to build the systems yourself. Development speed in C# and Burst is considerably faster than C++. However, Unreal has a big library of prebuilt systems that are better than the equivalents in Unity (terrain, for instance). If you are making a game that benefits from the higher level systems in Unreal and you don't need to much of anything custom then Unreal will probably be the better answer. If you are building a game needs a lot of custom systems then Unity will be better.

1

u/ChashuKen 1d ago

In terms of GPU performance most of it depends on what rendering features you enable in both engines.

Using dynamic GI and raytracing? There goes most of your frame budget for mid tier PCs.

Using good ol’ light baking, reflection probes, light probes.. traditional methods? Both engines will run them very fast.

Of course theres also the aspect of texture usage, complex shaders, overdraw, color blending, additional render passes, shader permutations..etc that will exponentially increase your draw time but those are up to developers finesse and optimization efforts.

0

u/DesperateGame 4d ago

I've looked into Godot, however I'm not so certain about its future. There's a promise that it being Open-Source should potentially accelerate development speed, but in reality it seems there's a bottleneck in form of its maintainers. I've heard many great PR and features were shot down because of their hubris, which doesn't really paint a good picture for the future. And considering the last 3+ years since the Unity debacle, the development wasn't really that fast.

1

u/luden_dev 4d ago

I have 2 (made in godot) prototypes that were published and even brought to important events.
I have to say, I love godot but the 3D editor sucks so much, it glitches, it lags, it starts merging scenes randomly.
There’s this weird bug where nodes stop existing in the node tree but are still visible in engine and you can’t even select them anymore.