Play Games PC SDK की मदद से, Google Play services को ऐक्सेस किया जा सकता है. इससे पीसी के लिए गेम बनाए जा सकते हैं और उनसे कमाई की जा सकती है. Play Billing का इस्तेमाल करके, डिजिटल कॉन्टेंट बेचा जा सकता है. Play Games का इस्तेमाल करके, आसानी से साइन-इन किया जा सकता है. साथ ही, Play Integrity की मदद से यह पुष्टि की जा सकती है कि उपयोगकर्ताओं के पास आपके ऐप्लिकेशन को इस्तेमाल करने का मान्य अधिकार है.
क्या आप शुरू करने के लिए तैयार हैं?
ज़रूरी शर्तें
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 को टारबॉल (.tgz) फ़ाइल के तौर पर डाउनलोड करें.
एसडीके को Unity Package Manager (UPM) के साथ काम करने वाली टारबॉल (.tgz) के तौर पर डिस्ट्रिब्यूट किया जाता है. पैकेज इंपोर्ट करने के लिए, स्थानीय टार फ़ाइल से 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 प्रतिनिधि को सर्टिफ़िकेट की जानकारी भेजें.
चौथा चरण: एसडीके को शुरू करना
अपने गेम के स्टार्टअप सीक्वेंस के दौरान, एसडीके को शुरू करें. यह प्रोसेस, उपयोगकर्ता के किसी भी इंटरैक्शन के बिना अपने-आप होनी चाहिए. हमारा सुझाव है कि गेम की विंडो रेंडर करने से पहले, एसडीके के शुरू होने की पुष्टि कर लें. इससे उपयोगकर्ताओं को बेहतर अनुभव मिलता है, क्योंकि गड़बड़ियां सामने आते ही उन्हें ठीक किया जा सकता है. साथ ही, अगर आपके गेम की प्रोसेस को बंद करना पड़ता है, तो गेम की विंडो कुछ समय के लिए भी नहीं दिखती.
एपीआई को शुरू करने के लिए,
GooglePlayInitialize (C++) /
GooglePlayInitialization.InitializeAsync (C#)
को कॉल करके, एसडीके का इस्तेमाल शुरू करें. इससे ग्लोबल स्टेट सेट अप हो जाएगी, एसडीके के रनटाइम से कनेक्ट हो जाएगा, और यह पुष्टि हो जाएगी कि ऐप्लिकेशन सही तरीके से शुरू हुआ है. किसी अन्य एपीआई का इस्तेमाल करने से पहले, इसे कॉल करना ज़रूरी है. साथ ही, कंटीन्यूएशन कॉलबैक को 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#) कोड की वजह से, एसडीके शुरू नहीं हो पाता है, तो गेम की प्रोसेस को जल्द से जल्द बंद करें. एसडीके का रनटाइम, उपयोगकर्ता की मदद करने की कोशिश करेगा. इसके लिए, आपके गेम को कोई अतिरिक्त कार्रवाई करने की ज़रूरत नहीं होगी. उदाहरण के लिए, अगर उपयोगकर्ता के पास गेम का मान्य लाइसेंस नहीं है, तो Google Play Games, उपयोगकर्ता को गेम खरीदने के लिए कहेगा. अन्य गड़बड़ियों के लिए भी, आपको गेम की प्रोसेस को बंद करना चाहिए, क्योंकि एसडीके का इस्तेमाल करके, अहम कार्रवाइयां नहीं की जा सकती. जैसे, यह पुष्टि करना कि उपयोगकर्ता के पास आपके गेम का मान्य लाइसेंस है या नहीं.
अगर रिस्पॉन्स सही नहीं है, तो इसका मतलब है कि इनमें से कोई एक समस्या है:
एसडीके का रनटाइम इंस्टॉल नहीं है, डिवाइस पर नहीं चल रहा है या यह पुराने वर्शन का है. इसलिए, यह आपके गेम में इंटिग्रेट किए गए एसडीके के साथ काम नहीं करता.
एसडीके का रनटाइम, गेम के ऐप्लिकेशन की पहचान की पुष्टि नहीं कर सका. ऐसा,
manifest.xmlके अमान्य होने या डेवलपमेंट के दौरान डेवलपर मोड चालू किए बिना एसडीके का इस्तेमाल करने की वजह से हो सकता है. इसके बिना, आपके गेम की एक्ज़ीक्यूटेबल फ़ाइल पर, Play पैकेज के नाम के साथ रजिस्टर किए गए डिजिटल सर्टिफ़िकेट का इस्तेमाल करके डिजिटल हस्ताक्षर करना ज़रूरी है.गेम की एक्ज़ीक्यूटेबल फ़ाइल, Google Play Games के क्लाइंट के ज़रिए लॉन्च नहीं की गई.
Google Play Games में सक्रिय उपयोगकर्ता के पास, ऐप्लिकेशन का लाइसेंस नहीं है.
पांचवा चरण: (ज़रूरी नहीं) एक से ज़्यादा गेम-प्रोसेस के लिए सहायता उपलब्ध कराना
अगर आपका गेम एक से ज़्यादा प्रोसेस का इस्तेमाल करता है और Play Games PC SDK का इस्तेमाल, उस प्रोसेस के अलावा किसी दूसरी प्रोसेस से किया जाता है जिसे Google Play Games on PC लॉन्च करता है, तो इंटिग्रेशन के ये अतिरिक्त चरण पूरे करें. उदाहरण के लिए, अगर Google Play Games on PC, आपके गेम का लॉन्चर लॉन्च करता है. इसके बाद, आपका लॉन्चर, गेम की उस प्रोसेस को शुरू करता है जो एसडीके के साथ इंटरैक्ट करेगी.
Google Play Games for PC से सीधे लॉन्च की गई प्रोसेस को, Play Games PC SDK के शुरू होने की पुष्टि करनी होगी.
इससे उपयोगकर्ताओं को बेहतर अनुभव मिलता है, क्योंकि गड़बड़ियां सामने आते ही उन्हें ठीक किया जा सकता है. ध्यान दें कि एसडीके का इस्तेमाल करने वाली चाइल्ड-प्रोसेस को भी, सीधे लॉन्च की गई प्रोसेस के अलावा, एसडीके के शुरू होने की पुष्टि करनी होगी.
चाइल्ड-प्रोसेस में 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), गेम (YourGameLauncher.exe) को कुछ उदाहरण पैरामीटर (--gpg_args=abc --your_args=123) के साथ लॉन्च करता है. इसके बाद, गेम एक चाइल्ड-प्रोसेस (YourGame.exe) स्पॉन करता है, जो Play Games PC SDK का इस्तेमाल करती है. ऐसा करने के लिए, Google Play Games for PC से लॉन्च की गई गेम प्रोसेस, उसे दिए गए कमांड लाइन पैरामीटर को चाइल्ड-प्रोसेस में फ़ॉरवर्ड करती है.गेम बंद होने पर, सभी प्रोसेस बंद करें.
जब कोई उपयोगकर्ता आपका गेम बंद करता है या एसडीके के शुरू न हो पाने की वजह से गेम बंद हो जाता है, तो आपके गेम से स्पॉन की गई सभी प्रोसेस बंद करें. जैसे,
kActionRequiredShutdownClientProcess. इससे यह पक्का होता है कि अगली बार जब Google Play Games for PC क्लाइंट से आपका गेम लॉन्च किया जाएगा, तो नए बदलाव लागू होंगे. जैसे, किसी दूसरे सक्रिय खाते पर स्विच करना.
अगले चरण
अपने आईडीई में डेवलपमेंट के दौरान, एसडीके का इस्तेमाल करें:
- डेवलपर मोड चालू करना
अपने ऐप्लिकेशन में Google Play PC की सुविधाएं जोड़ें:
- Play Billing की मदद से डिजिटल सामान बेचना
- Play Install Referrer की मदद से अपनी मार्केटिंग की परफ़ॉर्मेंस मेज़र करना
- पीसी के लिए Play Integrity की मदद से अपने गेम को सुरक्षित रखना