This page describes the process for archiving a Unity 5 project and its dependencies on Windows, so that it can be preserved independently of a specific computer system.
Work in progress!
One way of preparing for the preservation of an application made in Unity 5, is to archive the project files associated with it. Executable software is created from a Unity project by exporting an application that supports the target platform. By archiving an Unity project, we aim to gather together all the materials required to carry out to repeat this build process. This opens up options for incremental migration to new versions of Unity, and the modification of code to support other hardware and software platforms.
To build an Unity project, you need the following components, guidance on the archiving of which is provided on this page:
the collection of custom Unity content and project files
: software which allows you to open and edit a Unity project folder
: any additional software not included with the engine binaries or project by default e.g. libraries, modules
#
The Unity Editor software can be installed using the Unity Hub software or from the intallers distributed via the .
Before proceeding, you will need to identify the version of the Unity Editor the project was created with. To do so, navigate to the ProjectSettings folder within the project folder and open the file named ProjectVersion.txt (tested in 2018.3.9).
1. Install Unity Hub on a suitable computer and navigate to the Installs tab.
2. Click Install Editor and select the appropriate editor version. If the appropriate version is not available, you will need to install it use the Unity Download Archive method.
You may also wish to install additional modules to improve build support.
3. Return to the previous Installs tab, click on the cog icon next to the Editor entry you wish to archive, and click on Show in Explorer.
4. In the Window which opens, you will be looking inside the application directory for the Unity Editor version. This folder can be archived and used to access the Editor independently of the Unity Hub installer.
There are two common ways of extending the functionality of Unity which you may find have been used: Modules and Packages.
Modules extend core features, and includes options to build for non-Windows platforms. Unfortunately, if any non-standard modules have been used by the project your only option is to use the Unity Hub application to download and install these.
Packages are handled by the Unity package manager module and are included in the project folder once they have been added.
Unity is a game engine that was initially released in 2005. Released with the aim of democratizing video game development, it was intended to be an affordable engine aimed primarily at independent and amateur game developers. Unity can create both 2D and 3D applications. The engine typically has a major version update every year with multiple smaller updates throughout the year. Unity is free for developers that bring in under $100,000 in revenue in a 12-month period. After that, there are 2 different pricing models. Though originally designed to build games, today Unity is used across multiple industries including automotive, architecture, engineering, construction, film, education, and retail.
This page is designed to help you understand what Unity is and how it can be used by creators. The Unity Engine was initially released in 2005 and was designed to provide affordable game development tools aimed mainly at amateur game developers. Unity can create both 2D and 3D applications. The engine typically has a major version update every year with multiple smaller updates throughout the year. Unity is free for developers that bring in under $100,000 in revenue in a 12-month period. After that, there are two different pricing models. Though originally designed to build games, today Unity is used across multiple industries including automotive, architecture, engineering, construction, film, education, and retail.
When a new project is created, Unity creates several folders as a part of the project. Over the years and versions of Unity, this default folder structure has changed somewhat, but it now generally contains the following folders:
This is the folder where all game resources are stored, including scripts, textures, sound, and custom editor scripts. The organization of the folder can vary greatly from one project to another and from one organization to another. There can be numerous subfolders in the Assets folder, depending on how the project is organized. For example, there may be a folder for scenes, one for scripts, one for audio, or one for sprites. There is no limit to how deep the organization can be.
As a best practice, subfolders in the Assets folder should be created within Unity and not the computer's local file system. Likewise, assets should be added directly to the folders in the Unity Editor and not the file explorer as seen above. This is particularly important due to the way Unity constructs metadata for assets.
Unity reserves several special folder names under the asset folder. These folders are Editor, Editor Default Resources, Gizmos, Resources, Standard Assets, and Streaming Assets. Not every project will have all of these folders.
Assets/Editor — This folder is for custom editor scripts that extend the functionality of the Unity editor. These scripts will run in the editor but not in the project at runtime. Multiple Editor folders can exist in the Assets Folder. The execution of the editor scripts varies depending on where in the folder structure the editor file exists.
Assets/Editor Default Resources — This is where asset files used by Editor scripts are stored. There can only be one such folder and it must be placed in the Assets folder root. There can be subfolders in this folder.
Assets/Gizmos — Gizmos are graphics in the scene view which can help to visualize design details. This folder stores images used for gizmos. There can only be one folder and it must be placed in the Assets folder root. Gizmo examples are seen below with the red squares around them. The one on the left is the main camera’s position and rotation. The one on the right represents a light source. These two are Unity built in gizmos:
Assets/Resources — This folder stores resources so that they can be loaded on demand in a Unity project. There can be multiple resource folders. On demand loading is helpful for dynamically loading game objects that don’t have instances created by designers during design time. In other words, these resources may not have corresponding game objects placed in the scene at design time and can be loaded dynamically at run time.
Assets/Standard Assets — This folder stores any standard asset packages that have been imported into a project. There can be only one standard assets folder. Standard assets are free assets maintained by Unity.
Assets/Streaming Assets — This folder is for assets that will remain in their original format and later be streamed into the Unity application, instead of directly incorporating them into the project’s build. An example would be a video file from the filesystem. There can only be 1 streaming assets folder in the project.
Moving on from the Assets folder, the next folder is Library. This is a local cache used by Unity for imported assets. It can be deleted and will be regenerated by unity automatically. All that is needed to recreate the folder are source assets and .meta files. If this folder is deleted, Unity will reimport all asset information and regenerate the folder the next time the project is opened in the editor. This folder should not be included in Version Control. These imported assets are used by Unity to save time when Unity is running.
Of special note in the Library folder is the package cache folder. This contains information about all the packages installed with the current project. Though this can be regenerated by Unity like the other items in the Library folder, for archival purposes, it is important that this file not be deleted. This is because it may be helpful to be able to see what packages are included in the project without having to regenerate the cache, which would require opening the project in its appropriate editor version.
This folder contains the manifest file in JSON format used to maintain the dependencies link between packages. The manifest file is used to regenerate the package cache in the library folder. It also contains a file listing the individual packages installed with the project. These are used by the Unity Package Manager. The package manager was added in Unity 2018.1. Prior versions of Unity will not contain the package manager and the packages folder will not exist in those cases.
This folder contains all project settings from the project settings menu. It also includes editor version number and build settings and a slew of other settings used by Unity systems. Editor version number, as a standalone file, was not added until Unity 5. For any version before that, the editor version number can be found in the project settings file.







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.
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.
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 .
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 .
Sometimes additional dependencies are required to open or build a UE4 project successfully.
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.
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).
Works with many headsets including the Meta Quest, Valve Index, HTC Vive, Oculus Rift, all Microsoft MR headsets, and many more.
Support for OpenXR, an emerging open standard that most hardware vendors are moving to.
Plugins give access to various proprietary SDKs, such as OpenVR (SteamVR) and the legacy Oculus SDKs.
WebXR can deliver AR/VR experiences via a web browser.
ARKit allows creating AR apps for iOS.
Create games on any desktop OS and Android.
Works on Windows, macOS, Linux, *BSD and Android (experimental). The editor runs in 32-bit and 64-bit on all platforms, with native Apple Silicon support.
Small download (around 35 MB), and you are ready to go.
Easy to compile on any platform (no dependency hell).
Deploy games everywhere!
Export to desktop platforms: Windows, macOS, Linux, UWP, and *BSD.
Export to mobile platforms: iOS and Android.
Consoles: Nintendo Switch, PlayStation 4, Xbox One via third-party providers (read more).
Export to the web using HTML5 and WebAssembly.
One-click deploy & export to most platforms. Easily create custom builds as well.

Game engines are software development tools for creating interactive software. They package together libraries and software which simplify the development of interactive software. Game engines are a widely used tool in the creation of real-time 3D VR software, and many engines support VR production workflows out-of-the-box.
A modern game engine will typically include:
A 3D or 2D renderer, which supports the rendering of a moving image sequence in real-time.
Editor for compositing and managing scenes and asset import.
Physics simulation.
Scripting and programming tools to support dynamic, simulated and interactive elements.
Sound processing.
Extension through plugins and/or custom code.
There are numerous engines in use today. For real-time 3D rendering applications such as VR, Unity and Unreal Engine are currently the two most popular. Both are free to download and use non-commercially, which has contributed to their popularity.
An important implication of using an engine is that much programming has already happened before work on a project begins. The engines provides a toolset that can be used to realise the project and generate executable software, but as a creator you do not necessarily have full control or authorship of the code.
Adrian Courrèges (2020) Graphics Studies Compilation. URL: .
baldurk (n.d.). Graphics in Plain Language: An introduction to how modern graphics work in video games. URL: .
Brown University VR Software Wiki. URL:
Android; Linux; MacOs;Windows; WebEditor
Binaries and source code available on and in
Windows
Windows; MacOS (Intel & M1); Linux (Ubuntu and CentOS)
Windows; Linux (from source)
Binaries distributed through Epic Game Launcher. Source code available on restricted access GitHub repository.

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.
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 guide 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.
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.
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.
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.
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.
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
These dependencies are required to run the editor, or applications created using the editor.
These dependencies are required to build software from the editor for particular platforms.
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/)
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/)
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/)

Unreal object text .t3d