What Engine Should I Use for My Game?

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.

Caveats:

  • 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:

All%
Gameplay11.7%General gameplay mechanics: ship steering, interactions, etc
Combat6.4%Weapon design, balancing, damage handling, VFX
Community6.1%Interacting with players, support, weekly updates like this one, etc
Gameworld5.5%Game world specific mechanics: region placement, sector handoff
Shipbuilding5.5%Shipbuilding logic
Missions5.4%Mission design and creation
Playtesting5.1%Playing the game myself to see what's broken, what feels wrong, etc
Anomaly4.8%Creating anomalies
UI4.2%UI design and programming
AI3.9%AI design and programming
Marketing3.8%Game promotion, trailer creation, youtuber outreach, etc
Factions3.7%NPC design
Music & Audio2.7%Music and Sound FX
Planning & Production2.6%Deciding what to prioritize, misc stuff not covered elsewhere
Bug fixes2.5%Investigating and fixing bugs outside of the normal dev loop
Interaction Systems2.4%Anomalies, conversations and general station interactions
Trade & Inventory2.3%Trade system, drops, resources and item system
Map & Edgedar2.2%Map system and Edgedar (the icons around the side of the screen in the main view)
Localization2.1%String symbol tables and translation
Creator2.1%Content authoring tool
Save & Load1.8%Save system
Crew1.7%Crew management, skill check system
Technologies1.7%Tech research tree and effects
Planets1.6%Planet visuals
Main Menu1.5%Parts of the game when you're not in the game
Proc Gen1.2%Procedural sector and planet generation
VFX1.2%General visual effects like nebulae, non-combat particle effects, etc
Steam1.0%Build deployment, store page creation, etc
Business0.9%Taxes, paying contractors-- the fun stuff that everyone gets into game dev for
Story0.8%Narrative planning
Regions0.7%Manual (non-procedural) region layout
Optimization0.4%Performance profiling, optimization
Analytics0.2%Player analytics review

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:

  1. Most of them use a custom game engine
  2. Most of them were made by a AAA studio and/or were part of an existing franchise
  3. 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:

HatPercent
Programmer32.9%Any coding/programming
Game Designer16.8%Designing missions, balancing enemies, gameplay tweaking
UI Designer8.4%Creation of all the UI systems, icons, layouts, excluding the programming
VFX Designer7.3%Particle systems, shaders
QA7.1%Playtesting, reviewing player F8 feedback
Producer6.5%Planning, interaction with contractors
Community Manager5.8%Responding to player emails & discussion forum posts
2D Artist3.6%Anomaly images, item images
Marketer/Video Editor3.1%Trailer creation, influencer outreach
Writer2.7%Writing anomalies, dialogue
3D Modeler2.0%Creating ship modules, other models, coordinating concept artist and modeler efforts
Sound Designer/Music Director1.5%Creating game sounds, directions for composer
Analytics1.1%Choosing metrics, analyzing anonymous player analytics
Business1.0%Misc business stuff: taxes, paying contractors, renewing LLC, etc.

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 “3” not found /]

Two interesting things jump out immediately:

  1. Far fewer recent games used custom engines.
  2. 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

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

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

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

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.

Where’s Godot?

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.

Custom Engine

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.

Recommendations

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.