Play Games PC SDK की मदद से, Google Play की सेवाओं को ऐक्सेस किया जा सकता है. इससे पीसी पर अपने गेम को बनाया और उससे कमाई की जा सकती है. Play Billing का इस्तेमाल करके, डिजिटल कॉन्टेंट बेचा जा सकता है. Play Games का इस्तेमाल करके, आसानी से साइन इन किया जा सकता है. साथ ही, Play Integrity की मदद से, यह पुष्टि की जा सकती है कि आपके उपयोगकर्ताओं के पास आपके ऐप्लिकेशन का मान्य लाइसेंस है.
क्या आप शुरू करने के लिए तैयार हैं?
ज़रूरी शर्तें
Play Console में अपने ऐप्लिकेशन की एंट्री बनाएं और Play पैकेज के नाम पर दावा करें.
पीसी के लिए Google Play Games डाउनलोड और इंस्टॉल करें. इसके बाद, अपने Google खाते से साइन इन करें.
पहला चरण: अपने प्रोजेक्ट में SDK टूल जोड़ना
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 को टारबॉल (.tgz) फ़ाइल के तौर पर डाउनलोड करें.
एसडीके, टारबॉल (.tgz) के तौर पर डिस्ट्रिब्यूट किया जाता है. यह Unity Package Manager (UPM) के साथ काम करता है. पैकेज इंपोर्ट करने के लिए, स्थानीय टार फ़ाइल से UPM पैकेज इंस्टॉल करना लेख पढ़ें
ज़्यादा जानकारी के लिए, सेटअप के निर्देशों के लिए, और अन्य दिशा-निर्देशों के लिए, कृपया Play PC Unity Package पेज देखें.
दूसरा चरण: मेनिफ़ेस्ट फ़ाइल जोड़ना
अपने गेम में SDK टूल का इस्तेमाल करने से पहले, आपको अपने गेम की एक्ज़ीक्यूटेबल फ़ाइल को Play Console में दावा किए गए Play पैकेज के नाम से जोड़ना होगा. इसके लिए, अपने गेम की एक्ज़ीक्यूटेबल फ़ाइल वाली डायरेक्ट्री में 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
तीसरा चरण: अपने गेम पर डिजिटल हस्ताक्षर करना
आपका गेम, SDK टूल का इस्तेमाल तब तक नहीं कर सकता, जब तक गेम की एक्ज़ीक्यूटेबल फ़ाइल पर डिजिटल हस्ताक्षर न किया गया हो जिसमें Authenticode Digital Signature का इस्तेमाल किया गया हो. किसी एक्ज़ीक्यूटेबल फ़ाइल पर हस्ताक्षर करने के निर्देशों के लिए, SignTool के बारे में दस्तावेज़ देखें .
अपने गेम पर डिजिटल हस्ताक्षर करने की प्रोसेस पूरी करने के बाद, कॉन्फ़िगरेशन के लिए, अपने Google प्रतिनिधि को सर्टिफ़िकेट की जानकारी भेजें.
चौथा चरण: SDK टूल को शुरू करना
अपने गेम के स्टार्टअप सीक्वेंस के दौरान, SDK टूल को शुरू करें. यह प्रोसेस, उपयोगकर्ता के किसी भी इंटरैक्शन के बिना अपने-आप होनी चाहिए. हमारा सुझाव है कि गेम की विंडो रेंडर करने से पहले, यह पुष्टि कर लें कि SDK टूल को शुरू करने की प्रोसेस पूरी हो गई है. इससे उपयोगकर्ताओं को बेहतर अनुभव मिलता है, क्योंकि गड़बड़ियां सामने आते ही उन्हें ठीक कर दिया जाता है. साथ ही, अगर आपके गेम की प्रोसेस को बंद करना पड़ता है, तो गेम की विंडो कुछ समय के लिए भी नहीं दिखती.
एपीआई को शुरू करने के लिए,
GooglePlayInitialize (C++) /
GooglePlayInitialization.InitializeAsync (C#)
को कॉल करके, SDK टूल का इस्तेमाल शुरू करें. इससे ग्लोबल स्टेट सेट अप हो जाएगा, 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>>();
GooglePlayInitialize(
[promise](InitializeResult result) {
promise->set_value(std::move(result));
});
auto initialize_result = promise->get_future().get();
if (initialize_result.ok()) {
// The SDK succeeded with initialization. Continue with the startup sequence
// of the game.
// ...
} 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 result = await GooglePlayInitialization.InitializeAsync(initializationHandler);
if (result.IsOk)
{
// Use the factory to get Unity-compatible instances of the clients
_billingClient = PlayPcSdkFactory.CreateBillingClient();
_integrityClient = PlayPcSdkFactory.CreateIntegrityClient();
// 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. Please exit all game processes immediately, GPG will relaunch the game safely.");
Application.Quit();
}
}
}
अगर kActionRequiredShutdownClientProcess (C++) / InitializationError.ActionRequiredShutdownClientProcess (C#) कोड के साथ, SDK टूल को शुरू करने की प्रोसेस पूरी नहीं होती है, तो गेम की प्रोसेस को जल्द से जल्द बंद करें. एसडीके टूल का रनटाइम, उपयोगकर्ता की मदद करने की कोशिश करेगा. इसके लिए, आपके गेम को कोई अतिरिक्त कार्रवाई करने की ज़रूरत नहीं होगी. उदाहरण के लिए, अगर उपयोगकर्ता के पास गेम का मान्य लाइसेंस नहीं है, तो 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, आपके गेम का लॉन्चर लॉन्च करता है. इसके बाद, आपका लॉन्चर, गेम की उस प्रोसेस को शुरू करता है जो एसडीके टूल के साथ इंटरैक्ट करेगी.
-
इससे उपयोगकर्ताओं को बेहतर अनुभव मिलता है, क्योंकि गड़बड़ियां सामने आते ही उन्हें ठीक कर दिया जाता है. ध्यान दें कि एसडीके टूल का इस्तेमाल करने वाली चाइल्ड-प्रोसेस को भी, सीधे लॉन्च की गई प्रोसेस के अलावा, एसडीके टूल को शुरू करने की प्रोसेस पूरी करनी होगी.
चाइल्ड-प्रोसेस में 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 on PC (
GooglePlayGames.exe), गेम (YourGameLauncher.exe) को कुछ उदाहरण पैरामीटर (--gpg_args=abc --your_args=123) के साथ लॉन्च करता है. इसके बाद, गेम एक चाइल्ड-प्रोसेस (YourGame.exe) स्पॉन करता है. यह प्रोसेस, Play Games PC SDK टूल का इस्तेमाल करती है. ऐसा करने के लिए, Google Play Games on PC से लॉन्च की गई गेम की प्रोसेस, उसे दिए गए कमांड लाइन पैरामीटर को चाइल्ड-प्रोसेस में फ़ॉरवर्ड करती है.गेम बंद होने पर, सभी प्रोसेस बंद करें.
जब कोई उपयोगकर्ता आपका गेम बंद करता है या एसडीके टूल को शुरू करने की प्रोसेस पूरी न होने की वजह से गेम बंद हो जाता है, तो आपके गेम से स्पॉन की गई सभी प्रोसेस बंद करें. जैसे,
kActionRequiredShutdownClientProcess. इससे यह पक्का होता है कि अगली बार जब Google Play Games on PC क्लाइंट से आपका गेम लॉन्च किया जाएगा, तो नए बदलाव लागू होंगे. जैसे, किसी दूसरे सक्रिय खाते पर स्विच करना.
अगले चरण
अपने आईडीई में डेवलपमेंट के दौरान, एसडीके टूल का इस्तेमाल करें:
- डेवलपर मोड चालू करना
अपने ऐप्लिकेशन में Google Play PC की सुविधाएं जोड़ें:
- Play Billing की मदद से, डिजिटल सामान बेचना
- Play Install Referrer की मदद से, अपनी मार्केटिंग के नतीजों को मेज़र करना
- पीसी के लिए Play Integrity की मदद से, अपने गेम को सुरक्षित रखना