Chapter 1. Introducing Unity
To kick off our exploration of the Unity game engine, we’ll start with the basics: what Unity is, what it’s useful for, and how to get it. At the same time, we’ll set up some useful constraints for the subject material we’re looking at in this book; after all, you’re holding a book that claims to be about mobile development, not all development. Such a book would be much heavier, or would make your reading software crash. We aim to spare you this misfortune.
Before we dive into Unity itself, let’s take a closer look at what we’re talking about here: the field of mobile games.
So, what is a mobile game, and how is it different from any other sort of game? More practically, how do these differences factor into your decisions when you’re both designing and later implementing a game?
Fifteen years ago, a mobile game was likely to be one of two things:
An incredibly simple game, with minimal interactions, graphics, and complexity
A much more complex affair, available only on specialized mobile gaming consoles, and created by companies with access to expensive dev kits for said mobile gaming consoles
This split was the result of both hardware complexity and distribution availability. If you wanted to make a game that was in any way complex (and by complex we mean featured the incredible ability to have more than one thing moving on the screen at a time), you needed the more advanced computing power available only on expensive portable consoles, like Nintendo’s handheld devices. Because the console owners also owned the distribution channels for the games, and wanted to have a high degree of control, getting permission to make games for more capable hardware became a challenge.
However, as more powerful hardware became cheaper over time, more options opened up for developers. In 2008, Apple made its iPhone available to software developers, and in the same year Google’s Android platform became available. Over the years, iOS and Android have become extremely capable platforms, and mobile games are the most popular video games in the world.
These days, a mobile game is typically one of three things:
A simple game, with carefully chosen interactions, graphics, and controlled complexity, because the game design was best supported by these facets
A much more complex affair, available for anything ranging from specialized mobile game consoles to smartphones
A mobile port of a game that debuted on a console or PC
You can use Unity to do all three of these; in this book, we’ll be concentrating on the first approach. After exploring Unity and how it’s used, we’ll step through the creation of two games that fit those facets.
Now that we’ve elaborated a bit on what we’re trying to make, let’s talk about what we’re going to make it with: the Unity game engine.
What’s Unity For?
Over the years, Unity’s focus has been on democratizing game development—that is, allowing anyone to make a game, and to make it available in as many places as possible. However, no single software package is perfect for all situations, and it’s worth knowing what Unity is most suitable for, and when you should consider a different software package.
- When you’re building a game for multiple devices.
Unity’s cross-platform support may be the best in the industry, and if you want to build a game that runs on multiple platforms (or even just multiple mobile platforms), Unity can be the best way to go about it.
- When speed of development is important.
You could spend months developing a game engine that contains the features you need. Or, you could use a third-party engine, like Unity. To be fair, there are other engines that exist, like Unreal or Cocos2D; however, this leads us into the next point.
- When you need a complete feature set, and don’t want to build your own tools.
Unity happens to contain a blend of features that are ideal for mobile games, and provides ways of creating your content that are very easy to use.
- When you’re building something that shouldn’t redraw very often.
Some kinds of games that aren’t terribly graphically intense are less suited for Unity, because Unity’s engine redraws the screen every frame. This is necessary for real-time animation, but uses more energy.
- When you need very precise control over what the engine is doing.
Unless you’ve purchased a source code license to Unity (which is possible, but less common), you don’t have any way to control the lowest level behavior of the engine. That’s not to say you don’t have fine-grained control over Unity (and in most cases, you don’t need it anyway), but that there are certain things that are out of your hands.
At the time of this book’s release (mid-2017), Linux support was experimental.
Unity is also available in an Enterprise license, which is designed for large teams, but is not something that the authors have used much.
The features of the Unity software are largely the same across each edition. The main difference between the free and paid editions is that the Personal edition imposes a splash screen on your game, which shows the Unity logo. The free edition is only available to individuals or organizations that have a revenue of $100,000 a year or less, while the limit for Plus is $200,000. Plus and Pro also include slightly better services, such as priority build queues in Unity’s Cloud Build service (discussed in more detail in “Unity Cloud Build”).
To download Unity, head to https://store.unity.com. Once you’ve installed it, you’re ready to get going, and we’ll see you in the next chapter.