Contents
Getting started
There are a wide variety of freely-available resources dedicated to helping new users familiarise themselves with the Unreal Engine. Key resources include:
-
The official Unreal Engine documentation provides tutorials and getting started guides alongside detailed technical information about various engine subsystems and full API documentation.
-
Unreal Academy provides videos and online training for a wide variety of topics, ranging from engine basics and key concepts to advanced topics organised by industry-based use cases. Scientific research is not currently one of the industries that is explicitly catered to, but this may change in the future.
-
The official Unreal Engine YouTube channel provides access to live training livestreams and archives, as well as various videos exploring specific features of the engine.
-
The Unreal Slackers Discord community is a great place to connect with other Unreal Engine users and ask questions. There are a variety of channels dedicated to common topics and use cases.
Infrastructure Projects
The projects listed below provide additional infrastructure that complements the native capabilities of the Unreal Engine in order to simplify development workflows or provide integration with third-party libraries or tools. A number of these projects are maintained by the UE4Research contributors themselves and were developed with a specific focus on research use cases.
Projects maintained by the UE4Research contributors are listed first, followed by all other projects in alphabetical order.
ue4-docker
Created by: Adam Rehn
- Links:
- Repository
- Documentation
Description (from the project’s documentation):
The ue4-docker Python package contains a set of Dockerfiles and accompanying build infrastructure that allows you to build Docker images for Epic Games’ Unreal Engine 4. The images also incorporate the infrastructure from ue4cli and conan-ue4cli to facilitate a wide variety of use cases.
Key features include:
- Unreal Engine 4.19.0 and newer is supported.
- Both Windows containers and Linux containers are supported.
- Building and packaging UE4 projects is supported.
- Running automation tests is supported.
- Running built UE4 projects with offscreen rendering is supported via NVIDIA Docker under Linux.
Research uses:
-
The built container images can be used to perform automated, reproducible builds of Unreal projects in a sandboxed environment that can then be run on a host system without UE4 installed, which makes it cleaner and easier to try out Unreal projects from other researchers that you’ve found online.
-
With NVIDIA Docker installed under Linux, the containers can be used to run Unreal projects in a sandboxed environment with full offscreen rendering support, making it easy to bundle projects with complex runtime dependencies and run them on systems without UE4 installed or even deploy projects to cloud compute servers.
-
The built containers can act as a source of Installed Builds of UE4 under Linux, so you can easily export a build of the Engine for all team members who are working under Linux in a similar manner to how the Epic Games Launcher provides Installed Builds under Windows and macOS.
-
The built containers also act as a source of conan-ue4cli wrapper packages that can be exported and used by team members.
ue4cli
Created by: Adam Rehn
- Links:
- Repository
- Documentation
Description (from the project’s documentation):
The ue4cli Python package implements a command-line tool called
ue4
that provides a simplified interface to various functionality of the build system for Epic Games’ Unreal Engine 4. The primary goals of this tool are as follows:
- Abstract away the platform-specific details of the various batch files and shell scripts scattered throughout the Engine’s source tree.
- Provide the ability to easily generate IDE project files under Linux, where no shell integration currently exists to perform this task from outside the Editor.
- Determine the compiler flags required to build third-party libraries for use within Engine modules. This is particularly important under macOS and Linux where symbol interposition can cause clashes between external libraries and those bundled in the
ThirdParty
directory of the Engine source tree, and under Linux where libraries need to build against the Engine’s bundled version of libc++.
Research uses:
The workflow enhancements provided by ue4cli primarily cater to users who prefer to use the command line to work with UE4, or are working under Linux. Outside of this core functionality, the main benefit of ue4cli is that it allows you to install and use the conan-ue4cli plugin, which forms the basis for most of the third-party library integrations listed in the Integrations section.
conan-ue4cli
Created by: Adam Rehn
- Links:
- Repository
Description (from the project’s documentation):
The conan-ue4cli Python package is a plugin for ue4cli that provides functionality for generating and using Conan packages that wrap the third-party libraries bundled in the
Engine/Source/ThirdParty
subdirectory of the Unreal Engine 4 source tree.
Research uses:
The conan-ue4cli plugin for ue4cli provides wrapper packages around the third-party dependencies that come bundled with the Unreal Engine, along with infrastructure that makes it easy to write Conan recipes for building additional third-party libraries against these bundled dependencies to ensure full compatibility with UE4 under all platforms. This Conan-based workflow dramatically simplifies the task of integrating third-party libraries and tools into the Unreal Engine and forms the basis for most the library integrations listed in the Integrations section.
UnrealCV
Created by: Weichao Qiu, Fangwei Zhong, Yi Zhang, Siyuan Qiao, Zihao Xiao, Tae Soo Kim, Yizhou Wang, Alan Yuille
- Links:
- Homepage
- Repository
- Documentation
Description (from the project’s documentation):
UnrealCV is an open source project to help computer vision researchers build virtual worlds using Unreal Engine 4. It extends UE4 with a plugin by providing:
- A set of UnrealCV commands to interact with the virtual world.
- Communication between UE4 and an external program, such as Caffe.
Research uses:
UnrealCV is particularly helpful for using virtual environments to generate image datasets with rich ground truth data that can then be used to train machine learning algorithms.
Integrations
This section provides guidance and examples to assist in integrating existing third-party libraries, tools, and programming languages with the Unreal Engine. Many of these components are widely used in research and will therefore be a familiar (or in some cases essential) part of researchers’ existing workflows.
Libraries, tools, and programming languages are listed in alphabetical order.
C#
- The MonoUE plugin provides C# and F# bindings for the Unreal Engine. Note that the project is still under development and there are a number of features that are yet to be implemented.
Javascript
- The Unreal.js plugin provides support for embedding the V8 Javascript interpreter in the Unreal Engine and provides Javascript bindings for most of the Engine API.
OpenCV
- The ue4-opencv-demo GitHub repository demonstrates the use of conan-ue4cli to build a UE4-compatible version of OpenCV and then statically link against it.
Protobuf and gRPC
- The ue4-grpc-demo GitHub repository demonstrates the use of conan-ue4cli to build a UE4-compatible version of gRPC and then statically link against it and implement a gRPC service inside the Unreal Engine.
Python
-
There is currently experimental support provided by Epic Games themselves for Python scripting in the Editor, although this does not work in packaged projects. See the Scripting the Editor using Python page of the official UE4 documentation for details.
-
The UnrealEnginePython plugin provides support for embedding the Python interpreter in the Unreal Engine, and works in both the Editor and in packaged projects. Python bindings are provided for most of the Engine API.