Why make your own engine when UNITY 3d exists?

Posted 12 May 2012 - 10:34 PM

I was wondering today about making game engines or games in general. Why learn something complicated as C++ and OpenGL when you can just have Unity3d... an extremely helpful engine for game development. Can someone explain to me the benefits, if any, of making a game using C++ and OpenGL opposed to something like Unity3d.

Replies To: Why make your own engine when UNITY 3d exists?

Re: Why make your own engine when UNITY 3d exists?

Posted 13 May 2012 - 04:10 AM

1). You can't completely trust that other people's engines don't have flaws.
2). Building your own engine gives you a lot of experience
3). Building your own engine gives you a large amount of flexibility over what can be done

These are just some. Plus your engine might be better than the other. Imagine if Valve didn't create their Source engine because ID already had one. Or Epic didn't make Unreal because other engines existed. Or the people who made Unity3d because of the same reason.

But this is all just my opinion, and you will probably get faster results using someone else's engine rather than creating your own from scratch.

Re: Why make your own engine when UNITY 3d exists?

Posted 13 May 2012 - 11:08 AM

Flyingbob, on 13 May 2012 - 06:34 AM, said:

I was wondering today about making game engines or games in general. Why learn something complicated as C++ and OpenGL when you can just have Unity3d... an extremely helpful engine for game development. Can someone explain to me the benefits, if any, of making a game using C++ and OpenGL opposed to something like Unity3d.

Well, from a professional perspective:

1. The Unity3D engine source is private to Unity3D developers, namely Unity Technologies. What this is a disadvantage is that the feature set is fixed, so anyone using Unity3D to make their games will not have a technological advantage over someone else also using it to make their games.

2. Feature enhancements may not be rapid enough for some game developers who want to have an edge.

3. Unity3D only supports a very restricted set of platforms, and given that platforms nowadays rapidly appear or are upgraded, tools like Unity3D can't keep up. Why this is a big problem is that developers can have deals with hardware manufacturers to develop tools to specifically support the new platform.

4. License restrictions: When a tool like Unity3D is used to make a commercial title, there are very specific license restriction governing how the tool can be used commercially, as well as mentioning that the tool was used in various splash screens on game startup and the credits for the game.

5. In creating your own 'engine' you have full and unrestricted right to its use, and you can sell it on to other developers either completely or by licensing its use.

6. The enhancement to your engine is your choice, as opposed to what is perceived to be driving the market with the development of Unity3D.

7. Since you have the source to your own engine there are not 'reverse engineering' are restricted API calls that may break the license agreement.

The rest, from a non-professional perspective, is pretty much what sk1v3r said, apart from point (1) where every single engine has flaws; there is not such thing as a 'perfect engine'.

Re: Why make your own engine when UNITY 3d exists?

Posted 13 May 2012 - 02:00 PM

Some of ButchDean's points can be circumvented with a source code license. If you are large enough to have these limitations, you can easily afford a source license. That said, this doesn't apply to 99+% of Unity's user base.

3 is blatantly wrong though, Unity is probably the engine that supports the *MOST* platforms of any commercially available engine, as well they have a team that will adapt to new platforms. Their engine is extremely portable. That said, the off the shelf model, that again 99% of devs are using, do have limits on platforms supported, unless you use their UNION publishing service.

Re: Why make your own engine when UNITY 3d exists?

Some of ButchDean's points can be circumvented with a source code license.

yes, but this is more normal for open source projects.

Serapth, on 13 May 2012 - 10:00 PM, said:

If you are large enough to have these limitations, you can easily afford a source license.

Well, if it's open source where there is no charge to do anything with the code then it's free! So that's false.

Serapth, on 13 May 2012 - 10:00 PM, said:

That said, this doesn't apply to 99+% of Unity's user base.

I think you mean 100% of the source? And the fact that Unity3D isn't open source, maybe?

Serapth, on 13 May 2012 - 10:00 PM, said:

3 is blatantly wrong though, Unity is probably the engine that supports the *MOST* platforms of any commercially available engine, as well they have a team that will adapt to new platforms. Their engine is extremely portable. That said, the off the shelf model, that again 99% of devs are using, do have limits on platforms supported, unless you use their UNION publishing service.

I'd be very careful about such a comment. When I say 'support' I mean 'full support' (access to all features of the platform), and I know from myself being a PlayStation programmer that there is no way that Unity3D has full support on that platform. Why, it's also very closed so the interfaces that Unity3D can use will also be restricted. So based on what you define as 'support' I'd say that you are 'blatantly wrong'.

Re: Why make your own engine when UNITY 3d exists?

Re: Why make your own engine when UNITY 3d exists?

Posted 29 October 2013 - 05:27 PM

Flyingbob, on 12 May 2012 - 10:34 PM, said:

I was wondering today about making game engines or games in general. Why learn something complicated as C++ and OpenGL when you can just have Unity3d... an extremely helpful engine for game development. Can someone explain to me the benefits, if any, of making a game using C++ and OpenGL opposed to something like Unity3d.

Well from my own experiences in the gaming industry, I feel Unity isn't of an engine. I have worked with Unity as well as other and CryEngine, Unreal 4, and RAGE are vastly superior. Also, Unity does not release the source code, so you cannot manipulate the engine in anyway.

For an indie developer, it does not make sense to build a new engine, unless you absolutely must do it. From a large companies perspective it can make development easier, you can sell the engine, you can manipulate it to perfectly fit your project, etc. From a single user, the main reason is to learn.

Many people, such as myself, learn by doing, so making a game engine can teach us a ton. Hope that helped />