Performansı ve termal yönetimi iyileştirmek, Android'de başarılı oyunlar geliştirmek için çok önemlidir. Geleneksel olarak, geliştiricilerin bu sorunları oyunun doğruluğunu azaltarak veya oluşturucuyu daha fazla optimize ederek yönetmesi gerekiyordu. Bu değişiklikler genellikle oyunlara özgüdür ve çoğu zaman esnek olmayabilir.
Android ekosistemindeki birçok katılımcı, geliştiricilere uyarlanabilir performans API'leri sunar. Google ve MediaTek, uyarlanabilir performans özelliklerinin entegrasyonunu basitleştirmek ve ekosistemdeki parçalanmayı azaltmak amacıyla Android Dynamic Performance Framework (ADPF) ve MediaTek Uyarlanabilir Oyun Teknolojisi (MAGT) tekliflerini entegre etmek için iş birliği yapıyor.
ADPF, geliştiricilere oyun iş yükünü gerçek zamanlı termal durumlara göre ayarlama imkanı tanır ve işletim sistemine ipuçları sağlayarak mevcut iş yükü için performansı optimize eder. Kalite, kare hızı ve hatta kaynak yükleme stratejisi gibi doğruluk ve performans ayarlarını düzenlemek için bu sinyalleri kullanabilirsiniz. Bu sayede performans, termal ve kaliteyi daha iyi dengeleyerek Android oyuncularına mümkün olan en iyi deneyimi sunabilirsiniz. Android ekosistemi bu teknolojiyi çok iyi kullanıyor. Kakao Games'den Ares, termal API'ye yanıt olarak çalışma zamanında iş yükünü ayarlayarak FPS kararlılığını%96'ya artırmayı başardı.
MediaTek, Android'de lider bir çip üzerinde sistem (SoC) sağlayıcısıdır. Şirket yeni Dimensity 9300 gibi bir dizi cips üretiyor. MediaTek, 2021'den beri kullanımda olan MAGT SDK'sını da sunmaktadır. SDK, MediaTek SoC'lerde performans ayarı için gerçek zamanlı performansla ilgili ayrıntılı bilgiler ve artan iş yükleriyle ilgili ipuçları gibi gelişmiş özellikler sağlar. MediaTek, geliştiricilere MAGT'yi sunmanın yanı sıra gelişmiş ADPF özellikleri sunmaya başladı.
ADPF ile termal kısıtlamayı önleyin ve performansı optimize edin
MediaTek, ciddi düzeyde kısıtlamayı önlemek için ADPF çerçevesinin mevcut ve hedef cihaz sıcaklıklarına erişmesine izin verir. Uygulamalar, cihaz ciddi düzeyde kısıtlamaya ulaşmadan önce ADPF getThermalHeadroom()
işlevini kullanarak mevcut termal boşlukla ilgili bir tahmin alabilir. Uygulamalar, bu tahmini kullanarak cihazın akış hızını tetiklemesini önlemek için iş yüklerini dinamik olarak ayarlayarak genel kullanıcı deneyimini iyileştirebilir.
Uygulama (örneğin, Unity'nin Boat Attack demosu kullanılarak) performansını optimize etmek için Performance ipucu Session API'yi de kullanıyor.
Sırasıyla updateTargetWorkDuration()
ve reportActualWorkDuration()
işlevleri aracılığıyla her kare için hedef kare süresini ve geçerli kare süresini sağlar. MediaTek platformu, iki reportActualWorkDuration()
çağrısı arasındaki iş yükünü hesaplar ve iş yükünün hedef süre dahilinde tamamlanabilmesi için yeterli CPU kapasitesi ayırır.
Sonuç olarak MediaTek platformu dengeli güç tüketimiyle tutarlı bir şekilde saniyede en iyi kare (FPS) sunarak sorunsuz bir kullanıcı deneyimi sağlar.
Daha iyi kare hızları, daha düşük güç tüketimi ve daha uzun oyun oturumları sağlayın
Genel olarak, Unity Tekne Attack demosu kare hızlarını 8,5 fps'ye yükseltti, güç tüketimini %12 azalttı ve 25 dakika veya daha uzun oyun oturumlarını mümkün kıldı. FPS standart sapması %25 düştü. Böylesine büyük bir iyileşme, oyunlarınızın kalitesini artırmanıza ve ısınma açısından sürdürülebilir bir şekilde daha uzun süre oyun oturumları yürütmenize olanak tanır.
İş yükü, doğruluk ayarlarını düzenlemeden bile performans ipucu oturumunu etkinleştirerek ortalama Oluşturma iş parçacığı süresini neredeyse %10 azaltmayı başardı.
MediaTek SoC'lerde uyarlanabilir performansla ilgili yenilikler
ADPF, önümüzdeki yıllarda yeni özelliklerle ve MAGT'den cihaza bağlı olmayan yeni özellikler eklenerek yükseltilecek. MediaTek cihazlarından daha da fazla yararlanmak isteyen geliştiriciler için MAGT SDK'sı, MediaTek yonga seti mimarilerini benzersiz bir şekilde hedefleyen gelişmiş özellikler içerir ve yakında temel ADPF özelliklerini de sunacak.
Android uyarlanabilirliğini kullanmaya başlayın
Android Dynamic Performance Framework artık tüm Android oyun geliştiricileri tarafından Unity, Unreal, Cocos Creator oyun motorları için ve yerel C++ kitaplıklarımız aracılığıyla kullanılabilir.
- Unity geliştiricileri ise Uyarlanabilir Performans sağlayıcı 5.0.0 sürümünü kullanmaya başlayabilir. Thermal API'nin, Android 11 (API düzeyi 30) çalıştıran çoğu Android cihaz ve Android 12 (API düzeyi 31) üzerindeki Performance ipucu API tarafından desteklendiğini unutmayın.
- Gerçeküstü olmayan geliştiriciler ise Android 12 (API düzeyi 31) veya sonraki sürümleri hedefleyen çoğu Android cihazda Android Dynamic Performance Unreal Engine eklentisini kullanmaya başlayabilir.
- Cocos Creator için Thermal API'yi 3.8.2 sürümünden, Performance ipucu API'yi ise 3.8.3 sürümünden kullanmaya başlayabilirsiniz.
Bu oyun motorlarında termal API'ler, cihazın termal bilgilerini almanıza yardımcı olmak için Uyarlanabilir Performans ile entegredir. Performans ipucu API'si ise herhangi bir ek işlem olmaksızın her Update()
veya Monitor()
otomatik olarak çağrılır.
Son olarak, özel motorlar için yerel ADPF C++ örneğimize başvurabilirsiniz.
Ek kaynaklar
Android Dinamik Performans Çerçevesi'nin, oyununuzun FPS'sini sabitlemenize ve termal kısıtlamayı azaltmanıza nasıl yardımcı olabileceğini öğrenin.
MediaTek SoC'lerde gelişmiş performans ayarı için MediaTek Uyarlanabilir Oyun Teknolojisi hakkında bilgi edinin.