একতার জন্য Google Play গেম সেট আপ করুন এবং প্রমাণীকরণ করুন৷

এই ডকুমেন্টটি আপনাকে আপনার ইউনিটি প্রজেক্টে গুগল প্লে গেমস প্লাগইন ব্যবহার করার পদ্ধতি সম্পর্কে নির্দেশনা দেয়। আপনি শিখবেন কীভাবে প্লাগইনটি ইনস্টল করতে হয় এবং আপনার ইউনিটি প্রজেক্ট কনফিগার করতে হয়। এই ডকুমেন্টে অথেনটিকেশন সার্ভিসটি কীভাবে ভেরিফাই করতে হয়, তাও আলোচনা করা হয়েছে।

শুরু করার আগে

সফটওয়্যারের প্রয়োজনীয়তাগুলো পর্যালোচনা করুন। প্লে কনসোল সেট আপ করুন এবং ইউনিটি এডিটর ইনস্টল করুন।

প্লাগইন ইনস্টলেশন

ইউনিটির জন্য গুগল প্লে গেমস প্লাগইন ডাউনলোড ও ইনস্টল করতে, ইউনিটি এডিটরে এই ধাপগুলো অনুসরণ করুন:

  1. গিটহাব রিপোটি ডাউনলোড করুন।

  2. current-build ডিরেক্টরিতে, unitypackage ফাইলটি খুঁজুন। এই ফাইলটি প্লাগইনটির প্রতিনিধিত্ব করে। উদাহরণস্বরূপ, এটি দেখতে নিচের মতো হবে:

      current-build/GooglePlayGamesPluginForUnity-X.YY.ZZ.unitypackage
    

ইউনিটি প্রজেক্ট সেট আপ করুন

প্লেয়ার সেটিংসে একটি ইউনিটি প্রজেক্ট সেট আপ করতে, এই ধাপগুলো অনুসরণ করুন:

  1. আপনার গেম প্রজেক্টটি খুলুন।

  2. ইউনিটি এডিটরে, আপনার প্রোজেক্টের অ্যাসেটসে unitypackage ফাইলটি ইম্পোর্ট করতে Assets > Import Package > Custom Package-এ ক্লিক করুন।

  3. নিশ্চিত করুন যে আপনার বর্তমান বিল্ড প্ল্যাটফর্মটি অ্যান্ড্রয়েড- এ সেট করা আছে।

    1. প্রধান মেনুতে, ফাইল > বিল্ড সেটিংস-এ ক্লিক করুন।

    2. অ্যান্ড্রয়েড নির্বাচন করুন এবং প্ল্যাটফর্ম পরিবর্তন করুন-এ ক্লিক করুন।

    3. Window > Google Play Games-এর অধীনে একটি নতুন মেনু আইটেম থাকার কথা। যদি না থাকে, তাহলে Assets > Refresh- এ ক্লিক করে অ্যাসেটগুলো রিফ্রেশ করুন এবং তারপর আবার বিল্ড প্ল্যাটফর্ম সেট করার চেষ্টা করুন।

  4. ইউনিটি এডিটরে, ফাইল > বিল্ড সেটিংস > প্লেয়ার সেটিংস > অন্যান্য সেটিংস- এ ক্লিক করুন।

  5. টার্গেট এপিআই লেভেল বক্সে একটি ভার্সন নির্বাচন করুন।

  6. স্ক্রিপ্টিং ব্যাকএন্ড বক্সে IL2CPP লিখুন।

  7. টার্গেট আর্কিটেকচার বক্সে একটি মান নির্বাচন করুন।

  8. প্যাকেজের নাম package_name লিখে রাখুন। আপনি এই তথ্যটি পরবর্তীতে ব্যবহার করতে পারবেন।

আপনার ইউনিটি প্রোজেক্টের প্লেয়ার সেটিংস
আপনার ইউনিটি প্রোজেক্টের প্লেয়ার সেটিংস।

একটি নতুন কীস্টোর তৈরি করুন

আপনার পরিচয়পত্র যাচাই করার জন্য একটি চাবি প্রয়োজন। এই ধাপগুলো অনুসরণ করুন:

  1. ইউনিটি এডিটরে, ফাইল > বিল্ড সেটিংস > প্লেয়ার সেটিংস- এ ক্লিক করুন।
  2. পাবলিশিং সেটিংস বিভাগে, কীস্টোর ম্যানেজার- এ ক্লিক করুন।
    1. কীস্টোর ম্যানেজার উইন্ডোতে, কীস্টোর > নতুন তৈরি করুন > যেকোনো স্থানে ক্লিক করুন।
    2. একটি ফোল্ডার নির্বাচন করুন এবং কীস্টোরের জন্য একটি নাম দিন।
    3. পাসওয়ার্ড বক্সে একটি পাসওয়ার্ড লিখে নিশ্চিত করুন।
    4. চাবি যোগ করুন -এ ক্লিক করুন।

ফোল্ডারের নামটি লিখে রাখুন। গুগল ক্লাউডে ক্রেডেনশিয়াল তৈরি করতে আপনি এই নামটি ব্যবহার করতে পারবেন।

প্লে কনসোল থেকে অ্যান্ড্রয়েড রিসোর্সগুলো কপি করুন

প্লে কনসোলে আপনার তৈরি করা প্রতিটি অ্যাচিভমেন্ট, লিডারবোর্ড এবং ইভেন্টে একটি অ্যান্ড্রয়েড রিসোর্স অন্তর্ভুক্ত থাকে, যা আপনি আপনার ইউনিটি প্রজেক্ট সেট আপ করার সময় ব্যবহার করেন।

আপনার গেমের জন্য অ্যান্ড্রয়েড রিসোর্স পেতে, এই ধাপগুলো অনুসরণ করুন:

  1. গুগল প্লে কনসোলে গেমটি খুলুন।

  2. প্লে গেমস সার্ভিসেস - কনফিগারেশন পেজে ( গ্রো ইউজার্স > প্লে গেমস সার্ভিসেস > সেটআপ অ্যান্ড ম্যানেজমেন্ট > কনফিগারেশন ), গেট রিসোর্সেস- এ ক্লিক করুন।

  3. রিসোর্সেস উইন্ডোতে, অ্যান্ড্রয়েড (XML) ট্যাবে ক্লিক করুন।

  4. অ্যান্ড্রয়েড রিসোর্স ( AndroidManifest.xml ) এর বিষয়বস্তু নির্বাচন করে কপি করুন।

আপনার ইউনিটি প্রজেক্টে অ্যান্ড্রয়েড রিসোর্সগুলো যোগ করুন

আপনার ইউনিটি প্রজেক্টে নিম্নলিখিত অ্যান্ড্রয়েড রিসোর্সগুলো যোগ করুন:

  1. ইউনিটি এডিটরে, Window > Google Play Games > Setup > Android Setup -এ ক্লিক করুন।

    • ‘ডিরেক্টরি টু সেভ কনস্ট্যান্টস’ ফিল্ডে কনস্ট্যান্টস ফাইলের জন্য ফোল্ডারের নাম লিখুন।
    • Constants class name ফিল্ডে, নেমস্পেস সহ যে C# ক্লাসটি তৈরি করতে চান তার নাম লিখুন।

      উদাহরণস্বরূপ, যদি C# ক্লাসটি id.cs হয় এবং Assets > myproject > scripts > id.cs এর অধীনে থাকে, তাহলে কনস্ট্যান্ট ক্লাসের নামটি myproject.scripts.id হতে পারে।

    • রিসোর্স ডেফিনিশন ফিল্ডে, গুগল প্লে কনসোল থেকে কপি করা অ্যান্ড্রয়েড রিসোর্স ডেটা ( AndroidManifest.xml ফাইল) পেস্ট করুন।

    • ঐচ্ছিক: ক্লায়েন্ট আইডি ফিল্ডে লিঙ্ক করা ওয়েব অ্যাপটির ক্লায়েন্ট আইডি লিখুন।

      গুগল ক্লাউড থেকে আপনার গেমের ক্লায়েন্ট আইডি পেতে, ক্লায়েন্ট আইডি তৈরি করা দেখুন।

      এটি শুধুমাত্র তখনই প্রয়োজন হবে, যদি আপনার গেমের জন্য একটি ওয়েব-ভিত্তিক ব্যাকএন্ড থাকে এবং ব্যাকএন্ড সার্ভার থেকে অ্যাক্সেস টোকেন পাওয়ার জন্য একটি সার্ভার অথ কোডের প্রয়োজন হয়, অথবা প্লেয়ারের অন্যান্য নন-গেম এপিআই কল করার জন্য একটি আইডি টোকেনের প্রয়োজন হয়।

    • সেটআপ-এ ক্লিক করুন। এটি ক্লায়েন্ট আইডি দিয়ে আপনার গেমটি কনফিগার করে এবং একটি C# ক্লাস তৈরি করে, যেটিতে আপনার প্রতিটি অ্যান্ড্রয়েড রিসোর্সের জন্য কনস্ট্যান্ট থাকে।

  2. ইউনিটি এডিটরে, Window > Google Play Games > Setup > Nearby Connections Setup -এ ক্লিক করুন।

একটি সামাজিক প্ল্যাটফর্ম বেছে নিন

গুগল প্লে গেমস সার্ভিসেস প্লাগইনটি ইউনিটির সোশ্যাল ইন্টারফেস বাস্তবায়ন করে, যাতে অন্যান্য প্ল্যাটফর্মের সাথে ইন্টিগ্রেট করার সময় যেসব গেম ইতিমধ্যেই সেই ইন্টারফেস ব্যবহার করে, তাদের সাথে সামঞ্জস্য বজায় থাকে। তবে, কিছু ফিচার প্লে গেমসের নিজস্ব এবং সেগুলো ইউনিটি দ্বারা প্রদত্ত স্ট্যান্ডার্ড সোশ্যাল ইন্টারফেসের এক্সটেনশন হিসেবে অফার করা হয়।

স্ট্যান্ডার্ড এপিআই কলগুলো Social.Active অবজেক্টের মাধ্যমে অ্যাক্সেস করা যায়, যা একটি ISOsialPlatform ইন্টারফেসের রেফারেন্স। নন-স্ট্যান্ডার্ড গুগল প্লে গেমস সার্ভিসেস এক্সটেনশনগুলো অ্যাক্সেস করার জন্য Social.Active অবজেক্টটিকে PlayGamesPlatform ক্লাসে কাস্ট করতে হয়, যেখানে অতিরিক্ত মেথডগুলো পাওয়া যায়।

ডিফল্ট সোশ্যাল প্ল্যাটফর্ম ওভাররাইড না করে প্লাগইনটি ব্যবহার করুন।

যখন আপনি PlayGamesPlatform.Activate কল করেন, তখন Google Play Games Services আপনার ডিফল্ট সোশ্যাল প্ল্যাটফর্ম ইমপ্লিমেন্টেশন হয়ে যায়। এর মানে হলো, Google Play Games Services প্লাগইনটি Social এবং Social.Active এর মেথডগুলোতে স্ট্যাটিক কল সম্পাদন করে, যা প্লাগইনটি ব্যবহারকারী বেশিরভাগ গেমের জন্য একটি প্রত্যাশিত আচরণ।

তবে, যদি কোনো কারণে আপনি ডিফল্ট ইমপ্লিমেন্টেশনটি অ্যাক্সেসযোগ্য রাখতে চান (উদাহরণস্বরূপ, অন্য কোনো সোশ্যাল প্ল্যাটফর্মে অ্যাচিভমেন্ট এবং লিডারবোর্ড জমা দেওয়ার জন্য), তাহলে আপনি ডিফল্টটিকে ওভাররাইড না করেই Google Play Games Services প্লাগইনটি ব্যবহার করতে পারেন। এটি করতে:

  1. PlayGamesPlatform.Activate মেথডটি কল করুন।
  2. Social ক্লাসের কোনো মেথডের নাম যদি Xyz হয়, তাহলে Social.Xyz কল করবেন না। এর পরিবর্তে PlayGamesPlatform.Instance.Xyz কল করুন।
  3. গুগল প্লে গেমস সার্ভিস ব্যবহার করার সময় Social.Active এর পরিবর্তে PlayGamesPlatform.Instance প্রপার্টিটি ব্যবহার করুন।

এইভাবে, আপনি একই সাথে দুই বা ততোধিক সামাজিক প্ল্যাটফর্মে স্কোর এবং কৃতিত্ব জমা দিতে পারবেন:

    // Submit achievement to original default social platform
    Social.ReportProgress("MyAchievementIdHere", 100.0f, callback);

    // Submit achievement to Google Play
    PlayGamesPlatform.Instance.ReportProgress("MyGooglePlayAchievementIdHere", 100.0f, callback);

প্রমাণীকরণ পরিষেবা যাচাই করুন

আপনার গেমটি খোলার সময় প্ল্যাটফর্ম অথেনটিকেশন ব্যবহার করে প্লে গেমস সার্ভিসেস-এর সাথে স্বয়ংক্রিয়ভাবে একটি সংযোগ স্থাপনের চেষ্টা করা হয়। সংযোগ সফল হলে, আপনার গেমে একটি সাইন-ইন প্রম্পট প্রদর্শিত হয় এবং এটি ইউনিটির জন্য গুগল প্লে গেমস সার্ভিসেস প্লাগইনটি ব্যবহার করার জন্য প্রস্তুত হয়ে যায়।

যদি কোনো ব্যবহারকারী তাদের ডিভাইসে আগে কখনো গুগল প্লে গেমস সার্ভিস ব্যবহার না করে থাকেন, তাহলে একটি প্লে গেমস অ্যাকাউন্ট তৈরি করার জন্য তাদেরকে স্বয়ংক্রিয়ভাবে এককালীন সেটআপ স্ক্রিনে নিয়ে যাওয়া হয়।

আপনার স্ক্রিপ্টের Start মেথডে, স্বয়ংক্রিয় প্রমাণীকরণ চেষ্টার ফলাফল শুনুন, প্রমাণীকরণের অবস্থা জানুন, এবং ব্যবহারকারী প্রমাণীকৃত না হলে Play Games Services ফিচারগুলো নিষ্ক্রিয় করে দিন।

ইউনিটি প্লাগইনের ভার্সন v11 আগের হলে, আপনি অথেনটিকেশন ফিচারটি ব্যবহার করতে পারবেন না।

    using GooglePlayGames;

    public void Start() {
      PlayGamesPlatform.Instance.Authenticate(ProcessAuthentication);
    }

    internal void ProcessAuthentication(SignInStatus status) {
      if (status == SignInStatus.Success) {
        // Continue with Play Games Services
      } else {
        // Disable your integration with Play Games Services or show a login button
        // to ask users to authenticate. Clicking it should call
        // PlayGamesPlatform.Instance.ManuallyAuthenticate(ProcessAuthentication).
      }
    }

রেজাল্ট কোডটি একটি enum, যা আপনি অথেনটিকেশন ব্যর্থতার কারণ শনাক্ত করতে ব্যবহার করতে পারেন।

আপনি যদি ইউনিটির সোশ্যাল প্ল্যাটফর্ম ব্যবহার করতে পছন্দ করেন, তাহলে বিকল্পভাবে নিম্নলিখিত কোডটি ব্যবহার করতে পারেন:

  using GooglePlayGames;

  public void Start() {
    PlayGamesPlatform.Activate();
    Social.localUser.Authenticate(ProcessAuthentication);
  }

Authenticate থেকে সফল রিটার্ন ভ্যালু না পাওয়া পর্যন্ত আপনি কোনো Google Play Games Services API কল করতে পারবেন না। ফলস্বরূপ, আমরা সুপারিশ করি যে কলব্যাকটি কল না হওয়া পর্যন্ত গেমগুলো একটি স্ট্যান্ডবাই স্ক্রিন প্রদর্শন করুক, যাতে অথেন্টিকেশন সম্পূর্ণ না হওয়া পর্যন্ত ব্যবহারকারীরা গেম খেলা শুরু করতে না পারে।

স্বয়ংক্রিয়ভাবে প্রোফাইল তৈরি হওয়া প্রতিরোধ করুন

আপনি ম্যানিফেস্ট ফাইলের মাধ্যমে স্বয়ংক্রিয়ভাবে চালু হওয়া প্রোফাইল তৈরির অনুরোধ নিষ্ক্রিয় করতে পারেন। এর ফলে, যাদের প্লে গেমস সার্ভিসেস প্রোফাইল নেই, তারাও প্রোফাইল তৈরির অনুরোধ ছাড়াই গেমটি লোড করা চালিয়ে যেতে পারেন। আরও তথ্যের জন্য, প্রোফাইল তৈরির বিকল্পসমূহ দেখুন।

এই বৈশিষ্ট্যটি ব্যবহার করতে, নিম্নলিখিত শর্তগুলি পূরণ করা নিশ্চিত করুন:

  1. AndroidManifest.xml ফাইলে, <meta-data> এলিমেন্টে com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION ট্যাগটি এবং <application> এলিমেন্টে অ্যাট্রিবিউটগুলো যোগ করুন:

    <application>
        ...
        <meta-data
            android:name="com.google.android.gms.games.SUPPRESS_GAME_PROFILE_CREATION"
            android:value="true" />
        ...
    </application>

    এই ফ্ল্যাগটিকে 'true' সেট করলে প্লে গেমস সার্ভিসেসকে জানানো হয় যে আপনার গেমই প্রোফাইল তৈরির প্রক্রিয়াটি পরিচালনা করবে। ফলস্বরূপ, ডিভাইসের যেসব ব্যবহারকারীর আগে থেকে কোনো প্লে গেমস সার্ভিসেস প্রোফাইল নেই, তাদের জন্য প্লে গেমস সার্ভিসেস স্বয়ংক্রিয়ভাবে প্রোফাইল তৈরির ইউজার ইন্টারফেসটি প্রদর্শন করবে না।

  2. প্লে গেমস সার্ভিসেস প্রোফাইল না থাকার কারণে কোনো ব্যবহারকারী প্রমাণীকৃত না হলে, সেই পরিস্থিতি সামাল দিতে আপনি PlayGamesPlatform.Instance.IsAuthenticated() ব্যবহার করতে পারেন। এই মেথডটি false রিটার্ন করে, কারণ প্রোফাইল তৈরি করা ব্যর্থ হয়। এর সমাধান করতে, PlayGamesPlatform.Instance.ManuallyAuthenticate() কল করে প্রোফাইল তৈরির প্রক্রিয়াটি শুরু করুন।

    
    if (!PlayGamesPlatform.Instance.IsAuthenticated()) {
      // The user is unauthenticated, likely due to a missing Play Games profile.
      // Calling PlayGamesPlatform.Instance.ManuallyAuthenticate() will trigger
      // the profile creation UI.
      PlayGamesPlatform.Instance.ManuallyAuthenticate((SignInStatus status) => {
        // ...
      });
    }
    

  3. সাপ্রেশন ট্যাগটি যোগ করার পর, সংযোজনটি যাচাই করতে logcat উইন্ডো ব্যবহার করুন। logcat আউটপুটে নিম্নলিখিতের মতো একটি বার্তা থাকে: "গেমটি স্বয়ংক্রিয় প্রোফাইল তৈরির প্রম্পট থেকে অপ্ট আউট করেছে (ম্যানিফেস্ট ব্যবহার করে)"।

প্লে অ্যাপ সাইনিং ব্যবহার করুন

গুগল প্লে অ্যাপ সাইনিং ব্যবহার করে আপনার অ্যাপের সাইনিং কী পরিচালনা ও সুরক্ষিত রাখে। আপনি অপ্টিমাইজ করা অ্যান্ড্রয়েড অ্যাপ বান্ডেল ফাইল (যা বিতরণের জন্য তৈরি) সাইন করতে প্লে অ্যাপ সাইনিং ব্যবহার করতে পারেন। প্লে অ্যাপ সাইনিং আপনার অ্যাপের সাইনিং কী গুগলের সুরক্ষিত পরিকাঠামোতে সংরক্ষণ করে। প্লে অ্যাপ সাইনিং ব্যবহার করার জন্য, আপনাকে প্রথমে ইউনিটি এডিটর থেকে একটি AAB ফাইল তৈরি ও ডাউনলোড করতে হবে। এরপর আপনি AAB ফাইলটি প্লে কনসোলে আপলোড করে একটি অভ্যন্তরীণ টেস্টিং রিলিজ তৈরি করতে পারবেন।

একটি AAB ফাইল তৈরি করুন

ইউনিটি এডিটরে একটি AAB ফাইল তৈরি করতে, এই ধাপগুলো অনুসরণ করুন:

  1. ইউনিটি এডিটরে, ফাইল > বিল্ড সেটিংস- এ ক্লিক করুন।
  2. বিল্ড অ্যাপ বান্ডেল ( গুগল প্লে ) নির্বাচন করুন।

    আরও তথ্যের জন্য, অ্যান্ড্রয়েড বিল্ড সেটিংস রেফারেন্স দেখুন।

  3. বিল্ড-এ ক্লিক করুন।

  4. ইউনিটি এডিটর থেকে AAB ফাইলটি ডাউনলোড করুন।

একটি অভ্যন্তরীণ টেস্টিং রিলিজ তৈরি করুন

অভ্যন্তরীণ টেস্টিং রিলিজ তৈরি করতে এবং প্লে কনসোলে টেস্টার যোগ করতে, নিম্নলিখিত ধাপগুলি অনুসরণ করুন:

  1. গুগল প্লে কনসোলে একটি গেম নির্বাচন করুন।
  2. টেস্ট এবং রিলিজ পৃষ্ঠায় যান ( টেস্টিং > অভ্যন্তরীণ টেস্টিং )।
  3. আপলোড-এ ক্লিক করুন এবং AAB ফাইলটি নির্বাচন করুন।
  4. রিলিজ ডিটেইলস ফিল্ডে একটি নাম লিখুন।
  5. পরবর্তী ধাপে যান এবং রিলিজের বিবরণ পর্যালোচনা করুন।
  6. সংরক্ষণ করুন এবং প্রকাশ করুন
  7. টেস্টার ট্যাবে, সর্বোচ্চ ১০০ জন টেস্টার যোগ করতে 'ইমেল তালিকা তৈরি করুন'- এ ক্লিক করুন।

    আরও তথ্যের জন্য, ‘অভ্যন্তরীণ পরীক্ষা: ১০০ জন পর্যন্ত পরীক্ষক পরিচালনা করুন’ দেখুন।

  8. মতামত জানানোর জন্য, ‘মতামত ইউআরএল বা ইমেল ঠিকানা’ অংশে একটি ইউআরএল অথবা একটি ইমেল ঠিকানা লিখুন।

  9. সংরক্ষণ করুন- এ ক্লিক করুন।

আপনার অ্যাপ সাইনিং ক্রেডেনশিয়াল যাচাই করুন।

  1. গুগল প্লে কনসোলে একটি গেম নির্বাচন করুন।
  2. টেস্ট এবং রিলিজ পেজে যান ( সেটআপ > অ্যাপ সাইনিং )।
  3. আপনার অ্যাপ স্বাক্ষর করার প্রমাণপত্র যাচাই করুন।

প্রকল্পটি তৈরি করুন এবং চালান

এই পর্যায়ে আপনি গেম প্রজেক্টটি বিল্ড ও রান করতে পারেন। গেমটি শুরু হলে, আপনি স্বয়ংক্রিয়ভাবে প্রমাণীকরণের চেষ্টা দেখতে পাবেন।

আপনার ইউএসবি ডিবাগিং সক্ষম একটি ফিজিক্যাল অ্যান্ড্রয়েড ডিভাইস অথবা তৈরি করা প্রজেক্টটি চালাতে পারে এমন একটি এমুলেটর প্রয়োজন।

সার্ভার প্রমাণীকরণ কোডগুলি পুনরুদ্ধার করুন

বর্তমান প্লেয়ারের পক্ষ থেকে একটি ব্যাকএন্ড ওয়েব সার্ভারে গুগল এপিআই (Google APIs) অ্যাক্সেস করার জন্য, আপনাকে ক্লায়েন্ট অ্যাপ্লিকেশন থেকে একটি অথেনটিকেশন কোড সংগ্রহ করে আপনার ওয়েব সার্ভার অ্যাপ্লিকেশনে পাঠাতে হবে। এরপর বিভিন্ন এপিআই-তে কল করার জন্য কোডটিকে একটি অ্যাক্সেস টোকেনের সাথে বিনিময় করা যেতে পারে। এই কার্যপ্রক্রিয়া সম্পর্কে তথ্যের জন্য, ‘সাইন ইন উইথ গুগল ফর ওয়েব’ দেখুন।

সার্ভার সাইড অ্যাক্সেস কোড পেতে:

  1. প্লে কনসোলে আপনার গেমের ওয়েব ক্লায়েন্ট আইডিটি যোগ করুন।
    1. গুগল প্লে কনসোলে আপনার গেমটি নির্বাচন করুন।
    2. কনফিগারেশন পৃষ্ঠায় ( Grow users > Play Games Services > Setup and Management > Configuration ), Add credential -এ ক্লিক করুন।
    3. ক্রেডেনশিয়াল যোগ করুন পেজে, গেম সার্ভার নির্বাচন করুন।
    4. একটি OAuth 2.0 ক্লায়েন্ট আইডি তৈরি করুন
    5. ক্লায়েন্ট আইডি-র মানটি নোট করুন। পরবর্তীতে আপনাকে এই মানটি প্রদান করতে হবে।
  2. ইউনিটি হাবে ওয়েব ক্লায়েন্ট আইডিটি যোগ করুন।

    1. ইউনিটি হাবে, ইউনিটির জন্য গুগল প্লে গেমস সেট আপ করুন এবং প্রমাণীকরণ করুন
    2. ইউনিটি হাবে, Window > Google Play Games > Setup > Android Setup -এ যান।
    3. ক্লায়েন্ট আইডি মানটি প্রবেশ করান।
  3. অতিরিক্ত স্কোপগুলোর জন্য সার্ভার অথেন্টিকেশন কোড সংগ্রহ করুন।

    সি#

    using GooglePlayGames.BasicApi;
    
    // Define selectedScope having additional identity scopes.
    private List selectedScopes = new List();
    
    // Add scopes you want to request.
    selectedScopes.Add(AuthScope.OPEN_ID);
    selectedScopes.Add(AuthScope.PROFILE);
    selectedScopes.Add(AuthScope.EMAIL);
    
    // Call RequestServerSideAccess with additional scopes and retrieve
    // authcode and grantedscopes list.
    PlayGamesPlatform.Instance.RequestServerSideAccess(
        /* forceRefreshToken= */ false,selectedScopes
        (AuthResponse authResponse) =>
        {
        string authCode = authResponse.GetAuthCode();
        List grantedScopes = authResponse.GetGrantedScopes();
    
        // send authCode to server...
    });

বৈশিষ্ট্যগুলি সেট আপ করুন এবং যোগ করুন