How to deal with bundles made with other computer in the team?

Context

  • We made the Addressables Bundles on Computer A.

  • We upload our game content and bundles for first time to Nintendo Switch, PlayStation, Xbox and Steam.

  • We need to create a small fix update to our content but on Computer B.

  • When we do that, all bundles are totally different.

  • Even copying the Project/Library/com.unity.addressables/*

Question
Should we store all the project folder (including Project/Library folder) to make updates/bug fixes in another computer? To minimize the per platform’s patch size with only the interested bundles.

7726794--970206--Project Path.png

The problem is that not all assets can be deterministically build on different hardward, such as shader, audio compression, etc. So best is to have a dedicated build machine so that build for release are always build on the same machine (or atleast with the same hardware especial audio and graphics).

Also as bundle changes are inevitable, you will want to minize your interdependencies between bundles. So that not all bundles update when you make a small change.
if Bundle A depends on Bundle B and bundle Bundle B dependes on Bundle C, then when you make a change in Bundle C, it will flag Bundle A and B as changed. So reducing dependencies between bundles is key to reduce bundle changes.

In addition, what we ( I do support work for Console games ) do for consoles, is to not have the hash in the filename and disable bundle CRC in the settings. Which will make it so that even if bundles are rebuild because of dependency changes it won’t actually change the bundle. ( This was suggested to us by Unity )

So to iterate:

  • different hardware will cause for different bundles.
  • limit interdependencies between bundles
  • turn of the hash in the filename and disable bundle CRC.
1 Like

Thank you for such great info!

does “Pack Seperately” for crazy groups (duplicate asset isolation) help in any way?
For example models, shaders, textures that are used in many many scenes.
or should we really try and manually create our “shared asset groups” ?