1. Halving the Build Size and Bug Fixes
  2.  
  3. Hello everyone!
  4.  
  5. We've been quiet working on our next big project, but had the time to make some big updates behind the hood of the game.
  6.  
  7.  
  8. The Black-Screen Bug
  9. First, we fixed a bug that was causing some players screens to go black when you hit "reset to defaults".
  10.  
  11. We apologize for taking so long with this one - it was a bit of a doozy to find.
  12.  
  13.  
  14. From 5GB to 2.5GB
  15. As the team was working on an Xbox patch, we ran into some file size limits causing us to fail our Xbox submission. In order to get Get To Work's new patch onto Xbox, the team had to really dig deep and find some smart ways to reduce file sizes, and look for new optimizations - And as luck would have it, those optimizations have carried over to our steam build.
  16.  
  17.  
  18. Instead of 5GB, the build should now be in and around 2.7GB! (Not exactly half, but 54.32% of the original size felt less sexy of a number).
  19.  
  20.  
  21. Optimization 1: Addressables
  22. Get To Work is built in the Unity game engine, and as with any engine, there are a lot of optimizations and tools at your disposal - the trick is knowing when and how to use them to maximize performance.
  23.  
  24. Unity's Addressable system uses asynchronous loading to support loading from any location with any collection of dependencies. By packing asset bundles more efficiently, Addressables provides a simple way to make your game more dynamic. [unity's documentation]
  25.  
  26.  
  27. If you don't care about the nitty gritty- if assets such as textures, models, and audio are organized thoughtfully, Addressables helps the engine avoid unnecessary duplication, which greatly reduces the final build size, and improves memory usage by loading and unloading content on demand.
  28.  
  29.  
  30.  
  31.  
  32. Without adding or removing any files, you can see that some smart organization can drop the file size from 4.4GB to 0.43GB!
  33.  
  34.  
  35. Optimization 2: Shaders
  36. Fair warning: Technical art is not our strong suit, so a majority of this was trial and error.
  37.  
  38.  
  39. Shader keywords are compile-time switches used by Unity’s shader system to enable or disable specific shader code paths. They let a single shader support multiple feature combinations (for example: with or without normal maps, shadows, fog, detail textures) without writing separate shaders.
  40.  
  41.  
  42. During the build, we noticed the engine had over A MILLION keyword combinations (this is not normal). And unfortunately due to our lech of tech-art experience, we still don't know why we had that many combinations. But through trial and error, we tried stripping our certain keywords to reduce the total combination of shaders.
  43.  
  44.  
  45.  
  46. Does it matter?
  47. Probably not. Let's be real, Call of Duty is anywhere from 80GB to 200GB depending on the bundles you've installed, so 2.5GB isn't that big of a deal, but the team was pretty excited to see some big size savings and i thought it'd be fun to share!
  48.  
  49. You may see some tiny run-time performance improvements (specifically around loading levels), but ultimately they'll likely be minimal.
  50.  
  51.  
  52. Lastly...
  53. It's been just over a year since the release of Get To Work! To anyone who has played the game (or is currently playing), we just want to thank you all for an amazing year! We're excited to share what we're cooking up next... stay tuned.
  54.  
  55.  
  56. Stephen & The Isto Team
  57.