Differences between build configurations

I’m trying to determine which build configurations are needed to be built in order to supply my artists with a workspace that doesn’t require source code. I’m looking for the definitive answers to a bunch of questions (some may appear to repeat, but are helpful in context) because I’m getting confused by the documentation which seems to want to describe some abstract concepts instead of where/when you should be using these various configurations.

So what are the definitive difference between the various build configurations for development: Development [empty], Development Editor, Development Client, and Development Server? And when should they be used?

In the documentation, it states that…

[empty] builds a stand-alone executable, but requires cooked content - when is this ever needed to be built within VS? Assuming my artists don’t have the source, do I need to provide the built stand-alone executable to allow my artists to launch or package? Is the editor able to package without the source code on the artists’ computers?

Editor builds are needed for opening a project in Unreal Editor - is this sufficient for normal editor play view/standalone? What about launch or package?

Client/Server is never specifically addressed, but in it’s place it mentions Uncooked configurations. Uncooked builds are “equivalent to Play in > New Window at Default Player Start in the editor”. Does this mean that they are required for the artists to play from within the Editor?

What are the minimum build configurations and projects needed to be built to supply my artists with non-source workspaces? Is my project only needed to be built? Or should I be building other projects within the solution? If so which?

I’m referencing…

https://docs.unrealengine.com/latest/INT/Programming/Development/CompilingProjects/index.html
https://docs.unrealengine.com/latest/INT/Programming/Development/BuildingUnrealEngine/index.html

Both of these links appear to have contradictory information especially when referring to Target Platforms

I’ve seen other people ask similar questions - hoping we can create the definitive FAQ with this post. If you only know the answer to just one of my questions, please respond and add to this thread.

Build have 2 parts which you can combine, there also some hiddden options you can set in build script

First part:

  • Development - build that is used for
    devlopment, you can debug with it but
    there might be some memory reading
    variable reading problems on debug
  • Debug - Build with a lot better debug
    symbols setup, you should use that if
    you plan to debug C++ code
  • DebugGame - not sure what that is but
    probably other variant of debug build
  • Shipping - Build ready for
    distribution without any development
    stuff
  • Test - Test build which has extra
    utilities for testing

2nd part:

  • nothing - With client and server code, without editor
  • Editor - With everything
  • Client - Without editor and server
    code, client only, with this build
    user wont able to set up server
  • Server - Without editor and client,
    in other words dedicated server
    build, but note that other builds
    (except “Client” ofcorse) can
    function as dedicated server too

For artist you should use what launcher build is, which is “Development Editor” or even “Debug Editor” if you want.

Also you can make them use laucher build if you not modifying engine, you can set up VS in there computers (via TeamViewer for example) and teach them how to pull from repository (using simplified tool like TortoiseGit) and how compile the code, i teached artists i work with myself and they don’t have any issue. You can even make a bat that compiles the code. Executing this:

X:\UE4\UnrealEngine\Engine\Build\BatchFiles\Build.bat ProjectName Win64 Development "%CD%\ProjectName.uproject" -rocket

Will compile the code without turning on VS, i think UE4 also detects changes of code and ask to recompile (but not always for some reason

3 Likes

Thanks for your response! Debug builds make sure that both the engine and game code are built with debug enabled. DebugGame builds make sure that only the game code is built with debug enabled and the engine code is built with debug disabled.

I’ve been able to get my artists and producer a build that doesn’t require that they build the code, but that only appears to consistently work if I build all 4 configurations (empty, Editor, Client, Server). I’ve been try to figure out which configurations are actually needed (I assumed Editor only would work but that was insufficient), but have trouble getting reliable results as older builds get overlapped which have been affecting the accuracy of my tests. I was hoping others (Unreal Staff?) would simply already know what is most appropriate.

Also, do you (or anyone else) know if I need to build all the tools or just my project (and dependencies)? Or is UE4 sufficient? Or is both UE4 and my project required?

Right now I’m building all projects and the 4 configurations just to update the binaries on source control so that my artists and producer can run the editor and launch/package without issue.

You need engine build to compile just game of same build

Looking at the configuration manager in VS, DebugGame builds both game and engine with debug, whereas Debug builds everything (including tools such as Lightmass and Pak) with debug.

shouldn’t only one [development editor] be enought for artists? why need you build all variants?

Realize this is an old thread, but thought it worth mentioning that source control typically isnt great with binaries, a file share or repository would be a better option

Perhaps this didn’t exist at the time of this writing, but for future viewers this seems to be included in the docs now: Build Configurations Reference | Unreal Engine Documentation

1 Like

Just want to add for strangers who will read this post about difference about Debug and DebugGame

Debug is debugging even Engine`s code like TArray, AActor or even you custom code in engine if you modify it. So if you need to check some data inside this code you should use Debug configuration.

DebugGame is faster and allow you to debug only your project`s code, because there is no need to trace everything what happens inside editor.