No, I’m not considering switching engines for Starcom: Nexus. This is a post oriented toward other developers, particularly new developers, who are facing decision paralysis in choosing an engine for their game.
One of the most common question on /r/gamedev is “what engine should I use for my game?” It seems to come up almost daily.
Spoiler Alert: I’m not going to tell you what engine to use. But I am going to do a survey of the engines used by popular games. Looking at quality games in your chosen genre should give you an idea what is at least possible with an engine.
- I’m focusing on games released on Steam, the largest market for desktop games and a likely target for solo and small developers.
- In my research I looked at a lot of games quickly and was not always able to identify the engine used for a particular title. Hopefully I didn’t mis-identify any engines.
What is a game engine? Why are they used?
A game engine is a collection of tools and software libraries that handle functionality that is common across different games. This might include: rendering graphics, physics simulation to handle movement and collisions, audio, etc. An engine allows a developer to implement common functionality very quickly without having to re-invent the wheel at every turn and allows them to focus on the features that make their game unique. They also tend to push developers toward particular development models.
Besides providing baseline functionality, most modern engines also provide a graphical editor to make creation of the game’s world and assets easier.
Fretting over which engine to use is completely understandable: once you’ve started development, changing engines becomes progressively more difficult. Not only will you have to reimplement almost all of the functionality and modify many assets, but every game engine has its unique quirks, bugs and design patterns. Changing engines means throwing that experience out and starting fresh.
So choosing which engine to use is important.
The Most Played Games on Steam
I’ll start with a list of the 50 currently most played games on Steam (as of October 2019), along with their respective engines:
[table id=1 /]
Note: I use the term “custom” to refer to a proprietary engine developed for in-house, even if it is used on more than one title or series.
A few things jump out immediately:
- Most of them use a custom game engine
- Most of them were made by a AAA studio and/or were part of an existing franchise
- The list is dominated by multiplayer games
This makes sense: AAA studios have large budgets both for development and marketing. Sequels have a built-in base audience and have existing technology to leverage. Multiplayer games have much longer playtimes than single player games.
Do not take this list as evidence that you should make a custom engine. If you’re reading this, you are probably not a AAA studio with a proprietary engine you’ve developed over years.
Also, this isn’t really a list of what you might necessarily consider “popular” games. NBA 2K20, to pick an egregious example, has a 15% Steam review score. According to Steam 250, that makes it the 2nd most disliked game on Steam, which is not a position one would associate with “popular.” While many of the games on the list are legitimately popular, it misses many great games with finite playtimes.
The Most Popular Games on Steam
Speaking of the Steam 250, they use an algorithm that produces an alternative selection of “popular” games. You can read about it here, but in short it looks at the approval rating (% positive reviews) and the number of reviews. So a game with a 89% score out of a 1000 reviews can rank higher than a game with a 90% score out of 100 reviews.
Here are the top 50 and their respective engines:
[table id=2 /]
At a glance, it at least looks more like a list of popular games: all the games are both well known and widely praised and clearly meet any reasonable definition for “popular game.”
Notice that almost half of them were developed using a custom engine, although Source, Unity, Unreal and Game Maker make multiple appearances each (arguably Source has an unfair advantage being Valve’s own engine).
The list is conspicuously dominated by older games, which makes sense: The algorithm favors games with lots of positive reviews. Not only have older games had longer to accumulate reviews, many of them were released during a time when there was dramatically less competition.
Powerful commercial engines have only recently become available to solo developers and small studios. Unity was released in 2005 and was MacOS only until version 3 in 2010. Unreal didn’t become available to the general public until 2009. Games often have a development cycle of several years, so the first successful games in those engines didn’t start appearing until a few years later.
The Most Popular Recent Games on Steam
Let’s look at the 25 most popular games released for 2019, 2018 and 2017. For this lists I removed free games, because in a previous analysis I discovered that price has a moderate inverse correlation with review score. I didn’t bother to remove them for the all time list because there was only one (Doki Doki Literature Club). I also added an entry for primary genre.
The notes column points out some games that are not quite free, but extremely low price, as well as NSFW entries.
[table id=3 /]
Two interesting things jump out immediately:
- Far fewer recent games used custom engines.
- Unity, which only had a handful of entries in the Top 50 all-time list, makes up nearly half the popular releases in the past 3 years.
The Major Engines
Game Maker 2 Studio is a 2D commercial engine that offers a free 30-day trial, but requires a paid license for use.
The Creator license costs $39/year and has a few limitations such as not being able to disable the splash screen or turn-off their collection of analytics data.
The Developer license costs $99, is permanent and allows disabling of the splash screen and analytics, but doesn’t cover consoles.
The Console license costs $399/year.
Development for GMS games is done using visual scripting and/or a proprietary language called GML.
Unity is a commercial engine that’s free to use but requires a paid subscription if your studio generates $100k revenue or more per year. Between $100k and $200k the “Plus” model costs $40/month per developer seat. Above $200k requires the Pro model at $125/month.
The free version is identical to the paid version in terms of core features except:
- The “dark” skin isn’t available
- It shows their splash screen in builds
This second constraint has created an odd paradox: games developed with very low budgets are forced to show the splash screen. This has created an association in the minds of players between Unity and low-quality games. Developers who can afford the Plus and Pro subscriptions don’t want the association, and remove the splash screen. Players are left with the impression that low-budget and only low budget games are made with Unity, despite the fact that Unity powers many of the most popular games on Steam.
Development for Unity games is done in C#.
Unreal is a commercial engine that’s also free to use, but requires a 5% royalty on revenue above $3000 per calendar quarter. This royalty is calculated based on gross revenue, before any store percentage is taken out.
Epic waives this royalty for games released on their store, although the store is currently invite-only and very selective with about 100 total titles.
Development for Unreal games is done using Blueprints (Unreal’s visual scripting environment) and/or C++.
XNA isn’t exactly considered a full engine, rather it’s an environment that encapsulates many of the low-level tasks required for game development in a .NET framework by Microsoft. Development was discontinued in 2013.
Godot is a completely free, open-source engine frequently recommended on /r/gamedev.
Development is done primarily with a custom language called GDScript, although it also supports C# and C++.
As an open-source engine, developers have complete freedom to change it however they want. Theoretically it is capable of creating great games in any genre. But so far, no popular games have been developed in it yet, leaving it in the position of its eponymous play.
The most likely reason for this is that it is playing catch-up with major commercial engines with budgets in the hundreds of millions of dollars. While it will probably never reach feature parity as long as there is such a huge budget gap, there are plenty of very popular games that do not require any of the most advanced features of Unity or Unreal.
Maybe you can be the first to create a really popular game in this engine. Even developers who don’t use Godot gain some benefit of the open-source pressure on the larger engines, encouraging progress and an accessible price point.
Despite the increasing popularity of third-party game engines, there are still successful, great games being developed with in-house engines (often leveraging frameworks like SDL or Libgdx). It is beyond the scope of this post to evaluate the risks and merits of building your game without a third-party engine.
As I stated in the beginning, I’m not going to tell you which engine to use, but I will give a few suggestions:
- Given the huge amount of time even a modest game project takes to complete, I would advise downloading and experimenting with an engine to start, based on the genre you hope to make a game in. Do a couple tutorials. If you find the workflow not to your style, try another.
- Unity is clearly capable of making high quality games in a wide variety of genres.
- Unreal also has a large portfolio of great games. It has a reputation for being oriented towards 3D FPS games, but there are plenty of solid examples in other genres.
- Game Maker Studio has a reputation for being easy for beginners but capable enough that several very popular games have been developed in it. It is primarily designed for 2D games and its 3D capabilities are limited.
- Making a good game requires a lot of work. Powerful engines do a lot of that work for you, but it has become a Red Queen problem: they’ve enabled so many people to make games that the bar for quality keeps rising.
Regardless of the engine, expect to encounter a lot of challenges, frustration and hair-pulling bugs. If you’re not able to push through that, you’re not ready to make games. But if you are, creating an experience that brings players joy is one of the best feelings.