đŠš[Beta] Patching
What is patching?
HyperPlay supports differential updates where users only have to download new content when a game is updated.
How do I join the beta test?
As a developer, you can request to join in the beta test of this feature by reaching out to the team directly.
For developers participating in the program, you can continue to publish your builds the same way you have already been publishing them, and HyperPlay will handle the rest.
Best Practices
There are some general guidelines you can follow to optimize your patch size.
In particular for Unreal Engine games:
Avoid switching the build you submit back and forth between build targets (i.e. Production, Testing, Debug, etc.)
Group assets into separate PAK files
Here is the official guide: https://dev.epicgames.com/documentation/de-de/unreal-engine/cooking-content-and-creating-chunks-in-unreal-engine
An effective strategy can be to group assets by level or area into their own pak files. New content can be added to new pak files instead of modifying existing ones as well.
Estimating Patch Size
To get an estimate of the patch size, you will need to first get the project_meta_id
for two separate releases.
Go to https://developers.hyperplay.xyz/api/v1/listings in your browser and find your game
Find the channel you are releasing on.
Copy
channels[i].release_meta.release_id
to your records asoldReleaseMetaId
Perform a new release on the channel
Copy
channels[i].release_meta.release_id
to your records asnewReleaseMetaId
Make a note of the platform id from
channels[i].release_meta.platforms
to pass in the following urlGo to
https://developers.hyperplay.xyz/api/v1/patches/compare?old_release_id=<paste_oldReleasemetaId_here>&platform_name=<platform_name_here>&new_release_id=<paste_newReleasemetaId_here>
Here is a sample response:
The value for differentBlockPercentage
is the amount of new data that was downloaded for the patch divided by the size of the new release on disk.
As a developer, you can use this tool to experiment with your build pipeline on private (i.e. gated) channels to optimize for patch size.
Last updated