Android 15, गेम के लिए डिफ़ॉल्ट तौर पर 60 हर्ट्ज़ का रीफ़्रेश रेट सेट करता है, ताकि बिजली की खपत को ऑप्टिमाइज़ किया जा सके. 120 FPS जैसे ज़्यादा फ़्रेम रेट को अनलॉक करने के लिए, अब आपको Frame Rate API या Swappy लाइब्रेरी का इस्तेमाल करके, उनका साफ़ तौर पर अनुरोध करना होगा.
हालांकि, बैटरी के लेवल या डिवाइस के तापमान जैसे फ़ैक्टर के आधार पर, सिस्टम इस अनुरोध को बदल सकता है. ज़्यादा रीफ़्रेश रेट से विज़ुअल बेहतर दिखते हैं. हालांकि, इसके लिए ज़्यादा पावर की ज़रूरत होती है और डिवाइस गर्म हो जाता है. इसलिए, उपयोगकर्ताओं को अपने हिसाब से रिफ़्रेश रेट चुनने का विकल्प देना ज़रूरी है. साथ ही, उपयोगकर्ता अनुभव को बेहतर बनाने के लिए, परफ़ॉर्मेंस पर ध्यान से नज़र रखना भी ज़रूरी है.
setFrameRate()
एपीआई का इस्तेमाल करना
setFrameRate()
API की मदद से, गेम डेवलपर किसी खास डिसप्ले रिफ़्रेश रेट का इस्तेमाल कर सकते हैं. ऐसा करने के लिए, दो चरण पूरे करने होंगे:
- यह पुष्टि करना कि डिवाइस और Android वर्शन साथ काम करते हैं या नहीं.
setFrameRate()
का इस्तेमाल करके, ज़्यादा एफ़पीएस का अनुरोध करें.
डिवाइस और Android वर्शन के साथ काम करने की पुष्टि करना:
Display.getSupportedModes()
तरीकों का इस्तेमाल करके पता लगाएं कि डिवाइस पर 90Hz, 120Hz या अन्य रीफ़्रेश रेट काम करते हैं या नहीं. अगर डिवाइस 60Hz तक सीमित है, तो इस सीमा को पार नहीं किया जा सकता.
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")
}
ज़्यादा एफ़पीएस का अनुरोध करना
रेंडरिंग लूप शुरू होने पर, गेम विंडो शुरू होने के दौरान या टारगेट एफ़पीएस को डिसप्ले रीफ़्रेश रेट बदलने पर, setFrameRate()
को लागू करें.
ज़्यादा दर का अनुरोध करने पर भी, सिस्टम रीफ़्रेश रेट को 60Hz तक सीमित कर सकता है. ऐसा, पावर सेविंग मोड या थर्मल थ्रॉटलिंग जैसी वजहों से होता है. अगर आपके गेम की रेंडरिंग परफ़ॉर्मेंस, टारगेट फ़्रेम रेट तक नहीं पहुंचती है, तो ज़्यादा रिफ़्रेश रेट का अनुरोध करने पर, बिजली की खपत ज़्यादा हो सकती है और डिवाइस का तापमान बढ़ सकता है.
यहां दिए गए स्निपेट में, setFrameRate()
एपीआई की मदद से ज़्यादा रीफ़्रेश रेट से बचने का तरीका बताया गया है.
Kotlin
val targetFps = 120f
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
window.setFrameRate(
targetFps,
Window.FrameRateCompatibility.FRAME_RATE_COMPATIBILITY_FIXED_SOURCE,
0
)
}
ज़्यादा जानकारी के लिए, फ़्रेम रेट पेज पर जाएं.
फ़्रेम पेसिंग लाइब्रेरी का इस्तेमाल करना
फ़्रेम पेसिंग लाइब्रेरी या Swappy, एक ओपन-सोर्स लाइब्रेरी है. इसे C/C++ Android गेम इंजन में, VSync मैनेजमेंट और फ़्रेम शेड्यूलिंग को आसान बनाने के लिए डिज़ाइन किया गया है.
यह टूल, रीफ़्रेश रेट को ऑप्टिमाइज़ करने की प्रोसेस को आसान बनाता है. साथ ही, setFrameRate()
जैसी सुविधाओं के लिए, बेहतर लेवल की एब्स्ट्रैक्शन लेयर के तौर पर काम करता है. इसके अलावा, Swappy में कुछ और सुविधाएं भी हैं जिनसे आपके गेम की परफ़ॉर्मेंस और गेमप्ले को बेहतर बनाया जा सकता है.
Swappy पेज पर ज़्यादा जानकारी मिलती है.
बेहतर नतीजों के लिए अन्य सलाह
इस सेक्शन में, कुछ अहम सलाह दी गई हैं:
- डाइनैमिक फ़्रेम रेट स्विचिंग.
- परफ़ॉर्मेंस मॉनिटरिंग.
- डिसप्ले की ज़्यादा से ज़्यादा रीफ़्रेश दर के आधार पर, एफ़पीएस के विकल्प दें.
डाइनैमिक फ़्रेम रेट स्विचिंग
परफ़ॉर्मेंस और बिजली की खपत, दोनों को ऑप्टिमाइज़ करने के लिए, अपने गेम में डाइनैमिक फ़्रेम रेट स्विचिंग लागू करें. इस तकनीक की मदद से, ज़्यादा रीफ़्रेश रेट के बीच आसानी से ट्रांज़िशन किया जा सकता है. जैसे, ज़्यादा ज़रूरी सीन के दौरान 120 हर्ट्ज़ और कम ज़रूरी सीन के दौरान 60 हर्ट्ज़. इसके अलावा, बैटरी लाइफ़ की चिंता होने पर या 60 एफ़पीएस से कम पर टारगेट करने पर भी ऐसा किया जा सकता है. डिवाइस को लगातार 120Hz पर चलाने से, गर्मी काफ़ी ज़्यादा पैदा हो सकती है और बैटरी तेज़ी से खर्च हो सकती है. इससे, उपयोगकर्ता अनुभव खराब हो सकता है. मौजूदा रेंडरिंग लोड और डिवाइस की स्थितियों के आधार पर, रीफ़्रेश रेट को बेहतर तरीके से अडजस्ट करके, विज़ुअल फ़िडेलिटी और बैटरी की खपत के बीच संतुलन बनाया जा सकता है.
परफ़ॉर्मेंस मॉनिटरिंग
यह पक्का करने के लिए कि आपका गेम ज़्यादा रीफ़्रेश रेट पर बेहतर तरीके से काम करे, परफ़ॉर्मेंस मॉनिटर करने वाले टूल इंटिग्रेट करें. जैसे, फ़्रेम काउंटर या परफ़ॉर्मेंस ओवरले. ये टूल, आपके गेम के असल फ़्रेम रेट के बारे में रीयल-टाइम में जानकारी देते हैं. इससे यह पुष्टि की जा सकती है कि आपका गेम, 120 FPS के टारगेट को लगातार हासिल कर रहा है या नहीं.
अगर आपके फ़्रेम रेट में काफ़ी उतार-चढ़ाव होता है, तो दिए गए डिवाइस पर कम फ़्रेम रेट को टारगेट करें. इससे, रीफ़्रेश रेट को ज़्यादा से ज़्यादा करने के दौरान होने वाली परफ़ॉर्मेंस से जुड़ी समस्याओं के बिना, बेहतर अनुभव मिल सकता है.
डिसप्ले की ज़्यादा से ज़्यादा रीफ़्रेश दर के आधार पर, एफ़पीएस के विकल्प दें
आपके गेम को, डिवाइस पर काम करने वाले सबसे ज़्यादा डिसप्ले रीफ़्रेश रेट का पता चलना चाहिए. जैसे, 60 हर्ट्ज़, 90 हर्ट्ज़ या 120 हर्ट्ज़. इसके हिसाब से, FPS की सेटिंग को सीमित किया जाना चाहिए. उदाहरण के लिए, अगर डिवाइस पर सिर्फ़ 60Hz तक की फ़्रेम रेट काम करती है, तो गेम की सेटिंग में 60FPS से ज़्यादा फ़्रेम रेट के विकल्प बंद कर दें. इससे, खिलाड़ी को भ्रमित होने से बचाया जा सकता है.