Unity: What is this engine, what is it used for, and why is it so popular?
Today, becoming a game developer is much easier than it was 20 years ago. While studios used to often have to create their own game engine from scratch, there are now many free tools that are easy to learn and can be used to create projects of any complexity. Among them, one of the most well-known is Unity. Let's talk about what makes it notable.
What is Unity?
Unity is a cross-platform game engine created by Unity Technologies in 2005. It is used to develop both single-player and multiplayer games with modern 2D and 3D graphics for platforms such as PC, PlayStation, Xbox, and Nintendo Switch. Additionally, games for browsers and devices running on Android and iOS are also created on Unity. Unity can also be used to develop games using AR and VR technologies. Unity technologies are used in the film industry for creating computer animation, as well as in the industry for developing immersive 3D applications for AR and VR.
Advantages of Unity
Unity is a modern engine that allows for the creation of games with advanced graphics. Its advantages can be listed extensively. Let's go through the main ones.
Unity Works Great with Mobile Platforms
Unity makes it very easy to integrate tools responsible for monetizing games released on mobile platforms, such as ad display and in-game payments. The engine also provides for the use of technologies found in virtually every modern smartphone, such as accelerometers, gyroscopes, GPS, cameras...
Thanks to this, with Unity, you can create not only another variation of "match-three" games for smartphones, but also games using augmented reality technologies, like Pokémon Go, for example.
It's also interesting that the engine allows you to conveniently check, even during development, how the game will feel on a specific model of mobile device. For this purpose, there is a Simulator mode in the Game window. It allows you to see how the image will be displayed on the screen of the selected smartphone or tablet directly in the engine. Clicking with the mouse in this case will be equivalent to tapping.
There is also an application for smartphones called Unity Remote. If you install it and connect your smartphone to the computer via USB cable, when you launch the game in the engine, the image will be displayed on your smartphone. You'll be able to play it right away. This allows you to test the game during development without creating a build.
Low Entry Barrier
Sometimes you may come across the opinion that Unity is more of a game constructor rather than an engine in the traditional sense. And to some extent, this is true because each game is assembled from objects, which, in turn, are composed of components that determine how the object will behave.
Moreover, using scripts in the relatively easy-to-learn C# language allows you to program logic of any complexity for games of any genre and scale. Following tutorials, you'll grasp how to create your own clicker, endless runner, or simple platformer in just a couple of days.
Further learning will enable you to create games with more complex mechanics. For comparison, the entry barrier for Unreal Engine is significantly higher because that engine uses C++, which is harder to learn than C#. (However, both Unity and Unreal Engine have visual programming tools that facilitate game logic creation).
The engine has also amassed a huge community over the years. So, if you encounter a problem or have difficulty with any aspect of learning Unity, you'll surely find people on Russian and English forums who have encountered and solved the same problem, or who will help you understand everything.
What also lowers the entry barrier is that you'll be creating the entire game in a user-friendly visual editor. Building levels, working with interfaces, adjusting shaders and particle generators, creating enemies, animations, and even, in some cases, 3D models... you'll do all of this in the same application. The only exception is writing C# code, for which you'll need to open the Visual Studio editor separately.
Unity: An Excellent Prototyping Tool
Games are usually created through constant iterations. In this sense, Unity is very convenient because it allows you to launch the game in the editor and test it without creating a separate build, which takes time.
Moreover, while the game is running, you can make changes to immediately see how they affect the gameplay. For example, you can increase the character's speed, change the weapon's damage, add a few more enemies, move a box, turn a small spider into a giant one, and increase its HP to 1000 to make it a boss.
All objects in Unity are composed of components that are very easy to remove and add. This also facilitates prototyping because you can always give any object pre-developed behavioral logic by adding a ready-made script. You can make any car fly by adding code written for an airplane. Any lamppost can become an NPC by adding code with a dialog system.
Easy Creation of Games for Different Platforms
If you've made a game in Unity, say, for a computer, you can very quickly and easily make the same version for a smartphone, tablet, gaming console, or, for example, just for a website so that you can play it directly in a browser window. Moreover, you can use Unity not only on Windows but also on macOS.
As noted by the author of the book "Unity in Action" Joseph Hocking, this was a consequence of the fact that initially Unity was created only for Mac, and then it was expanded to work with Windows. Further work on the engine added smartphones and gaming consoles such as Xbox and PlayStation as deployment platforms.
Large Asset Store
You can assemble an entire game in Unity from other people's models, sprites, code, engine extensions, and everything else. You can find all of this in the Unity Asset Store, which you can access directly in the engine. There are plenty of free models. Of course, there are many more paid options.