What is a Game Engine

A game engine is a tool that is used to create games. It’s not a requirement for making a game, but it does help tremendously.

A reason to use one is to avoid spending time on problems that are already solved. Instead you can focus on the game design and functionality that makes your game different.

What do Game Engines do

If you need to have realistic lighting in your game, making that from scratch would require you to learn how the light works and deal with a lot of physics equations. A game engine has that stuff already covered for you. You only have to make a few small tweaks for it to work.

A sample scene from the Unity game engine which demonstrates an example of lighting in video games.
Lighting in Unity engine

Lighting isn’t the only thing that engines usually deal with. They also do various things related to physics, audio, rendering graphics etc.

Game engines are also excellent tools for dealing with platform support. If your goal is to release a game on Windows and Linux, you wouldn’t want to write the game from scratch twice. You would rather create it once and have it work on both platforms.

To top it all off, if you’re inexperienced, it helps to have some standard or structure to follow. When using an engine, you need to think less on how to separate the logic of various scripts because a good portion of that is handled by an engine.

The bad side of Game Engines

There is a bad side to using an engine. The easier and faster it is to do something in an engine, the more limited you usually are. Engines allow you to be a lot more productive, however they also make it harder to optimize your game for performance and may result in a game with a file size much bigger than if you were to make it from scratch.

It should be noted however, that it really depends on the project and the developer. You may have a game, which is less performant when made from scratch due to mistakes.

Here are a few examples of popular game engines

So to reiterate

  1. A game engine is a tool for creating games.
  2. You should use it to develop games faster.
  3. It helps with the project structure and makes things easier to change later on.
  4. It may come at a cost of flexibility and performance.