What is the correct way to stream .pak to a console target using zen sotrage server

I am attempting to work around issues with zen loader and loose file build streaming by instead attempting to stream paks but I am not seeing anything in the way of documentation for this other than the mention in the 5.6 release notes: https://portal.productboard.com/epicgames/1\-unreal\-engine\-public\-roadmap/c/2060\-zen\-server\-streaming\-to\-target\-platform\-beta\-.

This is what I figured out so far and did:

  • Added bEnablePakStreaming=True to DefaultGame.ini
  • Staged a staged paked build for PS5 and tested a full deployment of that build to a PS5 and it launched
  • Moved that staged build to it’s own location d:\pakstreamps5
  • Restaged for Zen using Project Launcher (Experimental) The command it generated looked something like this: -project=<my.uproject> -noP4 -clientconfig=Development -serverconfig=Development -nocompileeditor -unrealexe=<mypath>\UnrealEditor-Cmd.exe -utf8output -platform=PS5 -build -skipcook -skippak -ZenWorkspaceSharePath=“d:\pakstreamps5” -cookincremental -stage -deploy -cmdline=" -Messaging" -addcmdline="-SessionId=<generated> -SessionOwner=‘<me>’ -SessionName=‘PS5 Pak Stream’ -culture=en-US " -run
    • This command resulted in a restage and redeploy to the target pointing to zen but resulted in the uproject not being found on launch of the game binary

I debugged the issue by running the PS5 game executable from debugger with these args: -project=<my.uproject> -Messaging -ZenPak -ZenWorkspaceSharePath=“d:\pakstreamps5” -CrashForUAT -SessionOwner=<me> -SessionName=“PS5 Pak Stream” -culture=en-US which matched what had been generated by the project launcher.

The result was that I could see a call was made to http://<myip>:8558/ws to retrieve some “workspaces” that were then to be matched against the passed in ZenWorkspaceSharePath. The problem is this call returned a 200 response and some data but the data contained no workspaces. I’m not familiar with how to create a workspace or what should be creating that workspace in my local zen storage server. Is there something I have missed that should be doing that?

I confirmed the behavior with curl (curl -v http://localhost:8558/ws), I get a 200 response and some data in a proprietary format (application/x-ue-cb) and it appears to be the same as what I was seeing in the debugger.

Note that I confirmed all the same behavior on other target platforms I just chose PS5 for this example.

Hello there,

Zen Pak Streaming appears to be working for me on PS5, though my path is directly to root project folder. Is the folder structure replicated from Saved downwards such that the path “D:\pakstreamps5\Saved” exists?

Also out of curiosity, what issues are you encountering with Zen Streaming?

Best regards,

Chris

Thank you, it didn’t occur to me that the path for “ZenWorkspaceSharePath” is the project root dir (and can take “” to resolve automatically). I also found that I was missing “--workspaces-enabled” in “ExtraArgs” setting in the “[Zen.AutoLaunch]” config section. Once I resolved both issues the pak streaming appears to be working.

That being said I unexpectedly ran into the same issue I was seeing when using loose file zen streaming and since you asked about it I will add some info about what I am seeing on that here.

When we fully package and deploy our game on a console platform the game launches fine and loads into a level fine. When streaming with Zen server we get a dead hang that appears to be caused by shaders all waiting until a timeout is hit and the processing is stopped. This is what that output looks like on PS5 but we see similar on XSX. I have also tested this on a deployed loose file build (no zen streaming) and the hang appears to happen there as well (which is why I thought maybe using the zen pak streaming may work around the issue). Right now I am unsure if something is missing/incorrect on our end or really what the cause may be so any ideas from your side would be very helpful.

Sorry for the trouble, you can disregard my message about the hang. I believe I have found the issue with this (it is on our end) and bot pak and loose file streaming from zen look to be working for me now, thank you for the help.

No worries, that’s great news.

If you have any further questions, please feel free to ask. Otherwise, would you mind if I close this out for now?

Best regards,

Chris