Intervensi Mode Game adalah pengoptimalan khusus game yang ditetapkan oleh produsen peralatan asli (OEM) untuk meningkatkan performa game yang tidak lagi diupdate oleh developer. Contoh:
- Menggunakan pengubahan ukuran backbuffer WindowManager.
- Menggunakan ANGLE sebagai ganti driver GLES native.
Anda dapat membuat game mendukung dan mengelola Game Mode API, agar dapat mengganti intervensi Mode Game yang disediakan oleh OEM.
API Mode Game dan intervensi tersedia di:
- Perangkat Android 12 tertentu
- Perangkat yang menjalankan Android 13 atau yang lebih baru
Setiap game dapat:
- Mengimplementasikan perilaku Game Mode API,
- Usulkan setelan intervensi Mode Game ke OEM, atau
- Memilih tidak ikut intervensi Mode Game secara eksplisit.
Latar belakang
Bagian ini menjelaskan tindakan intervensi Mode Game dan cara mengoptimalkan game untuk setiap mode.
Mengubah ukuran backbuffer WindowManager
Intervensi pengubahan ukuran backbuffer WindowManager dapat mengurangi pemuatan GPU perangkat. Hal ini juga dapat mengurangi konsumsi baterai saat game disetel ke kecepatan frame target.
Mengaktifkan pengubahan ukuran dapat menghasilkan pengurangan hingga 30% GPU dan 10% dari keseluruhan penggunaan daya sistem. Hasilnya dapat bervariasi berdasarkan perangkat yang digunakan, kondisi lingkungan, dan faktor lainnya, seperti pemrosesan bersamaan.
Game yang tidak berjalan dan terikat GPU kemungkinan akan mengalami kecepatan frame yang lebih tinggi selama pemuatan GPU yang lebih sedikit.
Sebaiknya semua game berjalan dengan baik, karena kecepatan frame yang tidak merata berdampak signifikan pada persepsi pengguna terhadap performa.
Throttling FPS
Throttling FPS Android adalah intervensi Mode Game yang membantu game berjalan pada kecepatan frame yang lebih stabil untuk mengurangi konsumsi baterai. Intervensi ini tersedia di Android 13 atau yang lebih baru. Untuk informasi selengkapnya, lihat Ringkasan throttling FPS.
Mengevaluasi intervensi Mode Game
Bagian ini menggunakan perintah adb.
Menyiapkan mode
Anda harus memilih tidak ikut Mode Game pada file konfigurasi Mode Game aplikasi sebelum menguji intervensi Mode Game. Jika tidak, platform akan mengabaikannya dan hanya mengikuti pengoptimalan dalam game.
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:supportsBatteryGameMode="false"
android:supportsPerformanceGameMode="false"
/>
(Opsional) Mencadangkan konfigurasi perangkat yang ada
Untuk Pixel atau perangkat lainnya, mungkin ada konfigurasi intervensi game yang sudah ada di konfigurasi perangkat Anda. Anda dapat mengkueri konfigurasi menggunakan perintah:
adb shell device_config get game_overlay <PACKAGE_NAME>
Jika kueri menampilkan null
, abaikan konfigurasi yang sudah ada. Jika tidak, simpan dan reset ke setelan default setelah evaluasi.
Mengevaluasi Intervensi
Untuk mengevaluasi intervensi pengubahan ukuran backbuffer WindowManager, gunakan perintah berikut untuk menetapkan nilai pengubahan ukuran buffer WindowManager yang berbeda di seluruh mode game.
adb shell device_config put game_overlay <PACKAGE_NAME>
mode=2,downscaleFactor=0.9:mode=3,downscaleFactor=0.5
Pada contoh di atas, mode=2
adalah “Performa” dan mode=3
adalah “Penghemat Baterai”. Nilai downscaleFactor
ditentukan sebagai persen yang
berlaku untuk setelan pengubahan ukuran (misalnya, 0,7 adalah 70% dan 0,8 adalah 80%). Pengubahan ukuran sebesar 90%
(0,9) hampir dapat diabaikan, sedangkan 50% (0,5) berarti signifikan.
Peringatan: Ukuran proses turunan mungkin tidak diubah dengan benar di Android 12. Secara khusus, pastikan toast dan pop-up dirender dengan benar. Sebaiknya batasi setelan ubah ukuran menjadi minimal 70%.
Setelah nilai pengubahan ukuran baru disiapkan, beralihlah di antara mode game untuk melihat pengaruh game Anda terhadap intervensi pengubahan ukuran backbuffer WindowManager:
adb shell cmd game mode [standard|performance|battery] <PACKAGE_NAME>
Pastikan Anda memulai ulang game setelah setiap pemilihan mode game. Intervensi downscaling memerlukan mulai ulang aplikasi.
Memilih tidak ikut intervensi
Anda dapat mengontrol apakah intervensi diterapkan pada game atau tidak dengan memilih untuk tidak ikut serta. Setiap interval memiliki setelan untuk tidak ikut sertanya sendiri.
- File XML konfigurasi yang sama dengan yang digunakan untuk mengontrol keikutsertaan dan ketidakikutsertaan Mode Game juga digunakan untuk setelan intervensi:
<?xml version="1.0" encoding="UTF-8"?>
<game-mode-config
xmlns:android="http://schemas.android.com/apk/res/android"
android:allowGameDownscaling="false"
android:allowGameFpsOverride="false"
/>
- Buat ulang dan kirim ulang game Anda untuk memilih tidak ikut.
Secara default, intervensi yang ditetapkan oleh produsen peralatan asli (OEM) akan digunakan kecuali jika Anda secara eksplisit memilih untuk tidak menggunakan intervensi tersebut dalam game.
Referensi
Untuk informasi cara mengukur dan mengoptimalkan performa game lebih lanjut:
System Profilers - analisis penggunaan CPU dan panggilan grafis.
Android GPU Inspector - grafis profil di Android.
Library Frame Pacing Android - membantu game OpenGL dan Vulkan mencapai rendering yang lancar dan kecepatan frame yang tepat.
Android Performance Tuner - mengukur dan mengoptimalkan kecepatan frame dan grafik di seluruh perangkat Android dalam skala besar.
Power Profiler - temukan aplikasi Anda yang menggunakan lebih banyak energi daripada yang diperlukan.