Android गेम में उपलब्धियां

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

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

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

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

Achievements API का इस्तेमाल करके कोडिंग शुरू करने से पहले:

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

उपलब्धियां क्लाइंट पाएं

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

उपलब्धियां अनलॉक करना

किसी उपलब्धि को अनलॉक करने के लिए, AchievementsClient.unlock() तरीके को कॉल करें और उपलब्धि का आईडी पास करें.

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

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .unlock(getString(R.string.my_achievement_id));

अगर उपलब्धि इंक्रीमेंटल टाइप की है (यानी कि इसे अनलॉक करने के लिए कई चरणों को पूरा करना ज़रूरी है), तो AchievementsClient.increment() को कॉल करें.

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

Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
    .increment(getString(R.string.my_achievement_id), 1);

उपलब्धि को अनलॉक करने के लिए, आपको अतिरिक्त कोड लिखने की ज़रूरत नहीं है. Google Play Games Services, उपलब्धि के लिए ज़रूरी चरणों की संख्या पूरी होने पर, उसे अपने-आप अनलॉक कर देती है.

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

उपलब्धियां दिखाना

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

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

private static final int RC_ACHIEVEMENT_UI = 9003;

private void showAchievements() {
  Games.getAchievementsClient(this, GoogleSignIn.getLastSignedInAccount(this))
      .getAchievementsIntent()
      .addOnSuccessListener(new OnSuccessListener<Intent>() {
        @Override
        public void onSuccess(Intent intent) {
          startActivityForResult(intent, RC_ACHIEVEMENT_UI);
        }
      });
}

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