Unity is a multiplatform game development tool, designed from the start to ease creation. A fully integrated professional application, Unity just happens to contain the most powerful engine this side of a million dollars.

codewalker says

7/10 - Agree (1) Disagree

This engine is perfect when you want to prototype games or make simple ones. The feature list is very powerful and the scripting standard that is used is very straightforward. put a game object on a scene, put a script that you made on that object and you are all set. You cannot get any simpler than this!

As you might guess by now there is a big bad BUT. I reached this after working with unity for the past 6 years and many don't notice it or refuse to notice it because they already paid for this so there is a kind of "marriage" with the engine. If you remove the veil of what the engine can do for you graphically, you will start to see the problems this engine has from a more objective standpoint.

- writing monobehaviour scripts encourage bad programming practices that will make new programmers sloppy with many game code with many inefficiencies. You need to have some programming background to not fall into this trap.

- Simple scripts are the best choices for games with Unity. But then you need to add some complex code in order to add uniqueness to your game so it does not fall into a formulaic kind of game. Unity will eventually start fighting back and when it does, you are writing code workarounds instead of actual code features since you cannot control how the engine works, you just have to make the best with the behaviour of your game code.

- MonoDevelop is the default IDE (VStudio on Windows). MonoDevelop is very unstable and may crash while you are editing or debugging your game. I had to resort to use code text editors instead of IDE's for better performance and less crashes.

- Flexibility is a loose term when it comes to Unity, because many assets and plugins work on top of Unity's "black box" so your game performance can take a very serious hit.

- Games made in Unity, although powerful, they can turn your computer into an energy hog even though the game is graphically simple. The engine is not very efficient

- Unity Editor is way too centralized for an editor that does not edit game code without external editor, but you may find it almost impossible to debug an unity game from the code editor alone, you have to start the debug from the Unity Editor and look at the code in another program. This is not very programmer friendly.

If you want to start making games and you have little programming experience. Unity is more than enough for you. If you plan to develop simple to low complexity games. Unity is right for you. If you are an experienced programmer looking to make something extremely unique(game or application), I recommend you to go to another engine