I’m trying to set up our environment as a ‘foreign’ project. At the root of the depot, I have the following folder structure:
UE: contains the vanilla latest Unreal Engine (only Setup.bat has been run)
Project: contains all project sources, assets, as well as our project generation and cleanup batch scripts
Tech: contains shared plugins
.p4ignore is also present at the root
Everything works fine regarding project generation and compilation.
However, I’m encountering issues with UnrealGameSync (UGS). After selecting our Project.uproject file, UGS doesn’t detect the Unreal Engine folder. I tried a few things, but none of them worked properly.
Do you know the proper setup to get UGS working with a ‘foreign’ project? Ideally, without modifying any files inside the Unreal Engine folder.
Note that having a shared plugins directory outside of Engine/ or your project’s folder tree requires the usage of AdditionalPluginDiretories, which is known to have issues:
Unfortunately, UnrealGameSync was created with support for Native project types only. We don’t use it at Epic Games for foreign projects, so we don’t support that workflow.
The Unreal Engine’s source code must be in a folder called “Engine” at the root of your Perforce stream, not “UE.”
Foreign projects should be primarily used with the Launcher binary version of Unreal Engine, which is usually done for smaller projects. For bigger projects, we recommend the “Epic Way” of using the Native folder structure so you can take advantage of our other tools like UGS and Horde, which depend on it.
During the Setup.bat (after cloning the depot), there’s several folders created in the Workspace Root (like: FeaturePacks, Samples, Templates), these folders maybe project specific.
In addition to that, perforce need to have completely separated folders to be able to define different streams for different projects or engine versions (we can’t define a stream inside the folder structure of another stream).
I’m not aware of any immediate plans for that, no, unfortunately. Horde is also made for the native project folder structure.
For several productions, we recommend putting different projects in the same parent folder containing the /Engine folder in P4 (or subfolders, and list them in Default.uprojectdirs).
We keep all projects in a Main stream, but with a selective checkout of the project files per project handled by Unreal Game Sync. UGS will only pull in files from the selected project folder and the engine folder.