UE4 Source on Perforce

Hi guys,

I’m moving my project from 4.6.1 launcher to 4.7.3 source code and adding the plugin which requires source access. I have done the migration to 4.7.3 and merged the plugin and am running my game project perfectly.

My question is, what do I need to put onto Perforce so that the rest of my team can move forward with me? Previously I’ve just told my team to get whatever the latest was from the launcher and made sure the project file was updated, but now I’m messing with the Binaries folder and other Engine folders. I’d like to avoid throwing the entire engine onto perforce since it’s huge in comparison to my project. Exactly what files/folders do I need to put onto Perforce? What process changes will have to happen for the rest of my team to update? (i.e. do they need to download UE4 Git .zip and run Setup, or can they just download binaries and click run per normal?)

If you’re making modifications to the engine source code, you will obviously need to deploy the modified engine source to your team some how.

It you want a super thin version of the engine that you can check into Perforce then just unpack the zip file and check that data in.

Then make and check in a shellscript/batchfile that starts the editor that goes something like. Everyone on your team not programming will just run that.

Engine/Binaries/DotNET/GitDependencies.exe. - Fetches the extra data for the engine
Engine/Build/BatchFiles/Build.bat ProjectName Win64 Development - Builds your project as a development build for windows
/Engine/Binaries/Win64/UE4Editor.exe ProjectName - Runs editor for project

The is probably the least data you can check in if you want to be able to modify the engine and deploy it to your team.

Also remember that there is a special directory layout requirement for projects running off source.

Your project must be a direct subfolder of the engine root dir, so it needs to sit in the same folder as UE4Games.uprojectdirs.

Hope that helps,

/ Kyle

While good tips, this doesn’t really answer my question. You talk about methods of allowing teams to get the right data, which is great, but my question is asking exactly what data needs to be given to the rest of my teams in order to run.

Is it just the binaries folder? I have plugins. Is it just binaries and plugins folders? If I’m using a custom engine I have to somehow get them the engine. I guess if I’ve downloaded UE4 Git source then merged plugins onto it, my engine is completely unique, so I probably have to upload the engine somehow? What can I skip during upload - the Intermediate folder? Anything else?

I’m just trying to not force my team to download 20GB of data if it’s not necessary.

EDIT: unless you’re seriously saying I only need to check in 3 executables and have them run the files. That seems too good to be true…

If you are going to compile the build for your team.

Do NOT Include:

/FeaturePacks
/Templates - I believe you can run without this but you should test first
/DerivedData
/PROJECT/Intermediate
/PROJECT/Saved
/PROJECT/DerivedDataCache
/Engine/Intermediate
/Engine/DerivedDataCache
/Engine/Saved

Also be sure to exclude any PDB files

If you’re expecting everyone to compile for themselves, then you can check in the basic stuff that comes from a clean drop from GitHub + GitDependencies + your extras, don’t forget to still exclude the list above. From that point on Do NOT add any additional /Binaries dirs or files as you work (unless it’s necessary). Everyone will be able to compile the game/engine from source with the minimal set that was needed to originally compile the git build. - This is pretty much how we work.

To double down on the above, you could check in only the contents of the git zip file, then everyone would need to fetch the rest of the data using GitDependencies.exe or a script like the one I described before.

This worked for me. Thanks!