Environment Setup:

Google Cloud Platform (GCP)

Configure a development or production environment running on GCP.

Contents

Configure a Compute Engine VM instance as a Windows container host

Selecting a machine type

Any Compute Engine machine type with a sufficient amount of memory can be used to run a Windows container host. For building and running Unreal Engine containers a standard machine type with a minimum of 8GB of memory is recommended.

Selecting a virtual machine image

Google provides preconfigured VM images for Windows Server that come with Docker EE preinstalled and are named with the suffix “for Containers”:

After launching an instance using an image that includes Docker EE it is recommended that you update Docker by following the official update instructions.

Configuring the instance

Once you have launched an instance and ensured your Docker EE installation is up-to-date, configure the Docker daemon by following the instructions in the Configuring Docker for building and running Windows containers section of the Windows Server environment configuration page.

Configure a Compute Engine VM instance as a Linux container host

Configure a CPU-only instance

Selecting a machine type

Any Compute Engine machine type with a sufficient amount of memory can be used to run a Linux container host without NVIDIA Docker support. For building and running Unreal Engine containers a standard machine type with a minimum of 8GB of memory is recommended.

Selecting a virtual machine image

Google does not currently provide preconfigured VM images for Linux with Docker CE preinstalled, so you will need to instead select a base image for one of Docker’s supported Linux distributions:

Configuring the instance

Once you have launched an instance running a supported Linux distribution then you will need to install Docker CE by following the instructions in the Installing and configuring Docker section of the Linux environment configuration page.

Configure a GPU-enabled instance with NVIDIA Docker

Selecting a machine type

Compute Engine allows you to add GPU devices to any machine type. For building and running Unreal Engine containers a standard machine type with a minimum of 8GB of memory is recommended. It is worth noting that GPUs are not available in all Compute Engine regions and zones.

Selecting a virtual machine image

As discussed in the Configure a CPU-only instance section above, you will need to select a VM image for one of Docker’s supported Linux distributions.

Installing the NVIDIA drivers

If the VM image you selected for your instance does not include the appropriate NVIDIA GPU drivers then you will need to install or update the drivers manually.

Installing Docker and NVIDIA Docker

Once you have ensured your instance is running the appropriate NVIDIA GPU drivers then you will need to install Docker CE and the NVIDIA Docker runtime by following the instructions provided by the Linux environment configuration page.

Optional: configuring PulseAudio support

If you want to enable audio support for Unreal Engine containers running on the instance then you will need to install the PulseAudio server from the system package repositories for your chosen Linux distribution. For example, under Debian or Ubuntu you would use the following command:

sudo apt-get install pulseaudio

When running inside a virtual machine that does not have access to any physical audio devices, the PulseAudio server will automatically create a dummy output audio device when it starts. By default, the dummy output device will use different audio parameters to those used by the Unreal Engine under Linux, which may lead to audio distortion issues. To prevent issues when using the dummy device with the Unreal Engine, you will need to add the following lines to the /etc/pulse/daemon.conf configuration file to override the default audio parameters to match those used by the Unreal Engine:

default-sample-format = float32le
default-sample-rate = 48000
default-sample-channels = 6

Once the PulseAudio server is installed and correctly configured, you can enable audio support inside Unreal Engine containers by bind-mounting the PulseAudio socket from the host system. See the cloud rendering page for further details on enabling audio support.