Google Play Games yêu cầu bạn thực hiện những thay đổi về khả năng tương thích và tối ưu hoá trên máy tính cho trò chơi của mình. Những thay đổi này đảm bảo trò chơi của bạn có thể chạy trên máy tính và mang lại trải nghiệm người dùng tối ưu cho nền tảng.
Ngoài ra, Google Play Games còn có các yêu cầu về đồ hoạ, đầu vào thiết bị và khả năng chơi trên nhiều thiết bị. Để biết thêm thông tin, vui lòng xem bài viết Hướng dẫn bắt đầu sử dụng.
Khi thực hiện những thay đổi về khả năng tương thích và tối ưu hoá trên máy tính (ngoài hỗ trợ x86), bạn có thể thiết lập trò chơi để phát hiện Google Play Games, sau đó tắt hoặc bật các tính năng dành riêng cho nền tảng. Điều này cho phép bạn sử dụng cùng một APK hoặc Gói ứng dụng cho các bản phát hành trên máy tính và thiết bị di động Android.
Sau đây là tóm tắt về các yêu cầu và đề xuất có trên trang này:
- Có chứa cấu trúc ABI (Giao diện nhị phân ứng dụng) x86 (bắt buộc)
- Phát hiện được Google Play Games trong thời gian chạy (nên có)
- Xử lý sự kiện onPause (nên có)
- Cập nhật các thành phần trên giao diện người dùng (bắt buộc)
- Tắt hộp thoại cấp quyền cho ứng dụng Android (bắt buộc)
- Tắt các tính năng và quyền không được hỗ trợ trên Android (bắt buộc)
- Thay thế WebView bằng ý định của trình duyệt (nên có)
- Tắt các API Dịch vụ Google Play không được hỗ trợ (bắt buộc)
- Bật bộ nhớ có giới hạn (bắt buộc)
- Tắt quảng cáo trên thiết bị di động cho máy tính (nên có)
- Di chuyển sang Google Analytics 4 (nên có)
Có chứa cấu trúc ABI (Giao diện nhị phân ứng dụng) x86
Đây là yêu cầu bắt buộc theo quy trình phát hành
Tất cả các thư viện trong trò chơi của bạn đều phải có phiên bản tương thích với ABI (Giao diện nhị phân ứng dụng) x86 để đảm bảo hiệu suất và độ ổn định tốt nhất trên nền tảng. Google Play Games hỗ trợ cả phiên bản 32 bit và 64 bit, nhưng bạn chỉ cần chọn một phiên bản để đáp ứng yêu cầu này.
Biên dịch thư viện
Để đảm bảo khả năng tương thích tốt nhất cho bộ xử lý x86, bạn không nên sử dụng tập lệnh atom khi biên dịch thư viện. Ví dụ: khi sử dụng gcc
, hãy dùng -march=x86
hoặc -march=x86-64
và tránh dùng -march=atom
.
Cấu trúc mục tiêu trong Unity
Một số phiên bản Unity 2019 và 2020 không hỗ trợ cấu trúc x86 trên Android. Hãy đảm bảo bạn đang dùng Unity 2019.4.31f1, 2020.3.19f1 trở lên.
Nếu trò chơi của bạn sử dụng một phiên bản tương thích của công cụ phát triển trò chơi Unity, hãy làm như sau để bật các mục tiêu Android x86/x86-64:
Chuyển đến Player Settings > Other Settings > Configuration > Scripting Backend (Cài đặt người chơi > Cài đặt khác > Cấu hình > Phần phụ trợ tập lệnh) rồi chọn IL2CPP trong trình đơn thả xuống để bật Phần phụ trợ tập lệnh IL2CPP.
Bật các mục tiêu Android x86 cho phiên bản Unity của bạn:
Unity 2018 trở xuống: chuyển đến Player Settings > Other Settings > Target Architecture (Cài đặt người chơi > Cài đặt khác > Cấu trúc mục tiêu) rồi chọn hộp đánh dấu x86.
Bản phát hành Hỗ trợ dài hạn (LTS) Unity 2019 trở lên: chuyển đến Player Settings > Other Settings > Target Architecture (Cài đặt người chơi > Cài đặt khác > Cấu trúc mục tiêu) rồi bật cả x86 (ChromeOS) và x86-64 (ChromeOS).
Để hỗ trợ tối đa cho công cụ phát triển trò chơi, bạn nên bật khả năng hỗ trợ cho cả x86 và x86-64 hoặc chỉ x86-64 để không bị giới hạn trong dung lượng bộ nhớ 32 bit.
Vì Unity 2018 chỉ hỗ trợ mục tiêu x86, nên bạn có thể bỏ qua khả năng hỗ trợ x86-64. Tuy nhiên, bạn không thể phát hành bản dựng đó trên Android do yêu cầu về 64 bit. Trong trường hợp đó, bạn cần duy trì một bản dựng riêng cho Google Play Games.
Phát hiện Google Play Games
Bạn có thể phát hiện nền tảng Google Play Games trong thời gian chạy. Điều này cho phép bạn bật hoặc tắt các tính năng riêng của nền tảng trong trò chơi của mình.
Hãy kiểm tra tính năng hệ thống com.google.android.play.feature.HPE_EXPERIENCE
để
xác định xem trò chơi của bạn có đang chạy trên nền tảng Google Play Games không:
Kotlin
var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
Java
PackageManager pm = getPackageManager(); boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
C#
var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer"); var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity"); var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager"); var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
Xử lý các sự kiện trong vòng đời của Android
Xử lý sự kiện onPause
(c++) là việc quan trọng cần thực hiện trong môi trường Google Play Games. Người chơi sẽ nhìn thấy trò chơi của bạn khi kích hoạt lớp phủ trình mô phỏng, vì vậy, việc không nghe sự kiện onPause
có thể dẫn đến trải nghiệm người dùng không tốt.
Cập nhật giao diện người dùng
Một số thành phần và cử chỉ trên giao diện người dùng không phù hợp với máy tính và cần được cập nhật.
Bắt buộc:
- Thay thế các thao tác trên giao diện người dùng cần hai ngón tay trở lên (cử chỉ nhiều điểm chạm). Ví dụ: bạn nên thay thế cử chỉ chụm để thu phóng và các cử chỉ nhiều điểm chạm khác bằng phương thức nhập tương ứng từ chuột và bàn phím. Để biết thông tin chi tiết về những thay đổi đối với phương thức nhập của thiết bị, hãy xem bài viết Hỗ trợ phương thức nhập.
Đề xuất:
- Tất cả văn bản hiển thị với người dùng nên hiển thị là "nhấp" thay vì "nhấn".
- Danh sách dạng cuộn nên có thanh cuộn.
- Các vùng mà người dùng có thể kéo nên có thanh cuộn hoặc cách thức khác giúp lướt nhanh qua các khoảng lớn.
- Không hiển thị bàn phím có thể nhấp trên màn hình nhập văn bản.
- Tất cả mục nhập văn bản phải nằm trong ranh giới của trường văn bản.
- Thao tác nhấp vào các thành phần hiển thị nên:
- Chấp nhận lượt nhấp ở bất cứ đâu trong ranh giới hiển thị của thành phần.
- Không chấp nhận lượt nhấp ở phạm vi bên ngoài thành phần hiển thị.
- Hộp thoại nên có một nút đóng dễ thấy. Không phát hiện lượt nhấp ở bên ngoài ranh giới hộp thoại.
Tắt hộp thoại quyền
Google Play Games không hiển thị các hộp thoại quyền, vì vậy, bạn không nên tìm cách hiển thị hộp thoại quyền trước khi yêu cầu quyền. Nếu đã hiển thị hộp thoại quyền từ trước, bạn nên cập nhật trò chơi để không hiển thị hộp thoại quyền trên máy tính.
Các tính năng và quyền trên Android không được hỗ trợ
Đây là yêu cầu bắt buộc theo quy trình phát hành
Một số tính năng của Android trên điện thoại di động hoặc máy tính bảng sẽ không thể truy cập được trên máy tính. Cụ thể là các tính năng phần cứng như máy ảnh và các tính năng khác như vị trí của người dùng. Do đó, hãy tránh để trò chơi phụ thuộc vào các tính năng hoặc quyền trên Android không được hỗ trợ. Trên máy tính, nếu trò chơi muốn truy cập vào quyền không được hỗ trợ, thì yêu cầu đó sẽ tự động được coi là không thành công.
Để trò chơi tương thích với máy tính, bạn cần thực hiện những thay đổi sau:
Trong tệp kê khai ứng dụng, hãy thêm
android:required="false"
vào phần khai báo<uses-feature>
cho mọi tính năng mà Google Play Games không hỗ trợ. Bước này chỉ áp dụng cho các tính năng đã được khai báo trong tệp kê khai ứng dụng.Trong trò chơi của bạn, hãy tắt các tính năng phụ thuộc vào các tính năng phần cứng và phần mềm không được hỗ trợ trên máy tính. Nếu đang sử dụng cùng một tệp APK như trò chơi dành cho thiết bị di động, bạn có thể tắt theo điều kiện cho máy tính.
Tắt yêu các cầu quyền trên Android không được hỗ trợ xuất phát từ trò chơi và các tính năng phụ thuộc vào những quyền này. Nếu đang sử dụng cùng một tệp APK với trò chơi dành cho thiết bị di động, bạn có thể thực hiện các thay đổi này cho máy tính theo điều kiện. Bạn không nên thay đổi các quyền đã khai báo trong tệp kê khai.
Để biết thêm thông tin về khả năng tương thích của tệp kê khai ứng dụng, hãy xem hướng dẫn về Khả năng tương thích với tệp kê khai ứng dụng đối với Chromebook.
Yêu cầu về kiểm thử chức năng
Hãy xoá các tính năng phần cứng này trước khi gửi bản thử nghiệm đầu tiên đến Google Play Console:
android.hardware.wifi
android.hardware.bluetooth
android.hardware.camera
android.hardware.location
android.hardware.microphone
Để biết thêm thông tin về cách xoá tính năng android.hardware.wifi
, hãy xem bài viết Theo dõi trạng thái kết nối và định mức kết nối.
Để xem danh sách đầy đủ các tính năng không được hỗ trợ, hãy xem hướng dẫn về khả năng tương thích với tệp kê khai ứng dụng cho Chromebook.
Yêu cầu về kiểm thử chất lượng
Các tính năng phần cứng thường dùng này không tương thích với máy tính. Vì vậy, bạn phải xoá các tính năng này trước khi gửi chính thức cho Google Play Console:
android.hardware.audio.pro
android.hardware.bluetooth
android.hardware.camera
android.hardware.consumerir
android.hardware.location
android.hardware.microphone
android.hardware.nfc
android.hardware.sensor.light
android.hardware.sensor.accelerometer
android.hardware.sensor.barometer
android.hardware.sensor.compass
android.hardware.sensor.gyroscope
android.hardware.sensor.proximity
android.hardware.telephony
android.hardware.touchscreen
android.hardware.usb.accessory
android.hardware.usb.host
android.hardware.wifi
android.software.midi
Các quyền không được hỗ trợ
Các quyền thường dùng sau đây không được hỗ trợ trên máy tính. Vì vậy, trò chơi của bạn phải tắt các quyền đó cho Google Play Games:
android.permission.ACCESS_COARSE_LOCATION
android.permission.ACCESS_FINE_LOCATION
android.permission.ACCESS_WIFI_STATE
android.permission.BLUETOOTH
android.permission.CAMERA
android.permission.FOREGROUND_SERVICE
android.permission.GET_ACCOUNTS
android.permission.INSTALL_PACKAGES
android.permission.READ_CONTACTS
android.permission.READ_EXTERNAL_STORAGE
android.permission.READ_PHONE_STATE
android.permission.RECEIVE_BOOT_COMPLETED
android.permission.RECORD_AUDIO
android.permission.REQUEST_INSTALL_PACKAGES
android.permission.SYSTEM_ALERT_WINDOW
android.permission.USE_CREDENTIALS
android.permission.WRITE_EXTERNAL_STORAGE
android.permission.WRITE_SETTINGS
com.google.android.gms.permission.ACTIVITY_RECOGNITION
Trang web bên ngoài và WebView
Một ý định của trình duyệt sẽ tải trên trình duyệt web gốc của máy tính thay vì một trình duyệt trong môi trường Google Play Games. Đây là trải nghiệm lý tưởng cho người chơi trong hầu hết các tình huống.
Để dễ dàng chuyển đổi, Google Play Games hỗ trợ WebView. Vì được mở trong môi trường Google Play Games nên WebView sẽ thiếu trình duyệt đặc trưng dành cho máy tính. Nếu trước đó đã sử dụng WebView
để chia sẻ Điều khoản dịch vụ, Chính sách quyền riêng tư hoặc nội dung tương tự khác, thì bạn nên gọi một ý định của trình duyệt.
Tắt các Google Play Service API (API Dịch vụ Google Play) không được hỗ trợ
Đây là yêu cầu bắt buộc theo quy trình phát hành
Google Play Games sẽ phân phối biến thể Dịch vụ Google Play riêng chỉ chứa một nhóm nhỏ Google Play Service API (API Dịch vụ Google Play). Bạn cần xác nhận rằng ứng dụng của bạn không phụ thuộc nhiều vào các mô-đun đã bị xoá hoặc không được hỗ trợ trên máy tính. Hãy lưu ý rằng một số mô-đun có thể có sẵn nhưng chức năng của các mô-đun này không phải lúc nào cũng được hỗ trợ. Ví dụ: Firebase Cloud Messaging sẽ không hoạt động khi Google Play Games đóng.
Mô-đun được hỗ trợ
Những mô-đun này hiện có sẵn và được Google Play Games hỗ trợ, cùng với các gói hỗ trợ tính năng bổ sung:
- Đăng nhập bằng Google (không bao gồm chuyển tài khoản, SmartLock, Xác minh qua SMS, Tính toán độ phức tạp của mật khẩu)
- Cronet
- Dịch vụ trò chơi của Google Play
- Tasks
- Vision
- Google Pay
Hỗ trợ có giới hạn
Các mô-đun sau đây chỉ hoạt động một phần. Các mô-đun này sẽ được Google Play Games hỗ trợ ở mức tối đa, nhưng chúng tôi không thể đảm bảo chức năng của chúng.
- Google AdMob (Quảng cáo trên thiết bị di động, Mã quảng cáo)
- Gửi thông báo qua đám mây của Google (Không dùng nữa, hãy sử dụng Gửi thông báo qua đám mây của Firebase)
- Xác thực Firebase (Tính năng xác thực số điện thoại không hoạt động)
- Gửi thông báo qua đám mây của Firebase
- Thư viện chung Firebase
- Firebase ML
- Cấu hình từ xa Firebase
- Firebase Analytics
Không được hỗ trợ
Các mô-đun này không được hỗ trợ trong Google Play Games nhưng khi gặp lỗi sẽ không gây ra sự cố trong Google Play Games:
- Google Analytics (Không dùng nữa, hãy sử dụng Firebase Analytics)
- Google Cast
- Awareness API
- Drive (Không dùng nữa, sẽ sớm bị xoá)
- FIDO
- Cơ sở dữ liệu theo thời gian thực của Firebase
- Firestore
- Thử nghiệm A/B trong Firebase
- Google Fit
- API Địa chỉ
- Instant Apps API
- API Vị trí
- SDK Google Maps
- Chia sẻ lân cận
- Toàn cảnh
- Địa điểm
- Google+
- SafetyNet (Không dùng nữa, vui lòng điền vào biểu mẫu bày tỏ sự quan tâm để chọn tham gia API Tính toàn vẹn của Play sắp tới)
- Trình quản lý thẻ của Google
- Wear OS
Hỏng
Đây là yêu cầu bắt buộc theo quy trình phát hành
Bạn không được dùng những mô-đun này trên máy tính vì như vậy có thể gây ra hành vi không mong muốn trong Google Play Games.
Bật tính năng bộ nhớ có giới hạn
Đây là yêu cầu bắt buộc theo quy trình phát hành
Phần này áp dụng nếu trò chơi của bạn đọc hoặc ghi vào bộ nhớ ngoài. Việc thực thi bộ nhớ có giới hạn là bắt buộc, đóng vai trò như một cách khác để đọc và ghi vào bộ nhớ. Khi làm như vậy, bạn không cần phải đưa ra lời nhắc cho người chơi về các quyền truy cập thông tin nhạy cảm này:
android.permission.READ_EXTERNAL_STORAGE
android.permission.WRITE_EXTERNAL_STORAGE
Để biết thêm thông tin về bộ nhớ có giới hạn, hãy xem:
Tắt quảng cáo trên thiết bị di động trong phiên bản trò chơi dành cho máy tính
Đây là yêu cầu bắt buộc theo quy trình phát hành
Để tối ưu hoá trò chơi cho máy tính, bạn phải tắt quảng cáo trên thiết bị di động trong phiên bản dành cho máy tính vì những quảng cáo đó không tương thích với máy tính. Điều này áp dụng cho tất cả đơn vị quảng cáo do SDK quảng cáo trên thiết bị di động cung cấp. Bạn không cần thực hiện bất kỳ thay đổi nào đối với quảng cáo trong phiên bản trò chơi dành cho thiết bị di động. Bạn nên dùng cờ tính năng để chỉ áp dụng các thay đổi cho phiên bản trò chơi dành cho máy tính. Bạn vẫn có thể giữ lại quảng cáo trên thiết bị di động cho ChromeOS.
Khi xoá quảng cáo trên thiết bị di động, bạn cần thực hiện các bước sau đây:
Tắt tất cả đơn vị quảng cáo trên thiết bị di động, bao gồm biểu ngữ, quảng cáo xen kẽ và quảng cáo có tặng thưởng.
Tắt các tính năng phụ thuộc vào quảng cáo có tặng thưởng trong trò chơi. Ví dụ: bạn có thể tắt hoặc xoá hoàn toàn nút mở tính năng cho phép người dùng xem quảng cáo dạng video để kiếm tiền trong trò chơi.
Analytics
Các sản phẩm Google Analytics cũ không hoạt động trong Google Play Games. Nếu trường hợp này áp dụng cho trò chơi của bạn, bạn nên chuyển sang Google Analytics 4.
Điều này sẽ chỉ ảnh hưởng đến trò chơi nếu bạn đang dùng Google Analytics 360. Nếu bạn đang dùng Firebase SDK để theo dõi các sự kiện phân tích trong trò chơi của mình và có thể thấy trò chơi dưới dạng một tài sản trong Google Analytics Console, thì bạn không cần làm gì thêm.