Table of Contents
- General Information
- Zen Storage Server
- Old (deprecate) Fileshare Method
- Examples
- Specifying DDCs globally
General Information
Unreal offers a feature, that allows to store compiled shaders and other material related stuff in a Derived Data Cache. This cache is hierarchical and can contain local and shared caches.
For newer versions (UE5.4+) Unreal uses Zen Storage Server to server the DDC instead of the old fileshare method.
For more info on DDCs see the official docs.
Zen Storage Server
We are hosting our own Zen Storage Server which address can be found here: Zenserver URL.
This server is included per default in pipeline builds, to accelerate the packaging process.
You can additionally add it to your own project to accelerate builds by including the following lines in your DefaultEngine.ini
:
[StorageServers]
Shared=(Host="http://134.130.186.200:8558", Namespace="projectname.ddc", EnvHostOverride=UE-ZenSharedDataCacheHost, CommandLineHostOverride=ZenSharedDataCacheHost, DeactivateAt=60)
Old (deprecate) Fileshare Method
Adding DDCs to your project
Edit the DefaultEngine.ini
in the Config folder of your project and append e.g. the following:
[InstalledDerivedDataBackendGraph]
Shared=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, DeleteUnused=true, UnusedFileAge=14, FoldersToClean=-1, MaxFileChecksPerSec=1, Path="U:/SomeFolder/OnASharedDrive", EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=SharedDerivedDataCache)
Note the following about this example:
-
InstalledDerivedDataBackendGraph
specifies the standard DDC properties that are used in an installed engine build. If you use a custom compiled engine (source build) useDerivedDataBackendGraph
instead or specify both by copying the complete section twice. - This example specifies a
Shared
DDC. You can also specify for example aLocal
one. - You can look up all parameters that are used and the possibilities in the
BaseEngine.ini
in the Engine/Config folder. If you search for 'DerivedDataBackendGraph' you can see the documentation of all parameters. - The path variable supports different placeholders that are replaced in runtime, like
%ENGINEDIR%
or%GAMEDIR%
.
Examples
Project Folder only
This example illustrates how to store everything inside your project folder:
[DerivedDataBackendGraph]
Hierarchy=(Type=Hierarchical, Inner=Boot, Inner=Pak, Inner=Local)
Boot=(Type=Boot, Filename="%GAMEDIR%DerivedDataCache/Boot.ddc", MaxCacheSize=512)
Pak=(Type=ReadPak, Filename="%GAMEDIR%DerivedDataCache/DDC.ddp")
Local=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, PurgeTransient=true, DeleteUnused=true, UnusedFileAge=34, FoldersToClean=-1, PromptIfMissing=true, Path=%GAMEDIR%DerivedDataCache, EnvPathOverride=UE-LocalDataCachePath, EditorOverrideSetting=LocalDerivedDataCache)
[InstalledDerivedDataBackendGraph]
Hierarchy=(Type=Hierarchical, Inner=Boot, Inner=Pak, Inner=Local)
Boot=(Type=Boot, Filename="%GAMEDIR%DerivedDataCache/Boot.ddc", MaxCacheSize=512)
Pak=(Type=ReadPak, Filename="%GAMEDIR%DerivedDataCache/DDC.ddp")
Local=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, PurgeTransient=true, DeleteUnused=true, UnusedFileAge=34, FoldersToClean=-1, PromptIfMissing=true, Path=%GAMEDIR%DerivedDataCache, EnvPathOverride=UE-LocalDataCachePath, EditorOverrideSetting=LocalDerivedDataCache)
Our shared DDC - Deprecated
The old shared DDC is deprecated in favor of Zen. Keeping this section for documentation purposes.
This example illustrates how to store your DDC in our shared DDC. Once you start up your project the editor tries to contact the shared drive and you have to enter credentials. Use the ones below. To store them in your profile, just open a file explorer and paste Internal URL into the address bar. Enter the same credentials and check the "save"-mark. The DDC is only reachable inside the RWTH network (and VPN). If the editor can't connect you can disable the DDC for that launch:
You can find the user and password in Keepass.
[DerivedDataBackendGraph]
Hierarchy=(Type=Hierarchical, Inner=Boot, Inner=Pak, Inner=Local, Inner=Shared)
Boot=(Type=Boot, Filename="%GAMEDIR%DerivedDataCache/Boot.ddc", MaxCacheSize=512)
Pak=(Type=ReadPak, Filename="%GAMEDIR%DerivedDataCache/DDC.ddp")
Local=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, PurgeTransient=true, DeleteUnused=true, UnusedFileAge=34, FoldersToClean=-1, PromptIfMissing=true, Path=%GAMEDIR%DerivedDataCache, EnvPathOverride=UE-LocalDataCachePath, EditorOverrideSetting=LocalDerivedDataCache)
Shared=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, PurgeTransient=true, DeleteUnused=true, UnusedFileAge=34, FoldersToClean=-1, PromptIfMissing=true, Path="\\vr-ue-server.rz.rwth-aachen.de\ddc", EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=LocalDerivedDataCache)
[InstalledDerivedDataBackendGraph]
Hierarchy=(Type=Hierarchical, Inner=Boot, Inner=Pak, Inner=Local, Inner=Shared)
Boot=(Type=Boot, Filename="%GAMEDIR%DerivedDataCache/Boot.ddc", MaxCacheSize=512)
Pak=(Type=ReadPak, Filename="%GAMEDIR%DerivedDataCache/DDC.ddp")
Local=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, PurgeTransient=true, DeleteUnused=true, UnusedFileAge=34, FoldersToClean=-1, PromptIfMissing=true, Path=%GAMEDIR%DerivedDataCache, EnvPathOverride=UE-LocalDataCachePath, EditorOverrideSetting=LocalDerivedDataCache)
Shared=(Type=FileSystem, ReadOnly=false, Clean=false, Flush=false, PurgeTransient=true, DeleteUnused=true, UnusedFileAge=34, FoldersToClean=-1, PromptIfMissing=true, Path="\\vr-ue-server.rz.rwth-aachen.de\ddc", EnvPathOverride=UE-SharedDataCachePath, EditorOverrideSetting=LocalDerivedDataCache)
Specifying DDCs globally
You can edit the entries in the BaseEngine.ini
in the same way as in your project. Just edit them, do not append new ones. Note to students: Please do not do so yourself
Make sure to edit them in the corresponding section to your type of engine installation:
-
InstalledDerivedDataBackendGraph
-> Installed Engine via launcher -
DerivedDataBackendGraph
-> Source Build