Search Unity

The Unity Accelerator can help your team iterate faster by reducing project update wait times by up to 90%.

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! 

Asset Pipeline Importing

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

How it works

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.

Source code download via Collaborate

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

How it works

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:

  1. Sam is a remote developer who does not have an Accelerator installed on her network.
  2. Alice and Joe share a local network and do have the Accelerator installed. 

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.

How to get started

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 will be available in an upcoming 2019.3 beta release. Keep an eye on the beta forum, the Accelerator forum and/or the editor release notes to find out when you can get started with the Asset Pipeline Import feature of the Accelerator. 

While the Asset Pipeline Import feature will be completely free to use, the Collaborate source control feature requires a Unity Teams Advanced subscription. Read more on how to get started here.

 


 

Frequently Asked Questions

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 (coming soon) and source code via the Collaborate service (available now). 

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.

11 评论

订阅评论

留下评论

您可以使用这些HTML标签和属性: <a href=""> <b> <code> <pre>

  1. Even with the cache server, switching platforms takes 10 minutes on our project. Please also consider:
    * Multi-threading the asset hash calculation phase.
    * Pipelining network requests to the cache server.

  2. How does the Accelerator differs from the cache server?

  3. Hey!

    Thanks for the blog post, would using Accelerator require using Collaborate as well or will it work with other version control solutions as well? If so which ones will be/are supported?

  4. Does this tool intend to replace cache server completely or they will coexist?
    Are they somehow different? (Accelerator and Cache Server)

    1. Great question! The Cache Server supports Asset Pipeline v1 only. The Accelerator supports Asset Pipeline V2 (available in 2019.3). They’ll coexist for the foreseeable future. You can actually use the Accelerator wizard to install the legacy cache server.

  5. Uhh that’s exactly what Cache Server does already. Why are you making a new tool that’s exactly like an old tool?

  6. These are great improvements for large and distributed teams. For the indie developer, who likely develops for many platforms on a single machine — has the asset transformation cost of switching platforms been resolved? Here’s the scenario — I have a game with 5GB of content. Space is cheap and I ship to multiple (say 5) platforms. Instead of storing transformed platform assets in separate folders (for 25GB of aggregate transformed storage) Unity stores transformed assets in a single location, which gets reset when a platform change occurs. As a result, switching platforms to check a quick bug or behavior — could kill hours (even a day!) of productivity. The answer then was to install and run a cache server, which shouldn’t be necessary for indie developers. Disk space is cheap. I hope this is addressed going forward!

    1. I absolutely agree with Shaun here.
      (Shaun, with existing tech, if you want to be able to more easily switch between platforms using cheap disk space, just keep multiple copies of the same project in multiple folders, each one for a different platform, and never switch platform inside each of them. Use your versioning tool of choice to update whatever platform you want to work on – you should be using versioning tools even if you’re a one-person team).

    2. Hi Shaun,
      The Asset Pipeline V2 enables fast platform switching in 2019.3. It is available to test now in the 2019.3 Beta.

      Assets will still need to be imported for all the platforms your project supports, but once imported for the different targets, switching between projects take significantly less time, due to the new Asset pipeline being able to store multiple instances/variants of the same source asset.

      When combined with on-demand and background importing, Unity will import changes for all project platforms while you can continue working.

      Thanks for your question!
      Martin Gram
      Product Manager Lead EMEA and Core R&D

    3. To Shaun and Petrucio:
      Even if you are on an older version of Unity, you don’t need to go through the pain of duplicating the project folder as Petrucio mentioned. If I understand it correctly, you want it so that when you switch platforms again (so going back to an already-imported one), Unity doesn’t rebuild the Library on your machine. That is possible already.
      Just go to the Preferences > Cache Server, make sure you’re on Asset Pipeline v1, and enable Cache Server Mode: Local. You now have a local cache folder where the Library is kept in case you switch platforms.