Reduce Packaging Size

I there. I want to package my project for test purposes. Unfortunately, the package size is over 300MB, even with an empty(!) single map
Is there some tutorial on how to reduce the size?
I already have the Compressed Package Setting turned on.

Can I limit the packaged Texture Size? I have mostyl 2048 textures. For a test package, I only need some smaller textures.
Changing the Maximum Texture Size for every single texture seems more work than what I’d like to spent…

Is the packaging configuration set to “shipping”?

No, Developing.

well, that will definitely reduce the size a little.

Textures can take a large amount of space, the Fallout 4 high resolution texture pack was 58 GB.

Check out https://docs.unrealengine.com/latest/INT/Platforms/Android/ReducingAPKSize/

and for changing max texture resolution Textures for Mobile Platforms | Unreal Engine Documentation

We just did that couple of weeks ago, was able to reduce packaged zipped file from 170MB to 90MB. There are two things: engine content and your content.

For reducing engine content we use settings like in attached pic: configuration set to shipping,
full rebuild, for distribution, no debug files, use pak file, don’t include prerequisites, don’t include crash reporter, cook only maps, compressed packages and don’t include editor content. Then add your maps in list of maps (we had only one map).

Also, in Edit>Plugins menu you can disable all plugins which you are not using.

For your content, right click on your map and choose “Size map”. It shows you what will be included with the map. You can see if there are some unnecessarily large textures, or something not really used or something like that. For example, we had huge 4k textures that was only used as defaults for some materials, then replaced by something else in the instanced materials. If you don’t understand why some asset is here you can right click on this asset in the browser and choose reference viewer, it will show you who is using this asset.

Another thing we did, just for clean things up, is to create a new empty project and migrate the maps to this new project. That will move the maps and all dependencies, but not unused stuff. Then copy the content folder from the new project back to your old project (rename your old content folder first, so you will not lose anything).

3 Likes

Now there’s also option to NOT include engine assets in packaged game.
Removing engine assets will save you 100MB+ of space; but be aware, if you use any engine asset in your blueprint and chose to not include engine assets, your packaged game will crash on launch.

Removing engine assets is very important for small mobile apps.

[USER=“434”]BrUnO XaVIeR[/USER] What is this option called to remove engine assets?

Does the engine have a feature that clamps the textures down automatically on packaging?
Like if we had only 4k textures. It would make 2k copies of all textures and use those for the packaging, saving a ton of space. Then later one could add the 4k textures as an optional patch.

You can set “Max Texture Size” at texture asset window. Then engine will not use or package higher sizes than this.

1 Like

I found out that you can set the Max Texture Size in the Device Profiles. Go to Window->Developer Tools -> Device Profiles.
and select your desired Profile. you can then change the Max LOD size. it reduced my package Size from 2GB (4k textures) to under 1 GB (512 textures)

2 Likes

when we say engine asset is it sky sphere bp ? basic cube ? what

i would also like to know!

Yes. Anything in “Engine Content” folder

Sorry for necro but can’t you just copy used editor / engine asset to game content and then exclude both from packaging ?

And most importantly, i can only find this option in Project settings :

Screenshot (15).png

No option here to exclude Engine content.
If that option exist it would imply that even for a simple text UMG we would have to use a custom font, right ?

If this is just a mismatch of Editor/Engine word by Bruno Xavier, the usual way is still to use a PakBlackList to manually exclude folders from Engine Content i guess.

But if i’m wrong please tell me

Since the topic was going on they added many more functions to the packaging. One of which is the option to bake specific maps.

Just set your project settings for that, list the maps that makenup your game.
Fix up redirectors in main content folder via right click.
Now, when you package anything that isn’t directly in use by something in the selected levels gets excluded…

If you pull up the log file before packaging starts you can follow along and check the references as they get compiled and setup too.

On a project with a ton of marketplace stuff added to it this really lessens both packaging time and final size - giving you some mental sanity too since you don’t need to watch paint dry for 3 or 4 hours.

Thanks man i’ll check it out