Getting Started
Preparing your Unreal Engine project
Contents
Scalable Pixel Streaming is compatible with the Pixel Streaming plugin shipped with Unreal Engine 4.27 onwards. Older versions of UE are not compatible with SPS.
Supported UE versions
We follow the same convention for supporting UE versions as the official Pixel Streaming Infrastructure. We ensure that SPS is compatible with the three latest major releases of Unreal Engine and their respective minor releases. Note you are still able to deploy UE projects created using older versions of the Engine with SPS, however, we will not be supporting these versions with bug fixes, or testing them for compatibility during our release schedule. Current UE schedule:
Branch | Status | Definition |
---|---|---|
UE5.4 | Current | Latest major version of UE. We are supporting this version with bug fixes. |
UE5.3 | Supported | We are supporting this version. |
UE5.2 | End of life | We are currently supporting this version, but only until the next major UE version releases. |
UE5.1 | Unsupported | We are not supporting this version. |
UE5.0 | Unsupported | We are not supporting this version. |
UE4.27 | Unsupported | We are not supporting this version. |
Enable the Pixel Streaming plugin in your project
Refer to the official Unreal Engine documentation to learn more about the Pixel Streaming plugin.
- Open your UE project, navigate to the Edit > Plugins tab and search for the
Pixel Streaming
plugin. - Enable the Pixel Streaming plugin (not the Pixel Streaming Player), and click “Restart Now” to apply the changes.
Package your project
Tip: You can cross-compile projects for Linux from a Windows machine by installing and utilizing the cross-compile toolchain. This might be beneficial if you develop on a Windows machine, but your chosen cloud provider doesn’t support Windows containers.
Packaging for Linux
Follow the steps in the official UE documentation to package your project. When deploying a project to SPS for the first time, we suggest packaging in development mode, as it provides more verbose crash logs, which are useful for troubleshooting any teething issues that the project might have. Once the project is thoroughly tested and stable, re-package it in shipping mode for better performance and re-deploy.
Tip: You can enable logging in shipping mode by modifying the project target file. Note, however, that it is less verbose than development.
Your project is now ready to be containerized.
Packaging for Windows
Note that Windows containers are not supported on all cloud platforms (currently only supported on AWS).
1. Open your UE project, navigate to the Edit > Plugins tab and search for the Windows Movie Player
plugin.
2. Disable the plugin and restart the project if prompted. Note this is required as Windows Media Foundation is not present in the version of Windows Server Core used for our Windows containers.
3. For projects in Unreal 5.0 or newer, disable CEF
(Chromium Embedded Framework) and any CEF-based plugins if you use them (Note that none are enabled by default).
4. If your project is a blueprint project, you will need to convert it to a C++ project. To do this, navigate to Tools > New C++ Class > Leave type as None
> Proceed to Create
. Accept all prompts to restart the Editor, rebuild the project, and recompile assets. This should create the .target.cs
file required in the next step.
5. Locate the YourProjectName.target.cs
file in your project folder (note that this is not the YourProjectName**Editor**.target.cs
) and add the following code to the public class:
// This instructs UBT to build an additional executable with the CONSOLE subsystem
bBuildAdditionalConsoleApp = true;
// This enables log output in builds packaged in the Shipping configuration, which is handy
// if you don't want to package in the Development configuration just to see log output
bUseLoggingInShipping = true;
A modified file will look like this:
using UnrealBuildTool;
using System.Collections.Generic;
public class MyProjectTarget : TargetRules
{
public MyProjectTarget(TargetInfo Target) : base(Target)
{
Type = TargetType.Game;
DefaultBuildSettings = BuildSettingsVersion.V2;
ExtraModuleNames.AddRange( new string[] { "MyProject" } );
bBuildAdditionalConsoleApp = true;
bUseLoggingInShipping = true;
}
}
You can learn more about this requirement in this article: offscreen rendering in Windows containers.
5. Follow the steps in the official UE documentation to package your project. When deploying a project to SPS for the first time, we suggest packaging in development mode, as it provides more verbose crash logs, which are useful for troubleshooting any teething issues that the project might have. Once the project is thoroughly tested and stable, re-package it in shipping mode for better performance and re-deploy.
Tip: You can enable logging in shipping mode by modifying the project target file. Note, that it is less verbose than in development mode.
6. Your project is now ready to be containerized.