Azure Marketplace - Unreal Engine Pixel Streaming

It would be very helpful to have a zip project with custom structure ready to tests to take as a reference.

Thank you.

Is there a confiugration or possibility with the marketplace app without customizing the webservers to have it work within an Internal network ONLY, and not leverage public IPs, Internet accessible webservers??

I am also getting the same All Cirrus servers are in use (EastUS). No way to find any more information on this ā€œerrorā€. Thanks for any help in identifying the problem.

Well I got it to work, the cirrus error eventually went away, but the performance isā€¦ omg there is no word, maybe 5 FPS and 300 ms latency (at least). Itā€™s unworkable, so Iā€™ve profiled the VM, and it has warnings of high CPU usage :


However those processes arenā€™t related to the actual app, which pulls only 5% CPU usage on my local reference rig.

Using entirely default settings and a 5.2 template project, I successfully get two UE apps spun up. My first guess is that either you donā€™t have the proper quota for the VMs, or Azure could not fulfill the quota. If you chose to use ā€œSpot Instancesā€ this could also happen.

I would go into the EastUS region for your deployment and check inside the VMSS to see if it has as many instances as youā€™d expect. If it has running instances, change the network security group to allow RDP connections and then RDP into any running instances to make sure the app is running. That should bring you to the step that @Ahuaeyn1 was at.

If your app is not running, looks for the logs in C:/unreal_1 to see if it crashed for any reason. If performance is ~5 FPS, the first thing I would check is the GPU memory on the Performance tab of Task Manager. If the GPU memory is more than 75% utilized, you might be running into memory paging. The only solution for that is to reduce the amount of content being rendered. There are tools to profile this in the Editor. The app is never expected to use very much of the CPU because it can only use one core at a time for the Draw thread, which is again a problem linked to reducing the amount of content.

You might also try launching with a different VM size like the NCas_T4, which has a better GPU, but less availability.

There is no way to configure this deployment to do that initially. Your best bet is to alter the network security groups after deployment to limit incoming traffic to the specific addresses and CIDR blocks within your organizationā€™s network.

Hi! Iā€™m having a really weird problem.
I added to my game a Login screen, but when you type a letter (or number, whatever), itā€™s type twice. Like ā€œhheellooā€ā€¦ if I test locally, works fineā€¦ the problem is on Azure onlyā€¦
Someone had a similar problem?
If I disabled Input Keyboard from settings, works fine the typing but the player donā€™t move laterā€¦
Everytime something new happens! :unamused: :dagger:

Is there a published support calendar? 4.27 deploys without issue so our concern is if we upgrade everything to 4.27 now, when will that version be out of support? We have many games and upgrading to Unreal Engine 5 would also be a major activity to upgrade.

Hi everyone,
Thereā€™s something Iā€™d like to ask you.
Do you hear any sound from your content when using this solution?

Following the official documentation,
I succeeded in deploying the UE5.1 package using scalable pixelstreaming on Azure Marketplace.
I received rendered frames but no audio content.
Are there any tricks or something to customize the optional argument of AudiorMixer?

P.S.
I updated the project file version to 5.2 and fixed this problem.
I used UE5.2_SignallingServerAzure.zip posted by eAsociety.

Hi, could you please tell me how to close the game process in Start_Azure_SignallingServer.ps1? I want to install some features from the script so as to set up a Python environment in each instance of VMSS.

@Stephen.Phillips I would appreciate it if you gave me any advice.

@Stephen.Phillips - I have an interesting find in my journey down the path of making the MM and UE4 server functioning over the Internal Network only and not the Public IP addresses. Without adjusting the Azure NSG, the connection over the Private routable IP Address is nearly 100% functional. The only change that would need to be made would be a Windows firewall rule to allow the UDP high ports.

  1. Is there a reason this rule ISNT needed for Public IP?
  2. Is there any reason we wouldnt build this rule? Any additional risk creating it?
  3. Could this rule be added to the marketplace app for when a custom VNET is chosen?
    3.a If not, what would be the best way to add this rule to all VMs created from the VMSS? Updating one of the install or launch scripts to include this rule from PowerShell?

Hello,
we tried to deploy a basic app for testing this, but when opening the trafficmgr URL in the browser it just says the site is unreachable. I followed the documentation correctly (I hope) and we increased the Quote for this type of VM in this region.
Any advice on how to debug this?

Best,

Hi,

I have successfully deployed the Unreal Pixel Streaming in Azure when I use your template and check the box for the customized Matchmaker and Signalling code.

However, I want to deploy using a custom image for the Signalling Server and that isnā€™t working. When I initially created my VM, I put in our company name and other information as the publisher and got an error on deployment of the Virtual Machine Scale Set about an invalid publisher. The error was ā€œCreating a virtual machine from a non-Marketplace image does not need plan information. Please remove the Plan information from VM ā€¦ā€. So, I create another VM image without plan information but got an error on that also.

Do you have any information on resolving that issue and/or using a customized Signalling Server image in general? Or, should be using the AZ VM Image Builder to create my image (I found this article Azure VM Image Builder overview - Azure Virtual Machines | Microsoft Learn) and if so, do you have any information on using that? How would I require it to include the NVDIA graphics driver for example?

In addition, we want the virtual machines to access shared file storage because we have large point cloud files that need to be accessed by our Unreal game. We have done this thru symbolic links when we were running single servers with all of the pieces on each server but now with the distributed servers we want to store the files in one place and allow each VM which is spun up to access them. Do you have recommendations on that? I have found this article https://azure.microsoft.com/en-us/products/storage/files.

Pleaset let me know and thanks for your help!
Jane

Hi Aaron.Sternberg

We have are trying to deploy unreal 5.2 application in Azure using Azure pixel streaming
But we are facing with the issue . We have selected 3 streamers form the template . we do see 3 signaling servers being deployed in the Gpu server and the 3 node service are running the back ground. We validated the match making server and node service of the MM is working in the backgound . When we connect the app using the traffic manger url we see All Cirrus servers are in use. Retrying inā€¦ error .

Upon debugging we find that the streams not connected by default . So if manually run the app inside the Signaling server like ā€œ.exe -PixelStreamingIP=localhost -PixelStreamingPort=8888 -RenderOffScreenā€
with 3 different port we are able to connect from the traffic manger url and app is connected with the available streams

So how to make streams connect by the default on the VM start up

More over we see OnClientDisconnected.psi script which closes the app on the client is disconnected . But when the client connects via traffic manger URL how to app will be up . Are we missing any onClientConnected script to make the app again for the streaming via SS server ?

Note : We have renamed our app name from the startVMSS.psi from the PixelStreamingDemo

Remote into the UE4 server and check the scheduled task that should launch the exe. One of the arguments should be the game name. It is probably not finding your game exe as as the first one in your folder. my workaround is to put a copy of the game exe in a folder called ā€˜aā€™. See Stephen Phillips message in this forum from June 9th that explains about the detection of the .exe

Thank you for the response. It was exactly the same issue as you mentioned.

One More Question . we are trying experimental VR Pixel Streaming feature as mentioned in the docs .it works fine in the local server . We want to try the same via Azure Pixel Streaming .Will it work ? any pointer for the same would be great if you can share insights .

Hello everyone. Unfortunately we no longer have the resources to support and maintain this Azure Marketplace product. Many thanks to everyone who used it, reported bugs, and offered support to us and other users.

We just published the full source code on Github under an MIT license. You are free to take whatever you can from it to support your current deployments or recreate new systems of your own.

2 Likes