इस दस्तावेज़ की मदद से, v2 Native C या C++ के लिए अपना C++ प्रोजेक्ट सेट अप किया जा सकता है. साथ ही, पुष्टि करने वाली सेवा की पुष्टि की जा सकती है.
शुरू करने से पहले
आपको Google Play Console में Play की गेम सेवाएं सेट अप करनी होंगी.
ऐप्लिकेशन से जुड़ी ज़रूरी शर्तें
पक्का करें कि आपके ऐप्लिकेशन की बिल्ड फ़ाइल में इन वैल्यू का इस्तेमाल किया गया हो:
19या इससे ज़्यादा काminSdkVersion28या इससे ज़्यादा काcompileSdkVersion
अपना गेम प्रोजेक्ट सेट अप करना
अपने गेम प्रोजेक्ट को सेट अप करने के लिए, यह तरीका अपनाएं.
build.gradle फ़ाइल अपडेट करना
ऐप्लिकेशन-लेवल की build.gradle फ़ाइल में, यह तरीका अपनाएं:
पक्का करें कि प्रीफ़ैब बनाने की सुविधा चालू हो.
v2 नेटिव एसडीके (बीटा) के लिए डिपेंडेंसी जोड़ें:
com.google.android.gms:play-services-games-v2-native-c:21.0.0-beta1
यहां एक उदाहरण दिया गया है:
android {
...
buildFeatures {
prefab true
}
...
}
dependencies {
...
implementation "com.google.android.gms:play-services-games-v2-native-c:21.0.0-beta1"
}
CMakeLists.txt फ़ाइल अपडेट करना
अपनी CMakeLists.txt फ़ाइल में, यह कोड जोड़ें:
find_package(com.google.android.gms.games.v2.c REQUIRED CONFIG)
// link games_static for -DANDROID_STL=c++_static or default
// link games_shared for -DANDROID_STL=c++_shared
target_link_libraries(
app PUBLIC com.google.android.gms.games.v2.c::games_static)
AndroidManifest.xml को अपडेट करना
अपनी
AndroidManifest.xmlफ़ाइल में Play Games Services प्रोजेक्ट आईडी तय करने के लिए, यह लाइनें जोड़ें:<manifest> <application> <meta-data android:name="com.google.android.gms.games.APP_ID" android:value="@string/game_services_project_id"/> </application> </manifest>अपने प्रोजेक्ट आईडी के लिए, स्ट्रिंग रिसॉर्स बनाएं. इससे आपके गेम को बिल्ड टाइम में आईडी ऐक्सेस करने की अनुमति मिलती है. संसाधन बनाने के लिए, फ़ाइल
project_root/app/src/main/res/values/games-ids.xmlबनाएं और इसमें यह जानकारी जोड़ें:<?xml version="1.0" encoding="utf-8"?> <resources> <string name="game_services_project_id" translatable="false">add your Project ID here</string> </resources>अपना गेम बनाएं और उसे टेस्ट करें. अगर साइन इन हो जाता है, तो गेम लॉन्च करने पर, आपको साइन इन करने का अनुरोध दिखेगा या साइन इन होने का बैनर दिखेगा.
प्लेयर आईडी पाना
आपका गेम, पुष्टि किए गए किसी खिलाड़ी की जानकारी को ऐक्सेस कर सकता है. इसके लिए, उसे खिलाड़ी का आईडी वापस पाना होगा. नीचे दिए गए उदाहरण में दिखाए गए तरीके से, GetPlayerId फ़ंक्शन को कॉल करके प्लेयर आईडी वापस पाया जा सकता है.
#include <assert.h>
#include "gni/gni.h"
#include "gni/gni_task.h"
#include "pgs/pgs_play_games.h"
#include "pgs/pgs_players_client.h"
// A callback for a GniTask returned from PgsPlayersClient_getCurrentPlayerId.
void OnGetCurrentPlayerIdCompleteCallback(GniTask *task, void *user_data) {
if (!GniTask_isSuccessful(task)) {
const char *error_message = nullptr;
GniTask_getErrorMessage(task, &error_message);
// Log error message here.
GniString_destroy(error_message);
GniTask_destroy(task);
return;
}
const char *result = nullptr;
PgsPlayersClient_getCurrentPlayerId_getResult(task, &result);
// Log player ID here.
GniString_destroy(result);
GniTask_destroy(task);
}
// Gets the player ID.
void GetPlayerId(jobject main_activity) {
static const PgsPlayersClient *players_client =
PgsPlayGames_getPlayersClient(main_activity);
GniTask *get_current_player_id_task =
PgsPlayersClient_getCurrentPlayerId(players_client);
assert(get_current_player_id_task != nullptr);
GniTask_addOnCompleteCallback(get_current_player_id_task,
OnGetCurrentPlayerIdCompleteCallback,
nullptr);
}
// Entry point for our test app
void TestPGSNative(JNIEnv *env, jobject main_activity) {
JavaVM *java_vm;
env->GetJavaVM(&java_vm);
GniCore_init(java_vm, main_activity);
GetPlayerId(main_activity);
}
साइन-इन करने का प्रॉम्प्ट फिर से लॉन्च करना
अगर कोई खिलाड़ी, गेम लॉन्च होने पर अपने-आप दिखने वाले Play Games Services में साइन इन करने के शुरुआती प्रॉम्प्ट को अस्वीकार कर देता है, तो हो सकता है कि वह गेम सेशन के दौरान अपना मन बदल ले. जब तक किसी भी खिलाड़ी की पुष्टि नहीं हो जाती, तब तक PgsGamesSignInClient_signIn को कॉल करके, साइन-इन करने का अनुरोध फिर से लॉन्च किया जा सकता है.
गेम सर्वर को अनुमति देना
जब कोई खिलाड़ी Play Games की सेवाओं से पुष्टि कर लेता है, तो आपका गेम क्लाइंट, सर्वर ऑथराइज़ेशन कोड का अनुरोध कर सकता है. आपका बैकएंड गेम सर्वर, इस कोड का इस्तेमाल करके Play Games की सेवाओं के साथ सुरक्षित तरीके से कम्यूनिकेट कर सकता है. इससे आपका गेम सर्वर, पुष्टि किए गए खिलाड़ी के लिए डेटा को वापस पा सकता है, उसे अपडेट कर सकता है, और सेव कर सकता है. PgsGamesSignInClient_requestServerSideAccess फ़ंक्शन को कॉल करके, सर्वर ऑथराइज़ेशन कोड को वापस पाया जा सकता है.
ज़्यादा जानकारी के लिए, सर्वर ऐक्सेस करने की गाइड देखें.