Android 15, güç tüketimini optimize etmek için oyunlarda varsayılan olarak 60 Hz yenileme hızı belirler. 120 FPS gibi daha yüksek kare hızlarını kullanmak için artık Frame Rate API'yi veya Swappy kitaplığını kullanarak bunları açıkça istemeniz gerekir.
Ancak sistem, pil seviyesi veya cihaz sıcaklığı gibi faktörlere bağlı olarak bu isteği geçersiz kılabilir. Daha yüksek yenileme hızları görsel akıcılığı artırırken daha fazla güç tüketir ve ek ısı oluşturur. Bu nedenle, dengeli bir kullanıcı deneyimi sağlamak için kullanıcılara tercih ettikleri yenileme hızını seçme seçeneği sunmak ve performansı dikkatlice izlemek çok önemlidir.
setFrameRate()
API'yi kullanma
setFrameRate()
API, oyun geliştiricilerin belirli bir ekran yenileme hızı kullanmasına olanak tanır. Bunu yapmanın iki adımı vardır:
- Cihaz ve Android sürüm uyumluluğunu doğrulayın.
setFrameRate()
simgesini kullanarak yüksek FPS isteğinde bulunun.
Cihaz ve Android sürüm uyumluluğunu doğrulama:
Cihazın 90 Hz, 120 Hz veya diğer yenileme hızlarını destekleyip desteklemediğini belirlemek için Display.getSupportedModes()
yöntemlerini kullanın. Cihaz 60 Hz ile sınırlıysa bu sınırı aşmak mümkün değildir.
Kotlin
val display = windowManager.defaultDisplay
val supportedModes = display.supportedModes
for (mode in supportedModes) {
Log.d("DisplayInfo", "Supported mode: ${mode.physicalWidth}x${mode.physicalHeight}, ${mode.refreshRate}Hz")
}
Yüksek FPS isteğinde bulunma
Oluşturma döngüsünüz başladığında, oyun penceresi başlatılırken veya hedef FPS'nin ekran yenileme hızını değiştirmesi gerektiğinde setFrameRate()
çağrılır.
Daha yüksek bir hız isteseniz bile sistem, güç tasarrufu modu veya termal sınırlama gibi faktörler nedeniyle yenileme hızını 60 Hz'de sınırlayabilir. Oyununuzun oluşturma performansı hedef FPS'ye ulaşmıyorsa daha yüksek yenileme hızı istemek gereksiz güç tüketimine neden olabilir ve cihazın sıcaklığını artırabilir.
Aşağıdaki snippet'te, setFrameRate()
API ile aşırı yüksek yenileme hızından nasıl kaçınılacağı gösterilmektedir.
Kotlin
val targetFps = 120f
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setFrameRate(
targetFps,
Window.FrameRateCompatibility.FRAME_RATE_COMPATIBILITY_FIXED_SOURCE,
0
)
}
Daha fazla bilgi için kare hızı sayfasına göz atın.
Kare hızlandırma kitaplığını kullanma
Kare hızlandırma kitaplığı veya Swappy, C/C++ Android oyun motorlarında VSync yönetimini ve kare planlamayı basitleştirmek için tasarlanmış açık kaynak bir kitaplıktır.
Bu araç, setFrameRate()
gibi işlevler üzerinde etkili bir şekilde daha üst düzey bir soyutlama katmanı görevi görerek yenileme hızlarını optimize etme sürecini kolaylaştırır. Ayrıca Swappy, oyununuzun genel akıcılığı ve performansını artırabilecek ek özellikler sunar.
Daha ayrıntılı bilgi için Swappy sayfasını inceleyin.
En İyi Sonuçlar İçin Ek İpuçları
Aşağıdaki bölümde, en iyi ipuçlarından bazıları verilmiştir:
- Dinamik kare hızı değiştirme.
- Performans İzleme.
- Maksimum ekran yenileme hızına göre FPS seçenekleri sağlayın.
Dinamik Kare Hızı Değiştirme
Hem performansı hem de güç tüketimini optimize etmek için oyununuzda dinamik kare hızı geçişi özelliğini uygulayabilirsiniz. Bu teknik, zorlu sahnelerde daha akıcı bir oyun deneyimi için 120 Hz gibi daha yüksek yenileme hızları ile daha az yoğun anlarda veya pil ömrünün önemli olduğu durumlarda ya da 60 FPS'nin altında hedefleme yapıldığında 60 Hz gibi daha düşük yenileme hızları arasında sorunsuz geçiş yapmanıza olanak tanır. Sürekli olarak 120 Hz'de çalıştırmak, aşırı ısı oluşumuna ve hızlı pil tüketimine neden olabilir. Bu da olumsuz bir kullanıcı deneyimine yol açabilir. Yenileme hızını mevcut oluşturma yüküne ve cihaz koşullarına göre akıllıca ayarlayarak görsel doğruluk ile güç verimliliği arasında bir denge sağlayabilirsiniz.
Performance Monitoring
Oyununuzun daha yüksek yenileme hızlarında en iyi performansı göstermesi için kare sayacı veya performans yer paylaşımı gibi performans izleme araçlarını entegre edin. Bu araçlar, oyununuzun gerçek kare hızı hakkında anlık geri bildirim sağlar. Böylece, hedef 120 FPS'ye tutarlı bir şekilde ulaşıp ulaşmadığınızı doğrulayabilirsiniz.
Kare hızınız önemli ölçüde dalgalanıyorsa söz konusu cihazda elde edilebilecek daha düşük bir kare hızını hedefleyebilirsiniz. Bu sayede, en yüksek yenileme hızını elde etmeye çalışırken yaşanabilecek performans kesintilerinin olmadığı daha sorunsuz bir deneyim sunabilirsiniz.
Maksimum ekran yenileme hızına göre FPS seçenekleri sunma
Oyununuz, mevcut cihaz tarafından desteklenen maksimum ekran yenileme hızını (ör. 60 Hz, 90 Hz veya 120 Hz) algılamalı ve FPS ayarlarını buna göre sınırlamalıdır. Örneğin, cihaz yalnızca 60 Hz'e kadar destekleniyorsa oyuncunun kafasını karıştırmamak için oyun ayarlarında 60 FPS'den yüksek seçenekleri devre dışı bırakmak önerilir.