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

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

শুরু করার আগে

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

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

ইউনিটির জন্য গুগল প্লে গেমস প্লাগইন ডাউনলোড এবং ইনস্টল করতে, ইউনিটি হাবে এই পদক্ষেপগুলি অনুসরণ করুন:

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

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

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

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

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

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

  2. ইউনিটি হাবে, আপনার প্রকল্পের সম্পদে unitypackage ফাইলটি আমদানি করতে সম্পদ > প্যাকেজ আমদানি > কাস্টম প্যাকেজ ক্লিক করুন।

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

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

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

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

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

  5. টার্গেট API লেভেল বক্সে, একটি সংস্করণ নির্বাচন করুন।

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

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

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

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

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

আপনার শংসাপত্র যাচাই করার জন্য, আপনার একটি কী প্রয়োজন। এই পদক্ষেপগুলি অনুসরণ করুন:

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

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

Play Console থেকে Android রিসোর্সগুলি কপি করুন

Play Console-এ আপনার তৈরি প্রতিটি কৃতিত্ব, লিডারবোর্ড এবং ইভেন্টে একটি Android রিসোর্স থাকে যা আপনি আপনার Unity প্রকল্প সেট আপ করার সময় ব্যবহার করেন।

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

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

  2. প্লে গেমস সার্ভিসেস - কনফিগারেশন পৃষ্ঠায় ( গ্রো > প্লে গেমস সার্ভিসেস > সেটআপ এবং ব্যবস্থাপনা > কনফিগারেশন ), রিসোর্স পান এ ক্লিক করুন।

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

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

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

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

  1. ইউনিটি হাবে, উইন্ডো > গুগল প্লে গেমস > সেটআপ > অ্যান্ড্রয়েড সেটআপ এ ক্লিক করুন।

    • "ডিরেক্টরি টু সেভ কনস্ট্যান্টস " ফিল্ডে, কনস্ট্যান্টস ফাইলের ফোল্ডারের নাম লিখুন।
    • Constants class name ক্ষেত্রে, namespace সহ, তৈরি করতে C# ক্লাসের নাম লিখুন।

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

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

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

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

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

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

  2. ইউনিটি হাবে, উইন্ডো > গুগল প্লে গেমস > সেটআপ > কাছাকাছি সংযোগ সেটআপ এ ক্লিক করুন।

    • কাছাকাছি সংযোগ পরিষেবা আইডি ক্ষেত্রে, package_name লিখুন।

      ইউনিটি প্রজেক্ট সেট আপ করার সময় আপনি যে প্যাকেজ_নামটি ব্যবহার করেছিলেন সেই একই package_name ব্যবহার করুন।

    • সেটআপ ক্লিক করুন।

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

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

স্ট্যান্ডার্ড API কলগুলি Social.Active অবজেক্টের মাধ্যমে অ্যাক্সেস করা যেতে পারে, যা একটি ISocialPlatform ইন্টারফেসের একটি রেফারেন্স। নন-স্ট্যান্ডার্ড Google Play Games Services এক্সটেনশনগুলি Social.Active অবজেক্টটিকে PlayGamesPlatform ক্লাসে কাস্ট করে অ্যাক্সেস করা যেতে পারে, যেখানে অতিরিক্ত পদ্ধতিগুলি উপলব্ধ।

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

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

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

  1. PlayGamesPlatform.Activate পদ্ধতিতে কল করুন।
  2. যদি Xyz এমন একটি পদ্ধতির নাম হয় যা আপনি Social ক্লাসে কল করেন, তাহলে 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).
      }
    }

ফলাফল কোড হল একটি এনাম যা আপনি প্রমাণীকরণ ব্যর্থতার কারণ এবং কারণ সনাক্ত করতে ব্যবহার করতে পারেন।

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

  using GooglePlayGames;

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

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

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

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

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

ইউনিটি হাবে একটি AAB ফাইল তৈরি করতে, এই পদক্ষেপগুলি অনুসরণ করুন:

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

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

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

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

একটি অভ্যন্তরীণ পরীক্ষার রিলিজ তৈরি করুন

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

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

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

  8. প্রতিক্রিয়া URL বা ইমেল ঠিকানায় , প্রতিক্রিয়া প্রদানের জন্য একটি প্রতিক্রিয়া URL বা এবং ইমেল ঠিকানা লিখুন।

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

আপনার অ্যাপ সাইনিং শংসাপত্র যাচাই করুন

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

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

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

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

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

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

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

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

    1. ইউনিটি হাবে, ইউনিটির জন্য গুগল প্লে গেমস সেট আপ করুন এবং প্রমাণীকরণ করুন
    2. ইউনিটি হাবে, উইন্ডো > গুগল প্লে গেমস > সেটআপ > অ্যান্ড্রয়েড সেটআপ এ যান।
    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...
    });

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