Why Unity?
There are several dozen game engines available for 2D and 3D game development. So why choose Unity? I probably do not have to convince you of that because you are reading this book. In case you still need convincing, let me tell you about some of the competition, first.
Unreal and CryEngine are among the most capable game engines available. Large game studios have created 3D games using these game engines for many years. Both engines have been used to create high-grossing games. The pricing models and complexities of using them are enough to make indie game developers and small game development studios look the other way.
What about easy-to-use game engines? Game Salad, Game Maker, and Construct 2 are all easy to learn and use. In fact, you can create simple games with these engines without having to program or script a single line of code. These are all 2D game development engines and lack the capabilities of the larger engines.
This does not put Unity in the middle of the easy-to-use and most capable game engines. Along the spectrum of capabilities, Unity is to the far right. See the following diagram:
Let's review the following table so that these game engines can be compared based on their capabilities, learning curve, and what programming languages are used to develop games with each engine:
Game Engine |
Learning Curve |
Language |
2D/3D |
---|---|---|---|
Unity |
4 of 5 |
C#, JS, Boo |
Both |
Unreal |
5 of 5 |
C++ |
3D |
CryEngine |
5 of 5 |
C++, Lua |
Both |
Game Salad |
1 of 5 |
GML |
2D |
Game Maker |
1 of 5 |
N/A |
2D |
Construct 2 |
2 of 5 |
JS |
2D |
The Unity game engine sits in a sweet spot between tremendous capabilities and difficulty to learn. This makes it the engine of choice for many developers. As you'll see later in this chapter, we declare either 2D or 3D when we create a game project. There are some other beneficial reasons for using Unity over the other game engines:
- The ability to program with C#, JavaScript, Boo, or any combination of these languages in the same game.
Tip
While Unity supports scripts in the different supported languages (C#, JavaScript, and Boo) in the same game, I do not recommend this. The best practice is to pick a single programming language and use it throughout the game.
- The ability to test play games in a separate view (window) without having to create builds or leave the development interface
- The ability to make changes to the game while it is being played and not having those changes impact on the saved version. This is a great way to experiment and test.
- The ability to develop once and then deploy to mobile (iOS, Android, Windows Phone 8, and BlackBerry 10), desktop (Mac, Windows, and Linux), Web (Safari, Firefox, Chrome, and Internet Explorer), and console devices (Xbox One, Xbox 360, PlayStation 3, PlayStation 4, PlayStation Vita, and Wii U).
In addition to these great reasons to select Unity as your game engine of choice, it is free for most purposes. There is a Pro version that costs money, but if you want to get started without having to spend any money, Unity is for you.