If you play games on your phone, there’s a strong chance that you’ve played a game made with Unity. They boast a 45% market share of the global game engine market, with their closest competitor, Cocos2D, sitting at 17%. It is also the platform of choice for Niantic Labs, the creator of the hit mobile game Pokémon Go. Despite Unity’s massive contribution to the world of gaming and the enormity of the smartphone game market, most people aren’t familiar with Unity or game engines in general.
When you play a game, there are a lot of things you take for granted as a human that aren’t as simple for computers. For instance, Angry Birds relies on accurate physics and collisions to make the game playable. The birds have specific flying patterns and the collisions with the pig fortresses need to look real. It’s easy for humans to predict what will happen when you launch a pig into the air, but computers don’t understand gravity, trajectory, or collisions. And that intuitive way you drag the slingshot back, the computer needs to know where your finger is and what it’s doing. These things and more are where a game engine comes in handy.
At its core, a game engine is a tool for making games. A standard engine provides an interface for laying out game objects, APIs for making the game objects interact, accurate physics simulations, and many other tools that game makers need to make great games. These tools are usually divided into two sections, the interface and the libraries.
The interface is what you open when you want to start building. It’s a program that helps you lay out game maps and organize code and game objects. This is also where you’d specify controller inputs, create textures and lighting, and work with animations. The libraries are what the computer uses to simulate physics and interactions. A library is just prewritten code that can be implemented in other programs. Programmers can build complex computer behavior using these libraries and save time because they don’t have to write it from scratch.
Game engines come in all shapes and sizes and have different tools based on the kind of game you want to make. So whether you want to make a simple 2D platformer or a AAA first-person shooter, there is a game engine that can help you bring it to life.
Unity is unique in that it works very well with 2D and 3D games. Its flexibility is what makes it so useful for developers. It can also build games for all the flagship consoles and mobile platforms, making it perfect for cross-platform game studios. Some notable games to come from Unity include Firewatch, Temple Run 2, Monument Valley, and Alto’s Adventure. An exhaustive list of games can be found here.
With the oncoming wave of Augmented Reality and Virtual Reality devices, Unity has positioned itself to become a powerhouse in the future. It already supports VR game development with a unique VR development toolset coming soon. This will allow game makers to create games while inside the VR world, using both controllers and movement to create games. And Pokémon Go has highlighted Unity’s ability to create powerful Augmented Reality games, combining the real world with a game world.
While Unity does many things well, it does have its weaknesses. For small mobile games, like 2D puzzles and simple platformers, Unity can be a bit too much. When a game doesn’t need complex physics and doesn’t require lots of things going on at the same time, you likely won’t be using all of Unity’s potential, and it may actually be easier to use a smaller game engine. Smaller game engines tend to be faster and create less bloat in the final project, though they usually sacrifice a lot of the tools that make larger engines easy to work with. Unity also hasn’t had as much success when developing AAA games like The Division or the upcoming No Man’s Sky, though they‘re trying to change that. These games push computers and consoles to their limits and require complex software and hardware control. Large games are built with engines that allow developers to fine tune how the game utilizes RAM and the GPU, making them run as smooth as possible. Out of the box, Unity doesn’t have the tools necessary to make that happen.
Unity, like every game engine, is a tool for a certain type of project. It’s great for mobile games and small 3D games. Both of these markets are doing well thanks to the ever increasing popularity of mobile devices and the rise of Steam, so Unity can continue to focus on innovating in these areas. As long as we keep downloading games and catching Pokémon, Unity and game developers will keep finding new ways to entertain us.