Build from source and distribute it in our studio

Maybe this question has been asked before, but is there a guide available for how to build the engine from source code and distribute in a studio? We have a build machine running with Jenkins which creates a build from source with this batch command:

“%MS_BUILD_DIR%” “%SOURCE_DIR%\UE4.sln” -target:“Engine\UE4” -property:Platform=“Win64”;Configuration=“Development Editor” -verbosity:“diagnostic”

Is this the correct command or do I have to change something for a “release” like build of the editor?

What files do I need to distribute (because the build is very big) and is there anything we have to on the machines of my colleagues after moving the files to their machine?

We want to distribute the engine on 10+ machines. So any tip to do this as smart as possible would be appreciated.

Thanks
Tim

The docs have some good information about how to deploy a build to a team. There are lots of options, but I personally like making an “Installed Build”, which produces a standalone build of the editor very much like the one that is available in the Epic Games Launcher, but which you can customize with your own code changes, and choose which platforms and options you want to include.

I use the following commands:


Setup.bat
GenerateProjectFiles.bat
Engine\Build\BatchFiles\RunUAT.bat BuildGraph -target="Make Installed Build Win64" -script=Engine/Build/InstalledEngineBuild.xml -clean -set:WithWin64=true -set:WithLinux=true -set:WithServer=true -set:HostPlatformDDCOnly=false -set:WithWin32=false -set:WithMac=false -set:WithAndroid=false -set:WithIOS=false -set:WithTVOS=false -set:WithLinuxAArch64=false -set:WithPS4=false -set:WithXboxOne=false -set:WithSwitch=false -set:WithLumin=false -set:WithLuminMac=false -set:WithHoloLens=false

and (many hours later) that produces a build in LocalBuilds\Engine\Windows. That folder can be renamed and distributed to your team.

With the options I use (including Windows, Linux, dedicated servers, and pre-building the DDC) that folder is ~33.4GiB. See the docs about registering an installed build for info about registering a friendly name for the build in the Windows registry (otherwise your build just gets a random ID as its name, which is not very helpful to work with).

One thing I need to caution is that the build command above is currently failing in 4.24.0 because of a problem building the Linux server (which I’m currently in the process of reporting), so customize it to your needs.

2 Likes

Would you mind telling where and how you use these commands, is it through windows cmd or something else ?

Thanks in advance.

Yes, that’s in a Windows Command Prompt after checking out the engine source using Git.

I have a tutorial/white paper on how to setup and use install builds for a small dev team. You can find it here under Managing Multiple UE4 Projects.

That looks incredibly useful! The link’s dead I think (“wisengineering.com unexpectedly closed the connection.”), could you double-check that and let us know when it’s back up? Thanks! :slight_smile:

The link seems to be fine for me. Here is a direct link to the pdf https://wisengineering.com/downloads/ManagingUE4Projects.pdf

I’m not sure if you can run this from the command line or not, but I’ve found the tool useful none the less:
[TOOL] Create your own binary build for your team]([TOOL] Create your own binary build for your team - Engine Source & GitHub - Unreal Engine Forums)

Our InstalledEngineBuild.xml excludes Templates/Feature Packs and the result is compressed without including the debug files to create an artist friendly build.
The file that is distributed is only ~1.8GB and ~6.3GB uncompressed.

I haven’t bothered to automate this process, as rebuilding the engine is generally infrequent.

Still getting that error, maybe the site’s only visible to employees? If you could share it via the Upload Attachments button below that would be awesome! I know a whitepaper on this would be very valuable :slight_smile:

That tool definitely worked in most use cases prior to 4.23, but as of 4.24 it (or the equivalent UAT.bat + command line arguments) won’t properly include PS4 files into the build (if that’s your particular use-case), and I believe it doesn’t properly include other platforms too. This is a symptom of 4.24 though, and not the tool itself.