Search Unity

Unity Accelerator 이용하면 프로젝트 업데이트 대기 시간이 최대 90% 단축되어 단위의 반복 작업을 빠르게 수행할 있습니다.

아침을 여는 커피 한 잔이 커피 머신에서 나오는 시간, 로컬 프로젝트에서 가장 최근에 변경된 소스 코드를 다운로드하는 시간, Unity 에디터에서 그 변경된 데이터를 처음으로 로드하는 시간 등, 어떤 경우라도 기다리는 시간을 달가워할 사람은 없을 겁니다. 커피를 더 빨리 내리는 방법을 알려드리지는 못하지만, 대신 Unity Accelerator를 활용하면 모든 Unity 개발자 워크플로의 핵심이라 할 수 있는 변경된 소스 코드를 다운로드하고 로드하는 데 걸리는 시간은 단축할 수 있습니다.

Unity Accelerator는 콜라보레이트(Collaborate)를 통한 에셋 파이프라인 임포팅과 소스 코드 다운로드라는 두 가지 주요 시나리오에서 반복에 소요되는 시간을 단축해 주는 로컬 네트워크 프록시 및 캐시 서비스입니다. 워크플로가 개선되며 루틴 차단으로 인한 대기 시간이 대폭 단축되므로, 사용자와 팀은 가장 중요한 과제인 제작에 몰두할 수 있게 됩니다.

에셋 파이프라인 임포팅

Unity 엔진은 로컬 프로젝트에서 수정된 에셋을 감지할 때마다 에셋을 읽을 수 있는 형태로 변환하며, 이 프로세스를 에셋 파이프라인 임포팅이라고 합니다. 변경된 내용이 더 많이 감지될수록 이 프로세스에 소요되는 시간이 기하급수적으로 늘어날 수도 있습니다. Unity 2019.3에는 새로운 버전의 에셋 임포트 파이프라인이 도입되어 임포트 프로세스의 전반적인 성능과 확장성, 안정성 등이 더욱 개선되었습니다. 온디맨드, 빠른 플랫폼 전환, 백그라운드 임포팅 등의 실험 기능도 2019.3에서 사용해볼 수 있습니다. 자세한 내용은 여기에서 확인하세요.

 

작동 원리

Unity Accelerator는 변환된 에셋을 로컬 네트워크 캐시로 팀 전체에 제공하는 방식으로 새로운 에셋 임포트 파이프라인을 확장합니다. 즉, 한 사람만 실제 임포트를 수행해도 결과가 Unity Accelerator에 자동으로 캐시됩니다. 팀 구성원이 다음 번에 동일한 버전의 에셋을 임포트하면, 로컬 머신에서 임포트 프로세스를 시작하기 전에 먼저 캐시를 확인하게 됩니다.

콜라보레이트를 통한 소스 코드 다운로드

소스 관리에서는 에셋을 빠르게 공유하는 것이 가장 어려운 문제 중 하나입니다. 파일 크기가 크거나 인터넷 대역폭이 낮은 경우 문제가 발생하기 쉽습니다. Unity Accelerator는 콜라보레이트를 이용한 로컬 프로젝트를 최신 버전으로 업데이트할 때 에셋 다운로드로 인해 대기해야 하는 시간을 단축합니다. 또한 서비스 대시보드에서 성능을 모니터링하며 지난 24시간 동안의 전반적인 효율성, 전송된 바이트, 절감 시간과 같은 중요한 지표를 확인할 수 있습니다.

유니티 내부 테스트 결과, 프로젝트 업데이트 대기에 소요되는 시간이 최대 90% 단축된 것으로 나타났습니다. 한 예로 다음의 테스트 지표를 참고하시기 바랍니다.

다운로드 크기 파일 수 Accelerator에 캐시된 파일이 없는 경우 Accelerator에 파일이 캐시된 경우
100 MB ~12,000 6 Minutes 30 Seconds

작동 원리

Unity Accelerator는 콜라보레이트 서비스와 호환되는 프록시 및 캐시입니다. 로컬 네트워크에 Accelerator를 설정하면 새로운 파일이 콜라보레이트 클라우드 서비스로 이동하는 동안(즉, 매번 퍼블리시할 때마다) 캐시됩니다. 다음 번에 동일한 로컬 네트워크를 사용하는 팀 구성원이 프로젝트를 업데이트할 경우, Unity Accelerator는 업데이트된 내용을 다운로드하기 위해 콜라보레이트 서비스에 접속하는 대신 먼저 캐시에서 파일 복사본을 확인합니다.

Unity Accelerator는 원격 환경에서 작업하는 팀원이 퍼블리시한 소스를 사전에 로드할 수도 있습니다. 예를 들어 앨리스, 샘, 조라는 세 명의 게임 개발자가 같은 프로젝트를 작업하고 있다고 가정해 봅시다. 이 팀의 작업 환경은 다음과 같이 분산되어 있습니다.

  1. 샘은 원격으로 작업하는 개발자로, Accelerator가 설치되어 있지 않은 네트워크를 사용합니다.
  2. 앨리스와 조는 Accelerator가 설치된 로컬 네트워크를 공유하고 있습니다.

샘은 Unity에서 퍼블리시할 때마다 콜라보레이트 서비스에 직접 접속합니다. 앨리스와 조가 사용하는 Accelerator는 콜라보레이트 서비스를 자동으로 모니터링하여 샘이 새로 퍼블리시한 내역이 있는지 확인하고 다운로드합니다. 다음 번에 앨리스와 조가 로컬 프로젝트를 업데이트할 때 콜라보레이트 서비스에서 직접 임포트하는 대신 Accelerator에서 데이터를 가져오게 됩니다.

시작 방법

Unity Accelerator는 OSXWindows, Linux환경에서 다운로드할 수 있는 스탠드얼론 툴입니다. 2019.3 Beta 1 이상 버전의 콜라보레이트와 호환되며, 에셋 파이프라인 임포트 프로세스는 2019.3 Beta 6 버전부터 지원됩니다.

에셋 파이프라인 임포트 기능은 무료로 제공되지만, 콜라보레이트 소스 관리 기능을 이용하려면 Unity 팀즈 어드밴스드를 구독해야 합니다. 시작 방법을 자세히 알아보려면 여기를 참조하세요.

 


 

자주 묻는 질문

포럼 및 댓글에 남겨 주신 소중한 피드백에 진심으로 감사드립니다. 질문에 대한 답변을 드리고자 간략한 Q&A를 마련했습니다.

Unity Accelerator 캐시 서버의 차이는 무엇인가요?

가장 중요한 차이는 원래 캐시 서버는 에셋 파이프라인 v1만 지원한다는 점입니다. Unity Accelerator에는 콜라보레이트 서비스를 통한 에셋 파이프라인 v2 및 소스 코드 캐시 지원이 추가되었습니다.

Unity Accelerator는 또한 에셋 파이프라인 v2 또는 콜라보레이트 서비스와 함께 사용할 경우 자동 디스크 스토리지 관리 기능을 지원한다는 장점이 있습니다. 이를 통해 불필요한 에셋이나 소스를 정기적으로 정리해 줍니다. 기존의 캐시 서버를 사용해 협업할 때에는 툴을 추가로 사용해 디스크 공간을 관리해야 했습니다.

세 번째 차이점은 Unity Accelerator가 전송된 바이트, 연결된 에디터 등 유용한 정보를 제공하는 메트릭을 공개한다는 점입니다. 이러한 메트릭은 로컬 네트워크에서 쿼리하는 것과 같은 /metrics형태의 Prometheus 메트릭 값으로 호스팅됩니다.

 

Unity Accelerator 설치 마법사에서 캐시 서버를 설치할 있는 것을 발견했습니다. 새로운 기능이 추가되었다는 의미인가요?

캐시 서버에 새로 추가된 기능은 없습니다. Unity Accelerator 설치 마법사에 캐시 서버를 포함하여 설치 사항을 한곳에서 관리하도록 한 것입니다.

 

에디터가 릴리스될 때마다 캐시 서버도 함께 버전으로 릴리스됩니다. Unity Accelerator 설치 프로그램에는 어떤 버전의 캐시 서버가 사용되나요?

유니티에서는 2019.3에 사용되는 에셋 임포트 파이프라인 v1과 가장 잘 호환되는 버전을 번들로 제공합니다. 이전 버전을 실행 중이며 이를 지원하는 캐시 서버를 이미 보유하고 있는 경우, Unity Accelerator에 번들로 제공된 버전을 설치할 필요는 없습니다.

 

Unity Accelerator 인스턴스는 특정 Unity 버전만 지원하나요, 아니면 동시에 여러 Unity 설치/프로젝트도 지원하나요?

Unity Accelerator는 이전 버전과의 호환성을 유지하며, 2019.3부터 에셋 임포트 파이프라인 v2 및 콜라보레이트 서비스의 모든 버전을 지원합니다. 또한 원활한 지원에 필요한 자체 업그레이드를 자동으로 진행합니다.

 

소스 관리 캐시는 콜라보레이트에서만 지원되나요?

소스 관리는 현재 콜라보레이트에서만 지원되며, 향후 지원 범위를 확대할 수 있을지 검토하고 있습니다.

11 replies on “Unity Accelerator: 한 단계 더 빨라진 협업”

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.

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?

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

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

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!

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).

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

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.

Comments are closed.