This tool makes it easy to use pre-built UE4 Engine binaries in an Unreal project.
It allows everyone on the team to fetch the appropriate version of UE4 by running a single command.
The UE4 builds can be stored either in local storage or in a Google Cloud Storage bucket.
This wrapper helps users with authentication if files are kept in Google Cloud Storage. They can either use a pre-shared service account, or they can authenticate using their personal Google accounts.
longtail is the C library that does the heavy lifting.
golongtail is a CLI utility that wraps longtail, provides a good commandline experience, and provides GCS up/download capabilities.
LongtailLib is a C# wrapper library for longtail.
clear-auth
removes any local credentials, if present.create-user-auth
initiates authentication flow for end-user behaviour.upload-package
uploads a package to Longtail storage.download-package
downloads a package from Longtail storage. Note that only differences will be downloaded.update-local-ue4-version
updates the contents of a local UE4 installation folder. The desired version is specified inDesiredUE4Version.json
and the currently-installed version is stored inInstalledUE4Version.json
. If those versions match, the tool will assume that the downloaded files are intact, and will not re-download. If the versions do not match, the tool will scan the local installation and download any files necessary.
- Create a project in Google Cloud.
- Configure an OAuth consent screen of Internal type. Change no settings, use default scopes etc.
- Create an OAuth 2.0 Client ID for Desktop.
- Create a Cloud Storage bucket.
- Grant users in your organization access to the bucket.
- If you want to use a Service Account, then download JSON credentials and put them into a file called
default-application-credentials.json
next toFetchPrebuiltUE4
. - Otherwise, configure FetchPrebuiltUE4 to use a regular user account:
FetchPrebuiltUE4 create-user-auth
and follow instructions. You will be prompted to authenticate via a Google account.
- Build UE4, for example by using BuildGraph:
Engine\Build\BatchFiles\RunUAT.bat BuildGraph -Script="Engine/Build/InstalledEngineBuild.xml" -Target="Make Installed Build Win64" -set:HostPlatformOnly=true -set:WithServer=true -set:WithDDC=false -set:VS2019=true
- Upload UE4 build to storage,
FetchPrebuiltUE4 upload-package --folder <UE4 engine folder> --package <version identification of your UE4 build>
. - Create a
DesiredUE4Version.json
file next toFetchPrebuiltUE4
, with the version identification of your UE4 build.
- Add
FetchPrebuiltUE4
to source control. - Create a
DesiredUE4Version.json
file next toFetchPrebuiltUE4
, with the version identification of your UE4 build. - Add
application-default-credentials.json
andInstalledUE4Version.json
to the ignore list within the source control system. - Add a
FetchPrebuiltUE4.config.json
file. Point it to the folder where the game project expects the UE4 engine to reside. - Validate all the configuration by doing
FetchPrebuiltUE4 update-local-ue4-version
twice. The first time, UE4 will be downloaded; the second time, the tool will exit early saying that the UE4 version already is installed.
All configuration is now complete.
Anyone on the team who wants to "get latest" for the UE4 version needs to execute this command: FetchPrebuiltUE4 update-local-ue4-version
. That's all!
This tool's license is available in LICENSE.txt. See longtail and golongtail for licenses of the software it depends on.
Thanks to Frank Olbricht, Dan Engelbrecht and Embark Studios for creating high quality open-source software!