Trying to nail down a few things hoping to get some more info. I have quite a bit invested in Unity but it’s starting to give me fits for the type of game I want to make. I’ve spent quite a bit of time making developer tools for the Unity community and decided to go back to actually making games. I’m working on a large open world game and the things giving me fits are #1 the lighting. #2 the terrain system.
Lighting I know the least about. I want something where I don’t have to hire top notch technical artists to make it look good. Not looking for AAA, but I don’t want Rust either. Maybe a notch above Rust, which is actually quite challenging in Unity from everything I’ve seen. I can do a Rust on my own, but that’s about my limits. Along with this I’m curious how does Unreal terrain shading compare to say Unity with RTP? Does RTP put them anywhere near on par with each other? I’ve had good luck with RTP but the ongoing issue is that since it’s not made by Unity, there are always these little gotchas. Like it messes with tree shaders, or certain things don’t work with certain lighting configurations.
So to the terrain, I have a complete runtime building/terraforming/cave building system in Unity. The first issue I have is that the terrain api sucks for runtime manipulation. It’s just slow and no way to fix it. It’s impossible to update terrain without around 100ms freezes. I’m also curious as to what approach is used in Unreal for cutting holes in terrain. I have a whole underground building system that’s kind of a voxel hybrid. I use depth masks to cut holes in the terrain, build out structures under the terrain using cubes, and deform the meshes where they meet the terrain. I’m doing runtime mesh combining to make it all performant, with spatial grids to manage it in chunks. The underground stuff also limits me to forward rendering.
Last area is that I’ve just continued to hit strange bugs in unity with large open world stuff. Admittedly I’m pushing things, but still a lot of what I keep running into is just facepalm stuff. Like a while back I had an issue with lots of trees. Tracked it down to unity enabling/disabling tree colliders en masse using the same logic they do for occluding. They were literally just switching 10k colliders on and off as you pan around, on every tree not in billboarding distance. Their character controller is horrible, unusable with more then 50 or so characters as it does something funky that creates all sorts of garbage to collect. Their new physics system is my current bane, they just don’t test this stuff at any scale. It’s like hey it works in this small scene it must be fine ship it! So I’m sitting here with 100ms+ pauses waiting for them to fix it.
Now all of that said, I’ve got a huge amount of work invested in Unity. Realistically Unreal would have to solve a few of these issues for me (depending on which ones). Just really curious to hear from anyone who has some experience pushing Unreal at scale. What works wel what breaks. I don’t expect any engine to do exceptional in this area, most people aren’t making that kind of game. But I am getting tired of the facepalm stuff in Unity.