Tutorial Guide

  • 1Develop Unpacked
  • 2Unreal for Non-Delta Patching
  • 3Avoid Giant Datatables
  • 4Blueprint Strategy
  • 5Texture and Audio Optimization
Step Visual

Develop Unpacked

Unreal Engine, by default wants to compress, encrypt and optimize asset containers. This is perfectly understandable and if you want to stick to this approach, you can, but just split your PAK file numbers down to more files with the Cooking and Chunking method.

By default, Unreal Engine packs everything up into 1 or 2 .PAK files. This is not a good flow to use with LaunchBoost.io as a small 5mb update could mean your users end up re-downloading the same 2GB file just for that 5mb update.

Instead, we recommend at the bare minimum, to do the Cooking and Chunking method above if you want to stick with this.

Go to Project Settings > Packaging and enable Generate Chunks and Use Pak Files.

However, we recommend for PC game development, to allow Unreal Editor to asset stream as much as possible, especially shaders, textures and audio (even level files).

To do this, open your Project in Unreal Editor and in Project Settings > Packaging uncheck Use Pak File.

Your assets are now exported as .uasset files which is much more convenient and efficient for LaunchBoost.io patching.

You shouldn’t need to worry about exposing your assets for two reasons.

1. Players of your game will always be able to access your game files and assets no matter what. Even if they are compressed and encrypted, sure it provides gateways but a determined user can always extract/use your assets.

2. You can always get the patch system to integrity check your game files before game launch with LaunchBoost. Any modifications to any files will be patched, unless otherwise directed in the Patch Builder. If you are worried about game integrity, we highly recommend you run the patch system instead of your game and get the patch system to launch your game as a post-requisite. This will ensure your game files on the user’s computer are checked for integrity and patched accordingly, if any files were deleted or modified.

Step Visual

Unreal for Non-Delta Patching

The Core Principle

With LaunchBoost:
If a file changes, the entire file is redownloaded.

So the goal is simple:
Reduce the blast radius of change.

That means:

    Smaller pak files
    Isolated volatile content
    Stable core data
    Externalized configuration

Go to Project Settings > Packaging and enable Use Pak File. Now Unreal will build multiple pak files instead of one giant monolith.

Where most Devs slip up is, a bad structure.

pakchunk0-Windows.pak

Changed one icon? Entire build invalid. Full patch.

Here is the correct structure example:

    pakchunk0 – Core Engine & Stable Assets
    pakchunk1 – Maps
    pakchunk2 – Audio
    pakchunk3 – UI & HUD
    pakchunk4 – Cosmetics / DLC
    pakchunk5 – Experimental / Beta Content

Now what happens is, if you make a UI tweak, only pakchunk3 updates. If you add some new audio only pakchunk2 updates etc.

A new patch build is now MBs instead of GBs.

Separating Volatile vs Stable Content

This is the single most important concept.

Stable Content

Rarely changes after release:

    Base skeletal meshes
    Core animations
    Master materials
    Environment art
    Core maps (after lighting locked)

Put these into pakchunk0 and leave them alone.

Volatile Content

Changes frequently:

    UI textures
    Blueprint logic under active iteration
    Balance data
    DataTables
    Config files
    Seasonal content

Put these into their own isolated chunks.

If volatile content (likely to be changed/updated) lives inside the same chunk as stable content, then Unreal repacks the whole chunk, even if the change was tiny. This will result in a checksum change for the entire chunk.

Step Visual

Avoid Giant Datatables

Having one giant datatable can cause increasing stress on patching and updates because again, if you only have one table holding all the data, one slight change will render the entire datatable checksum invalid.

The solution is to have modular data instead of one massive table, like this:

WeaponsData.uasset
ArmorData.uasset
ConsumablesData.uasset
EnemiesData.uasset

Now, changing weapon balance does not invalidate enemy tuning.

Step Visual

Blueprint Strategy

Blueprint recompilation can trigger dependency updates.

You should avoid:

    One Master BluePrint referenced by everything.
    Massive “GameManager” blueprints holding all logic

Instead use component-based architecture and keep frequently changed logic in isolated assets.

You can externalize the config for micro patches. Instead of changing Blueprints for small balance tweaks use:

/Config/DefaultGame.ini

or runtime-loaded JSON:

/Saved/Config/Balance.json

Load at runtime. Now for a simple balance tweak, LaunchBoost downloads a 5KB JSON file instead of a huge PAK file. This is enormous for live-service games and games that require small data config tweaks for updates.

Step Visual

Texture and Audio Optimization

Texture Atlas Warning

Texture atlases are great for draw calls.

But:
Add one small icon?
Entire 2048 atlas invalid.

Better approach:
Keep stable art atlased.
Keep dynamic UI elements separate.

Audio Optimization

If you bundle all audio into one pak:
Changing one sound effect forces large download.

Better:
pakchunk2 – Music
pakchunk3 – SFX
pakchunk4 – Voice

Even better:
Seasonal voice lines in separate chunk.