Hello, we have a game on Steam which is under development right now. But we have a problem with updating our game. We made Unreal’s official patching documentation step by step but when we upload it to Steam, the game’s size increased by .pak file size. We just made few changes and we expect fewer size changes on Steam. This is an indie game and we can’t let users download 1.5 GB for an update.
I read all forum posts about Steam update and everyone saying “Steam is detecting changes and let clients download just the changes.” But it doesn’t work in practice. Has anyone any ideas about this subject?
We’re uploading through Steam Pipeline. I have no idea what you say.
Are you not using the Steam patching system?
I upload builds via SteamPipe which does the diffing locally I think. Maybe something weird like pak file encryption is messing with it?
Ah, pak file encryption will probably do it.
There’s nothing for the diff process to latch onto, I think.
You might make a small change in the pak, but that will mean the encrypted file is totally changed.
When you upload, it compares this version with your last one, and only keeps the difference. The users get to download the difference.
The problem is, because your PAK is encrypted, each version is totally different. So the difference is almost as big as the whole thing.
It’s an old post but I’ve managed it long time ago. Forgot to write here, sorry for who came here for a solution.
You just need to delete Binaries/Build/Intermediate/Saved folders before package your game. And make sure you’ve checked Full Rebuild in Package section. Steampipe will determine diff. You can check Update Size before publishing your build.
We just had the same issue and found the solution in the steampipe documentation!
https://partner.steamgames.com/doc/sdk/uploading
If “compressed cooked packages” is set to false, the steampipe does a perfect job on generating very small patch sizes.
However if “compressed cooked packages” is set to true, this will lead to unneccesary large patch sizes.
The solution is to find the “WinPlatform.Automation.cs” file (\Engine\Source\Programs\AutomationTool\Win) in your engine, locate the following line of code
string PakParams = " -patchpaddingalign=2048";
and replace it by
string PakParams = " -patchpaddingalign=1048576 -blocksize=1048576";
This worked perfectly in our case. We are back to perfectly small patch sizes, while compressed cooked packages is true.