Call of Duty: Warzone Mobile adalah game aksi orang pertama dalam franchise Call of Duty yang populer. Realisasi seluler dari game konsol dan PC yang sangat populer memanfaatkan API tingkat rendah seluler untuk memberikan pengalaman pemain yang luar biasa.
Dari perspektif teknis, tujuan implementasi seluler adalah untuk mendukung berbagai perangkat seluler Android sekaligus menjaga implementasi tersebut sedekat mungkin dengan versi konsol, serta memastikan pipeline grafis dan toolchain tetap kompatibel dengan konten dan judul PC dan konsol saat ini.
Mesin Call of Duty menerapkan sinkronisasi, alokasi memori, dan penjadwalan untuk pengelolaan pengiriman rendering menggunakan sistem yang disebut perender grafik tugas, yang menentukan pekerjaan yang akan dijalankan di GPU dan menentukan resource yang diperlukan. Lebih khusus lagi, sistem adalah grafik render dengan tugas, resource, dan dependensi yang ditentukan dalam skrip tingkat tinggi yang diproses pada waktu pemuatan untuk menghasilkan pengurutan pekerjaan yang optimal yang akan dieksekusi di GPU dan menyediakan resource yang digunakan pada waktu pengiriman frame.
Vulkan, API grafis 3D lintas platform modern, dipilih sebagai antarmuka rendering backend untuk perender grafik tugas di Android.
![](https://developer.android.com/static/images/cards/distribute/stories/codwzm_figure1.jpg?authuser=8&hl=id)
Manfaat Vulkan API
Untuk mempertahankan gaya visual Call of Duty yang unik dan mendukung progres bersama yang lebih baik antara Call of Duty: Warzone Mobile serta konsol dan PC-nya, game ini menggunakan API rendering yang mirip dengan implementasi konsol dan PC yang sudah ada. Di Android, Vulkan memungkinkan Activision membangun alat, pipeline, dan shader yang sudah ada serta mendukung konten yang dibuat oleh artis, tanpa harus merombak seluruh stack software.
Mencoba mencapai hal ini dengan perender yang sama sekali berbeda akan memerlukan biaya yang mahal, dan mencoba mendukung API grafis generasi lama untuk pipeline Call of Duty akan berdampak terlalu besar pada kumpulan fitur. Activision menentukan bahwa Vulkan adalah pilihan yang paling tepat untuk membawa fitur lengkap ke Android sekaligus meminimalkan dampaknya pada overhead pengembangan secara keseluruhan. Vulkan telah mendapatkan dukungan yang signifikan di antara produsen perangkat Android, sehingga API ini juga menjadi pilihan yang tepat untuk pengembangan di masa mendatang.
Perangkat yang tidak memiliki hardware atau driver berkemampuan Vulkan biasanya lebih lama dan tidak cukup kuat untuk menjalankan game. Jadi, selain Vulkan sebagai kesesuaian teknis untuk pipeline konten dan mesin, dukungan Vulkan sebagai persyaratan hardware berfungsi sebagai filter performa.
Kompatibilitas dengan API platform yang ada
Secara konseptual, Vulkan mirip dengan API yang sudah ada dan digunakan untuk Call of Duty: Warzone, dengan pengelolaan resource eksplisit, aliasing memori, pipeline komputasi serupa, dan akses resource bindless. Dengan kemiripan tersebut, Activision dapat menjaga perender secara struktural konsisten dengan perender konsol dan PC, yang hanya memerlukan perubahan backend untuk antarmuka dengan Vulkan.
Dukungan untuk shader berbasis HLSL yang ada dengan set fitur lengkap menggunakan DXC untuk kompilasi SPIR-V memungkinkan Android berintegrasi ke pipeline build Activision yang ada. Proses ini bukan tanpa tantangannya, tetapi masih lebih bermanfaat daripada penulisan ulang dan biaya yang timbul untuk mempertahankan beberapa versi atau bahasa.
![](https://developer.android.com/static/images/cards/distribute/stories/codwzm_figure2.jpg?authuser=8&hl=id)
![](https://developer.android.com/static/images/cards/distribute/stories/codwzm_figure3.jpg?authuser=8&hl=id)
Fitur Vulkan yang digunakan di Call of Duty: Warzone Mobile
- Aliasing resource dan kontrol
barrier eksplisit memungkinkan rendering grafik tugas
secara signifikan mengurangi persyaratan memori untuk target render dibandingkan dengan alokasi
statis.
- Fleksibilitas memungkinkan penggunaan praktik mobile-friendly yang lancar dalam tugas render.
- Penerusan render sebagai fitur inti memungkinkan perender membuat keputusan yang optimal untuk arsitektur GPU seluler yang umum. Sebagian besar keputusan ini juga memberikan manfaat di platform lain.
- Resolusi scene dinamis didukung secara default oleh grafik tugas, sehingga memungkinkan beberapa kontrol performa dan konsumsi daya.
- Pipeline GPU lengkap dengan pemusnahan berbasis komputasi yang ekstensif memungkinkan
peningkatan kompleksitas scene yang signifikan.
- Menyeimbangkan perincian penghapusan untuk memperhitungkan perender berbasis kartu yang ditangguhkan.
- Hambatan adalah beban kerja komputasi yang kompleks dibandingkan dengan jumlah segitiga.
- Pipeline GPU dirancang dengan mempertimbangkan berbagai skenario.
- Opsi untuk mengubah perincian penghapusan.
- Set deskriptor yang sangat besar memungkinkan rendering tanpa ikatan penuh pada hardware yang kompatibel, yang kemudian secara signifikan mengurangi biaya pembuatan panggilan gambar CPU dengan manfaat performa, daya, dan termal terkait.
- HW configurator memungkinkan penyesuaian setelan fidelitas berdasarkan model perangkat
tertentu untuk pengalaman pengguna terbaik
- Mode konfigurasi pengguna: performa terbaik, kualitas terbaik, atau hemat baterai.
- Desain kumpulan shader khusus perangkat menyediakan
kumpulan shader yang berbeda untuk preset GPU yang berbeda (setelan kualitas dan fidelitas). Konfigurasi HW
membantu game memilih shader terbaik yang ditetapkan untuk perangkat.
- Membantu mengurangi ledakan kombinatorial shader yang sangat dapat dikonfigurasi dengan persyaratan pembuatan objek pipeline.
- Menyertakan kumpulan shader non-bindless penggantian untuk menargetkan ponsel dan driver lama yang tidak mendukung banyak resource shader.
- Penggunaan konstanta spesialisasi secara cerdas untuk mengatasi
perbedaan pengemudi.
- Sebagian besar bug compiler shader pada driver diatasi dengan penggunaan konstanta spesialisasi.
- Menyeimbangkan jumlah set shader khusus perangkat.
![](https://developer.android.com/static/images/cards/distribute/stories/codwzm_figure4.jpg?authuser=8&hl=id)
Pembuatan profil dan proses debug
Pada awal pengembangan, Activision menemukan banyak celah dalam stabilitas dan fungsi dengan alat pembuatan profil dan proses debug Vulkan. Sejak saat itu, terdapat peningkatan yang stabil pada profiler khusus vendor dan alat yang tidak bergantung pada vendor seperti RenderDoc. Sekarang developer dapat dengan lebih yakin berfokus pada masalah rendering dan peluang pengoptimalan.
Fidelitas tinggi dengan Vulkan
Call of Duty: Warzone Mobile berjalan di berbagai perangkat Android yang mendukung Vulkan menggunakan teknologi rendering yang dibagikan dengan judul konsol dan PC. Vulkan mengurangi overhead dan hambatan pengembangan serta memungkinkan pengiriman konten dan gameplay Call of Duty yang autentik dan berakurasi tinggi ke pemain Android.