Posted 23 May 2014 - 03:37 AM
But sometimes it isn't the right tool.
Are you trying to design a game? To make a game? Are you trying to be a programmer? Are you trying to learn how the game engine works?
Unity is great for designers to just pick up and start working with. Unity is great for certain types of games right out of the box. You can play with the physics systems in minutes (or hours, depending how fast you are at reading). You can make simple game prototypes in days. You can make feature-complete games in work-months as part of a good team.
But for programmers working alone who want to learn to program, Unity almost does too much for you. You will not be spending your days writing 2D manipulation code and 2D graphics. You will be building game behavior systems instead. In addition to the programming, Unity also requires work from other disciplines; you will need art assets, sprite sheets, UI elements, you will need game system design, and level design, and UI design. As a programmer will only modify small bits of functionality and rely on the engine for the heavy lifting, which is what makes Unity so awesome for many uses. If you are trying to learn how to be a 2D programmer from scratch, don't use Unity because that isn't how it works. If you are trying to build 2D game designs and concepts you are probably behaving more of a designer than a programmer, so go ahead and use it in that case.
The 2D docs and tutorials on the Unity site are pretty good, but not stellar. The 2D additions are only a few months old and the tutorials are rough. People have used it to create several 2D games, but the technology is far from mature. Basically it is a 2D view of a 3D world, and it requires a bit of a learning curve. If you don't like that method of 2D, other engines may be a better fit.
Unity is a great tool. It is powerful. I love it. I even helped write a book about it.