#Deterministic content builds and minimizing patch size with Entities content archives

1 messages · Page 1 of 1 (latest)

compact flume
#

Hi!

I’m using Unity 2022.3.62f2, Entities 1.3.14, Addressables 1.22.3, and SBP 1.22.5, trying to figure out the best way to organize content for patchable updates using Entities content archives.

I’ve run into a few issues:

  1. Nondeterministic builds
  2. Large diffs on minor updates

Things that seem to affect build consistency (not sure if these are bugs to be reported):

  • GlobalEntitySceneDependency.asset — if this changes, updates break; seems it must stay stable between builds.
  • UnityObjectRef / UntypedUnityObjectRef — their GetHashCode() relies on instanceId, which isn’t stable. Reimplementing to use GUIDs improved determinism.
  • Shared content archives — editing a Mesh or ParticleSystem rebuilds almost all archives, but Collider edits don’t, for example.

I’d like to:

  1. Build initial content once and host it on a CDN
  2. Let players download it
  3. Build and publish incremental content updates (add/modify sub-scenes) where players only download small diffs — similar to Addressables

How should I organize Entities content (sub-scenes, etc.) to make updates modular and minimize re-download size? What are the best practices?

Thanks for your time! Any advice or pointers would be greatly appreciated!

Here are some relevant Unity Forum threads with more information: