클라우드 애셋 전송 구현

앱을 크기 요구사항에 맞게 축소할 때는 먼저 표준 APK 크기 최적화 기법을 사용해 보세요. 크기를 더 줄여야 한다면 클라우드 애셋 전송을 사용해야 할 수도 있습니다. 이 문서에서는 클라우드 전송을 위한 애셋 준비 방법과 다양한 게임 엔진의 지원 옵션을 설명합니다. 이 페이지에서는 게임을 중점적으로 설명하지만 이 원칙은 대규모 애셋이 포함된 모든 앱에 적용됩니다.

준비

클라우드 애셋 전송을 위해 앱을 분리할 경우 사용자에게 제공되어야 하는 시점에 따라 앱 파일을 섹션으로 분할하는 방법을 고려하세요. 대개 이 시점은 항상 필요함, 시작 시 필요함, 나중에 필요함이라는 세 가지 카테고리로 구분됩니다.

항상 필요함

작은 블록으로 분리하기 어렵거나 기본 APK에 번들로 묶어야 하는 애셋이 있습니다. 그 예로는 게임 코드와 라이브러리 또는 엔진 종속 항목이 있습니다. Google Play Core는 코드용 App Bundle을 지원하는 반면, 대다수 엔진은 나중에 다운로드된 코드를 지원하지 않습니다.

출시 시 필요함

게임이 시작되면 사용자는 즉시 게임을 할 수 있어야 합니다. Google Play 인스턴트에서는 사용자가 LTE 또는 4G 연결을 통해 15초 이내에 게임을 시작할 수 있어야 합니다(Google Play 인스턴트 체크리스트 참조). 따라서, 초기 환경을 지원하는 데 필요한 만큼만 용량을 유지하도록 시작 후에는 추가 다운로드를 제한합니다. 예를 들어, 시작 직후의 패스트 팔로우 다운로드에는 최초 게임 레벨 및 위치 애셋 또는 게임 플레이를 처음 몇 분 실행하는 데 필요한 코드 등이 포함될 수도 있습니다.

나중에 필요함

필요에 따라 나중에 백그라운드로 다운로드할 수 있는 모든 항목이 이 카테고리에 속합니다. 장시간 플레이하는 게임의 대다수 애셋이 이 카테고리에 포함됩니다. 이러한 애셋은 나중에 다운로드하는 것이 앱 크기를 최소화하는 데 도움이 됩니다.

엔진 지원

클라우드 애셋 전송은 게임에서 인스턴트 게임의 15MB 제한을 초과할 수 있는 기본적 방법입니다. 애셋 다운로드 지원은 게임 엔진에 따라 다릅니다. 애셋 호스팅 옵션과 함께 아래에서 가장 일반적인 사례를 확인하세요.

시작 시 필요한 애셋이 적을수록 사용자가 게임에 더 빠르게 참여할 수 있으므로 초기 실행 시의 이탈률이 낮아지고 플레이어 보존율이 향상됩니다.

Play 기능 전송(App Bundle을 통해)

앱을 App Bundle로 게시하면(선호되는 방법임), 기능 모듈을 사용하여 기본 APK 외에 추가 리소스를 가져올 수 있습니다. 인스턴트 앱의 경우 각 기능 모듈에서 매니페스트에 dist:instant="true"를 설정해야 합니다. dist:on-demand 속성은 사용하지 말아야 합니다. 이 속성은 주로 설치된 APK의 주문형 모듈에 사용됩니다. 또한, 모듈의 코드 포함 여부와 관계없이 각 기능 모듈은 인스턴트 APK 제한인 15 MB 미만이어야 합니다. 각 모듈을 이 제한 아래로 유지하지 않으면 알파 또는 출시 트랙에 게시할 수 없습니다. 적절하게 구성한 후에는 PlayCore 라이브러리를 사용하여 런타임에 기능 모듈을 가져올 수 있습니다.

Cocos 크리에이터

Cocos는 버전 v2.0.4부터 클라우드 애셋 전송을 지원했습니다. Cocos는 요청 시 애셋을 다운로드하고, 애셋이 제시간에 다운로드되지 않으면 자리표시자를 렌더링합니다. Cocos는 자체 온라인 서비스를 제공하지 않으므로 일부 온라인 서비스에서 호스팅해야 하는 애셋 파일을 생성합니다.

Unity

클라우드 전송은 Unity 버전 5.6, 2017.4 또는 2018.2의 Unity Google Play 인스턴트 플러그인에서 지원됩니다. 최신 버전의 Unity가 엔진 스트리핑에 더 많은 이점을 제공하므로 더 많은 공간 확보를 위해 이전하는 것이 좋습니다. Unity 클라우드 애셋은 Unity에서 생성하는 AssetBundle 파일에 호스팅됩니다. Unity에서 기본적으로 애셋 번들 다운로드를 지원하므로 클라우드 서버에 이러한 애셋을 업로드하면 클라우드 애셋 전송을 사용할 수 있습니다.

기타 엔진

맞춤 엔진을 사용하든 네이티브 라이브러리 모음을 사용하든 클라우드에서 즉시 애셋을 다운로드할 수 있습니다. 클라우드에서 다운로드해야 하는 애셋이 많으면 요청 시 게임의 애셋을 다운로드할 수 있는 방법을 통합하거나 코드로 지정해야 합니다. 처음에는 Firebase 호스팅 또는 Firebase Cloud Storage API를 사용하는 것이 좋습니다. 일부 엔진에서는 간단한 HTTPS 파일 가져오기 기능을 제공하며 이 기능만으로 필요한 부분을 충분히 해결할 수도 있습니다.

애셋 호스팅

Play를 통해 애셋을 다운로드하는 데 Google Play App Bundle을 사용하지 않는다면 애셋을 다른 곳에 호스팅해야 합니다. 적합한 글로벌 배포 기능과 가용성이 확보된 서비스라면 어떤 서비스를 이용하든 애셋을 호스팅할 수 있습니다. Google Play 게임 앱 사용자는 전 세계에서 플레이하므로, 클라우드에 호스팅된 애셋을 위치에 상관없이 사용자에게 신속히 제공해야 합니다.