When making a video game, deciding which game engine you are going to use is one of the first big choices you have to make, and it has a huge effect on the outcome of your project. Choosing an engine that’s a bad fit for your project can lead to things like dead ends, delays, extra expenses, and having to cut features.
Because of the importance of this decision, you should have a good set of criteria to use when choosing an engine, and you should have some familiarity with the available options. In this article, I’m going to cover both of those points.
What is a game engine?
First of all, let me introduce what a game engine is, in case you are not familiar. A game engine is essentially a cohesive set of tools used for making a game. Making use of a preexisting game engine prevents you from having to spend your time solving problems that are not specific to your game. Most games have quite a number of things in common when it comes to implementation, so it makes sense to have tools to prevent us from wasting our time solving problems that already have solutions.
Here are some examples of typical things a game engine provides:
- An editor
- A rendering engine
- A physics engine
- Animation tools
- Audio tools
- An input system
- Scene management
- Scripting
- Multi-platform support
Criteria for choosing a game engine
As with making any big decision, it’s helpful to have criteria to evaluate how well each choice will work out for you. Here are some good criteria to consider when choosing a game engine:
- Aspirations for your game: What are you planning to do with your game? If you are planning to eventually sell your game, you are going to want to make sure you can create a polished product, along with being able to continue to support it in the long term. This means you should choose an engine that is well maintained and supported, and also that is going to be around for a while. If you are creating more of a hobbyist game that you don’t plan on maintaining for a long time, you don’t have to worry about these things as much.
- Type of game: What genre of game are you planning on making? Are you planning on making a 2D game or a 3D game? Different game engines have varying levels of support for these types of things, so you’ll want to keep this in mind while choosing one.
- Platforms to support: What platforms do you want to distribute your game on? Desktop? Consoles? VR? Make sure you pick a game engine that supports your desired platforms.
- Cost: Does the cost of the engine fit your budget?
- Support: Does the engine have an active community and good documentation? Will it continue to be supported for as long as you need it to be?
- Current skills/experience: What skills and experience do you currently have? For instance, if you haven’t done any coding before, it would probably be a good idea to choose a game engine that doesn’t expect you to write code. Or if you do have coding experience, it might be a good idea to choose an engine that supports a programming language that you already know or is similar to one you know.
- Future considerations: If you aspire to get a job in the game industry, it might be a good idea to find out what tools are being used in the kinds of places you’d like to work, and develop your skills in those tools.
Some popular options
Below, I’ve listed and summarized some popular options for game engines. This is by no means an exhaustive list - there are tons of engines out there! However, I’ve tried to include some of the most popular options, and also to include options for a variety of needs.
Below the description of each engine, I also show some examples of well-known, successful, or impressive games made with that engine.
Unity
Unity is one of the most popular game engines out there, and it is especially popular for making indie games. It’s very versatile in its ability to make different types of games, though it does have a bit of a higher learning curve than some other engines. It also has an extensive asset store (with things like tools, scripts, and graphics you can buy), which can be helpful if you’re just starting out or if you want to go the route of using pre-made assets to cut down on development time.
- Runs in: Windows, Mac, experimental Linux support
- Target platforms: Desktop, mobile, consoles, VR, web
- Scripting languages: C#
- 2D/3D support: Both
- Cost: Free if revenue/funding less than $100K in the past year, monthly subscription otherwise
- Website: https://unity.com
Unreal Engine
Unreal Engine is another one of the most popular engines out there, and it is known for being capable of advanced 3D graphics. It is more focused toward experienced developers, and a lot of AAA games are made with it. However, it does also have a visual scripting language designed for beginners. It also has an extensive marketplace similar to Unity’s asset store.
- Runs in: Windows, Mac, Linux
- Target platforms: Desktop, mobile, consoles, VR, web
- Scripting languages: C++, visual scripting
- 2D/3D support: 3D, some 2D
- Cost: Free if game revenue less than $3K per quarter, 5% royalties otherwise
- Website: https://www.unrealengine.com
Game Maker Studio
GameMaker Studio is a popular game engine primarily for creating 2D games. It focuses on being easy to learn and use, and it has enabled the creation of several very successful games.
- Runs in: Windows, Mac
- Target platforms: Desktop, mobile, consoles, web
- Scripting languages: Game Maker Language, JavaScript, visual scripting
- 2D/3D support: 2D, some 3D
- Cost: Yearly or one-time fee, depending on the license (has 30 day free trial)
- Website: https://www.yoyogames.com/gamemaker
Godot
Godot is a free and open source engine that has become very popular in recent years. It is said to be more lightweight than many other engines, and it has an active community. There aren’t really any well-known games that have been made with Godot yet, since it hasn’t been around for as long as some of the other engines, but it’s definitely worth a look.
- Runs in: Windows, Mac, Linux
- Target platforms: Desktop, mobile, VR, web
- Scripting languages: GDScript (similar to Python), C#, C++, visual scripting
- 2D/3D support: Both
- Cost: Free and open source
- Website: https://godotengine.org
Construct
Construct 3 is a browser-based game engine geared toward people who are new to programming and making games. It enables people to build prototypes and small games very quickly, but is less suited toward larger projects.
- Runs in: Web browser
- Target platforms: Mobile, web
- Scripting languages: JavaScript, visual scripting
- 2D/3D support: 2D
- Cost: Monthly fee (has limited feature free trial version)
- Website: https://www.construct.net
Genre-specific engines
In addition to general-purpose game engines, like the ones listed above, there are also engines that are designed specifically for making games of a particular genre. Using a genre-specific engine can be a good choice if your game fits closely with what the engine has in mind - it can save you a lot of time and effort, since it’s specifically designed for that. However, keep in mind that if your game or aspects of your game don’t fit within the expectations of the engine, it could end up being harder (or even impossible) to make your game work the way you want it to.
Here are some examples of genre-specific engines:
- Twine (text-based interactive fiction)
- Visionaire Studio (adventure games)
- PuzzleScript (puzzle games)
- RPG Maker (RPGs)
- RenPy (visual novels)
Make your own engine
Of course, there is always the option of creating your own game engine, rather than using an existing one. This gives you as much flexibility as you could ever wish for, but it obviously takes a lot more work and time.
I would only recommend taking this approach if:
- You are experienced in making games.
- You will enjoy the process of making your own game engine and don’t mind taking a lot more time to finish your game.
- Available game engines don’t fit your needs for some reason (in my opinion, this is unlikely).
One situation where making your own engine could be a good investment is if you can make something that fits your needs and your process really well, and if you can use it for multiple projects. Again, keep in mind that pulling this off is unlikely to happen without the insight and skills learned from previous experience in making games.