arrow-left

All pages
gitbookPowered by GitBook
1 of 2

Loading...

Loading...

Archiving an Unreal Engine 4 Source Project

Written by Tom Ensom (updated: Feb 2024)

This page describes the process for archiving an Unreal Engine 4 project and its dependencies, so that it can be archived independently of a computer system.

One way of preparing for the preservation of software made in Unreal Engine 4 (UE4), is to archive the project files used to create it. While it is the executable form of the software (or 'build') which is used to run it, archiving the source form of the software opens up more preservation options such as:

  • Creation of new builds which support different platforms and environments;

  • Incremental migration to new versions of Unreal Engine 4;

  • Migration to a new engine should this become necessary.

  • Additionally, source materials can contain rich technical history and support an understanding of how the software was developed.

As a rule of thumb, you want to have all the materials required to repeated the process of building the software. To build an Unreal Engine 4 project, you need the following components:

  • : the collection of custom Unreal Engine 4 content and project files;

  • : the editor software which allows you to open the project;

  • : any additional software not included with the engine binaries by default e.g. plugins, libraries.

A sensible approach is therefore to archive all these components either independently or in the form of a disk image. Each component type, including how you can locate it, is described in detail below.

hashtag
Project Folder

An Unreal Engine 4 project folder is a collection of files conforming to a specific directory structure — more information on this format can be found in our introduction to .

The archive this, the supplier will need to send you a copy of this complete directory. The contents of this directory should look something like the screenshot below:

One interesting thing to note is that this can include assets and other materials that are not used by the built application. This can make the project files larger, but also provides historical insight into the way it was created. If the creator of the project files offer to 'clean them up' before supplying them, you may wish to advise them against that.

Project files can include hundreds or even thousands of files, so as a final step you may wish to ZIP them for convenience and reduced stored size.

hashtag
Engine Binaries and Source Code

hashtag
Engine Binaries

To open an Unreal Engine 4 project you need an appropriate version of the Unreal Engine 4 editor. To avoid errors, you should use the editor version in which the project original developed. If you use a newer version, Unreal Engine will present a warning and give you a choice of whether to proceed or not. There is a chance you can open the project successfully, but doing so may break or change things, so do so very carefully and always using a duplicate copy.

You can download prebuilt UE4 binaries using the . Once installed, the engine version can be located in your UE4 install directory and zipped for archiving.

Alternatively, you can build binaries from the (this is a private repository and you will need to request access prior to use). See also the Binary Builder tool .

hashtag
Source Code

If the project involves a modified version of UE4, you will also need to archive a copy of the source code. Archiving the source code of the engine version used can also be a generally useful thing to have, as it can hold useful information for future preservation work.

For a project using a modified source code, the creator should be able to supply this or advise on where it can be found. For unmodified UE4 source code, this can be pulled from the Unreal Engine repository on GitHub: . This is a private repository, so you will need to request access and link to an Epic Games account before being able to access it — see the .

hashtag
Dependencies

Sometimes additional dependencies are required to open or build a UE4 project successfully.

hashtag
Unreal Engine 4 plugins

Plugins are extensions to Unreal Engine 4's functionality. They can be installed from the within the engine or manually. There are two default locations for plugins:

  • Unreal Engine install location: /[UE4 Root]/Engine/Plugins/[Plugin Name]/

  • Project folder: /[Project Root]/Plugins/[Plugin Name]/

You need to make sure that any required plugins have been installed and are then archived with either the project files or engine binaries.

hashtag
C++ projects

If a UE4 project involves custom C++ code, you will need to install the appropriate version of Microsoft Visual Studio (e.g. 4.27 requires Visual Studio 2019 to build such project for Windows).

Project folder
Engine binaries
Dependencies
Unreal Engine 4
Epic Games Launcherarrow-up-right
source code on GitHubarrow-up-right
https://github.com/ryanjon2040/Unreal-Binary-Builderarrow-up-right
https://github.com/EpicGames/UnrealEnginearrow-up-right
official instructionsarrow-up-right
An example UE4 4.27 project folder.

Unreal Engine 4

Unreal Engine 4 (UE4) is a game engine developed by Epic Games. The first version of Unreal Engine was created during the development of the 1998 game Unreal, at which point Epic Games started licencing the engine to other developers. Version 4.0 was released in 2014, and has been followed by 27 subversions (the latest is 4.27). Unreal Engine 5, announced in 2020, is expected to supersede UE4 at some point in the near future. UE4 is not an open-source engine (see the EULA), but the engine source code is freely available via their GitHub repository.

circle-exclamation

Unreal Engine 4 has now been superseded by Unreal Engine 5 and will no longer receive updates. It it possible to migrate projects from version 4 to 5 but manual migration of some elements may be required. See Epic's migration guidearrow-up-right for more information.

This page is designed to help you understand what Unreal Engine 4 is and how it can be used by creators.

Unreal Engine 4 (UE4) is a real-time 3D engine developed by Epic Games. The first version of Unreal Engine was created during the development of the 1998 game Unreal, at which point Epic Game started licencing the engine to other developers. Version 4.0 was released in 2014, and has been followed by 27 subversions (the latest is 4.27). Unreal Engine 5, announced in 2020, is expected to supersede UE4 at some point in the near future. UE4 is not an open-source engine (see the EULA), but the engine source code is freely available via their GitHub repository.

hashtag
Anatomy of a UE4 Project

A UE4 project consists of a collection of files and folders conforming to a well defined structure. A project folder typically contains the following at the top-level (more detail in the :

  • Binaries: If the project has been compiled for a specific platform, this contains the files produced.

  • Build: Contains files required to build the project for different platforms.

  • Config: Contains project settings stored in plain text files with the .ini extension.

hashtag
Anatomy of a UE4 Build

A UE4 build consists of set of files and folders that allow the software to be run on a suitable host computer.

Some elements dependent on whether Development or Shipping option is selected prior to build, and other packaging options in UE4.

hashtag
Preservation Considerations

hashtag
Overview

  • Has been updated an average of 4 times per year since first release in 2014. Updates can result in deprecation or removal of features, or incompatibility with plugins. Unreal Engine 5 was released in 2022, which may mean an end to UE4 updates.

  • Free source code access via GitHub repository (note that the Unreal Engine applies).

  • Royalty payments only required with high product revenues, so unlikely to impact cultural heritage context.

hashtag
Access and Licencing

Criteria
Assessment

hashtag
Export Formats

When an asset is imported to Unreal Engine 4 it is converted to the UE4 UASSET (.uasset) format. This format is not well documented, although there is some partial reverse engineering work . A UASSET can be re-exported from the engine in a variety of formats depending on the asset type. To do so, you need to right click on the asset in the Content Browser, and navigate to Asset Actions -> Export.

The information below was derived from testing in Unreal Engine 4.27. Note that is simply a list of the export formats available and exports have not been tested against original import format.

hashtag
3D Models (Static) Export Formats

Format
Includes Material?
Notes

hashtag
Game Dependencies

Windows applications created using the UE4 editor have a set of dependencies similar to the editor. These are automatically packaged with an application when built from the editor, and are installed when the application is run by an installer program called UE4PrereqSetup_x64.exe. This can be located in the application directory: [UE4GameRootLocation]\Engine\Extras\Redist\en-us

hashtag
Editor Dependencies

These dependencies are required to run the editor, or applications created using the editor.

Platform
Dependencies

hashtag
Build Dependencies

These dependencies are required to build software from the editor for particular platforms.

Target Platform
Dependencies

hashtag
UE4 Resources

  • Epic Game, Unreal Engine 4.27 Glossary, URL:

  • David Lightbown, 2018, Classic Tools Retrospective: Tim Sweeney on the first version of the Unreal Editor. URL:

Content: Contains the maps, assets (e.g. 3D models, materials, blueprints) and other custom content used by the project, including any third-party packages downloaded from the Unreal Marketplace.

  • DerivedDataCache and Intermediate: Contain temporary files generated during the build process (e.g. shader compilation).

  • Saved: Contains saved data created by the editor as it runs, including autosaves, crash reports and logs.

  • A .uproject file: The project file with which the project can be launched. Actually a json file containing structured information describing the project, including the UE4 version, enabled plugins and target platforms.

  • For custom C++ projects Visual Studio dependencies are difficult to manage from an archival perspective.

  • Transforms imported assets to the poorly documented internal format (.uasset). More work is required to understand whether this transformation is lossless.

  • No

    Identical to .copy

    Source code access

    Public source code access although access to private GitHub repository needs to be requested. Not open source per se, released under the Unreal Engine EULA. Seems accommodating to preservation use case, but use must abide by EULA (e.g. no redistribution of engine source code).

    Licencing

    Users to pay a 5% royalty to Epic Games if product revenues exceed $1,000,000 USD.

    Availability of old versions

    Oldest version available is 4.0.2 (released 28 March 2014) via Epic Games Launcher or GitHub.

    FBX

    Yes

    Can export to 2011, 2012, 2013, 2014, 2016, 2018, 2019, 2020 versions of the FBX spec.

    OBJ

    No

    Unreal object text .copy

    No

    Identical to .t3d

    Windows

    The Epic Games Launcher automatically runs a dependency installer when UE4 is installed, called 'UE4PrereqSetup_x64.exe' or 'UE4PrereqSetup_x86.exe'. Manually running these is required if a different method of installation is used (e.g. copying the engine binaries onto the system). These can be located within the Engine directory: [UE4EditorRootLocation]\Engine\Extras\Redist\en-us

    Linux

    clang for Linux (version depends on engine version: https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/Linux/NativeToolchain/arrow-up-right)

    Linux (cross-compile from Windows)

    clang for Windows (version depends on engine version: https://docs.unrealengine.com/4.27/en-US/SharingAndReleasing/Linux/AdvancedLinuxDeveloper/LinuxCrossCompileLegacy/arrow-up-right)

    Windows

    Visual Studio required for some (w/ code modification?) projects (versions depends on engine version: https://docs.unrealengine.com/5.0/en-US/setting-up-visual-studio-development-environment-for-cplusplus-projects-in-unreal-engine/arrow-up-right)

    UE4 docs)arrow-up-right
    EULAarrow-up-right
    herearrow-up-right
    https://docs.unrealengine.com/4.27/en-US/Basics/Glossary/arrow-up-right
    https://web.archive.org/web/20180823012812/https://www.gamasutra.com/blogs/DavidLightbown/20180109/309414/Classic_Tools_Retrospective_Tim_Sweeney_on_the_first_version_of_the_Unreal_Editor.phparrow-up-right
    A simple 3D scene open in the Unreal Engine 4.27 editor.

    Unreal object text .t3d