A big problem when using Unreal Engine for small games, mobile games and 2D games is that even in those cases the package size is rather large. A completely empty project with default settings will lead to a shipping build for Windows that is 321 MB large uncompressed with UE 5.3! The following steps will allow you to reduce the package size by over 50%! Video Overview Ways to reduce Package Size Setting the correct Binary Configuration Disabling prerequisites installer Disabling unnecessary plugins Packaging settings Forward Shading Default Pak File Rules Specifying maps to include in a packaged build Using older versions of Unreal Engine Size on Disk vs Download Size Sources
Video Overview
Ways to reduce Package Size
Setting the correct Binary Configuration
Reduces size by 371 MB 692 MB → 321 MB This is an obvious one that most developers should know about, but it can be fatal if overlooked. When packaging a game you can select between DebugGame, Development and Shipping.
DebugGame and Development come with additional files and tools that can be helpful during development, however when making a build to give to your players, you want to make sure to use Shipping to reduce the package size by over 300 MB .
Disabling prerequisites installer
Reduces size by 48.1 MB Unreal Engine games require certain packages and libraries to be installed on a Windows pc in order to be launched. By default Unreal Engine will package the prerequisite installer together with our game, however in the project settings we can turn this off to make the package 48.1 MB smaller for Windows builds !
Disabling this is only recommended if you plan to distribute your game through Steam since they have their own process of installing prerequisites. If you distribute your game through Itch or other platforms, players which don’t have the prerequisites installed won’t be able to launch your game.
Disabling unnecessary plugins
The list of plugins that are on by default are ever changing depending on the UE version. I wrote this document on 5.3 and a few things are different with UE 5.5+ Most importantly the OpenImageDenoise Plugin is now deactivated by default and now it’s NNEDenoiser and NNERuntimeORT which we want to turn off if we’re not using Path Tracing. There’s a great writeup for UE 5.5 plugins by O_Y_G. UE5.5 プラグイン、パッケージ化時容量測定結果 ホーム > パッケージ化 > 容量最適化 > UE5.5プラグイン容量この記事は、Unreal Engine (UE)Advent Calendar2024シリーズ4 23日目 の記事です。はじめにUnreal Engine 5.5 のデフ... https://ue5study.com/how/ue5-5-plugin-package-size/#toc1 Reduces size by 47.4 MB ~ 100 MB Every Unreal Engine project comes with many Plugins enabled by default, some of which you probably won’t have any use for.
Some of these are editor plugins that add new functionality to the Unreal Engine Editor and don’t affect package size at all, while others are runtime plugins that will make your builds bigger. It can be very hard to differentiate between these and some Plugins are essential for working with Unreal, so it’s not recommended to just turn everything off without second thought . There are also a few plugins that will slightly increase package size if disabled. Oodle Plugins are used for compression and even though turning these off won’t have an effect in an empty project, they will make your build larger for real projects. Big shoutout to O_Y_G for figuring this out. One Plugin that we can turn off for sure also has the biggest file size and is called OpenImageDenoise . This is only useful when using Path Tracing for video production or creating image renders, so we can turn it off without any risk. This alone will make our package 47.4 MB smaller! (UE 5.0 ~ UE 5.4)
In UE5.5 or higher it’s these 2 that you want to turn off!
Before you try disabling any more plugins, make sure you have version control set up, so you can revert in case something goes wrong When disabling all of the remaining plugins, the package size will become another 52.6 MB smaller , which will lead to a size reduction of 100 MB in total . But as I mentioned before, simply turning all plugins off is not recommended since some of them are very useful and it depends on the kind of game you’re making which plugins will need to stay active. In general just going through the list and turning off things you’re certain you won’t use should suffice.
An alternative approach would be to just disable all packages by default using the DisableEnginePluginsByDefault flag and then only activating the ones you need by opening up your .uproject file in a text editor. The ones listed in the following post are a good starting point, but you might want to also turn on things like Niagara, Paper2D or Nav Meshes, so this is also not a perfect solution. Minimal project descriptor that "Disables Engine Plugins by Default" for Unreal Engine Minimal project descriptor that "Disables Engine Plugins by Default" for Unreal Engine · GitHub https://gist.github.com/MilkyEngineer/a1e953f87509877adc4587cf8776c8a2 Always make sure to try to build your project after finalizing which plugins you turn off. Sometimes things will work nicely in the editor, but you’ll get a build error without a certain plugin that will be hard to track down later.
Packaging settings
Reduced size varies depending on project, but can have a HUGE effect! The following 4 settings are all active by default with newer versions of Unreal Engine, but you should double check that they are active in your project as well. Use Pak File Share Material Shader Code Shared Material Native Libraries Create compressed cooked packages (Might disable the ability to do partial downloads when patching the game through steam though)
Cook only maps should also reduce file size depending on your project and how many maps you have.
Exclude editor content when cooking will also slightly decrease file size.
Full Rebuild is not active by default, but can help you reduce file sizes on subsequent builds. Unreal Engine will cache data when you make a build to make subsequent builds faster, however if you make many changes there is the risk of cached data that isn’t needed anymore being included in your package. However this will make subsequent builds take much longer, so you might only want to use this when making your final build for distribution.
In case you’re making an android build , activating For Distribution might also shave off a few MB and you also want to confirm that Build with hidden symbol visibility in shipping config is activated.
Forward Shading
Reduces size by 10 MB Turning this on will drastically change the rendering of your game and isn’t suited for all projects In the project settings we can turn on Forward Shading to switch from the Deferred Rendering model to the Forward Rendering model.
I believe this will package simpler shaders and therefore reduce file size, however Forward Rendering can be more restrictive than Deferred Rendering and features such as Lumen and Nanite won’t work. There are also many other differences I won’t get into since it’s a quite complicated topic. But when making 2D games or VR games this is something we want to switch to regardless for the performance gains alone.
Default Pak File Rules
Reduces size by 4 MB with little risk and can reduce size by around 17 MB if you’re not using certain features such as substrate We can create a text file to tell the Unreal Engine build system which assets to not include in the package. In older versions of Unreal this used to be the PakBlacklist-Shipping.txt file as mentioned in the official documentation . With newer versions of Unreal though this method has become deprecated and we now have to create a file called DefaultPakFileRules.ini in the Config/ folder of our Unreal Engine project.
The easiest way to find this folder is to just right click your project in the epic games launcher and click on Show in folder.
You can then simply right click here in the Config folder and create a new Text Document. Call it DefaultPakFileRules.ini
You can then just open this up in Notepad or any other text editor. If you just want to save the 4MB with little risk you can simply paste in the following text which I found in this forum post . It will prevent useless slate assets, editor meshes, etc. from being packaged with your game and make the package about 4 MB smaller . DefaultPakFileRules.ini
If you want to know how this works in more detail and possibly save another 13 MB you can read through the advanced guide here. Advanced method of setting Pak Rules
Specifying maps to include in a packaged build
Reduced size varies depending on project, but can have a HUGE effect of multiple GB! By default Unreal Engine will include all maps from your project in the build which will often lead to unnecessarily big package sizes. But in the project settings we can specify List of maps to include in a packaged build and only write a list of all the maps we really need included in our game.
If your project is still in it’s infancy this isn’t going to do anything, but as development moves on you’ll often create maps for testing purposes or some marketplace assets you use come with demo maps which you don’t want in your packaged build. Furthermore if a map is included in a build, it will also package all assets referenced in that map . As you add more maps to your game that you actually want to package, you need to keep on updating this list, otherwise if a player tries to load a map that hasn’t been included in the build, the game will soft lock!
Using older versions of Unreal Engine
This is one I personally do not recommend if you plan to work on a project long term since you’ll loose a lot of quality of life features, but using older versions can drastically decrease package size for game jams or specific use cases Unreal Engine is constantly getting new features and growing, but this also affects the file size of your packaged game builds. Sometimes features are implemented in the core of Unreal and other times they will be made available as packages, which we can turn off. Going from UE 5.2 to UE 5.3 alone increased the file size by 10% going from 290 MB to 321 MB (Shipping build with default settings) With UE 4.24 for example the packaged size was only about 151 MB with the same settings, as you can see in this blog post In case you want to use older versions of Unreal there is also an open source template that already comes with a lot of these settings and optimizations enabled. Nano pfist
Size on Disk vs Download Size
One thing to keep in mind when talking about package size is that from the perspective of the player there are 2 different types of package size to worry about. Size on Disk is the size of the game folder we get when making a build and also the how much space your game will take up on the disk of your player after decompression. Download Size is the amount of data a player will have to download from Steam, Playstation Store, Itch or wherever you are selling your game. Most store fronts will compress the games you upload in some form and reduce the size of files players will have to download. Simply zipping our test project will lead to a size reduction of about 27% and turn it from 321 MB to 234 MB.
Sources
My own research and trial and error Reducing Packaged Game Size How to reduce the size of your packaged game. https://docs.unrealengine.com/4.27/en-US/TestingAndOptimization/PerformanceAndProfiling/ReducingPackageSize/ Reducing build size of Android game in Unreal Engine 4 Unreal Engine 4 is considered to be a big, bulky engine that generates a lot of data and has huge build sizes. Such feature might be a serio... https://zompidev.blogspot.com/2018/12/reducing-build-size-of-android-game-in.html UE4.27.2 プラグイン、パッケージ化時容量測定結果 - Qiita はじめにUnreal Engine 4.27.2 の プラグイン が、パッケージデータ にどの程度影響があるのか、検証してみました。Windows Shipping設定。サードパーソンテンプレー… https://qiita.com/O_Y_G/items/b74f54205cfe4c6cf8f0 UE4 リリース向けパッケージを作る際にやるべきこと - Let's Enjoy Unreal Engine さて、今年の夏コミことC88にですが、私も参加することになっています。 詳細は以下より確認してみてください。 C88にサークル参加します!【日曜日 東R44a】 : 歩き始めるより走り出せさて、今回はコミケに限らずゲームをリリースしたい時にパッケージを作る時の様々な注意点に関して説明したいと思います。 説明はUE4.8… https://unrealengine.hatenablog.com/entry/2015/08/14/211733 Tinyなパッケージに挑戦してみよう - へきらくおきらく UE4で100MB未満のWindowsパッケージを作ろうという記事です。 https://wakanya.hatenablog.com/entry/TinyPackage New post that also goes into optimization for mobile specifically Optimizing Build Size for Android Mobile | Knowledge base One of the most common needs when developing for mobile platforms is making sure the download size of the game and the storage size of the game on the m... https://dev.epicgames.com/community/learning/knowledge-base/Kp0x/unreal-engine-optimizing-build-size-for-android-mobile