Android गेम में लीडरबोर्ड

Google Sign-In API के बंद होने के बाद, हम 2026 में Games v1 एसडीके को हटा रहे हैं. फ़रवरी 2025 के बाद, Google Play पर ऐसे गेम पब्लिश नहीं किए जा सकेंगे जो Games v1 एसडीके के साथ अभी-अभी इंटिग्रेट किए गए हैं. हमारा सुझाव है कि आप इसके बजाय, Games v2 SDK का इस्तेमाल करें.
गेम के v1 इंटिग्रेशन वाले मौजूदा टाइटल, कुछ सालों तक काम करते रहेंगे. हालांकि, हमारा सुझाव है कि आप जून 2025 से v2 पर माइग्रेट करें.
यह गाइड, Play की गेम सेवाओं के v1 एसडीके का इस्तेमाल करने के लिए है. एसडीके के नए वर्शन के बारे में जानकारी पाने के लिए, v2 का दस्तावेज़ देखें.

इस गाइड में, Android ऐप्लिकेशन में लीडरबोर्ड API इस्तेमाल करने का तरीका बताया गया है. इससे विज़ुअल लीडरबोर्ड बनाए जा सकते हैं, किसी खिलाड़ी के स्कोर को रिकॉर्ड किया जा सकता है, और पिछले गेम सेशन में खिलाड़ी के स्कोर से तुलना की जा सकती है. इन एपीआई को com.google.android.gms.games और com.google.android.gms.games.leaderboards पैकेज में देखा जा सकता है.

शुरू करने से पहले

अगर आपने पहले से ऐसा नहीं किया है, तो लीडरबोर्ड के गेम कॉन्सेप्ट देखें. इससे आपको मदद मिल सकती है.

लीडरबोर्ड एपीआई का इस्तेमाल करके कोडिंग शुरू करने से पहले:

  • Google Play services SDK सेट अप करें गाइड में दिए गए निर्देशों का पालन करके, Google Play की गेम सेवाओं का इस्तेमाल करने के लिए, ऐप्लिकेशन इंस्टॉल करें और उसे सेट अप करें.
  • उन लीडरबोर्ड को तय करें जिन्हें आपको अपने गेम में दिखाना या अपडेट करना है. इसके लिए, Google Play Console की गाइड में दिए गए निर्देशों का पालन करें.
  • Android के सैंपल पेज पर जाकर, लीडरबोर्ड के कोड सैंपल डाउनलोड करें और उनकी समीक्षा करें.
  • क्वालिटी चेकलिस्ट में बताए गए सुझावों के बारे में जानें.

लीडरबोर्ड क्लाइंट पाना

लीडरबोर्ड एपीआई का इस्तेमाल शुरू करने के लिए, आपके गेम को सबसे पहले LeaderboardsClient ऑब्जेक्ट पाना होगा. इसके लिए, Games.getLeadeboardsClient() तरीके को कॉल करें और मौजूदा प्लेयर के लिए गतिविधि और GoogleSignInAccount पास करें. खिलाड़ी के खाते की जानकारी वापस पाने का तरीका जानने के लिए, Android गेम में साइन-इन करना लेख पढ़ें.

खिलाड़ी का स्कोर अपडेट करना

जब प्लेयर का स्कोर बदलता है (उदाहरण के लिए, जब प्लेयर गेम पूरा कर लेता है), तो आपका गेम लीडरबोर्ड पर प्लेयर के स्कोर को अपडेट कर सकता है. इसके लिए, LeaderboardsClient.submitScore() को कॉल करें और लीडरबोर्ड आईडी और रॉ स्कोर वैल्यू पास करें.

यहां दिए गए कोड स्निपेट में बताया गया है कि आपका ऐप्लिकेशन, खिलाड़ी के स्कोर को कैसे अपडेट कर सकता है:

Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .submitScore(getString(R.string.leaderboard_id), 1337);

लीडरबोर्ड आईडी को अपनी strings.xml फ़ाइल में तय करना एक अच्छा तरीका है, ताकि आपका गेम संसाधन आईडी के हिसाब से लीडरबोर्ड को रेफ़रंस कर सके. खिलाड़ी के स्कोर अपडेट करने और लोड करने के लिए कॉल करते समय, यह पक्का करें कि एपीआई कोटे से ज़्यादा कॉल न किए जाएं. इसके लिए, इन सबसे सही तरीकों का पालन करें.

लीडरबोर्ड दिखाना

लीडरबोर्ड दिखाने के लिए, LeaderboardsClient.getLeaderboardIntent() को कॉल करें, ताकि आपको Intent मिल सके. इससे डिफ़ॉल्ट लीडरबोर्ड यूज़र इंटरफ़ेस बनाया जा सकता है. इसके बाद, आपका गेम startActivityForResult को कॉल करके यूज़र इंटरफ़ेस (यूआई) दिखा सकता है.

नीचे दिए गए कोड स्निपेट में बताया गया है कि आपका ऐप्लिकेशन, प्लेयर के स्कोर को कैसे अपडेट कर सकता है. कोड स्निपेट में, RC_LEADERBOARD_UI अनुरोध कोड के लिए कोई भी पूर्णांक होता है.

private static final int RC_LEADERBOARD_UI = 9004;

private void showLeaderboard() {
  Games.getLeaderboardsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getLeaderboardIntent(getString(R.string.leaderboard_id))
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_LEADERBOARD_UI);
        }
      });
}

ध्यान दें कि कोई नतीजा नहीं मिलने पर भी, हमें startActivityForResult का इस्तेमाल करना होगा, ताकि एपीआई कॉल करने वाले पैकेज की पहचान कर सके. डिफ़ॉल्ट लीडरबोर्ड यूज़र इंटरफ़ेस (यूआई) का एक उदाहरण यहां दिखाया गया है.