Software/ThirdParty/Guides/Epic/UnrealTournament4

From RCS Wiki
Revision as of 05:04, 23 August 2018 by TimothyPearson (talk | contribs)
Jump to navigation Jump to search

Unreal Tournament 4 for OpenPOWER

Introduction

Unfortunately Epic Games (Epic) has largely stopped work on Unreal Tournament 4 to focus on FortNite, a wholly commercial game with no source code available to anyone outside of Epic. As a result, the last official Unreal Tournament 4 builds date from 2017, on Engine 4.15. Engine 4.15 does not work correctly on Linux with modern GPUs, it will appear to compile and run but only shows a black screen due to what is very likely some internal shader problems.

Fortunately, the community has stepped up and started upgrading the game to the latest 4.20 engine. This breaks online matchfinding and related global server functionality -- because Epic apparently has no interest in upgrading the official builds, the global server is stuck on Engine 4.15 which is not compatible with Engine 4.20 clients. The single player and LAN server functionality remains intact, however.

System Requirements

At least 32GB of RAM is essential, with 128GB or more recommended. Asset cook and linking / debug symbol extraction consume a tremendous amount of RAM; systems with 32GB must also have a swapfile configured to handle peak memory demand.

Getting Started

First, obtain a working build of the Unreal Engine using the instructions provided here:

Software/ThirdParty/Guides/Epic/UnrealEngine

Once you are able to successfully launch the editor (UE4Editor) from your Engine source tree, you can proceed.

Downloading Source

Grab the ue4_20_1_update_ppc64le branch of the Engine 4.20 update fork. This comes with the Engine subdirectory set up with a symlink to ../UnrealEngine/Engine; place the downloaded UT4 sources alongside the previously built UnrealEngine source tree to activate the symbolic link.

git clone --single-branch -b ue4_20_1_update_ppc64le https://github.com/kb9vqf/UnrealTournament.git

Building

Set up environment

export TARGET_ARCH=powerpc64le-unknown-linux-gnu
export UE4_ROOT_DIR=$PWD

Build!

make CrashReportClient ShaderCompileWorker UnrealPak UnrealLightmass UnrealFrontend UE4Game UE4Editor UnrealTournament UnrealTournamentEditor UnrealTournamentServer

Test Editor (optional)

At this point the editor can be launched:

UE4Editor UnrealTournament

Initial shader compilation will take a long time, grab a cup of coffee, etc. 44-core Talos_II systems with 256GB+ of RAM will cut this down to more tolerable levels.

Package Game

NOTE: Epic's EULA prohibits redistribution of the built binaries; they reserve that right for themselves. With the development apparently stalled that does make playing the game significantly harder; we recommend you contact Epic directly and mention that you want to see UT4 on UE 4.20 or higher and built for POWER, even if they just allow a community build to be released. We have no ability to ease this process, unfortunately.

To build a full package (e.g. if you're going to deploy to a smaller system or set up a LAN party):

./Engine/Build/BatchFiles/RunUAT.sh BuildCookRun -nop4 -project=UnrealTournament/UnrealTournament.uproject -cook -compressed -allmaps -stage -archive -archivedirectory=/opt/UnrealTournament -package -LinuxNoEditor -clientconfig=Shipping -ue4exe=UE4Editor -clean -pak -targetplatform=Linux -utf8output