Open-world and Unity.. or Unreal?

So, me and my team are on the brink of a big decision. Which engine will we use for our next project?

So a little bit about the project; It’s an open world game in which people will be free to build their own base/casa if you will. The map size that is aimed for will be around 200 km2 and a single session will support between a 100 and 200 players simultaneously. The map will be a modern day landscape, with villages and one or multiple smaller cities. Another important aspect is that we want to give it a “realistic” look. I know that’s kind of a vague term, but what I mean to say is that we want the game to be looking as close to real life that we are capable of producing.

About the team; at the moment, we are just three programmers. We don’t plan on keeping it that way, for obvious reasons, but that’s how it is at the moment. All three of us have experience with Unity and generally know our way to finding a proper solution to a problem. The same goes for C#, as it is a very familiar language to us.

Our plan is to create a prototype to test and to hopefully get funded to create the whole project. We have limited time on our hands, mainly due to financial reasons.

So the reason I’m doubting we should use Unity is for a couple of reasons.

  • Collider limit
  • More work to make it look good
  • More hacker-sensitive (Might be wrong)

Reasons to pick Unity.

  • Knowledge of Unity & C#
  • Fantastic asset store which will save time

When it comes to Unreal, I think we’ll having an easier time to make it look the way we want our game to look. On the other hand, I’m afraid it might cost us a lot more time to develop the game and learning the engine.

So preferably we will stick to Unity, so I would love to get more insight on the points that worry me.

I’ve read multiple times that Unity has a collider limit, the numbers I read vary between a 100-200k. In a map of such magnitude, including player driven content, I think you are bound to reach these numbers. Is this collider limit correct? Is there a proper work around?

So Unreal looks better from the start, but is it actually that much work to make Unity look closer to how Unreal looks straight away? I have little knowledge on this subject, so I do wonder.

The last issue is one that doesn’t really worry me, since hackers will be able to crack your game no matter what. But I just wonder, is Unity more hacker-sensitive than for example Unreal?

You’re asking us to make your decision for you, and the concerns you have presented are entirely subjective. Unity can have similar graphical fidelity as Unreal (check out the Adam demo, rendered in real-time), shaders like a lot of things are pretty a simple thing to make in Unity.

I don’t know if there is a “collider limit”, and tbph I don’t think you’ll hit 100k or 200k at any point. If this is an FPS, you’d have to have all your 100 characters spamming the fire button and shooting 1,000 bullets all at once. You can limit physics interactions with layers, so if you’re concerned about performance this can drastically improve that. In fact, if this is multiplayer I’d be most concerned about network performance with that much going on, than physics performance.

As for hackers breaking your game… ugh. That’s really the most subjective thing. Hackers will do what they want regardless. If they want to crack/hack your game they will do that. Then you ban them, fix the bug, and collect the $$$ when they buy the game again.

You said you have limited time. I think you ought to be more concerned with that than these though valid but not imperative concerns. How long will it take you to get a decent project going if you must learn Unreal Blueprints or C++ coding? That’s a factor you ought to be concerned with.

If you really want to know what I think; go with Unity. It will be faster because you know the engine and workflow and Unity compiles quickly. You won’t wait 7 minutes to compile a project and discover a missing semicolon.

Also, threads like this. SMH

1 Like

Download both and properly evaluate them. Let us know what you decide.

5 Likes

Build a prototype in both Unity and Unreal. Build a simple test map that tests your constraints. If it is a 200 km2 map with 100-200 simultaneous players, then that would be what you should test in your prototypes.

You will need to make some decisions about how you want to satisfy those constraints. For example, are you planning to use standard units, or will you resize them? Are you planning to use a floating origin (world origin shifting)? And on the networking side, are you planning to use an existing networking library or will you need to build your own custom networking solution to satisfy other unique constraints in your project?

6 Likes

More work to setup graphics = 0.00001% of the work it takes to make the rest of the game

9 Likes

This is true, and should be the first thing to do when trying to decide this question. There are probably a lot more strengths/weaknesses to add to your list after you’ve given both a spin.

2 Likes

Why, just why are you even thinking you need 100k colliders?

Unity does just fine for the kind of game you want. It’s not the engine it’s how good is your team. The collider problem is one of the simpler things you will be solving to make a game like that, and there are several relatively simple ways to solve that.

As a C# developer myself I tried unreal for 1 year and then came back.
Reasons:

  • Iteration times much faster in Unity
  • larger and more experienced community
  • larger asset store with source code assets

As for colliders I see no issues, you can implement a system like Vegetation Studio that handles millions of colliders, but enables them only around the players

5 Likes

You will run into problems with either engine. The best idea is to pick the one you’re more familiar with. Right now the main and the biggest issue with your project is that you don’t have any artists. Meaning you don’t really have anyone to make those wonderful photorealistic worlds for you.

5 Likes

If you’re rendering that much content or have that much content active at the same time you’re doing it wrong. :slight_smile: With a map of that magnitude you’ll want to be making extensive use of LODs and even swap some things for static, non physics things if you’re zoomed out to view the entire map at once… and if not, then you’ll want to make use of occlusion culling and probably not even load the entire map at once. This will be true regardless of which engine you choose.

2 Likes

Let me correct you.

This is not a unity limitation. It’s the limitation enforced by nvidia Physx, which stands at 262,143 at the time of writing. If you go over that, Unity will simply ignore your request to create more. This limitation will be present in all engines that use Physx.

Not really, no. It’s a few clicks from the built in post effects stack v2. You turn them on and it looks as good or better as other engines.

I have no idea what this means. But if you’re making decisions based on things you think you might be wrong about, that’s not an actual decision. It’s rolling the dice, and not even realising why you’re rolling it.

Do what someone suggested above: try them both, stick with what you are achieving things in. If you cannot achieve things in the engine you choose, the rest is entirely pointless.

8 Likes

I’m guessing that by “hacker sensitive” they’re referring to how easy it is to decompile C# to meaningful source compared to C++.

1 Like

It’s not for IL2CPP builds though.

Does lL2CPP still not have desktop build support though?

1 Like

Nope (unless I’m missing something). It looks like it is supported for UWP builds, but that’s it.

No idea when but it’s in their plans. Certainly could be there by the time people start and finish an entire game that would have enough source code to merit it.

After the most recent post about the fate of the new Input API… I’ve lost all faith in any statements they make about plans.

6 Likes

There was a new input api?

Either way, I think a safe approach is: “If a feature doesn’t exist right now, it won’t ever be added”.
Because “in plans” might mean “It’ll be maybe done in the next millenium”.

3 Likes

Yes but the input system exists and it’s in Unity right now (go to player settings : Active Input Handling), although as a “preview”. I guess it will be removed in the upcoming versions.

Can you point me in the direction of this post please?

1 Like