माइग्रेशन के बारे में खास जानकारी

Google Play की गेम सेवाओं के v1 एसडीके के लिए, Google साइन-इन की सुविधा ज़रूरी है. इसे बंद कर दिया गया है. इसे Google Play services Auth SDK (com.google.android.gms:play-services-auth) से 2025 में हटा दिया जाएगा. नए गेम ऐप्लिकेशन, 2025 तक v1 एसडीके का इस्तेमाल कर सकते हैं. Google साइन-इन की सुविधा बंद होने से, मौजूदा गेम ऐप्लिकेशन में डिपेंडेंसी से जुड़ी समस्याएं आ सकती हैं. मौजूदा गेम ऐप्लिकेशन को games v1 SDK से games v2 SDK पर माइग्रेट करने से, Google साइन-इन की सुविधा बंद होने की वजह से आने वाली डिपेंडेंसी से जुड़ी समस्याएं हल हो जाती हैं.

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

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

एसडीके के इंटरैक्शन

इन डायग्राम में, Android पर मौजूद गेम ऐप्लिकेशन, Google Mobile Services (GMS) Core, Play Games की सेवाओं, और तीसरे पक्ष (3P) के गेम सर्वर के बीच होने वाले इंटरैक्शन के बारे में बताया गया है. इसमें यह बताया गया है कि ऐप्लिकेशन, पुष्टि करने और गेम की सुविधाओं के लिए Google की सेवाओं का इस्तेमाल कैसे करता है. साथ ही, यह तीसरे पक्ष के अलग सिस्टम के साथ इंटरैक्ट भी करता है.

Games v2 (मौजूदा)

Android, GMS Core, Play की गेम सेवाओं, और तीसरे पक्ष (3P) के गेम सर्वर पर मौजूद गेम ऐप्लिकेशन के बीच इंटरैक्शन.
Android पर मौजूद गेम ऐप्लिकेशन, GMS Core, Play Games की सेवाओं, और तीसरे पक्ष (3P) के गेम सर्वर के बीच इंटरैक्शन. (बड़ा करने के लिए क्लिक करें).

Games v1 (लेगसी)

Android, GMS Core, Play की गेम सेवाओं, और तीसरे पक्ष (3P) के गेम सर्वर पर मौजूद गेम ऐप्लिकेशन के बीच इंटरैक्शन.
Android पर मौजूद गेम ऐप्लिकेशन, GMS Core, Play Games की सेवाओं, और तीसरे पक्ष (3P) के गेम सर्वर के बीच इंटरैक्शन. (बड़ा करने के लिए क्लिक करें).

यहां कॉम्पोनेंट और एसडीके के बारे में खास जानकारी दी गई है:

  • गेम ऐप्लिकेशन.
    • यह Android पर चलने वाले डिवाइस पर, उपयोगकर्ता के गेम ऐप्लिकेशन को दिखाता है.
    • इसमें दो मुख्य कॉम्पोनेंट शामिल हैं:
      • Games v1 या Games v2 एसडीके. यह क्लाइंट-साइड एसडीके है, जो Play की गेम सेवाओं के साथ इंटरैक्ट करता है.
      • Auth SDK. Google Play services का Auth SDK, Games v1 में उपयोगकर्ता की पुष्टि और अनुमति देने के फ़्लो को मैनेज करता है.
    • दोनों एसडीके, AIDL (Android Interface Definition Language) का इस्तेमाल करके कम्यूनिकेट करते हैं. इससे अलग-अलग प्रोसेस या सेवाओं के बीच कम्यूनिकेशन पैटर्न का पता चलता है.
  • GMS Core को Google Play services भी कहा जाता है.
    • यह Android पर Google की मालिकाना हक वाली लेयर है.
    • गेम ऐप्लिकेशन, GMS Core के दो मॉड्यूल का इस्तेमाल करता है:
      • Games Module. यह गेम से जुड़ी सुविधाएं देता है. जैसे, लीडरबोर्ड, उपलब्धियां, और गेम के स्टेटस का मैनेजमेंट.
      • Auth Module. यह उपयोगकर्ता की पुष्टि और अनुमति देने की कार्रवाइयों को मैनेज करता है.
    • गेम ऐप्लिकेशन में मौजूद Games और Auth SDK, AIDL इंटरफ़ेस का इस्तेमाल करके, इनसे जुड़े मॉड्यूल के साथ कम्यूनिकेट करते हैं. इससे इंटर-प्रोसेस कम्यूनिकेशन (आईपीसी) का पता चलता है.

  • Play की गेम सेवाओं का गेटवे.
    • यह एक लॉजिकल गेटवे है, जो GMS Core और Play की गेम सेवाओं के सर्वर के बीच कम्यूनिकेशन को मैनेज करता है.
    • यह सर्वर कम्यूनिकेशन के लिए, एपीआई के अनुरोधों, डेटा ट्रांसफ़ॉर्मेशन, और पुष्टि को मैनेज करता है.
  • Play की गेम सेवाओं का सर्वर.
    • यह Play की गेम सेवाओं के बैकएंड की सेवाओं को दिखाता है. यह गेम में परफ़ॉर्मेंस का डेटा सेव करने, उपयोगकर्ता के खातों को मैनेज करने, और एक से ज़्यादा खिलाड़ियों वाली सुविधाएं देने के लिए ज़िम्मेदार है.
  • तीसरे पक्ष के गेम का गेटवे.
    • अगर आपका गेम ऐप्लिकेशन, तीसरे पक्ष (3P) के ऐप्लिकेशन के तौर पर ज़रूरी शर्तें पूरी करता है, तो क्लाइंट लाइब्रेरी, तीसरे पक्ष के गेम सर्वर के ज़रिए, Play की गेम सेवाओं के सर्वर के साथ कम्यूनिकेट करती है.
    • इसका मतलब है कि ऐप्लिकेशन, किसी दूसरे सेवा देने वाले व्यक्ति के साथ भी पुष्टि कर सकता है.
  • तीसरे पक्ष का गेम सर्वर.
    • यह एक वैकल्पिक बाहरी सर्वर को दिखाता है, जिसके साथ गेम ऐप्लिकेशन इंटरैक्ट कर सकता है. ऐसा आम तौर पर, कस्टम सुविधाओं या डेटा मैनेजमेंट के लिए किया जाता है.
    • ऐप्लिकेशन के साथ कम्यूनिकेशन, तीसरे पक्ष के गेम के गेटवे के ज़रिए होता है.

अपने टाइटल को Play की गेम सेवाओं के v2 पर माइग्रेट क्यों करें

Play की गेम सेवाओं के v1 से v2 पर ट्रांज़िशन, आर्किटेक्चर को मॉडर्न बनाने का एक अहम अपडेट है. इससे गेम डेवलप करना आसान हो जाता है और क्रॉस-प्लैटफ़ॉर्म गेमिंग की सुविधा मिलती है.

Play Games की सेवाओं का v2, प्लैटफ़ॉर्म और इन-गेम आइडेंटिटी को अलग करता है. जबकि v1, इन-गेम आइडेंटिटी सिस्टम के तौर पर काम करता था. यह प्लैटफ़ॉर्म-लेवल आइडेंटिटी सिस्टम के तौर पर काम करता है. इससे गेम लॉन्च होने पर, खिलाड़ियों की पहचान की पुष्टि अपने-आप हो जाती है, ताकि उपलब्धियों और लीडरबोर्ड जैसी सुविधाओं को मैनेज किया जा सके.

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

प्लैटफ़ॉर्म ऑथेंटिकेशन और इन-गेम ऑथेंटिकेशन की तुलना करना

Play की गेम सेवाओं के v2 में, "लॉग इन करने" की प्रोसेस को दो अलग-अलग लेयर में बांटा गया है:

  • प्लैटफ़ॉर्म आइडेंटिटी. एसडीके, प्लैटफ़ॉर्म ऑथेंटिकेशन को मैनेज करता है.
  • इन-गेम आइडेंटिटी.

प्लैटफ़ॉर्म ऑथेंटिकेशन

Play Games की सेवाएं, प्लैटफ़ॉर्म एंगेजमेंट लेयर के तौर पर काम करती हैं. यह किसी खास गेम खाते या इन्वेंट्री में पुष्टि करने के बजाय, Google Play Games के इकोसिस्टम (उपलब्धियां, लीडरबोर्ड, और इवेंट) के साथ खिलाड़ी के संबंध को मैनेज करता है.

  • साइलेंट और ऑटोमैटिक: गेम लॉन्च होने पर, बैकग्राउंड में ऑथेंटिकेशन अपने-आप हो जाता है. Play की गेम सेवाओं के लिए, मैन्युअल तौर पर "साइन इन करें" बटन की ज़रूरत नहीं होती.
  • प्लेयर आईडी: प्लैटफ़ॉर्म ऑथेंटिकेशन के बाद, Play की गेम सेवाएं एक स्टेबल प्लेयर आईडी देती हैं. यह आईडी, एक ही गेम के लिए सभी डिवाइसों पर एक जैसा होता है. हालांकि, इसका इस्तेमाल मुख्य तौर पर, प्लैटफ़ॉर्म के आंकड़े (जैसे, उपलब्धि की प्रोग्रेस) ट्रैक करने के लिए किया जाना चाहिए.
  • अलग-अलग: Play Games की सेवाओं के v2 का इस्तेमाल, आपके गेम के मुख्य आइडेंटिटी सिस्टम के तौर पर नहीं किया जाना चाहिए. इससे खिलाड़ी के इन-गेम खाते को उसकी गेम प्रोग्रेस या इन्वेंट्री के साथ मैनेज किया जाता है. Play की गेम सेवाएं v2, सिर्फ़ एक सेकंडरी, परसिस्टेंट प्लैटफ़ॉर्म आइडेंटिफ़ायर के तौर पर काम करता है.

इन-गेम ऑथेंटिकेशन

डेवलपर, "इन-गेम खाता" (आईजीए) मैनेज करने के लिए ज़िम्मेदार होते हैं. यह आइडेंटिटी सिस्टम है, जो आपके गेम में खिलाड़ी की प्रोग्रेस, इन्वेंट्री, और मुद्रा को बाइंड करता है.

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

माइग्रेशन की ज़रूरी शर्त: इन-गेम खातों को Play की गेम सेवाओं के प्लेयर आईडी के बजाय, Google Open ID से बाइंड करना

Play की गेम सेवाओं के v1 में, डेवलपर Play की गेम सेवाओं को मुख्य आइडेंटिटी प्रोवाइडर के तौर पर इस्तेमाल करते थे. "Google Play" बटन, खिलाड़ी के इन-गेम खाते (आईजीए) को सीधे उनके Player ID से लिंक करता था.

Play की गेम सेवाएं v2, गेम लॉन्च होने पर, प्लैटफ़ॉर्म ऑथेंटिकेशन की सुविधा अपने-आप और साइलेंट तरीके से देता है. अब Player ID का इस्तेमाल, सिर्फ़ प्लैटफ़ॉर्म की सुविधाओं के लिए किया जाता है. जैसे, लीडरबोर्ड और उपलब्धियां. यह मुख्य खाता लॉगिन से अलग होता है.

अब गेम को मुख्य आइडेंटिटी को अलग से मैनेज करना होगा. इसके लिए, एक अलग लॉगिन स्क्रीन का इस्तेमाल करना होगा. इसमें "Google से साइन इन करें" (एसआईडब्ल्यूजी) या अन्य सोशल खातों जैसे तरीके उपलब्ध कराने होंगे. अहम बात यह है कि Play की गेम सेवाओं के v2 का इस्तेमाल, मुख्य आइडेंटिटी सिस्टम के तौर पर नहीं किया जाना चाहिए.

आर्किटेक्चर में इस बदलाव के लिए, डेवलपर को अपने खाते में मौजूद डेटा को स्ट्रक्चर करने के तरीके में भी बदलाव करना होगा. इन-गेम खाते (आईजीए) को, मुख्य तौर पर Player ID से बाइंड नहीं किया जाना चाहिए.

इसके बजाय, आईजीए को अब एक स्टेबल, मुख्य आइडेंटिफ़ायर से बाइंड किया जाना चाहिए, जो Play की गेम सेवाओं से अलग हो. सुझाया गया आइडेंटिफ़ायर, Open ID है. यह Google से साइन इन करें (एसआईडब्ल्यूजी) फ़्लो से मिलता है. यह Open ID, आपके सिस्टम में खिलाड़ी के प्राथमिक खाते के लिए, एक यूनीक, परसिस्टेंट कुंजी के तौर पर काम करता है.

हालांकि, आईजीए को सेकंडरी बाइंडिंग के तौर पर, Player ID से अब भी लिंक किया जा सकता है. इस सेकंडरी लिंक से दो अहम काम होते हैं:

  1. इससे गेम, उस खास खिलाड़ी से जुड़ी Play Games की सुविधाओं (उपलब्धियां वगैरह) की प्रोग्रेस को ट्रैक और अपडेट कर सकता है.
  2. इससे "आसानी से रीस्टोर करने" की सुविधा मिलती है. इसकी मदद से, गेम किसी नए डिवाइस पर या फिर से इंस्टॉल करने के बाद, खिलाड़ी को उसके हाल ही में इस्तेमाल किए गए आईजीए में अपने-आप लॉग इन कर सकता है.

इस अलग आइडेंटिटी मॉडल को समझना, आपके गेम के लिए तकनीकी माइग्रेशन का सही पाथ अनलॉक करने की कुंजी है.

सुविधाओं की तुलना

इस टेबल में, Games v1 और Games v2 एसडीके की सुविधाओं की तुलना की गई है:


सुविधा

Games v1 एसडीके

Games v2 एसडीके

ऑथेंटिकेशन

play-services-auth के साथ इंटिग्रेशन ज़रूरी है.

यह आसान और कारगर है. इसके लिए, play-services-auth की ज़रूरत नहीं है.

अनुमति

सफलता, असफलता, और फिर से कोशिश करने के लिए, अतिरिक्त कोड की ज़रूरत होती है.

इसे एसडीके मैनेज करता है

सर्वर ऐक्सेस टोकन

`GoogleSigninClient` के साथ, OAuth 2.0 के अतिरिक्त दायरे का अनुरोध किया जा सकता है.
GoogleSigninClient

ऑथेंटिकेशन के दौरान, गड़बड़ी को मैनेज करने के लिए अतिरिक्त कोड की ज़रूरत होती है.

Play की गेम सेवाओं के वेब एपीआई को सर्वर-साइड से ऐक्सेस करने का अनुरोध करते समय, GamesSignInClient के साथ, OAuth 2.0 के तीन बुनियादी आइडेंटिटी दायरे का अनुरोध किया जा सकता है.

ज़्यादा जानकारी के लिए, Play Games की सेवाओं को सर्वर-साइड से ऐक्सेस करना और सर्वर ऑथेंटिकेशन कोड वापस पाना लेख पढ़ें.


साइन-इन करने की प्रोसेस

GoogleSigninClient का इस्तेमाल किया जाता है.

ऑटोमैटिक ऑथेंटिकेशन और गड़बड़ी को मैनेज करने के लिए, बॉयलरप्लेट कोड को मैनेज करने के लिए अतिरिक्त कोड की ज़रूरत होती है.

GamesSignInClient का इस्तेमाल किया जाता है.

एसडीके, बॉयलरप्लेट कोड, ऑटोमैटिक ऑथेंटिकेशन, और गड़बड़ी को मैनेज करने की सुविधा देता है. "साइन इन करने" की प्रोसेस को दो अलग-अलग लेयर में बांटा गया है:
  • प्लैटफ़ॉर्म ऑथेंटिकेशन: इसे Play की गेम सेवाओं का v2 एसडीके मैनेज करता है.
  • इन-गेम ऑथेंटिकेशन: इसे गेम मैनेज करता है.

वेलकम पॉप-अप

इसके लिए, अतिरिक्त कोड की ज़रूरत होती है.
डेवलपर, इसकी जगह और समय को कंट्रोल कर सकते हैं.

इसके लिए, अतिरिक्त कोड की ज़रूरत नहीं होती. Games v2 एसडीके के साथ कॉन्फ़िगर किए गए सभी गेम में, एक जैसा यूज़र इंटरफ़ेस होता है.

डिपेंडेंसी

इसके लिए, play-services-auth की ज़रूरत होती है.

Games Module, अनुमति और ऑथेंटिकेशन को मैनेज करता है. आपको कोई अतिरिक्त डिपेंडेंसी जोड़ने की ज़रूरत नहीं है.
साइन-आउट

GoogleSignInClient.signOut का इस्तेमाल किया जाता है.

साइन-आउट एपीआई की ज़रूरत नहीं है, क्योंकि Play Games की सेवाओं का v2, एक परसिस्टेंट प्लैटफ़ॉर्म आइडेंटिटी है.

Play Games की सेवाओं के एक से ज़्यादा खाते और हर गेम के लिए अलग-अलग सेटिंग

आपके गेम में, खाता मैनेजमेंट की सुविधा उपलब्ध है.

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