What kind of games would not be best for Unity?

I’m looking at some modern games and usually I can guess which ones have definitely not been made in Unity. These are usually these are procedural ones like:

Minecraft
No Man’s Sky

Or games with infinite landscapes. I’m sure games like Fez and lots of indie games can be made with it. They might run slightly faster in their own game engine, but with the power of computers today that isn’t a issue. I was surprised that Broforce was made in Unity since that it has a destructible landscape but I guess that’s just a simple 2D game.

A game like Doom or Quake would run faster in its own game engine since the culling is optimized for tunnel based games. But could be made in Unity because computers are faster these days so they don’t have to be overly optimized.

Also ones with strange landscapes that go beyond Unity’s terrain features probably have their own game engine.

All of what you named can be easily made in Unity. In fact, a partner and I made Minecraft in Unity a few years back as a hobby project. No fighting against Unity, just didn’t use a ton of it.

I think your definition of “easy” may be different from everyone elses! :hushed:
Also, was your version of Minecraft as fast as could be done with doing it from scratch?

That’s all hypothetical really. If developer A uses unity and makes a fantastic game, with very high quality, efficient code, it’ll probably be all good and well.

If said developer A also decides to recreate said game using nothing but original code, as in a renderer, physics engine, sound engine, lighting system, so on and so forth… that game might just suck. It might not be nearly as fast because it doesn’t have a huge team of experts writing those systems, and even though developer A rocks when he uses unity, he might not be so good at developing a game engine…

Consider the flip side as well… if developer B did the opposite, and wrote from scratch a game engine specifically tailored to his game idea, and did it efficiently and knew what he was doing, it might be a great game. Then when it becomes somewhat successful perhaps he wants to target more platforms, and decides to recreate it within unity. Then some of the techniques that he used to make things more efficient might not work so well within unity, or just plain won’t work without access to source code. In this case maybe the unity version would suck.

What I’m saying is, you can paint on the tried and true canvas many people use, or you could get better at working with wood and glue and create your very own canvas - but how good of an artist are you? Do you think you can make a quality canvas? Sure you could make it the exact dimensions you need, use the exact type of material for the surface to help your paint stay good and not drip… but ultimately it is about having not only the canvas and the paint, whether you made it or not, it’s about whether or not you approach painting right. How refined is your technique?

Ok so bearing that in mind, unity is right for a lot of game types, and custom built engines could be right for lots of game types too, so choose the tool that fits you best, and meets your needs and expectations, but perhaps most importantly also fits your ability!

Yes, an engine designed perfectly suited for the job would in theory be faster. Minecraft runs in its own engine, but was considerably slower than the version we built two years ago in Unity. Not sure what that says about Mojang. Luckily for us, Unity is moduralized enough to have an extremely low overhead on bit you don’t need. So really, Unity did the low level work we needed, and we turned everything else off. Did our own lighting, some form of “culling”, manually handled all the voxel and chunk data, and only used Unity as a glorified platform rendering interface.

1 Like

Unity can do all these games including no man’s sky and minecraft, and frequently has done games like those. Look at kerbal or rust.

So yeah, Unity can do it fine. At what quality level is an entirely new question though.

2 Likes

I heard No Man’s Sky used a modified version of Unity. Not quite sure though.
But yeah, pretty much any of those game can be done in Unity if you don’t abuse drawcalls.

2 Likes

Actually, unity is quite suitable for making minecraft clone and procedural geometry games.

While Fez would be the best using custom engine.

Doom and Quake are not “Tunnel based”.
For example:
http://vignette2.wikia.nocookie.net/doom/images/2/2e/E1M7dots.png/revision/latest?cb=20070128082129

However, unity in general is not suitable for a game with high visual fidelity or where you get to see object close. It is a bad fit for realistic 1st/3rd person games due to the lack of proper mixed mode lighting (which unity stubbornly keeps ignoring).

The engine is most suitable for cartoon, stylyzed, low-poly or 2d games.

Don’t attempt an MMO.

I’m lookin at you, noobies.

2 Likes

Minecraft was reverse engineered and duplicated quite easily in Unity.

http://forum.unity3d.com/threads/after-playing-minecraft.63149/

There are even assets you can purchase to handle the more difficult aspects for you like IronVoxel.

http://www.ironvoxel.com/

Worlds Adrift is Unity with SpatialOS for the backend. It’s supposedly endless too.

https://www.worldsadrift.com/
http://www.wired.co.uk/news/archive/2015-11/12/improbable-spatialos-simulated-cities

Hmm… OK. I submit. :slight_smile:

2 Likes

No Man’s Sky would be a nice piece for Unity’s portfolio.

1 Like

Unity allows easy modification of geometry at runtime, it has object layers, spawning stuff is easy. Also, you can easily insert something like raytraced or procedural primitives via shader system.

So it is a good fit for procedural games. (even thought it might not be the most performant option).

For “realistic” and high-fidelity graphics, though, you’ll have mixed-mode lighting problem.

I guess if you wanted to make the ultimate cereal simulator.

Coming to Unity in a decade. :stuck_out_tongue:

2 Likes

There are some games that fall out of Unity’s scope. It would suck for tabletop games. It also sucks for sports.

Really anything that requires physically touching playing pieces or other players is out of Unity’s league.

This may change with future generations of VR tech.

There’s nothing in Fez that couldn’t be easily replicated in Unity.

Collision and movement.
You would need to ditch unity’s built in system and write your own.

In fez 2 dimensional shape of 3 dimensional object is used for collision detection and depth component is ignored.

|....
|.A..
|....
|.BC.
+----

^^^ This is a level view from above. “.” designate empty space.
Player is standing at “A”.
While the game is rotated to see “A. B”, player cannot walk from A to B.
However if you turn the scene (so you see “BC”), then player can walk from A to C in one step.
Because A and B are treated as the same space.

Yeah, I can write that.

But “easily” is something that a newbie can write in a half of a day. And ye average newbie is very likely to have trouble with this.

When the perspective changes in Fez, the player is locked in space and the world rotates around them. Because of this, we can disregard 3D collisions entirely and instead have everything take place in a 2D collision system. Assume each block is located in a 3D grid and pre-generate 2D colliders that you switch between when you change perspective. There are a few outlier situations you’d need to solve for (climbing vines and switching perspective/other situations where you rotate to be behind an object) but it’s a lot less complicated than it seems at first.

1 Like

One series of games that I’ve wondered if Unity could handle is the Total War franchise. I could imagine a lot of low-level optimizations in those games to get them as performant as possible, that may not necessarily be available to Unity. Even with the native interface, and the lowest possible level of shader programming in Unity. If anyone thinks it would be possible, I’d like to read details on how to do those optimizations.

1 Like