এই ডকুমেন্টটি আপনাকে v2 নেটিভ C বা C++ এর জন্য আপনার C++ প্রজেক্ট সেট আপ করতে এবং প্রমাণীকরণ পরিষেবা যাচাই করতে সাহায্য করবে।
শুরু করার আগে
আপনাকে Google Play Console-এ Play Games পরিষেবা সেট আপ করতে হবে।
অ্যাপের পূর্বশর্ত
আপনার অ্যাপের বিল্ড ফাইলে নিম্নলিখিত মানগুলি ব্যবহার করা হয়েছে কিনা তা নিশ্চিত করুন:
-
19বা তার বেশি ভার্সনের একটিminSdkVersion -
28বা তার বেশি ভার্সনের একটিcompileSdkVersion
আপনার গেম প্রজেক্ট সেট আপ করুন
আপনার গেম প্রজেক্ট সেট আপ করতে নিম্নলিখিত ধাপগুলি সম্পূর্ণ করুন।
build.gradle আপডেট করুন
আপনার অ্যাপ-লেভেল build.gradle ফাইলে, নিম্নলিখিতগুলি করুন:
নিশ্চিত করুন যে প্রিফ্যাব বিল্ড বৈশিষ্ট্যটি সক্রিয় আছে।
v2 নেটিভ SDK (বিটা) এর জন্য নির্ভরতা যোগ করুন:
-
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 Services-এ প্রমাণীকরণ করার পর, আপনার গেম ক্লায়েন্ট একটি সার্ভার অনুমোদন কোডের জন্য অনুরোধ করতে পারে যা আপনার ব্যাকএন্ড গেম সার্ভার Play Games Services-এর সাথে নিরাপদে যোগাযোগ করতে ব্যবহার করতে পারে। এটি আপনার গেম সার্ভারকে প্রমাণীকরণকৃত খেলোয়াড়ের জন্য ডেটা পুনরুদ্ধার, আপডেট এবং সঞ্চয় করতে দেয়। আপনি PgsGamesSignInClient_requestServerSideAccess ফাংশনে কল করে সার্ভার অনুমোদন কোডটি পুনরুদ্ধার করতে পারেন।
আরও তথ্যের জন্য, সার্ভার অ্যাক্সেস নির্দেশিকা দেখুন।