We have many downloadable terrains in our game. They’re very vanilla terrain - each is a prefab composed of
A single terrain gameobject
With a material
And a single terrain layer.
When we build assetbundles for our game on different machines (both X64 windows machines), all asset hashes match except for the assetbundles containing the terrain, every one of which is always different.
Is there any known indeterminism in the terrains.
For the avoidance of doubt, we are very careful not to modify the terrainData at runtime in the editor, and in any event can reproduce the problem by making builds directly after loading the project on each machine, so there is no way for an asset to have been modified. Version control confirms that the .asset files are identical.
Unity 2020.3.18 (although it’s been a problem forever, but it’s becoming more of a problem because every game update touches every terrain.)
Do you have any [PostProcessScene] code in the project that modifies scenes during a build and is perhaps not deterministic?
There are parts in Unity or Addressables that output different bundles for the same content, I found some of these issues too ( see here ).
If you’re able to reproduce the problem, I think it’s best to submit a bug-report with a test project that Unity staff can use to reproduce it and test their fix against.
We do not use PostProcessScene or anything else. I can repro it with a couple of terrain assets and an otherwise empty project.
That said, just so I understand your open issue, you can trigger binary differences in ANY addressables build simply by changing gameview aspect ratio between builds? I ask because if that’s the case, we can at least work around for now by always using one aspect ratio.
Cool, when you submitted the bug-report, please post the Case number here.
Yes, it seems I can trigger binary differences by changing the Game View aspect ratio, but also by changing the editor window layout (eg resizing windows) that affects the Game View size.