Setting up a modified binary release for my team

Here’s the workflow I am thinking about for a new team member on Windows:

  • Get latest from our source control
  • Run a simple script to set up the Registry entries Unreal uses
  • Double click the uproject in our game source directory
  • Victory!

This kind of works if we give everyone source builds, but there are some problems with that:

  • Slightly more complicated setup path (need to build the engine, then load the game uproject)
  • Very long startup time for the first compile of the engine in any particular configuration.
  • Packing a target build when running from a source-project rebuilds the whole engine for some reason, even if you’ve already done the packing.
  • UnrealVersionSelector binds different data for each user (looks like some kind of GUID), so they all need the uproject checked out of source control, which feels wrong.

Ideally I’d like to have the Unreal source code checked in as well, along with .pdb files located in some way that lets the debugger step into engine code, I just don’t want non-engine-modifying team members to have to care about building / changing the engine.

What’s the simplest way to set this up? If I could promote my build like the installer does with the official binary builds from Epic, that seems like it would solve all my problems, but maybe there is a simpler solution I’m not thinking of.

I’m in a similar situation. I’ve found a couple things in practice:

  1. By default, the packing step is set to do a full rebuild. You can turn that off in the project settings under packing, in the arrow section of Project.
  2. You’ll want some kind of changelist marking system to note promoted builds so that non-coders can sync.
  3. Don’t check in SLN/Proj files, and simply generate them yourself. You can actually do this in an automated script as all you are doing is calling UBT with a -projectfiles flag

The version selector thing is currently biting me in the ***, so I am thinking off just not bother with it and simply setting up the registry myself with a single cached GUID.