Video Game engines

Let's get to know Unity a little better...

Overview

Unity began its life as a game engine but evolved to be a creative tool that’s used by many different industries. That being said, Unity still retains its game engine roots, and the story of how and why it was created provides insight to why it works the way that it does.

If you’re not sure what the term game engine means, you aren’t alone! Game engines are constantly discussed in the game industry, but are rarely explained — which can be confusing for newcomers and creators in other industries! So let’s begin by first defining what a game engine is.

What is a Game Engine?

The process of creating a game is a great deal more complicated than it appears on the surface. The computer or mobile device on which you’re reading this right now runs an operating system that tells your device how to run power to the screen, keep the brightness setting to where you specified, initiate and maintain access to the Internet, and display text and images on the screen. It’s also doing a lot of tangentially related work in the background, like regulating device access to its power source. That’s a lot to manage, just to display some text!

Now think about creating content rather than just reading or viewing it. If you’ve ever written an email, you know that you personally don’t need to understand the inner workings of your email program in order to write a message. All of that other stuff is handled on your behalf, and you only need to focus on creating the content of your message. A game engine is exactly the same.

A game engine is the point of convergence for all aspects of creating a game. Games, like all applications, are made of smaller pieces like 3D models, scripts, and audio files. When put together, they create the full user experience. If 3D models, scripts, and audio files were ingredients, Unity (and other game engines) would be the stockpot you dropped them into!

Like the operating system that’s ensuring you’re able to read this tutorial, game engines make sure that your game will display on the screen, objects will be able to interact with other objects, sounds will be audible, and your application will be publishable in a format that your device can run. You provide the content, and the game engine provides the tools to implement it in an environment that will just work.

What do we do in a Game Engine?

Now that you have a basic idea of what a game engine is, let’s learn more about what creators do with it. If a game engine is used to implement the content you bring into it — what is that content?
In a game engine, the creator is putting together everything that the user will experience in the final product. If that product is a game, the creator designs gameplay such as jumping on platforms; if it is an animation, the creator devises the action being recorded; if it is a VR architectural visualization, the creator builds a photorealistic environment that the user will walk through. The game engine also gives the creator a means to make their product into an interactive experience for the user. There’s a great deal more that Unity is doing behind the scenes so that you, the creator, only need to focus on the all-important user experience.

What do we NOT do in a Game Engine?

Inside a game engine, you don’t create assets...

Instead, assets are created in specialized external programs called Digital Content Creation (DCC) tools. Many DCCs are integrated with Unity to ease the process of importing them.

Digital Content Creators (DCC): 
The most common types of DCC tools used in real-time development include:

3D DCCs are programs for creating 3D models, animated characters, and environments; examples: MayaZBrush, and Blender.

2D DCCs: programs for creating 2D images, illustrations, textures, and interfaces; examples: PhotoshopIllustratorSubstance Painter, and Gimp.

Audio DCCs: programs for recording, editing, and mixing sound effects and music; examples: AuditionLogic ProReaper, and Audacity.

Integrated Development Environments (IDEs): programs for writing code in a variety of languages; examples: Visual Studio and Rider

Real-time Engines: programs for real-time development, rendering, and publishing of 3D content or applications; examples: Unity and Unreal