December 1, 2022

How to Use UnrealGameSync with Perforce Helix Core

Game Development
Version Control

To aid in the development of Unreal Engine 4 and Unreal Engine 5, Epic developed UnrealGameSync (UGS) to interact with Perforce Helix Core. While UnrealGameSync has many features in addition to P4V, the Helix Visual Client, the primary use is to distribute internal engine and project builds. Here, we explain what is UnrealGameSync, its benefits, and how to install and set it up.

Follow along or jump ahead to the section that interests you the most.

➡️ Free Game Dev Software

What Is UnrealGameSync?

UnrealGameSync (UGS) is a developer tool that enables them to sync their workspace with an Unreal Project stream. It provides a graphical front-end to sync UE4/UE5 projects from Perforce Helix Core.

What Is UnrealGameSync Used For?

UnrealGameSync promotes code and content integration in a collaborative development environment by enabling developers to work on the same project as it is updated.

Once UGS is installed, you can easily bootstrap and iterate on Unreal Engine projects without the overhead that typically comes with using sync tools.

By using UnrealGameSync, you can:

  • Sync project files.
  • Resolve merge conflicts.
  • Sync editor binaries.
  • Update version files.
  • Generate project files.
  • Build UE4/UE5.
  • Run Unreal Project.

▶️ Related Resource: Learn how to upgrade to UE5

UnrealGameSync Benefits

There are several benefits of using UGS, which include:

  • The ability to sync to a changelist as soon as it is submitted.
  • Adding comments to each change, flagging builds as good or bad.
  • Providing notifications on fixes currently being made to a broken build.
  • Safely making content changes from local builds without submitting unversioned assets.
  • Having access to a compressed Editor build of the project if you do not have access to Visual Studio.

How to Setup and Install UnrealGameSync

Here is how to setup and install UGS.

1. Download and Install Wix

After installation, you will be prompted for additional dependency installations in Visual Studio. When running the solution file for the first time, allow these dependencies to be updated and installed so that further project builds can proceed.

[Note: It is important that you use the appropriate Visual Studio version.]

UnrealGameSync Tutorial

2. Download Unreal Engine Source

To have access to these files you will need to link your Epic account with your Github account. Or, if you are a licensee, from Epic's public Licensee Helix Core server.

3. Add the Unreal Engine Source Files to a New Mainline Stream

Set this workspace to AllWrite to avoid build issues.

[Note: If you are on Windows, be sure that your workspace root path is either under 50 characters or that your long file path lengths have been enabled in your registry.]

4. Run Setup.bat to Install Dependencies.

[Note: Time it takes to install the Visual Studio dependencies may vary depending on whether Unreal Engine or UnrealGameSync has been previously built on the machine.]

5. Run GenerateProjectFiles.bat

6. Open \Engine\Source\Programs\UnrealGameSync\UnrealGameSync.sln

You should receive a prompt to install extra extensions in VS Code (ASP.NET).

Once the installation of the extra extensions is complete, run the build of UnrealGameSync: Release – Any CPU – UnrealGameSync. This will create a build in:

\Engine\Source\Programs\UnrealGameSync\bin\Release\netcoreapp3.1

Within...

\Engine\Source\Programs\UnrealGameSync\Installer

You can run Build.bat to create the installers for UGS. This will create a msi installer that you can install locally within a...

\Engine\Source\Programs\UnrealGameSync\Installer\bin\Release

7. p4ignore and Typemaps

Your p4ignore can follow the same format as standard Unreal projects.

In addition, your p4 typemap should look as follows (please customize //depot to //<name of your stream depot>, e.g. //UE5:
 

Typemap:

binary+S2w //depot/....exe
binary+S2w //depot/....dll
binary+S2w //depot/....lib
binary+S2w //depot/....app
binary+S2w //depot/....dylib
binary+S2w //depot/....stub
binary+S2w //depot/....ipa
binary //depot/....bmp
text //depot/....ini
text //depot/....config
text //depot/....cpp
text //depot/....h
text //depot/....c
text //depot/....cs
text //depot/....m
text //depot/....mm
text //depot/....py
binary+l //depot/....uasset
binary+l //depot/....umap
binary+l //depot/....upk
binary+l //depot/....udk

You can use the p4 typemap -i < “filename.txt” command to set the typemap for your client.

How to Use UGS Unreal

When you run UGS after the installer finishes, it will first ask you defaults for:

  • Server
  • Username
  • Password
UnrealGameSync How-to

Then, UGS will follow up by asking for the location of the Unreal project file that you will be working with.

UGS Tutorial

After answering, you will see the main game sync UI that will list out all the associated Changelists.

UGS How-To

If the engine has not been built, then UGS will look to sync the prebuilt files that are checked into the repository. Typically, UGS will use the last good build. However, you can insist on syncing to a specific change list if need be. If you do and the engine has not been built to match the source yet, UGS will attempt to build the engine from the source on its own before launching the Editor, so long as the prerequisites are available.

However, to get the most out of your UGS setup, the best practice is to store the finished builds as well. If you check “Use Unstable Build”, it will look for a folder inside that is called “Unstable”. Otherwise, it will look for one called “Release”.

[Note: If you are an artist or designer, you will want to leave the “Use Unstable Builds” unchecked. However, if you are a developer and working through an issue, you may want to check “Use Unstable Builds” to identify and fix the issue.]

Now that you have your build stored in your depot, you will now be able to quickly select the change list number that you would like to sync your build to.

Specific change lists can be marked as Good  if all is running well and you would like users to have access to this associated build. Or, Bad  if there is a breaking bug in that specific build

When users hit Sync Now, they will receive the highest build marked Good and then will be able to launch various Editors from the top panel.

Get Started: UnrealGameSync

Get started on UnrealGameSync with Helix Core today. Helix Core is considered the industry standard for version control in gaming and is trusted by 19/20 of the top AAA studios. It is free to use for up to five users.

➡️ get helix core for Free