Best way to package a project for updates?

Hello,

My team and I are working on a project which will receive frequent patches and updates.

I would like to know the best way to package the project - so that we can distribute updates without forcing users to download the entire project again.

Should “Use Pak File” be disabled, so that we can simply distribute newly added uassets?

If that is the case, can we simply update the program by packing the project and then sending any new/updated files (and presumably the executable)?

Or if this method is wrong or a bad idea, what is a better method / is making patches even easily possible at this time?

Thanks for your time.

I also need to know if later updating the version of the Unreal Engine used on the project would cause significant conflicts.

Hi,

A pak file is a container for uasset / umap files.
The patching system which is in development is built on creating a new pak file containing just changed assets.
So I don’t think disabling Use Pak File will give much benefit.

Upgrading engine versions is tricky when using a serialization system. If core structures / classes change it can cause many differences in the cooked data and the patch will become large.

Depending on the scale, complexity, and also the target platforms, if you are looking at long term maintenance it might be best to split the game up into multiple chunks which can be patched / downloaded individually. For this you need to host your pak files on a httpchunk downloader server.

Let me know if this answers all your questions.

Thanks for the response MrFred,

The patching system was slated for 4.8 correct? (At least that’s what I read when looking for answers to this question) Is there any public estimate for when that would become available? We were hoping to launch the project not too long from now - and if 4.8 isn’t more than a month or so away we could wait - but I doubt that’s the case. (even if 4.8 was out tomorrow, we’d still need time to upgrade, bug test, etc.)

How can you split the project into multiple chunks? I’m not aware of any method to break up the created pak files; some other topics on the aswerhub seem to indicate that at least loading multiple pak files is possible, but I can’t find any information on creating multiple pak files. Is this not possible without the aforementioned patching system?

Patching generation is in for 4.8. We are still working on platform specific support.

Splitting up the pak files is possible in 4.7, it is being worked on to make it more accessible.

Hi,

I’ll just expand a little on MrFred’s comment about the httpchunk downloader. The method to break up the created pak files is do-able in 4.7. There is an example of how to do it in the ShooterGame example game project. But it’s best described as a beta feature and will require some effort to get working - some parts aren’t exposed to the Editor and require using command line tools for example.

This splitting and the httpchunk downloader feature would allow you to split your game in to two parts. An initial part that is a really cutdown version of the game; this part can then update/patch the game before you begin the game for real. The update/patching bit is actually quite smart and knows to reuse files (or parts of files) already downloaded so even in a large project, if only a small amount of data has changed only those changed parts will be downloaded. But again, getting this working will require effort but if you want more details I can help - the system is improved in 4.8 so it may be best to wait.

I would absolutely like some additional details; if you have the time to provide some information, it would be extremely useful to us.

There’s nothing preventing us from getting the 4.7 version of the system working now, and then updated to the 4.8 version later. Despite the data overhead and code adjustments required for updating engine version, it’s always worth it to upgrade. We’re already definitely going to update to 4.8 in the future as we need access to the large world navigation updates, as we’re already taking the existing navmesh system in 4.7 to the limit.

Excellent. I’m looking forward to seeing the 4.8 patching system. I have some minor questions about packaging and pak files, but most aren’t related to this question.

However, is there anything we should try to keep in mind in order to have the best compatibility with the 4.8 patching system once it is complete?

how to splitting up pak files ?

Now that 4.8 is out, is it possible to have some extra information on how to go about creating the split pak files with command line? The chunking option in the project settings mentions you can do something in-editor to choose which assets are in which chunk, but I’ve not been able to find any such control.

FYI - We now have release and patching documentation:

Cheers

1 Like