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.