Rationale

Why use the Unreal Engine for scientific research?

Contents

When does a researcher need a game engine?

Modern game engines are sophisticated pieces of middleware that provide convenient abstractions for a variety of complex functionality. Due to economies of scale, the implementations of features included within widely-used game engines are often far more rigorously tested and optimised than the equivalent implementations within software or frameworks designed purely for scientific purposes. Researchers should consider utilising a game engine if they will make use of one or more key features common to most modern implementations:

Why choose the Unreal Engine for research use?

Researchers who have made the decision to utilise a game engine are subsequently faced with the need to select a specific engine with which to familiarise themselves. Since all modern game engines provide the key functionality described in the previous section (to varying degrees of sophistication), researchers should consider a number of additional contributing factors when evaluating the suitability of any given game engine.

The sections that follow focus solely on the factors that have made the Unreal Engine a popular choice for existing research, as other game engines are outside the scope of the UE4Research project. We invite researchers to take these factors into account when critically evaluating and comparing other game engines to the Unreal Engine, so that they can make an informed decision and select the engine which will be of most benefit to their research.

Unreal Engine selection rationale from the existing literature

The Publications page provides a non-exhaustive list of academic publications that present research projects utilising Unreal Engine 4 or newer as a component of their software implementations. Analysis of these publications reveals that they cite a number of common factors when justifying their decision to use the Unreal Engine. These factors are listed in Table 1, sorted based on the number of publications that cited a given factor.

Factor Publications
Produces photo-realistic images [4] [5] [7] [10] [11] [12] [13] [14] [17]
High-quality physics/collision simulation [6] [7] [8] [9] [12] [16]
Blueprints visual scripting language [2] [3] [9] [14] [17]
Engine is open source [7] [9] [11] [12] [16]
Availability of pre-made assets [1] [11] [12] [16]
Interoperability with external software [11] [15]
Engine is cross-platform [12]
Engine is well-maintained [11]
Table 1: Factors that commonly contribute to the selection of the Unreal Engine for research purposes.

Each of these factors relates to a specific characteristic of the Unreal Engine that the publication authors deemed well-suited to their research use cases:

Contribution statistics from GitHub

In addition to being actively developed by Epic Games and their industry customers, the Unreal Engine has an extremely active community of open-source contributors on GitHub. Table 2 lists the number of commits and contributors who made those commits for each year since the Unreal Engine GitHub repository became accessible for free. The statistics were computed by analysing the output of the git rev-list command for the release branch of the repository using this Python script.

Year Commits Contributors
2015 27706 373
2016 12707 153
2017 4276 142
2018 10202 255
2019 90340 582
2020 71829 566
Table 2: The number of yearly commits and contributors for the release branch of the Unreal Engine GitHub repository.

After an initial frenzy of development activity immediately following the announcement that Unreal Engine source code access had been made free, the repository has maintained a steady stream of commits from a wide variety of contributors year-on-year. It should be noted that these counts include both community contributions and automated commits to synchronise changes from the Epic Games internal Perforce repository, where all changes made by Epic Games engineers are stored.

The combination of industry-funded development and community-driven development allows the Unreal Engine to maintain a development pace that is difficult to achieve when utilising a single model alone. This hybrid model is similar to the one used by many large open source projects such as the Linux kernel and the LLVM project (albeit supported by a decidedly different governance structure), which has a proven track record of producing high-quality software even when managing significant levels of technical complexity.