Khả năng tương thích và tối ưu hoá trên máy tính cho Google Play Games

Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.

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

Đâ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:

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

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

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.

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:

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.