Successfully reported this slideshow.

How We Make Unity

11

Share

1 of 46
1 of 46

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

How We Make Unity

  1. 1. COPYRIGHT 2015 @ UNITY TECHNOLOGIES HOW WE MAKE UNITY A Look into How Development in Unity’s R&D Organization Works
  2. 2. COPYRIGHT 2015 @ UNITY TECHNOLOGIES A LOOK BACK
  3. 3. COPYRIGHT 2015 @ UNITY TECHNOLOGIES OTEE ca. 2005 (around Unity 1.0 release)
  4. 4. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite Copenhagen, October 2008
  5. 5. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite San Francisco, October 2009
  6. 6. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite Montreal, November 2010
  7. 7. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite San Francisco, August 2011
  8. 8. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Unite Amsterdam, August 2012
  9. 9. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES AND NOW UNITY TECHNOLOGIES HAS OVER 650 EMPLOYEES.
  10. 10. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES HUNDREDS OF DEVELOPERS IN OVER 15 LOCATIONS ACROSS 4 CONTINENTS ALL WORKING TOGETHER. BUT HOW?
  11. 11. COPYRIGHT 2015 @ UNITY TECHNOLOGIES • Na’Tosha J. Bard • Engineering Tools Lead at Unity Technologies (5+ years) • Copenhagen, Denmark • Open-Source & Linux Enthusiast • Married • 2 cats ABOUT THE SPEAKER
  12. 12. COPYRIGHT 2015 @ UNITY TECHNOLOGIES PRINCIPLES OF DEVELOPMENT AT UNITY
  13. 13. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES EMPOWERMENT AUTONOMY RESPONSIBILITY
  14. 14. COPYRIGHT 2015 @ UNITY TECHNOLOGIES THE LIFECYCLE OF A CHANGE
  15. 15. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Developer Commits Change Developer Pushes Change Build Server Verifies Build with a Subset of Build & Test Targets Domain Experts Peer Review Code Gatekeeper Confirms Build Verification and Code Review Gatekeeper Merges Change to Mainline Build Server Verifies Build with All Build & Test Targets Build Server Makes Release Build QA Performs Acceptance Test Change Goes to External Testers Change is Released!
  16. 16. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES VERSION CONTROL LOW-LEVEL BUILD AUTOMATION HIGH-LEVEL BUILD AUTOMATION CODE REVIEW AUTOMATED TESTING
  17. 17. COPYRIGHT 2015 @ UNITY TECHNOLOGIES VERSION CONTROL
  18. 18. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES REVISION CONTROL COLLABORATION MULTIPLE LINES OF DEVELOPMENT
  19. 19. COPYRIGHT 2015 @ UNITY TECHNOLOGIES MERCURIAL • Switched from Subversion to Mercurial in 2010 • Branch-based development (named branches) • Extensions: largefiles, eol • Lots of custom Mercurial-based infrastructure • Active member of open-source community
  20. 20. COPYRIGHT 2015 @ UNITY TECHNOLOGIES “TRUNK” REPOSITORY METRICS • 37,323 normal files, 378 largefiles • 13 GB of metadata • 14 GB working copy (populated) • 196,699 revisions (255,895 in development repo) • 3831 named branches (7151 in development repo)
  21. 21. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES BRANCH-BASED DEVELOPMENT
  22. 22. COPYRIGHT 2015 @ UNITY TECHNOLOGIES “trunk” (mainline) feature branches bugfix branches release branches
  23. 23. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES BUT REALLY, IT’S IMPOSSIBLE TO EXPRESS THE COMPLEXITY WITH A SIMPLE PICTURE.
  24. 24. COPYRIGHT 2015 @ UNITY TECHNOLOGIES LOW-LEVEL BUILD AUTOMATION
  25. 25. COPYRIGHT 2015 @ UNITY TECHNOLOGIES PLATFORM SUPPORT
  26. 26. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES 22 PLATFORMS MULTIPLE ARCHITECTURES MULTIPLE VARIANTS
  27. 27. COPYRIGHT 2015 @ UNITY TECHNOLOGIES EVOLUTION OF LOW-LEVEL BUILD SYSTEM • Pre-2011: Static project files w/ Perl scaffolding • 2011-now: Jamplus w/ Perl scaffolding • Future: Gradle • https://youtu.be/jmadc8xI_6I
  28. 28. COPYRIGHT 2015 @ UNITY TECHNOLOGIES EDITOR BUILD TIMES • MacBook Pro (Retina, 15-inch, Mid 2015) • 2,8 GHz Intel Core i7 • 16 GB 1600 MHz DDR3 • SSD • Clean Build: 5m50.097s • No-Op: • Perl: 0m28.320s • Jam: 0m2.476s
  29. 29. COPYRIGHT 2015 @ UNITY TECHNOLOGIES HIGH-LEVEL BUILD AUTOMATION
  30. 30. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES 239 POSSIBLE BUILD & TEST TARGETS 39 HIGH-LEVEL TARGETS IN A BUILD VERIFICATION 97 NIGHTLY TEST RUNS BUILD CHAINS MANY LAYERS DEEP
  31. 31. COPYRIGHT 2015 @ UNITY TECHNOLOGIES KATANA • Internally-developed custom CI solution • Fork of Buildbot • https://github.com/Unity-Technologies/katana • Active development
  32. 32. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
  33. 33. COPYRIGHT 2015 @ UNITY TECHNOLOGIES KATANA’S BUILD FARM • 236 (mostly virtual) machines • Combination of local storage and NFS • Moving to CEPH • Currently all hosted in Copenhagen • iOS farm with iOS team in Vilnius • Configured with Salt
  34. 34. COPYRIGHT 2015 @ UNITY TECHNOLOGIES CODE REVIEW
  35. 35. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES IMPROVE CODE QUALITY APPLY EXPERT KNOWLEDGE HELP DOMAIN EXPERTS RETAIN OWNERSHIP KNOWLEDGE TRANSFER
  36. 36. COPYRIGHT 2015 @ UNITY TECHNOLOGIES KALLITHEA • Open-Source source code management system • Supports Mercurial and Git • Web-based code review • Preview of Merge • Pull Requests do not update automatically • http://kallithea-scm.org
  37. 37. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES
  38. 38. COPYRIGHT 2015 @ UNITY TECHNOLOGIES AUTOMATED TESTING
  39. 39. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES NATIVE TESTS RUNTIME TESTS INTEGRATION TESTS GRAPHICS TESTS MANY OTHER TESTS 16,559,749
TESTS RUN IN AUGUST 2015
  40. 40. COPYRIGHT 2015 @ UNITY TECHNOLOGIES GATEKEEPER WORKFLOW
  41. 41. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES WHY USE A GATEKEEPER WORKFLOW IN A COMPANY FULL OF SMART, CAPABLE ENGINEERS? BECAUSE HUMANS ARE HUMAN.
  42. 42. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES OBJECTIVITY CONSISTENCY CONTINUITY
  43. 43. COPYRIGHT 2015 @ UNITY TECHNOLOGIES STUFF I’VE LEARNED ALONG THE WAY
  44. 44. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES FEATURESET TIME QUALITY
  45. 45. COPYRIGHT 2014 @ UNITY TECHNOLOGIESCOPYRIGHT 2015 @ UNITY TECHNOLOGIES CHANGE IS A CONSTANT. OPPOSING FORCES ARE A GOOD THING. SOFTWARE DEVELOPMENT IS ABOUT SO MUCH MORE THAN WRITING CODE.
  46. 46. COPYRIGHT 2015 @ UNITY TECHNOLOGIES Slides will be available at: http://natoshabard.com/speaking Find me at the Ask-the-Experts area, or on Twitter: @natosha_bard

×