Pixel Streaming allows users to interact with Unreal Engine apps through the web browser. No need to install anything on desktop or mobile. Just send a web link to someone, and they can access the app. Here is an example I prepared for Architectural Visualization. The pixel streaming server is running on AWS:

Advantages and Disadvantages of Pixel Streaming

Advantages:

  • Accessibility. No need to download and install an app. Just send a web link, and a user can interact with the app. Even low-end devices can interact with graphics intensive apps.
  • Compatibility. Apps can be accessible to multiple platforms without the need to make separate builds for each.
  • Scalability. On managed cloud platforms such as AWS, you can configure pixel streaming instances to open and shutdown according to the user demand.

Disadvantages:

  • Latency. Some apps that require quick interactions such as competitive games are not suitable for pixel streaming.
  • Network Bandwidth. You need a reliable connection to transmit high-quality graphics data across.
  • Costs. In my example, running a g4dn instance on AWS Asia Pacific region costs $0.92 (₱54.00) or more per hour. Having a large number of users interacting with separate pixel streaming instances can be very expensive. Might be best to find alternatives to AWS.

Industries that involve 3D visualization and simulation can take advantage of pixel streaming. My example in the video showcases ArchViz. You can also use this for product visualization, interior design, automotive customization, client presentations, etc.

Below are references to Pixel Stream Unreal Engine 5.2 on AWS (Windows) by Eagle 3D Streaming. For Linux, check out this Ubuntu guide from the Amazon Game Tech Team.

Choosing an AWS EC2 Instance Type

The recommended instances are G4 and G5 under Accelerated Computing. G4 instances which are optimized for machine learning and graphics-intensive workloads. G4dn uses NVIDIA T4 GPUs while G4ad uses AMD Radeon Pro V520 GPUs. On the other hand, G5 instances are a tier higher than G4. They use NVIDIA A10G Tensor Core GPUs and can deliver up to 3x better performance than G4.

It is recommended to use G4dn for Unreal Engine Pixel Streaming because:

  • It strikes the balance between performance and cost
  • NVIDIA GPUs have optimized support for features like Raytracing, Nanite, and Lumen.
  • Better availability than G5 in certain regions of the world.

RegionOSInstance nameOn-Demand
hourly rate
US East (Ohio)Windowsg4dn.xlarge$0.71
US East (Ohio)Windowsg4dn.2xlarge$1.12
US East (Ohio)Linuxg4dn.xlarge$0.526
US East (Ohio)Linuxg4dn.2xlarge$0.752
Asia Pacific (Singapore)Windowsg4dn.xlarge$0.92
Asia Pacific (Singapore)Windowsg4dn.2xlarge$1.42
Asia Pacific (Singapore)Linuxg4dn.xlargeNot available
Asia Pacific (Singapore)Linuxg4dn.2xlargeNot available

On-Demand Pricing here. Using Linux over Windows reduces costs.

Installing NVIDIA drivers

Documentation link. Two options: GRID drivers or NVIDIA gaming drivers. Let’s use the GRID drivers.

Download the drivers and the NVIDIA GRID Cloud End User License Agreement from Amazon S3 to your desktop using the following PowerShell commands:

$Bucket = "ec2-windows-nvidia-drivers"
$KeyPrefix = "latest"
$LocalPath = "$home\Desktop\NVIDIA"
$Objects = Get-S3Object -BucketName $Bucket -KeyPrefix $KeyPrefix -Region us-east-1
foreach ($Object in $Objects) {
$LocalFileName = $Object.Key
if ($LocalFileName -ne '' -and $Object.Size -ne 0) {
    $LocalFilePath = Join-Path $LocalPath $LocalFileName
    Copy-S3Object -BucketName $Bucket -Key $Object.Key -LocalFile $LocalFilePath -Region us-east-1
}
}

Add a new profile

In the Using AWS Credentials docs, go to Managing Profiles to add a new profile:

Set-AWSCredential `
                 -AccessKey AKIA0123456787EXAMPLE `
                 -SecretKey wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY `
                 -StoreAs MyNewProfile

Running the Pixel Stream

  1. Add TCP and UDP port Inbound Rules in Windows Defender Firewall with Advanced Security.
  2. Run get_ps_servers.bat in Samples > PixelStreaming > WebServers
  3. Run Start_WithTURN_SignallingServer with PowerShell in Samples > PixelStreaming > WebServers > SignallingWebServer > platform_scripts > cmd
  4. Run the Unreal Engine .exe with arguments -PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOffScreen.

Further reading

  • Deploy Unreal Engines Pixel Streaming at scale on AWS (2023) by Jishnu Dasgupta and Aditi Bhargava [link]

Send me a message.


Recent posts: