Pokémon TCG Pocket: Mengadopsi pengembangan khusus Vulkan untuk game kasual

Screenshot logo judul game dari Pokémon TCG Pocket.

Pokémon Trading Card Game (TCG) telah dinikmati di seluruh dunia selama hampir 30 tahun. Pokémon TCG Pocket yang baru dirilis dirancang untuk memungkinkan pemain mengumpulkan dan bertarung dengan Pokémon kapan saja, di mana saja, tanpa perlu kartu fisik. Aksesibilitas game di smartphone telah berkontribusi pada popularitasnya yang tersebar luas di kalangan pengguna.

Meskipun mungkin tampak seperti game kartu perdagangan kasual, Pokemon TCG Pocket menggunakan shader yang kompleks, yang menimbulkan tantangan signifikan dalam mengurangi waktu kompilasi. Untuk mengatasi hal ini dan memastikan grafis berkualitas tinggi serta pengalaman bermain yang lancar, Pokémon TCG Pocket versi Android telah menggunakan Vulkan, API grafis generasi berikutnya.

Dokumen ini membahas adopsi Vulkan oleh tim pengembangan Pokémon TCG Pocket, tantangan yang dihadapi, dan keuntungan yang ditawarkan Vulkan.

Gambar 1. Adegan gameplay Pokémon TCG Pocket.

Alasan mengadopsi Vulkan

Awalnya, tim pengembangan Pokémon TCG Pocket berencana menggunakan OpenGL ES. Namun, mereka memutuskan untuk mengadopsi Vulkan, API grafis dengan masa depan yang menjanjikan. Alasan utama memilih Vulkan adalah:

  • Pengelolaan aplikasi jangka panjang: Menyadari tren Vulkan menjadi API grafis dominan untuk Android, tim memutuskan bahwa Vulkan adalah pilihan optimal untuk pengelolaan aplikasi jangka panjang.
  • Performa stabil di perangkat dengan spesifikasi rendah: Untuk memberikan pengalaman yang lancar bagi berbagai pengguna, performa yang stabil di perangkat dengan spesifikasi rendah sangatlah penting. Kemampuan Vulkan untuk mengurangi beban CPU diharapkan dapat meningkatkan kecepatan frame dan konsumsi baterai.
  • Menghindari perubahan pasca-rilis skala besar: Beralih dari OpenGL ES ke Vulkan setelah rilis akan memerlukan modifikasi yang ekstensif, yang berpotensi mengganggu pengalaman pengguna. Mengadopsi Vulkan sejak awal mengurangi kebutuhan akan perubahan yang signifikan tersebut.

Mengimplementasikan Vulkan dengan Unity

Pokémon TCG Pocket menggunakan Unity sebagai game engine-nya. Unity menawarkan proses yang disederhanakan untuk menerapkan Vulkan dengan sekali klik. Dengan menggunakan Unity, tim pengembangan mengintegrasikan Vulkan dengan lancar tanpa memerlukan pelatihan khusus. Selain itu, kurangnya adaptasi khusus Vulkan untuk lingkungan dan alat pengembangan berkontribusi pada efektivitas biaya.

Auto Graphics API di Unity
Gambar 2. Auto Graphics API di Unity.

Tantangan dalam menerapkan Vulkan

Meskipun implementasi Vulkan relatif mudah, tim pengembangan mengalami beberapa tantangan setelahnya:

  • Masalah khusus perangkat: Dibandingkan dengan OpenGL ES, driver beberapa produsen menunjukkan stabilitas yang lebih rendah dengan Vulkan, sehingga menyebabkan masalah khusus perangkat.
  • Dukungan Vulkan yang tidak lengkap di middleware: Beberapa middleware tidak memiliki dukungan Vulkan penuh, sehingga tim harus menunggu update middleware.

Tim pengembangan mengatasi tantangan ini melalui beberapa strategi, termasuk mengumpulkan tim developer game konsumen berpengalaman untuk memecahkan masalah (karena mereka berpengalaman dalam API grafis tingkat rendah atau mesin kustom) dan berkolaborasi dengan tim Google dan Unity untuk menyelesaikan setiap masalah. Untuk memperluas kompatibilitas perangkat, pengujian mencakup perangkat mid-end hingga high-end lama (dirilis 2-3 tahun lalu) untuk menentukan spesifikasi perangkat yang direkomendasikan.

Keunggulan Vulkan

Mengadopsi Vulkan memberikan beberapa manfaat untuk Pokémon TCG Pocket:

  • Mengurangi waktu kompilasi shader: Vulkan secara signifikan mengurangi waktu kompilasi shader, bahkan untuk shader dalam jumlah besar. Misalnya, waktu kompilasi OpenGL ES dapat melebihi 1 detik, tetapi hal ini tidak lagi menjadi masalah dengan rendering Vulkan.
  • Penambahan rentang perangkat yang didukung: Peningkatan kecepatan frame dan konsumsi baterai memungkinkan rentang perangkat yang didukung lebih luas, sehingga memastikan pengalaman yang lebih lancar bagi lebih banyak pengguna.
  • Telemetri yang lebih baik dengan lapisan validasi Vulkan: Lapisan validasi Vulkan sangat berguna dalam mengidentifikasi akar masalah, yang melengkapi data yang disediakan oleh laporan Vitals ANR/Error.

Pesan untuk developer

Tim pengembangan Pokémon TCG Pocket menawarkan saran berikut kepada developer yang mempertimbangkan Vulkan untuk project mereka:

  • Selain pengurangan waktu kompilasi shader, Vulkan menawarkan manfaat performa yang substansial.
  • Menggunakan vkQuality untuk kembali ke OpenGL ES berpotensi memperluas dukungan perangkat, meskipun Pokémon TCG Pocket belum menggunakannya.

Kesimpulan

Dengan menggunakan Vulkan, tim pengembangan Pokémon TCG Pocket dapat mengoptimalkan grafis di berbagai perangkat untuk memastikan pengalaman yang lancar dan menarik bagi setiap pemain. Dengan penambahan fitur yang berkelanjutan dan potensi masa depan yang berkembang, Vulkan diharapkan akan memberikan lebih banyak manfaat seiring waktu.