Jika Anda menggunakan C atau C++ untuk mengembangkan atau menyesuaikan game engine, persyaratan berikut sangat penting untuk mengintegrasikan dukungan Android ke dalam game engine Anda.
- Memanfaatkan alat pengembangan Android
- Mengonstruksi aktivitas
- Menggambar ke layar
- Memproses peristiwa input
- Audio output
- Mengelola memori
- Menguji dan menyempurnakan
- Memublikasikan ke Google Play
Persyaratan yang dijelaskan di halaman ini tidak mengajarkan Anda cara mengembangkan mesin game dari awal, tetapi mengidentifikasi area dengan Android yang relatif unik dibandingkan platform lain.
Memanfaatkan alat pengembangan Android
Android Studio menyertakan alat yang dapat Anda gunakan untuk:
- Mengonfigurasi project
- Mem-build, men-debug, dan mengemas game Anda
- Memeriksa performa game Anda menggunakan sistem, CPU, dan memory profiler
- Memeriksa konten paket atau paket aplikasi game Anda
- Mengintegrasikan fitur tambahan Android SDK dan NDK
Android Graphics Inspector dapat menggambarkan performa rendering game dan membantu Anda menyelidiki detail frame yang dirender menggunakan pembuatan profil frame.
Jika Anda terutama menggunakan Microsoft Visual Studio, Anda dapat menggunakan Android Game Development Extension (AGDE) untuk menambahkan target Android ke project yang ada. AGDE mendukung proses debug native di Visual Studio dan menyertakan versi mandiri dari banyaknya alat pembuatan profil Android Studio.
Mengonstruksi aktivitas
Game Anda perlu dibuat dan berinteraksi dengan
Activity
. Pelajari Siklus Proses Aktivitas di Android untuk memahami kapan Aktivitas dibuat, dimulai, dilanjutkan, dijeda, dihentikan, dan dihancurkan.
Baca tentang librari GameActivity
,
yang mengintegrasikan dan memenuhi kebutuhan yang terkait dengan Activity
(jendela game,
siklus proses, rendering, penanganan peristiwa) mesin game C atau C++ native.
Menggambar ke layar
Game Anda perlu menggambar objek dan sprite di layar. Pelajari tentang
SurfaceView
Android dan cara
mengonfigurasi grafis di mesin game Anda.
Perangkat Android mendukung kecepatan refresh tampilan yang berbeda. Pelajari cara rendering dalam game loop untuk mencegah penurunan frame dan gangguan buffer frame.
Baca tentang cara mencapai kecepatan frame untuk kelancaran rendering di OpenGL dan Vulkan. Optimalkan kecepatan frame dengan Performa Tuner.
Gunakan multisample anti-aliasing (MSAA) untuk meningkatkan kualitas rendering Anda. MSAA dapat digunakan dengan {i>overhead<i} yang sangat kecil. Untuk mempelajari lebih lanjut, lihat postingan blog Multisampled Anti-aliasing For Hampir Gratis — Di Hardware Rendering Berbasis Kartu.
Memproses peristiwa input
Mesin game menerima peristiwa input dari berbagai sumber. Untuk pengalaman game yang imersif, pelajari cara mendukung berbagai sumber input Android:
Audio output
Mesin game Anda perlu mengeluarkan audio di berbagai perangkat dan versi Android. Pelajari tentang Oboe, library audio C++ sumber terbuka kami untuk menggabungkan audio berperforma tinggi dalam game Anda.
Gunakan Oboe untuk mendapatkan latensi terendah, menghindari bug audio tertentu, dan memilih library native terbaik yang tersedia secara otomatis (seperti AAudio atau OpenSL ES).
Mengelola memori
Pada perangkat Android, sistem mencoba menggunakan sebanyak mungkin memori sistem (RAM) dan melakukan berbagai pengoptimalan memori untuk mengosongkan ruang penyimpanan saat diperlukan. Pelajari cara mengelola penggunaan memori agar sistem tidak melambat atau keluar dari game.
Menguji dan menyempurnakan
Aplikasi Android mengalami error setiap kali terdapat penutupan tidak terduga yang disebabkan oleh pengecualian atau sinyal yang tidak tertangani. Pelajari cara mendeteksi dan mendiagnosis error, membaca pelacakan tumpukan, pengecualian memori dan jaringan, cara menggunakan logcat, serta cara memahami error khusus Java dan Kotlin.
Memublikasikan ke Google Play
Pemain mendownload game Anda dengan berbagai perangkat Android di berbagai negara, kondisi jaringan, dan paket data. Pelajari cara menggunakan Google Play untuk mengirimkan app bundle dan paket aset untuk game besar dengan manfaat jaringan penayangan konten (CDN).