If you’re an eLearning designer or developer who has used an authoring tool, you’ll be familiar with some arguments for using a game engine. A game engine provides a framework for developing a game that works according to a set of rules. Like the templates in an authoring tool or even a word processor, using this framework saves designers and developers time and effort. Why reinvent the wheel?
A game engine generally includes components that help game developers implement:
- Graphics—Game engines include a rendering element that manages creation of 2-D or 3-D graphics. In a game environment, images must be rendered at high speed to create realistic movement. The actual rendering is a series of computations that the engine performs to create images based on 2-D or 3-D models so that it can essentially draw objects and characters at the right place on the screen at the right time. A game engine might also have a huge library of “assets” that make it easy to create visually detailed game environments.
- Movement—A component of the game engine manages “collision detection” and the dynamics of moving objects; this is necessary to create believable movement and interaction among characters and objects in the game environment. This component might be called a “physics engine” because it performs the physics calculations needed for character and object movement.
- Sounds—An audio engine is designed to play back audio without causing other components of the game, such as graphics rendering, to lag; the audio engine keeps track of which sounds are used when and gets the appropriate audio ready when needed, removing it from memory when it’s no longer needed. The engine also takes care of details like ensuring that sounds “come from” the right place in a game environment (e.g., bouncing off of walls, changing volume and pitch relative to where a character is), which contributes to a more realistic experience for players.
- Networking—Multiplayer games require real-time connections among servers and computers; most game engines handle this in a way that creates a fun and responsive player environment.
The engine can also perform key tasks, like managing memory and getting rid of artifacts—such as objects or code—that are no longer needed and could tie up needed memory or slow performance. And it likely supports a variety of ways for players to interact—joysticks and other controllers that register movement and button presses for, say, shooting.
Many game engines are free to use. Some charge developers who sell a certain number of units of their game or reach a certain revenue point; others charge for licenses or subscriptions. Game engines require different amounts of coding knowledge; some engines, like GameMaker, cater to beginners, requiring little to no programming expertise. Two popular game engines that support development of VR games are Unity and Unreal Engine.
Using a game engine can speed up development, saving potentially thousands of hours of coding, but some game developers see this as “cheating.” The engine is separate from the game content itself; that is, many games—that are completely different in appearance, play, and tone—can be developed using the same game engine. But critics say that games created on the same engine tend to look and feel the same, even across genres.The greatest benefit of using a game engine is saving time; developers can focus on the content rather than the basic underlying code and scripts. Detractors argue that developers are limited by the features, scripts, and tools that are included in the engine—or have to spend time creating their own modifications. Both of these arguments can also be made about eLearning developed using authoring tools, of course, so each developer must weigh the pros and cons of using an engine against doing in-house development.