Once you’ve decided on a programming language to write a video game, you’ll need to understand the tools available to you and how to use them to get started. What is a game engine? What does it do? What game engines are out there to choose from? And how should you organize your game development project around the game engine? You’ll find answers to these questions in this article.
Game Engines and Video Game Development
The most important tool used to create a video game is the game engine. While not all games are made using a game engine, they do remove a lot of the repetitive work of rendering graphics, playing audio, and simulating physics and collisions. By having this common work done for you by the game engine, you can focus on developing the things that make your game unique — the gameplay, the story, the characters and the visuals.
History of Game Engines
In the old days, all games had to be programmed from the ground up. This included all of the game’s graphics and assets, as well as the gameplay elements, rules and player controls. This was because each system had different graphics hardware, and games needed to be optimized to take advantage of this hardware in order to have good performance. The earliest game engines were built in-house by game developers to help them in porting games to different hardware.
Eventually, some game developers streamlined this process, completely separating the game engine development from building the game “assets” — the graphics, sounds, levels and gameplay. This allowed games to be built more rapidly by more specialized teams. The earliest genre to embrace game engines was first-person shooters (FPSes) like Doom, Quake and Unreal. These games became the basis for three very popular game engines that are still used today.
What Does a Game Engine Do?
Game engines are usually made up of several parts that handle different aspects of the game program. While some game engines are simpler and others are more complex, most of them implement at least these basic features:
Main Game Program
This is the logic that runs the game — the rules, the gameplay, the story, etc. This program is kept separate from the other components of the game to enable portability between different platforms.
This is the component that generates the 2D or 3D graphics that make up the game. The rendering engine provides an abstraction layer between the game and the GPU, usually by using an API like DirectX or OpenGL. These APIs also provide access to hardware like game controllers, network cards and sound cards.
In the past, the audio engine was simply responsible for playing (or generating) the right sounds at the right time. However in modern games, sound is much more complex, requiring real-time stereo or multichannel rendering, as well as effects like Doppler shifts or echos, in response to action in the game.
Games that require realistic-looking physics, such as FPSes, use the physics engine to simulate how objects move and interact with each other in the real world. This includes realistically simulating gravity, as well as collisions between characters, vehicles, scenery and other game elements.
AI is used to control how the game’s non-playable elements — enemies, mobs, NPCs, etc. — interact with the player, the environment and each other. Game AI can be implemented as simple algorithms, or engineered by a dedicated team to make the game ultra-realistic.
Multiplayer and Networking
Most game engines now include a networking layer that allows for multiplayer gameplay. This can either be peer-to-peer, where each player connects to all of the other players directly, or client-server, where all players connect to a central server.
The game engine brings all of these features together into one package that game developers can use to create their games. Game development teams are usually focused around each of these areas. For example, a team of artists creates the characters, scenery, and other visual elements of the game, and then renders them using a 3D animation program. Another team will implement the game algorithms in software for use in the main game program. And for complex games, yet another team will work on the AI and interactive game elements.
What Game Engines Can I Choose From?
Hundreds of game engines have been created over the years, with different features, support, and licensing models. Here we’ll look into some of the most popular game engines in use today. All of the game engines listed here are free for developers to download and start working with — royalties and payments are only required for commercial use.
The Unreal Engine is one of the oldest and most well-known FPS engines. Originally built by Epic Games for its 1998 release Unreal, it now powers some of the world’s most popular games including Fortnite, Gears of War, and Infinity Blade. It has even been used to create virtual sets for TV shows like The Mandalorian and Westworld.
Until version 3, Unreal Engine used its own Java-like programming language called UnrealScript. However, as of version 4, UnrealScript support has been removed in favor of C++. Unreal Engine supports developing games for Windows, MacOS, Linux, mobile platforms, Playstation 4 and 5, Xbox One, and several popular VR platforms.
CryEngine is one of the newcomers to the game engine world, having been introduced in the 2004 title Far Cry by German game company Crytek. Since then, versions of CryEngine have been used for the Crysis series as well as a number of other games by third-party developers. Amazon also licensed and modified CryEngine into its own free game engine, Amazon Lumberyard.
One unique feature of CryEngine is a “what you see is what you play” sandbox editor. This allows the game designer to jump directly into the design they’re working on and see it in real-time. This works because the game engine is already running while developing the game. CryEngine also features a large number of advanced 3D graphics features that can be used to create dazzling visuals.
Another newer engine, Source was first introduced with Counter-Strike: Source in 2004 by Valve Software. Valve has used it extensively for their popular FPS titles, including Half-Life, Team Fortress and Portal. Source quickly became popular with hobbyist game developers and modders when Valve began including the Source SDK free with the purchase of many of their games. It can still be downloaded for free from the Steam game store.
Rather than using discrete version numbers, Source has been updated over the years with incremental updates that aim to be backward compatible with previous versions with only minor updates required. The only major version upgrade of Source has been Source 2, released in 2015. It introduced a new physics engine and an upgrade from OpenGL to the Vulkan graphics API.
Developed by Id Software for their popular 90s FPSes Doom and Quake, id Tech has been incrementally upgraded over the years. Because of the long development time of Doom 3, id Tech lost popularity to Unreal Engine during the 2000s. Therefore, it has not been used for as many third-party games as the other engines on this list.
Originally launched in 2005 as a MacOS-exclusive game platform, Unity has grown to support more than 25 platforms including PC, consoles, and mobile devices. After the Apple App Store was launched in 2008, Unity became the de facto game engine for iOS developers. It now boasts support for numerous VR platforms as well as augmented reality standards like Apple ARKit and Google’s ARCore.
One major feature of Unity is the Asset Store, where creators can share and sell assets to other game developers. This can save time when prototyping a new game or help you to develop ideas for your game.
Next Steps for Creating a Video Game
Once you’ve decided on which game engine you’d like to develop your game with, head over to the developer’s site to download it. Most game engines include a full development environment, which allows you to preview and test your game’s components and assets as you build them.
Download the SDK for your game engine, and read the documentation to get familiar with how to use it.
Next up, we’ll talk about how to develop visual assets for your game — the 2D and 3D images that will make up the world of your game.