Fighting Game · Guides & deep dives

V2 Content Cooking Architecture

A guides & deep dives document in the Fighting Game library.

0sections1 minread

On this page

V2/ue/Build/Cooking/v2-content-cooking-architecture.json defines the source asset to cooked artifact pipeline used by the V2 build farm. It extends the existing BuildGraph and cook-all wrappers instead of replacing them.

The architecture has six ordered stages:

  • discover-source-assets writes a canonical source asset manifest.
  • normalize-and-fingerprint records stable paths, import settings, platform profile, and SHA-256 content hashes.
  • build-dependency-graph merges Unreal AssetRegistry.bin references with domain sidecars such as *.v2deps.json.
  • plan-platform-cook expands source changes into platform-specific cook tasks.
  • execute-cook runs BuildCookRun or a domain cooker and writes cooked output.
  • validate-and-report verifies cooked loads, missing references, cook time, cache hit rate, and artifact size.

Dependency tracking is graph-first. Every node is keyed by canonical source URI, every edge records source, target, kind, platform scope, and content hash, and incremental recooks must walk the transitive closure so a texture change can recook materials, meshes, and levels that depend on it. The graph evidence path is $(ArchiveRoot)/Cooking/dependency-graph.json.

Platform profiles define optimization policy without hard-coding it into individual cookers: PCUltra, PCLow, PS5, XSX, XSS, Switch2, and Mobile. Each profile declares texture, mesh, and audio tiers so later texture, mesh, audio, shader, animation, and level cookers can plug into the same cook plan.

Cooked artifacts and cache evidence are rooted at $(UE_SHARED_DDC)/V2/CookedContent and $(ArchiveRoot)/Cooking. The shared DDC root remains $(UE_SHARED_DDC)/V2/DDC.

Required gates:

  • content-cooking-architecture-defined
  • content-cooking-dependency-tracking-defined
  • content-cooking-platform-profile-coverage
  • content-cooking-cache-policy-defined

The primary coverage metric is cook.architecture.platform_profile_count. The CI validator is:

bash
python3 V2/ue/Tools/check-v2-content-cooking-architecture.py