Oyun motoru geliştirmek veya özelleştirmek için C ya da C++ kullanıyorsanız Android desteğini oyun motorunuza entegre etmek için aşağıdaki koşullar kritik önem taşır.
- Android geliştirme araçlarından faydalanın
- Etkinlik oluşturma
- Ekrana çizin
- Giriş etkinliklerini işleme
- Çıkış sesi
- Hafızayı yönet
- Test edin ve iyileştirin
- Google Play'de yayınla
Bu sayfada açıklanan şartlar size sıfırdan oyun motoru geliştirmeyi öğretmez. Bunun yerine Android'in diğer platformlara kıyasla nispeten benzersiz olduğu alanları tanımlarsınız.
Android geliştirme araçlarından faydalanın
Android Studio, şu işlemleri yapmak için kullanabileceğiniz araçlar içerir:
- Projenizi yapılandırın
- Oyununuzu derleyin, hata ayıklayın ve paketleyin
- Sistem, CPU ve bellek profil araçlarını kullanarak oyununuzun performansını inceleyin
- Oyununuzun paketinin veya uygulama paketinin içeriğini inceleyin
- Android SDK ve NDK'nın ek özelliklerini entegre edin
Android Grafik Denetleyicisi, oyununuzun oluşturma performansını belirleyebilir ve kare profili çıkarmayı kullanarak oluşturulan karelerin ayrıntılarını araştırmanıza yardımcı olabilir.
Çoğunlukla Microsoft Visual Studio kullanıyorsanız mevcut projelere bir Android hedefi eklemek için Android Oyun Geliştirme Uzantısı'nı (AGDE) kullanabilirsiniz. AGDE, Visual Studio'da yerel hata ayıklamayı destekler ve Android Studio profil oluşturma araçlarının çoğunun bağımsız sürümlerini içerir.
Etkinlik oluşturma
Oyununuzun bir Activity
oluşturması ve
ile etkileşimde bulunması gerekiyor. Bir Etkinliğin ne zaman oluşturulduğunu, başlatıldığını, devam ettirildiğini, duraklatıldığını, durdurulduğunu ve kaldırıldığını anlamak için Android'deki Etkinlik Yaşam Döngüsü hakkında bilgi edinin.
Yerel C veya C++ oyun motorlarının Activity
ile ilgili ihtiyaçlarını (oyun aralığı, yaşam döngüsü, oluşturma, işleme) entegre eden ve karşılayan GameActivity
kitaplığı hakkında bilgi edinin.
Ekrana çizin
Oyununuzun ekranda nesneler ve imgeleri çizmesi gerekiyor. Android SurfaceView
ve oyun motorunuzda grafikleri nasıl yapılandıracağınızı öğrenin.
Android cihazlar farklı ekran yenileme hızlarını destekler. Karenin düşmesini ve kare arabelleklerinde hata oluşmasını önlemek için oyun döngülerinde oluşturma hakkında bilgi edinin.
OpenGL ve Vulkan'da sorunsuz oluşturma için kare hızının nasıl ayarlanacağını öğrenin. Performance Tuner ile kare hızınızı optimize edin.
Oluşturmanızın kalitesini artırmak için çoklu örnek kenar yumuşatma (MSAA) kullanın. MSAA, çok az ek yük ile kullanılabilir. Daha fazla bilgi edinmek için Multisampled Anti-aliasing For Nerede Ücretsiz — On Kile Tabanlı Oluşturma Donanımı başlıklı blog yayınına göz atın.
Giriş etkinliklerini işleme
Oyun motoru, çeşitli kaynaklardan giriş etkinlikleri alır. Etkileyici bir oyun deneyimi için farklı Android giriş kaynaklarını desteklemeyi öğrenin:
Çıkış sesi
Oyun motorunuzun farklı cihazlarda ve Android sürümlerinde ses çıkışı vermesi gerekir. Oyununuza yüksek performanslı ses eklemek için tasarlanan açık kaynak C++ ses kitaplığımız Oboe hakkında bilgi edinin.
En düşük gecikmeyi elde etmek, belirli ses hatalarından kaçınmak ve mevcut en iyi yerel kitaplığı (ör. AAudio veya OpenSL ES) otomatik olarak seçmek için Oboe'yu kullanın.
Hafızayı yönet
Android cihazlarda sistem, mümkün olduğunca fazla sistem belleği (RAM) kullanmaya çalışır ve gerektiğinde yer açmak için çeşitli bellek optimizasyonları gerçekleştirir. Oyununuzun yavaşlamaması veya oyundan çıkmamanız için bellek kullanımını yönetmeyi öğrenin.
Test edin ve iyileştirin
İşlenmemiş bir istisna veya sinyalin neden olduğu beklenmedik bir çıkış olduğunda Android uygulaması kilitlenir. Kilitlenmeleri tespit edip teşhis etme, yığın izlemeleri (stack trace), bellek ve ağ istisnalarını okuma, logcat'i kullanma, Java ve Kotlin'e özgü hataları anlama hakkında bilgi edinin.
Google Play'de yayınla
Oyuncular oyununuzu farklı ülkelerde, ağ koşullarında ve veri planlarında çeşitli Android cihazlarla indirirler. Google Play'i, içerik yayınlama ağının avantajlarından yararlanarak büyük oyunlara yönelik uygulama paketleri ve öğe paketleri sunmak için nasıl kullanacağınızı öğrenin.