Unity के लिए Google Play Games सेट अप करना और पुष्टि करना

इस दस्तावेज़ में, Unity प्रोजेक्ट को सेट अप करने का तरीका बताया गया है, ताकि Unity के लिए Google Play Games प्लगिन का इस्तेमाल किया जा सके. आपको प्लगिन इंस्टॉल करने और अपने Unity प्रोजेक्ट को कॉन्फ़िगर करने का तरीका बताया जाता है. इस दस्तावेज़ में, पुष्टि करने वाली सेवा की पुष्टि करने का तरीका भी बताया गया है.

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

सॉफ़्टवेयर से जुड़ी ज़रूरी शर्तें देखें. Play Console सेट अप करें और Unity Editor इंस्टॉल करें.

प्लगिन इंस्टॉल करना

Unity के लिए Google Play Games प्लगिन को डाउनलोड और इंस्टॉल करने के लिए, Unity Editor में यह तरीका अपनाएं:

  1. GitHub रिपो डाउनलोड करें.

  2. current-build डायरेक्ट्री में, unitypackage फ़ाइल ढूंढें. यह फ़ाइल, प्लगिन को दिखाती है. उदाहरण के लिए, यह इस तरह दिखना चाहिए:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

Unity प्रोजेक्ट सेट अप करना

प्लेयर सेटिंग में Unity प्रोजेक्ट सेट अप करने के लिए, यह तरीका अपनाएं:

  1. अपना गेम प्रोजेक्ट खोलें.

  2. unitypackage फ़ाइल को अपने प्रोजेक्ट की ऐसेट में इंपोर्ट करने के लिए, Unity Editor में Assets > Import Package > Custom Package पर क्लिक करें.

  3. पक्का करें कि आपका मौजूदा बिल्ड प्लैटफ़ॉर्म, Android पर सेट हो.

    1. मुख्य मेन्यू में, File > Build Settings पर क्लिक करें.

    2. Android को चुनें और Switch Platform पर क्लिक करें.

    3. Window > Google Play Games में एक नया मेन्यू आइटम दिखेगा. ऐसा न होने पर, Assets > Refresh पर क्लिक करके ऐसेट रीफ़्रेश करें. इसके बाद, बिल्ड प्लैटफ़ॉर्म को फिर से सेट करने की कोशिश करें.

  4. Unity Editor में, File > Build Settings > Player Settings > Other Settings पर क्लिक करें.

  5. Target API level बॉक्स में, कोई वर्शन चुनें.

  6. Scripting backend बॉक्स में, IL2CPP डालें.

  7. Target architectures बॉक्स में, कोई वैल्यू चुनें.

  8. पैकेज का नाम package_name नोट करें. इस जानकारी का इस्तेमाल बाद में किया जा सकता है.

आपके Unity प्रोजेक्ट में प्लेयर सेटिंग
आपके Unity प्रोजेक्ट में प्लेयर सेटिंग.

नया कीस्टोर बनाना

अपने क्रेडेंशियल की पुष्टि करने के लिए, आपको एक कुंजी की ज़रूरत होगी. ऐसा करने के लिए यह तरीका अपनाएं:

  1. Unity Editor में, File > Build settings > Player settings पर क्लिक करें.
  2. पब्लिश करने की सेटिंग सेक्शन में जाकर, कीस्टोर मैनेजर पर क्लिक करें.
    1. Keystore manager विंडो में, Keystore > Create new > Anywhere पर क्लिक करें.
    2. कोई फ़ोल्डर चुनें और कीस्टोर को कोई नाम दें.
    3. पासवर्ड बॉक्स में, कोई पासवर्ड डालें और उसकी पुष्टि करें.
    4. कुंजी जोड़ें पर क्लिक करें.

फ़ोल्डर का नाम नोट करें. इस नाम का इस्तेमाल, Google Cloud में क्रेडेंशियल बनाने के लिए किया जा सकता है.

Play Console से Android के संसाधनों को कॉपी करना

Play Console में बनाए गए हर अचीवमेंट, लीडरबोर्ड, और इवेंट में एक Android संसाधन शामिल होता है. इसका इस्तेमाल Unity प्रोजेक्ट सेट अप करते समय किया जाता है.

अपने गेम के लिए Android संसाधन पाने के लिए, यह तरीका अपनाएं:

  1. Google Play Console में जाकर, गेम खोलें.

  2. Play की गेम सेवाएं - कॉन्फ़िगरेशन पेज (उपयोगकर्ताओं की संख्या बढ़ाएं > Play की गेम सेवाएं > सेटअप और मैनेजमेंट > कॉन्फ़िगरेशन) पर जाकर, संसाधन पाएं पर क्लिक करें.

  3. संसाधन विंडो में, Android(XML) टैब पर क्लिक करें.

  4. Android के संसाधनों (AndroidManifest.xml) के कॉन्टेंट को चुनें और कॉपी करें.

अपने Unity प्रोजेक्ट में Android रिसॉर्स जोड़ना

अपने Unity प्रोजेक्ट में ये Android रिसॉर्स जोड़ें:

  1. Unity Editor में, Window > Google Play Games > सेटअप > Android सेटअप पर क्लिक करें.

    • कॉन्स्टेंट सेव करने के लिए डायरेक्ट्री फ़ील्ड में, कॉन्स्टेंट फ़ाइल के लिए फ़ोल्डर का नाम डालें.
    • कॉन्स्टेंट क्लास का नाम फ़ील्ड में, बनाने के लिए C# क्लास का नाम डालें. इसमें नेमस्पेस भी शामिल करें.

      उदाहरण के लिए, अगर C# क्लास id.cs है और Assets > myproject > scripts > id.cs में मौजूद है. कॉन्स्टेंट क्लास का नाम myproject.scripts.id हो सकता है.

    • संसाधन की परिभाषा फ़ील्ड में, Google Play Console से कॉपी किया गया Android संसाधनों का डेटा (AndroidManifest.xml फ़ाइल) चिपकाएं.

    • ज़रूरी नहीं: क्लाइंट आईडी फ़ील्ड में, लिंक किए गए वेब ऐप्लिकेशन का क्लाइंट आईडी डालें.

      Google Cloud से अपने गेम के लिए क्लाइंट आईडी पाने के लिए, क्लाइंट आईडी बनाना लेख पढ़ें.

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

    • सेटअप पर क्लिक करें. इससे आपके गेम को क्लाइंट आईडी के साथ कॉन्फ़िगर किया जाता है. साथ ही, यह एक C# क्लास जनरेट करता है. इसमें आपके हर Android संसाधन के लिए कॉन्स्टेंट शामिल होते हैं.

  2. Unity Editor में, Window > Google Play Games > सेटअप > Nearby Connections Setup पर क्लिक करें.

    • Nearby connection service ID फ़ील्ड में, package_name डालें.

      उसी package_name का इस्तेमाल करें जिसका इस्तेमाल आपने Unity प्रोजेक्ट सेट अप करें में किया था.

    • सेटअप पर क्लिक करें.

कोई सोशल प्लैटफ़ॉर्म चुनना

Google Play की गेम सेवाएं प्लगिन, Unity के सोशल इंटरफ़ेस को लागू करता है. ऐसा इसलिए किया जाता है, ताकि यह उन गेम के साथ काम कर सके जो अन्य प्लैटफ़ॉर्म के साथ इंटिग्रेट करते समय, पहले से ही उस इंटरफ़ेस का इस्तेमाल करते हैं. हालांकि, कुछ सुविधाएं सिर्फ़ Play Games में उपलब्ध हैं. इन्हें Unity की ओर से उपलब्ध कराए गए स्टैंडर्ड सोशल इंटरफ़ेस के एक्सटेंशन के तौर पर ऑफ़र किया जाता है.

स्टैंडर्ड एपीआई कॉल को Social.Active ऑब्जेक्ट के ज़रिए ऐक्सेस किया जा सकता है. यह ISocialPlatform इंटरफ़ेस का रेफ़रंस होता है. Google Play की गेम सेवाओं के नॉन-स्टैंडर्ड एक्सटेंशन को ऐक्सेस करने के लिए, Social.Active ऑब्जेक्ट को PlayGamesPlatform क्लास में कास्ट करें. यहां अतिरिक्त तरीके उपलब्ध हैं.

डिफ़ॉल्ट सोशल प्लैटफ़ॉर्म को बदले बिना प्लगिन का इस्तेमाल करना

PlayGamesPlatform.Activate को कॉल करने पर, Google Play की गेम सेवाएं डिफ़ॉल्ट सोशल प्लैटफ़ॉर्म के तौर पर लागू हो जाती हैं. इसका मतलब है कि Google Play की गेम सेवाएं प्लगिन, Social और Social.Active में मौजूद तरीकों को स्टैटिक कॉल करता है. प्लगिन का इस्तेमाल करने वाले ज़्यादातर गेम के लिए, यह तरीका सही है.

हालांकि, अगर आपको किसी वजह से डिफ़ॉल्ट तौर पर लागू किए गए फ़ंक्शन को ऐक्सेस करना है (उदाहरण के लिए, उपलब्धियों और लीडरबोर्ड को किसी दूसरे सोशल प्लैटफ़ॉर्म पर सबमिट करने के लिए), तो Google Play की गेम सेवाएं प्लगिन का इस्तेमाल किया जा सकता है. इसके लिए, डिफ़ॉल्ट प्लगिन को बदलने की ज़रूरत नहीं है. ऐसा करने के लिए:

  1. PlayGamesPlatform.Activate तरीके को कॉल करें.
  2. अगर Xyz, Social क्लास में कॉल किया जाने वाला कोई तरीका है, तो Social.Xyz को कॉल न करें. इसके बजाय, PlayGamesPlatform.Instance.Xyz पर कॉल करें.
  3. Google Play Games Services के साथ इंटरैक्ट करते समय, Social.Active के बजाय PlayGamesPlatform.Instance प्रॉपर्टी का इस्तेमाल करें.

इस तरह, एक साथ दो या उससे ज़्यादा सोशल प्लैटफ़ॉर्म पर स्कोर और उपलब्धियां सबमिट की जा सकती हैं:

    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

पुष्टि करने वाली सेवा की पुष्टि करना

जब आपका गेम खोला जाता है, तब प्लैटफ़ॉर्म ऑथेंटिकेशन का इस्तेमाल करके, Play की गेम सेवाएं से कनेक्ट करने की कोशिश अपने-आप होती है. कनेक्शन बन जाने पर, आपका गेम साइन-इन करने का प्रॉम्प्ट दिखाता है. इसके बाद, Unity के लिए Google Play की गेम सेवाओं के प्लगिन का इस्तेमाल किया जा सकता है.

अगर किसी व्यक्ति ने अपने डिवाइस पर Google Play Games Services का इस्तेमाल कभी नहीं किया है, तो उसे Play Games खाता बनाने के लिए, एक बार सेटअप करने वाली स्क्रीन पर अपने-आप ले जाया जाता है.

अपनी स्क्रिप्ट के Start तरीके में, अपने-आप पुष्टि करने की कोशिश के नतीजे को सुनें, पुष्टि की स्थिति पाएं, और अगर उपयोगकर्ता की पुष्टि नहीं हुई है, तो Play Games Services की सुविधाओं को बंद करें.

अगर Unity प्लगिन का वर्शन v11 से पहले का है, तो पुष्टि करने की सुविधा का इस्तेमाल नहीं किया जा सकता.

    using GooglePlayGames;

    public void Start() {
      PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status) {
      if (status == SignInStatus.Success) {
        // Continue with Play Games Services
      } else {
        // Disable your integration with Play Games Services or show a login button
        // to ask users to authenticate. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }

नतीजे का कोड एक इनम है. इसका इस्तेमाल, पुष्टि न हो पाने की वजह जानने के लिए किया जा सकता है.

अगर आपको Unity के सोशल प्लैटफ़ॉर्म का इस्तेमाल करना है, तो इसके बजाय यहां दिया गया कोड इस्तेमाल करें:

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

जब तक आपको Authenticate से सही वैल्यू नहीं मिलती, तब तक Google Play की गेम सेवाएं API कॉल नहीं किए जा सकते. इसलिए, हमारा सुझाव है कि गेम में तब तक स्टैंडबाय स्क्रीन दिखे, जब तक कि कॉलबैक नहीं हो जाता. इससे यह पक्का किया जा सकेगा कि पुष्टि की प्रक्रिया पूरी होने से पहले, उपयोगकर्ता गेम खेलना शुरू न कर पाएं.

विषय पर जाएं

प्रोफ़ाइल अपने-आप बनने की सुविधा को रोकना

मेनिफ़ेस्ट फ़ाइल का इस्तेमाल करके, प्रोफ़ाइल बनाने के लिए अपने-आप ट्रिगर होने वाले प्रॉम्प्ट बंद किए जा सकते हैं. इससे, जिन लोगों के पास Play की गेम सेवाओं वाली प्रोफ़ाइल नहीं है वे Play की गेम सेवाओं वाली प्रोफ़ाइल बनाने के लिए कहे जाने पर भी, गेम को लोड करना जारी रख सकते हैं. ज़्यादा जानकारी के लिए, प्रोफ़ाइल बनाने के विकल्प लेख पढ़ें.

इस सुविधा का इस्तेमाल करने के लिए, पक्का करें कि ये शर्तें पूरी हों:

  • डिवाइस में, साइन इन किए गए किसी भी Google खाते से जुड़ी Play की गेम सेवाएं प्रोफ़ाइल नहीं है.
  • आपका गेम, Play की गेम सेवाओं के Unity प्लगिन 2.1.0 या इसके बाद के वर्शन के साथ इंटिग्रेट किया गया हो.
  1. AndroidManifest.xml फ़ाइल में, <meta-data> एलिमेंट में com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION टैग जोड़ें. साथ ही, <application> एलिमेंट में एट्रिब्यूट जोड़ें:

    <application>
        ...
        <meta-data
            android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION"
            android:value="true" />
        ...
    </application>

    इस फ़्लैग को सही पर सेट करने से, Play की गेम सेवाओं को यह सूचना मिलती है कि आपका गेम, प्रोफ़ाइल बनाने की प्रोसेस को मैनेज करेगा. इसलिए, Play की गेम सेवाएं उन लोगों के लिए प्रोफ़ाइल बनाने का यूज़र इंटरफ़ेस अपने-आप नहीं दिखाएंगी जिनके पास Play की गेम सेवाओं की मौजूदा प्रोफ़ाइल नहीं है.

  2. अगर किसी उपयोगकर्ता की Play की गेम सेवाओं वाली प्रोफ़ाइल मौजूद नहीं है, तो उसकी पुष्टि नहीं की जा सकती. ऐसे मामलों को मैनेज करने के लिए, PlayGamesPlatform.Instance.IsAuthenticated() का इस्तेमाल किया जा सकता है. प्रोफ़ाइल नहीं बनने पर, यह तरीका false दिखाता है. इस समस्या को हल करने के लिए, PlayGamesPlatform.Instance.ManuallyAuthenticate() को कॉल करके, प्रोफ़ाइल बनाने की प्रोसेस शुरू करें.

    
    if (!PlayGamesPlatform.Instance.IsAuthenticated()) {
      // The user is unauthenticated, likely due to a missing Play Games profile.
      // Calling PlayGamesPlatform.Instance.ManuallyAuthenticate() will trigger
      // the profile creation UI.
      PlayGamesPlatform.Instance.ManuallyAuthenticate((SignInStatus status) => {
        // ...
      });
    }
    

  3. सप्रेशन टैग जोड़ने के बाद, logcat विंडो का इस्तेमाल करके यह पुष्टि करें कि टैग जोड़ा गया है या नहीं. logcat के आउटपुट में, इस तरह का मैसेज दिखता है: "Game opted out of automatic profile creation prompt (using manifest)".

'Play ऐप्लिकेशन साइनिंग' सुविधा का इस्तेमाल करना

Google, Play ऐप्लिकेशन साइनिंग की सुविधा का इस्तेमाल करके, आपके ऐप्लिकेशन के साइनिंग पासकोड को मैनेज करता है और उसे सुरक्षित रखता है. Play ऐप्लिकेशन साइनिंग का इस्तेमाल, ऑप्टिमाइज़ किए गए Android ऐप्लिकेशन बंडल (AAB) फ़ाइलों को साइन करने के लिए किया जा सकता है. Play ऐप्लिकेशन साइनिंग की सुविधा से, आपके ऐप्लिकेशन साइनिंग पासकोड को Google के सुरक्षित इन्फ़्रास्ट्रक्चर पर सेव रखा जाता है. Play ऐप्लिकेशन साइनिंग का इस्तेमाल करने के लिए, आपको सबसे पहले Unity Editor से एक AAB फ़ाइल बनानी और डाउनलोड करनी होगी. इसके बाद, Play Console पर AAB फ़ाइल अपलोड की जा सकती है. साथ ही, इंटरनल टेस्टिंग के लिए रिलीज़ बनाई जा सकती है.

AAB फ़ाइल बनाना

Unity Editor में AAB फ़ाइल बनाने के लिए, यह तरीका अपनाएं:

  1. Unity Editor में, File > Build settings पर क्लिक करें.
  2. Build App Bundle ( Google Play ) को चुनें.

    ज़्यादा जानकारी के लिए, Android Build Settings का रेफ़रंस देखें.

  3. बनाएं पर क्लिक करें.

  4. Unity Editor से AAB फ़ाइल डाउनलोड करें.

इंटरनल टेस्टिंग के लिए रिलीज़ बनाना

Play Console में इंटरनल टेस्टिंग रिलीज़ बनाने और टेस्टर जोड़ने के लिए, यह तरीका अपनाएं:

  1. Google Play Console में जाकर कोई गेम चुनें.
  2. टेस्ट और रिलीज़ पेज पर जाएं (टेस्टिंग > इंटरनल टेस्टिंग).
  3. अपलोड करें पर क्लिक करें और AAB फ़ाइल चुनें.
  4. रिलीज़ की जानकारी फ़ील्ड में, कोई नाम डालें.
  5. आगे बढ़ें पर क्लिक करें और रिलीज़ की जानकारी देखें.
  6. सहेजें और प्रकाशित करें क्‍लिक करें.
  7. टेस्टर टैब पर, ईमेल सूची बनाएं पर क्लिक करके, ज़्यादा से ज़्यादा 100 टेस्टर जोड़े जा सकते हैं.

    ज़्यादा जानकारी के लिए, इंटरनल टेस्ट: इसके तहत, 100 टेस्टर जांच में शामिल हो सकते हैं लेख पढ़ें.

  8. सुझाव/राय देने या शिकायत करने के लिए, सुझाव/राय देने या शिकायत करने वाला यूआरएल या ईमेल पता फ़ील्ड में, सुझाव/राय देने या शिकायत करने वाला यूआरएल और ईमेल पता डालें.

  9. सेव करें पर क्लिक करें.

ऐप्लिकेशन साइनिंग के क्रेडेंशियल की पुष्टि करना

  1. Google Play Console में जाकर कोई गेम चुनें.
  2. जांच करें और रिलीज़ करें पेज पर जाएं (सेटअप > ऐप्लिकेशन साइनिंग).
  3. ऐप्लिकेशन साइनिंग क्रेडेंशियल की पुष्टि करें.

प्रोजेक्ट को बिल्ड और रन करना

इस समय, गेम प्रोजेक्ट बनाया और चलाया जा सकता है. गेम शुरू होने पर, आपको पुष्टि करने की प्रोसेस अपने-आप शुरू होने का विकल्प दिखेगा.

आपके पास Android डिवाइस होना चाहिए, जिसमें यूएसबी डीबगिंग की सुविधा चालू हो. इसके अलावा, आपके पास ऐसा एम्युलेटर होना चाहिए जो डेवलप किए गए प्रोजेक्ट को चला सके.

सर्वर की पुष्टि करने के लिए कोड वापस पाना

मौजूदा प्लेयर की ओर से बैकएंड वेब सर्वर पर Google API ऐक्सेस करने के लिए, आपको क्लाइंट ऐप्लिकेशन से ऑथेंटिकेशन कोड पाना होगा. इसके बाद, इसे अपने वेब सर्वर ऐप्लिकेशन को पास करना होगा. इसके बाद, इस कोड को ऐक्सेस टोकन के लिए एक्सचेंज किया जा सकता है, ताकि अलग-अलग एपीआई को कॉल किया जा सके. वर्कफ़्लो के बारे में जानकारी के लिए, वेब के लिए 'Google से साइन इन करें' सुविधा लेख पढ़ें.

सर्वर साइड ऐक्सेस कोड पाने के लिए:

  1. Play Console में, अपने गेम के लिए वेब क्लाइंट आईडी जोड़ें.
    1. Google Play Console में जाकर, अपना गेम चुनें.
    2. कॉन्फ़िगरेशन पेज (उपयोगकर्ताओं की संख्या बढ़ाएं > Play की गेम सेवाएं > सेटअप और मैनेजमेंट > कॉन्फ़िगरेशन) पर जाकर, क्रेडेंशियल जोड़ें पर क्लिक करें.
    3. क्रेडेंशियल जोड़ें पेज पर, गेम सर्वर को चुनें.
    4. OAuth 2.0 क्लाइंट आईडी जनरेट करें.
    5. क्लाइंट आईडी की वैल्यू नोट करें. आपको यह वैल्यू बाद में देनी होगी.
  2. वेब क्लाइंट आईडी को Unity Hub में जोड़ें.

    1. Unity हब में, Unity के लिए Google Play Games सेट अप करें और पुष्टि करें.
    2. Unity Hub में, Window > Google Play Games > Setup > Android Setup पर जाएं.
    3. क्लाइंट आईडी की वैल्यू डालें.
  3. अतिरिक्त स्कोप के लिए, सर्वर ऑथराइज़ेशन कोड वापस पाएं.

    C#

    using GooglePlayGames.BasicApi;
    
    // Define selectedScope having additional identity scopes.
    private List selectedScopes = new List();
    
    // Add scopes you want to request.
    selectedScopes.Add(AuthScope.OPEN_ID);
    selectedScopes.Add(AuthScope.PROFILE);
    selectedScopes.Add(AuthScope.EMAIL);
    
    // Call RequestServerSideAccess with additional scopes and retrieve
    // authcode and grantedscopes list.
    PlayGamesPlatform.Instance.RequestServerSideAccess(
        /* forceRefreshToken= */ false,selectedScopes
        (AuthResponse authResponse) =>
        {
        string authCode = authResponse.GetAuthCode();
        List grantedScopes = authResponse.GetGrantedScopes();
    
        // send authCode to server...
    });

सुविधाएं सेट अप करना और उन्हें जोड़ना