A Game Engine is defined as being a set of software tools or API's built to optimize the development of a video game. This will typically include a game loop or at the very least a 2D or 3D rendering engine.
Game Engine's can commonly be confused with a programming language such as C++, or software framework like DirectX (commonly used to build Windows games) but neither of these have built-in support for rendering assets without a lot of programming overhead, nor a game loop to facilitate the rendering and other game logic components.
What's Inside a Game Engine?
At the very least a Game Engine should have a rendering engine. This may sound redundant, but the rendering engine is what is responsible for handling memory management and buffering for images and 3D objects that are being displayed on screen. Some of the more robust engines, such as Unity will include many other components such as:
- Support for 2D and 3D rendering
- Physics and collision engines
- Built in game loop, with hooks for your game logic
- User interface key mapping and other UI components
- Animation engines
- Audio engines
- Multiplayer and networking tools
- Virtual reality tools
- Lighting, shaders, shadow, object materials and other visual components
- World editors
- Artificial Intelligence (AI)
Each of these tools enable rapid development without requiring highly technical and specialized programming skills. It allows the game designers to focus on the game, and not always reinventing the wheel.
The Rise of Game Engines
At the beginning of the gaming industry all games were developed with custom rendering engines that were designed specifically for that game. As game companies grew, they often developed their own proprietary engines that were only used in-house. It took a number of years before anything resembling today's game engine was released to the public. One early example is Adventure Construction Kit, which was first released in 1985.
In recent years the number of game engines out on the market has increased. Some engines have gotten such a foothold in the gaming industry that they are well known by even the players. One of the best known and still widely popular game engines, Unreal Engine, was released in 1998. Built by Epic Game's founder, Tim Sweeney, it was available by license to development studios interested in leveraging the portability and powerful first-person shooter engine. It has since then gone through several major versions, and as of today it still holds a large market share in the gaming industry.
Game Engines Empowering Indie Development
Indie game development isn't a new concept. It's been around as long as the game industry itself. But with several recent catalysts, indie development has found more opportunities to flourish. Around 2008 the indie market started to rocket, likely due to two major contributing factors.
1. Online distribution channels have lowered the bar for entry
Steam, Xbox Live, Playstation Network, Apple's App Store and others have made it easier for indie developers to reach billions of potential customers. Prior to the democratization of online games, it often required a deal with a big name publisher to get any shelf space in stores. With the ability to distribute games in an efficient and competitive market, it created a great opportunity for game dev hobbyists to find a foothold to make their dreams a reality.
2. Cheaper and better game engines
There's been quite a few game engines launched in the last decade. Now there are engines to distribute games to virtually any playable platform out there, from consoles and PC to mobile and handheld devices. There are game engines for every skill level from those designed for beginners, to the more advanced cutting edge tools that allow for AAA quality games.
And now even the more robust engines are at an affordable price. This has evened the playing field, where indie studios can now compete with some of the biggest names in the industry.
Why Use a Game Engine?
If you are setting out to start a development project, it might seem obvious on the advantages of using a game engine. But there are still some scenarios you may not want to use one. Typically these will be very specialized and more advanced project requirements, such as leveraging an as of yet unsupported hardware device, or fine tuning some software components that are at the core of your design.
Typically for those starting out, it's a boon to learn to develop within a game engine. If you're still not sure whether you should be using a game engine in your project, here's some advantages to consider:
- Prototyping will be far quicker. You'll be able to get a playable concept, within days.
- Quickly learn the game development concepts, such as world lighting and animation, without getting stuck in a lot of the technical details.
- Leverage advanced technology. The gaming industry is constantly changing, and new technology such as VR, eventually makes it's way into the game engines.
- Deploy to several gaming platforms with one build. Most game engines support exporting to multiple platforms, such as Windows, Mac, Playstation, Android, iOS.
At Gamescrye we love all things game design. If you have any experiences using game engines you want to share, leave a comment below.