“ EA’s Secret Weapon: Packages and Modules”
summary
EA has run a packages system for 14+ years that behaves like Ruby Gems or Rust cargo, hosting thousands of packages so a package download pulls all dependencies and builds; games average ~10M lines and the company has ~200M LOC. Packages use public/private headers, initially encode versions in paths then move to a single masterconfig (a one-line package→version map) which reduces upgrades. A private package server handles low-level leaf libs. Experimental C++ modules (Visual Studio 2017, search paths vs references) speed builds but lack stable dependency-generation, struggle with circular linkage and name collisions, and aren’t yet viable across EA’s many platforms.
AI-written summary · about
chapters (6)
- 0:00Introduction and background
- 4:13Problem of packages at EA
- 10:16EA’s package solution
- 29:28Package servers and divergence
- 34:47Introduction to modules
- 43:24Q&A session
related talks
01h 01mWhy managing C++ dependencies is hard
38mGrowing a Healthy UE4 Ecosystem
01h 01mLessons Learned from Packaging 10,000+ C++ Projects
01h 30mC++ Modules and Large-Scale Development
29mUsing Plugins to Share Code Among Several UE4 Projects
45mTools and Infrastructure for Large Teams
01h 03m“C++ Dependency Management: from Package Consumption to Project Development”
41mAsset Dependency Chains: The Hidden Danger
