No one likes to wait for things, be it your coffee machine brewing that delicious (and let's be honest, much needed) first cup in the morning, your local project downloading the latest source code changes, or the Unity editor loading those new changes for the first time. While we can’t do anything to help with that first cup of coffee, the Unity Accelerator can significantly improve your download and load times for source code changes, core aspects to every Unity developer’s workflow.
The Unity Accelerator is a local network proxy and cache service that speeds up iteration times for two major scenarios, asset pipeline importing and source code download through Collaborate. This improved workflow will substantially reduce the time spent waiting for routine blockers, getting you and your team back to doing what is important, creating!
Whenever Unity detects an asset has been modified on your local project it will automatically transform the asset to be readable by Unity, a process known as asset pipeline importing. This can be a time-consuming process that increases exponentially as more changes are detected. In Unity 2019.3 a new asset import pipeline version was introduced, improving the overall import process to be more performant, scalable and reliable. Additional experimental features such as on-demand, fast platform switching, and background importing are also available in an experimental state in 2019.3. You can read more about it here.
The Unity Accelerator augments the new asset import pipeline by providing a local network cache of transformed assets for your entire team. This means that only one person needs to perform the actual import and the results will automatically be cached to the Unity Accelerator. The next time a team member goes to import the same version of the asset, the cache will first be checked before starting the import process on the local machine.
One of the key challenges for source control is sharing assets quickly. Difficulties often arise due to large file sizes or low internet bandwidth. The Unity Accelerator will reduce the time you are blocked waiting for assets to download when updating your Collaborate local project to the latest revision. You can also monitor the performance on the Services Dashboard, which will show you important metrics such as overall efficiency (last 24 hours), bytes delivered, time saved and more:
Our internal tests have shown up to a 90% reduction in time spent waiting for projects to update! Here are the metrics for one of our tests:
|Download Size||Number of Files||No Files Cached in Accelerator||All Files Cached in Accelerator|
|100 MB||~12,000||6 Minutes||30 Seconds|
The Unity Accelerator is a proxy and cache for the Collaborate service. When set up on the local network, new files will be cached as they are on their way to the Collaborate cloud service (i.e. each time you publish). The next time a team member, who is also on the same local network, updates their project, the Unity Accelerator will first check its cache for a copy of the file before connecting to the service to download.
The Unity Accelerator also has the ability to pre-load source that has been published by a remote team member. For example, let’s say three game developers are on the same project Alice, Sam and Joe. They are a distributed team as follows:
Every time Sam publishes within Unity, she talks directly to the Collaborate service. The Accelerator that Alice and Joe use will automatically monitor the Collaborate service for new publishes done by Sam and will download them as they occur. The next time that Alice and Joe are ready to update their local project, they’ll be pulling from the Accelerator instead of the Collaborate service directly.
The Unity Accelerator is a standalone tool that is now available for download on OSX, Windows and Linux. It is compatible with 2019.3 Beta 1 or above for Collaborate and support for the Asset Pipeline Import process is available as of 2019.3 Beta 6.
Thank you for all of your great feedback on the forums and in the comments! We’ve put together a short Q&A to help answer your questions.
What is the difference between the Unity Accelerator and the Cache Server?
The most important difference is that the original cache server only supports Asset Pipeline v1. The Unity Accelerator adds caching support for both Asset Pipeline v2 and source code via the Collaborate service.
Another great benefit of the Unity Accelerator is that when using it with Asset Pipeline v2 and/or Collaborate service, it features automatic disk storage management. This means that it will periodically clean up unneeded assets and/or source. With the original Cache Server, teams had to use additional tooling to manage disk space.
A third difference is that the Unity Accelerator also exposes metrics that provide you with useful information such as bytes transferred, editors connected and more. They are hosted as Prometheus metric values as /metrics, which you can query from the local network.
I noticed that you can install the Cache Server in the Unity Accelerator installation wizard. Does this mean it has new functionality?
We have not added any new functionality to the cache server. The decision was made to include it in the Unity Accelerator installation wizard so that teams only needed to go to a single place to manage installations.
The Cache Server always has a new version released with each editor release. Which version of the Cache Server is used in the Unity Accelerator Installer?
We are bundling the version most compatible with Asset Import Pipeline v1 that's in use for 2019.3. If you are running older versions and already have cache servers supporting them, there is no need to install the one bundled in the Unity Accelerator.
Does each Unity Accelerator instance only support a specific Unity version or will it be able to work with multiple simultaneous Unity installs/projects?
The Unity Accelerator will remain backward compatible, supporting all versions of Asset Import Pipeline v2 and Collaborate service starting in 2019.3 and later. It will automatically upgrade itself as needed to make this seamless for you.
Does the Source control cache only work with Collaborate?
Collaborate is the only source control supported today. We are exploring the possibility of supporting others in the future.