Triển khai quá trình phân phối thành phần trên đám mây

Khi thu nhỏ ứng dụng cho phù hợp với yêu cầu về kích thước, trước tiên, hãy thử các kỹ thuật tối ưu hoá kích thước tệp APK tiêu chuẩn. Nếu cần giảm thêm kích thước, bạn có thể phải dựa vào tính năng phân phối thành phần trên đám mây. Tài liệu này mô tả cách chuẩn bị tài sản để phân phối trên đám mây và các lựa chọn hỗ trợ của nhiều công cụ phát triển trò chơi. Mặc dù hướng dẫn trên trang này tập trung vào trò chơi, nhưng các nguyên tắc này sẽ áp dụng cho mọi ứng dụng chứa tài sản lớn.

Chuẩn bị

Khi cân nhắc việc chia nhỏ ứng dụng của bạn để phân phối tài sản trên đám mây, hãy cân nhắc cách bạn có thể chia tệp ứng dụng của mình thành nhiều phần dựa trên thời điểm cần thiết để người dùng có thể sử dụng các tệp đó. Thời điểm này thường thuộc 3 dạng sau: luôn cần, cần thiết khi phát hành và cần thiết sau này.

Luôn cần có

Một số tài sản khó phân tách thành các khối nhỏ hơn hoặc cần phải đi kèm trong tệp APK cơ sở. Ví dụ: mã trò chơi và các phần phụ thuộc công cụ hoặc thư viện của trò chơi đó. Mặc dù Google Play Core hỗ trợ gói ứng dụng cho mã, nhưng nhiều công cụ không hỗ trợ tải mã xuống sau này.

Cần thiết khi khởi chạy

Sau khi trò chơi bắt đầu, người dùng có thể chơi ngay lập tức. Google Play Instant yêu cầu người dùng có thể bắt đầu chơi trò chơi của bạn trong chưa đầy 15 giây qua kết nối LTE hoặc 4G (xem danh sách kiểm tra Google Play Instant). Do đó, sau khi khởi chạy, hãy hạn chế để kích thước tệp tải xuống phụ chỉ ở mức cần thiết để hỗ trợ trải nghiệm ban đầu. Ví dụ: một nội dung tải xuống nhanh ngay sau khi khởi chạy có thể bao gồm thành phần địa điểm và cấp trò chơi đầu tiên, hoặc bất kỳ mã nào cần thiết để chạy vài phút đầu tiên khi chơi.

Cần sau

Mọi thứ bạn có đủ khả năng để tải xuống sau này ở chế độ nền nếu cần sẽ thuộc danh mục này. Danh mục này bao gồm hầu hết tài sản dành cho các trò chơi lâu dài. Việc tải các thành phần này xuống sau này sẽ giúp giảm kích thước ứng dụng xuống càng nhỏ càng tốt.

Hỗ trợ công cụ

Phân phối tài sản trên đám mây là cách chính để cho phép trò chơi vượt quá giới hạn 15 MB đối với Trò chơi tức thì. Khả năng hỗ trợ tải tài sản xuống sẽ khác nhau tuỳ theo công cụ phát triển trò chơi. Xem các trường hợp phổ biến nhất bên dưới, cũng như các lựa chọn lưu trữ tài sản.

Xin lưu ý rằng việc có ít tài sản cần thiết hơn khi khởi chạy cho phép người dùng chơi trò chơi nhanh hơn. Điều này đồng nghĩa với việc giảm tỷ lệ bỏ ngang và tỷ lệ giữ chân người chơi tốt hơn trong lần phát hành đầu tiên.

Play Feature Delivery (thông qua Gói ứng dụng)

Nếu phát hành ứng dụng dưới dạng gói ứng dụng (đây là phương thức ưu tiên), bạn có thể dùng mô-đun tính năng để tìm nạp tài nguyên bổ sung ngoài tệp APK cơ sở. Đối với ứng dụng tức thì, mỗi mô-đun tính năng phải đặt dist:instant="true" trong tệp kê khai. Bạn không nên sử dụng thuộc tính dist:on-demand; thuộc tính này chủ yếu được dùng cho các mô-đun theo yêu cầu trong các tệp APK đã cài đặt. Ngoài ra, mỗi mô-đun tính năng phải nằm dưới giới hạn tệp APK tức thì là 15 MB, bất kể mô-đun đó có chứa mã hay không. Nếu không duy trì từng mô-đun trong giới hạn này, thì việc phát hành lên kênh alpha hoặc kênh phát hành sẽ không được hỗ trợ. Sau khi định cấu hình đúng cách, bạn có thể tìm nạp các mô-đun tính năng trong thời gian chạy bằng thư viện PlayCore.

Cocos Creator

Cocos đã hỗ trợ tính năng phân phối thành phần trên đám mây kể từ phiên bản 2.0.4. Cocos tải thành phần xuống theo yêu cầu, hiển thị phần giữ chỗ nếu thành phần chưa được tải xuống kịp thời. Cocos tạo ra các tệp tài sản phải được lưu trữ bằng một số dịch vụ trực tuyến vì Cocos không cung cấp một trong những dịch vụ riêng của Cocos.

Unity

Tính năng phân phối qua đám mây được hỗ trợ trong Trình bổ trợ Unity Google Play tức thì cho Unity phiên bản 5.6, 2017.4 hoặc 2018.2. Các phiên bản sau của Unity mang lại nhiều lợi ích hơn cho việc loại bỏ công cụ, vì vậy, việc di chuyển sang các phiên bản này để giải phóng thêm dung lượng có thể sẽ hữu ích. Các thành phần trên đám mây của Unity được lưu trữ trong các tệp AssetBundle mà Unity tạo cho bạn. Việc tải các thành phần này lên máy chủ đám mây sẽ cho phép phân phối thành phần qua đám mây vì Unity có tính năng hỗ trợ sẵn có để tải các gói thành phần xuống.

Các công cụ khác

Cho dù bạn sử dụng một công cụ tuỳ chỉnh hay một bộ sưu tập thư viện gốc, lựa chọn của bạn đều có thể hỗ trợ tải các thành phần xuống từ đám mây ngay từ đầu. Nếu có đủ tài sản cần thiết để tải xuống từ đám mây, bạn cần lập trình hoặc tích hợp một cách để tải tài sản theo yêu cầu xuống cho trò chơi của mình. Lưu trữ Firebase hoặc API Lưu trữ đám mây của Firebase là những nơi phù hợp để bắt đầu. Một số công cụ cung cấp tính năng tìm nạp tệp HTTPS đơn giản, cũng có thể đủ cho nhu cầu của bạn.

Lưu trữ tài sản

Nếu không sử dụng gói ứng dụng trên Google Play để tải tài sản xuống thông qua Play, bạn sẽ cần lưu trữ tài sản ở nơi khác. Bạn có thể lưu trữ các dịch vụ này bằng bất kỳ dịch vụ nào bạn muốn miễn là dịch vụ đó có phạm vi phân phối và khả năng sử dụng toàn cầu hợp lý. Người dùng ứng dụng Google Play Games chơi trên khắp thế giới, vì vậy, tài sản lưu trữ trên đám mây cần được nhanh chóng phân phát cho họ ở bất kỳ nơi nào.