Play Games PC SDK का इस्तेमाल करके, अपने गेम को बेहतर बनाना

Play Games PC SDK की मदद से, पीसी पर गेम बनाने और उससे कमाई करने के लिए, Google Play services को ऐक्सेस किया जा सकता है. Play Billing का इस्तेमाल करके डिजिटल कॉन्टेंट बेचें, Play Games का इस्तेमाल करके आसानी से साइन-इन करें, और Play Integrity की मदद से यह पुष्टि करें कि आपके उपयोगकर्ताओं के पास आपके ऐप्लिकेशन का मान्य एनटाइटलमेंट है.

आने वाली सुविधाओं, स्टेबल रिलीज़, और इंटिग्रेशन आर्किटेक्चर के बारे में खास जानकारी पाने के लिए, Play Games PC का रोडमैप देखें.

क्या आप शुरू करने के लिए तैयार हैं?

ज़रूरी शर्तें

  • Play Console में ऐप्लिकेशन की एंट्री बनाएं और Play पैकेज के नाम पर दावा करें.

  • Google Play Games for PC डाउनलोड और इंस्टॉल करें. इसके बाद, अपने Google खाते से साइन इन करें.

पहला चरण: अपने प्रोजेक्ट में एसडीके जोड़ना

C++

  • Play Games PC C++ SDK डाउनलोड करें.

  • एपीआई हेडर फ़ोल्डर includes/ को अपने ऐप्लिकेशन के कोडबेस में कॉपी करें.

  • अपने ऐप्लिकेशन के प्रोजेक्ट में, imports/ डायरेक्ट्री से रीडिस्ट्रिब्यूट की जा सकने वाली फ़ाइलों को कॉपी करें. यह आपके टारगेट आर्किटेक्चर पर निर्भर करता है:

  • 64-बिट (x64) के लिए: imports/x64/ से फ़ाइलें कॉपी करें.

  • 32-बिट (x86) के लिए: imports/x86/ से फ़ाइलें कॉपी करें.

  • अपने प्रोजेक्ट को play_pc_sdk.lib से लिंक करें, ताकि play_pc_sdk.dll के कॉन्टेंट का ऐक्सेस मिल सके.

C#

  • Play Games PC Unity SDK को tar फ़ाइल (.tgz) के तौर पर डाउनलोड करें.

  • एसडीके को टार फ़ाइल (.tgz) के तौर पर डिस्ट्रिब्यूट किया जाता है. यह Unity Package Manager (UPM) के साथ काम करती है. पैकेज इंपोर्ट करने के लिए, लोकल टार फ़ाइल से UPM पैकेज इंस्टॉल करना लेख पढ़ें

  • ज़्यादा जानकारी वाले दस्तावेज़, सेटअप करने के निर्देश, और अन्य दिशा-निर्देशों के लिए, Play PC Unity Package पेज देखें.

दूसरा चरण: मेनिफ़ेस्ट फ़ाइल जोड़ना

अपने गेम में एसडीके का इस्तेमाल करने से पहले, आपको अपने गेम के एक्ज़ीक्यूटेबल को उस Play पैकेज के नाम से जोड़ना होगा जिस पर आपने Play Console में दावा किया है. इसके लिए, आपको अपने गेम के एक्ज़ीक्यूटेबल फ़ाइल वाली डायरेक्ट्री में manifest.xml फ़ाइल जोड़नी होगी.

उदाहरण manifest.xml कॉन्टेंट:

<?xml version="1.0" encoding="utf-8"?>
<Manifest version="1">
    <Application>
        <PackageName>com.example.package</PackageName>
    </Application>
</Manifest>

manifest.xml प्लेसमेंट का उदाहरण:

C:\Program Files
└───Example Game
    ├───Game.exe
    └───manifest.xml

तीसरा चरण: अपने गेम पर डिजिटल हस्ताक्षर करना

एसडीके का इस्तेमाल करने से पहले, गेम की एक्ज़ीक्यूटेबल फ़ाइल को Authenticode Digital Signature का इस्तेमाल करके डिजिटल रूप से साइन किया जाना ज़रूरी है. किसी एक्ज़ीक्यूटेबल पर हस्ताक्षर करने के तरीके के बारे में जानने के लिए, SignTool के बारे में दस्तावेज़ देखें .

गेम पर डिजिटल हस्ताक्षर करने की प्रोसेस पूरी करने के बाद, कॉन्फ़िगरेशन के लिए अपने Google प्रतिनिधि को सर्टिफ़िकेट की जानकारी भेजें.

चौथा चरण: एसडीके टूल को शुरू करना

अपने गेम के स्टार्टअप सीक्वेंस के दौरान, SDK टूल को शुरू करें. यह प्रोसेस अपने-आप होनी चाहिए. इसके लिए, उपयोगकर्ता के किसी इंटरैक्शन की ज़रूरत नहीं होनी चाहिए. हमारा सुझाव है कि गेम विंडो रेंडर करने से पहले, यह पुष्टि कर लें कि शुरुआत सही तरीके से हुई है. इससे उपयोगकर्ताओं को बेहतर अनुभव मिलता है. ऐसा इसलिए, क्योंकि गड़बड़ियों का पता चलने पर उन्हें तुरंत ठीक किया जाता है. साथ ही, इससे उन मामलों में गेम विंडो के कुछ समय के लिए दिखने की समस्या से बचा जा सकता है जहां गेम प्रोसेस को बंद करने की ज़रूरत होती है.

एपीआई को शुरू करने के लिए, GooglePlayInitialize (C++) या GooglePlayInitialization.InitializeAsync (C#) को कॉल करके, एसडीके का इस्तेमाल शुरू करें. हमारा सुझाव है कि आप गेम के Android पैकेज का नाम, GooglePlayInitializeParams में पास करें. ऐसा, SDK को शुरू करते समय करें. इससे ग्लोबल स्टेट सेट अप होती है, एसडीके रनटाइम से कनेक्ट होता है, और यह पुष्टि होती है कि ऐप्लिकेशन को सही तरीके से शुरू किया गया है. किसी अन्य एपीआई का इस्तेमाल करने से पहले, आपको इसे कॉल करना होगा. साथ ही, InitializeResult::ok() (C++) या Result.IsOk (C#) के साथ true के बराबर का कंटिन्यूएशन कॉलबैक पूरा करना होगा.

C++

// Initialize the SDK as part of the startup sequence of your
// application.
auto promise = std::make_shared<std::promise<InitializeResult>>();
GooglePlayInitializeParams params;
// Replace with your game's package name.
params.package_name = "com.example.game";
GooglePlayInitialize(
  [promise] (InitializeResult result) {
    promise->set_value(std::move(result));
  }, params);

auto initialize_result = promise->get_future().get();
if (initialize_result.ok()) {
  // The SDK succeeded with initialization. Continue with the startup
  // sequence of the game.
  // ...

  // Retrieve the operating environment and device form factor.
  auto env = initialize_result.value().environment;
  auto form_factor = initialize_result.value().form_factor;
  // ...
} else if (
    initialize_result.code() ==
    InitializationError::kActionRequiredShutdownClientProcess) {
  // The SDK failed to initialize and has requested that your game
  // process exit as soon as possible.
  exit(1);
} else {
  // The SDK failed to initialize for an alternative reason. It is
  // still generally recommended that you exit the game process as
  // soon as possible, because it won't be possible to access any
  // APIs in the SDK. Critical operations such as verifying the user
  // owns a valid license to your game won't be possible.
  // ...
}

C#

// SDK Clients
private BillingClient _billingClient;
private IntegrityClient _integrityClient;

// Stored product information
private string _offerToken;

private async void InitializeSDK()
{
    // The factory provides the necessary handler for initialization.
    var initializationHandler =
        PlayPcSdkFactory.InitializationHandler;
    var initializeParams = new GooglePlayInitializeParams {
        // Replace with your game's package name.
        PackageName = "com.example.game"
    };
    var result = await GooglePlayInitialization.InitializeAsync(
        initializationHandler, initializeParams);

    if (result.IsOk)
    {
        // Use the factory to get Unity-compatible instances of the
        // clients
        _billingClient = PlayPcSdkFactory.CreateBillingClient();
        _integrityClient = PlayPcSdkFactory.CreateIntegrityClient();

        // Retrieve the operating environment and device form factor.
        var env = result.Value.Environment;
        var form_factor = result.Value.FormFactor;

        // SDK is ready for use
    }
    else
    {
        // Handle specific, actionable errors
        if (result.Code ==
            InitializationError.ActionRequiredShutdownClientProcess)
        {
            Log("This game must be launched through the Google Play Games client. Exit all game processes immediately, GPG will relaunch the game safely.");
            Application.Quit();
        }
    }
}

अगर kActionRequiredShutdownClientProcess (C++) / InitializationError.ActionRequiredShutdownClientProcess (C#) कोड से शुरू करने पर समस्या आती है, तो गेम प्रोसेस को जल्द से जल्द बंद करें. एसडीके का रनटाइम, उपयोगकर्ता की मदद करने की कोशिश करेगा. इसके लिए, आपके गेम को कोई और कार्रवाई करने की ज़रूरत नहीं होगी. उदाहरण के लिए, अगर किसी व्यक्ति के पास गेम का मान्य लाइसेंस नहीं है, तो Google Play Games उसे गेम की कॉपी खरीदने के लिए कहेगा. अन्य गड़बड़ियों के लिए, आपको गेम प्रोसेस से भी बाहर निकलना चाहिए. ऐसा इसलिए, क्योंकि एसडीके का इस्तेमाल करके ज़रूरी कार्रवाइयां नहीं की जा सकेंगी. जैसे, यह पुष्टि करना कि उपयोगकर्ता के पास आपके गेम का मान्य लाइसेंस है.

अगर आपको जवाब नहीं मिलता है, तो इसका मतलब इनमें से कोई एक हो सकता है:

  • एसडीके रनटाइम इंस्टॉल नहीं है, डिवाइस पर नहीं चल रहा है या यह एक पुराना वर्शन है. यह आपके गेम में इंटिग्रेट किए गए एसडीके के साथ काम नहीं करता.

  • SDK रनटाइम, गेम की ऐप्लिकेशन पहचान की पुष्टि नहीं कर सका. ऐसा, अमान्य manifest.xml की वजह से हो सकता है. इसके अलावा, डेवलपमेंट के दौरान डेवलपर मोड चालू किए बिना एसडीके टूल का इस्तेमाल करने पर भी ऐसा हो सकता है. इसके बिना, आपके गेम की एक्ज़ीक्यूटेबल फ़ाइल को डिजिटल रूप से साइन करना ज़रूरी है. इसके लिए, Play पैकेज के नाम से रजिस्टर किए गए डिजिटल सर्टिफ़िकेट का इस्तेमाल करें.

  • गेम के एक्ज़ीक्यूटेबल को Google Play Games क्लाइंट के ज़रिए लॉन्च नहीं किया गया था.

  • Google Play Games में सक्रिय उपयोगकर्ता के पास ऐप्लिकेशन का लाइसेंस नहीं है.

पांचवां चरण: (ज़रूरी नहीं) एक से ज़्यादा गेम-प्रोसेस को सपोर्ट करना

अगर आपका गेम एक से ज़्यादा प्रोसेस का इस्तेमाल करता है और Play Games PC SDK का इस्तेमाल, Google Play Games on PC से लॉन्च की गई प्रोसेस के अलावा किसी दूसरी प्रोसेस से किया जाता है, तो इंटिग्रेशन के इन अतिरिक्त चरणों को पूरा करें. उदाहरण के लिए, अगर Google Play Games on PC आपके गेम का लॉन्चर लॉन्च करता है, तो आपका लॉन्चर गेम की प्रोसेस शुरू करता है. यह प्रोसेस, एसडीके के साथ इंटरैक्ट करेगी.

  1. Google Play Games for PC से सीधे तौर पर लॉन्च की गई प्रोसेस को, Play Games PC SDK के चालू होने की पुष्टि करनी होगी.

    इससे उपयोगकर्ताओं को बेहतर अनुभव मिलता है, क्योंकि गड़बड़ियों के बारे में उन्हें जल्द से जल्द पता चल जाता है. ध्यान दें कि एसडीके का इस्तेमाल करने वाली चाइल्ड-प्रोसेस को भी सीधे तौर पर लॉन्च की गई प्रोसेस के अलावा, इनिशियलाइज़ेशन करना होगा.

  2. चाइल्ड-प्रोसेस में Play Games PC SDK का इस्तेमाल करने के लिए, कमांड लाइन पैरामीटर को स्पॉन की गई चाइल्ड-प्रोसेस में फ़ॉरवर्ड करें.

    कमांड लाइन पैरामीटर फ़ॉरवर्ड करने का उदाहरण:

    Processes hierarchy tree:
    
    GooglePlayGames.exe
    └───YourGameLauncher.exe --gpg_args=abc --your_args=123
        └───YourGame.exe --gpg_args=abc --your_args=123
    

    इस उदाहरण में, प्रोसेस की हैरारकी दिखाई गई है. इसमें Google Play Games for PC (GooglePlayGames.exe) कुछ उदाहरण पैरामीटर (--gpg_args=abc --your_args=123) के साथ गेम (YourGameLauncher.exe) लॉन्च करता है. इसके बाद, गेम एक चाइल्ड-प्रोसेस (YourGame.exe) बनाता है, जो Play Games PC SDK का इस्तेमाल करती है. इसके लिए, Google Play Games on PC से लॉन्च की गई गेम प्रोसेस, कमांड लाइन पैरामीटर को चाइल्ड-प्रोसेस में फ़ॉरवर्ड करती है.

  3. गेम बंद होने पर, सभी प्रोसेस बंद हो जाती हैं.

    जब कोई उपयोगकर्ता आपका गेम बंद कर देता है या एसडीके को शुरू करने में गड़बड़ी होने की वजह से गेम बंद हो जाता है, जैसे कि kActionRequiredShutdownClientProcess, तो आपके गेम से जुड़ी सभी प्रोसेस बंद कर दें. इससे यह पक्का होता है कि अगली बार जब Google Play Games for PC क्लाइंट से आपका गेम लॉन्च किया जाए, तो नए बदलाव लागू हो जाएं. जैसे, किसी दूसरे चालू खाते पर स्विच करना.

अगले चरण

अपने आईडीई में डेवलपमेंट करते समय, एसडीके टूल का इस्तेमाल करें:

अपने ऐप्लिकेशन में Google Play PC की सुविधाएं जोड़ें:

  • Play Billing का इस्तेमाल करके डिजिटल सामान बेचना
  • Play Install Referrer की मदद से, मार्केटिंग की परफ़ॉर्मेंस मेज़र करना
  • Play Integrity for PC का इस्तेमाल करके, अपने गेम को सुरक्षित रखें