Google Play Games trên máy tính 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 trên máy tính còn 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 khả năng hỗ trợ x86-64), bạn có thể thiết lập trò chơi để phát hiện Google Play Games trên máy tính, 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:
- Bao gồm ABI (Giao diện nhị phân ứng dụng) x86-64 (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)
- Di chuyển sang Google Analytics 4 (nên thực hiện)
Bao gồm cấu trúc ABI x86-64
Đây là yêu cầu bắt buộc theo quy trình phát hành
Tất 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-64 để đảm bảo hiệu suất và độ ổn định tốt nhất trên nền tảng.
Nếu về mặt kỹ thuật, trò chơi của bạn không thể gửi tệp thực thi 64 bit x86, thì bạn phải liên hệ với nhóm xem xét về trường hợp ngoại lệ. Trò chơi của bạn không đạt được toàn bộ chứng nhận do có một trường hợp ngoại lệ, nhưng có thể được đưa vào danh mục dưới dạng một trò chơi "có thể chơi được".
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-64, 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-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-64 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-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-64 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. Vì Unity 2018 chỉ hỗ trợ các mục tiêu x86, nên bạn sẽ không thể tạo x86-64. Bản dựng này sẽ yêu cầu một ngoại lệ từ nhóm đánh giá. Vui lòng liên hệ với người liên hệ của Google để yêu cầu một ngoại lệ x86.
Bản phát hành Hỗ trợ dài hạn (LTS) Unity 2019 trở lên: chuyển đến phần Player Settings > Other Settings > Target Architectures (Cài đặt người chơi > Cài đặt khác > Cấu trúc mục tiêu rồi bật x86-64 (ChromeOS).
Phát hiện Google Play Games trên máy tính
Bạn có thể phát hiện nền tảng Google Play Games trên máy tính trong thời gian chạy. Điều này giú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 trên máy tính hay 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 trên máy tính. 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 được 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ầu hết các hộp thoại quyền
Ngoại trừ quyền truy cập vào micrô, Google Play Games trên máy tính không hiện hộp thoại quyền. Vì vậy, bạn không nên tìm cách hiện hộp thoại quyền hoặc yêu cầu cấp quyền trong thời gian chạy. Nếu đã hiện hộp thoại quyền từ trước, bạn nên cập nhật trò chơi để không hiện hộp thoại quyền trên máy tính nữa.
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 phần cứng phổ biến trên điện thoại di động và máy tính bảng không có trên máy tính. Điều này bao gồm các tính năng phần cứng (như máy ảnh) hoặc thông tin vị trí của người chơi. Nếu bất cứ trò chơi nào yêu cầu các tính năng còn thiếu, người chơi sẽ không thể tải trò chơi đó xuống và cài đặt trên máy tính của họ. Mọi yêu cầu tải tính năng còn thiếu xuống máy tính sẽ tự động không thành công.
Để xem danh sách đầy đủ các tính năng hiện có, hãy nhập:
adb shell pm list features
Để 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:
Cần phải đánh dấu các tính năng là không bắt buộc trong tệp kê khai ứng dụng bằng cách thêm
android:required="false"
vào lệnh khai báo<uses-feature>
. 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.Không thử dùng các tính năng còn thiếu trong thời gian chạy. Nếu bạn đang sử dụng cùng một APK trên cả phiên bản dành cho thiết bị di động và máy tính, hãy phát hiện môi trường máy tính trong thời gian chạy và tránh các đường dẫn mã có liên quan.
Không yêu cầu quyền không được hỗ trợ trên Android trong thời gian chạy. Nếu bạn đang sử dụng cùng một APK trên cả phiên bản dành cho thiết bị di động và máy tính, hãy phát hiện môi trường máy tính trong thời gian chạy và tránh các đường dẫn mã có liên quan. Bạn không cần phải cập nhật 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 của 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
Vì lý do về tính tương thích, một số tính năng trong số này có thể được liệt kê là được hỗ trợ khi chạy pm list features
, nhưng sẽ không được triển khai đầy đủ. Để 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 đối với 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.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 trên máy tính:
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.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 trên máy tính. Đâ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 trên máy tính có hỗ trợ WebView. Vì được mở trong môi trường Google Play Games trên máy tính 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 trên máy tính 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ụ: Giải pháp gửi thông báo qua đám mây của Firebase sẽ không hoạt động khi Google Play Games trên máy tính đóng.
Mô-đun được hỗ trợ
Những mô-đun này hiện có sẵn và được Google Play Games trên máy tính 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 trên máy tính 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.
- 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ợ
Những mô-đun này không được hỗ trợ trong Google Play Games trên máy tính nhưng khi gặp lỗi sẽ không gây ra sự cố trong Google Play Games trên máy tính:
- 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 trên máy tính.
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:
Số liệu phân tích
Các sản phẩm Google Analytics cũ không hoạt động trong Google Play Games trên máy tính. 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.