Play Games PC SDK ব্যবহার করে আপনার গেমকে শক্তিশালী করুন

Play Games PC SDK এর মাধ্যমে আপনি পিসিতে আপনার গেম তৈরি এবং নগদীকরণের জন্য Google Play পরিষেবাগুলি অ্যাক্সেস করতে পারবেন। Play Billing ব্যবহার করে ডিজিটাল সামগ্রী বিক্রি করুন, Play Games ব্যবহার করে নির্বিঘ্নে সাইন-ইন করুন এবং Play Integrity এর মাধ্যমে আপনার অ্যাপ্লিকেশনে আপনার ব্যবহারকারীদের বৈধ অধিকার আছে কিনা তা যাচাই করুন।

শুরু করতে প্রস্তুত?

পূর্বশর্ত

  • প্লে কনসোলের ভেতরে একটি অ্যাপ এন্ট্রি তৈরি করুন এবং একটি প্লে প্যাকেজের নাম দাবি করুন।

  • পিসির জন্য গুগল প্লে গেমস ডাউনলোড এবং ইনস্টল করুন এবং আপনার গুগল অ্যাকাউন্ট দিয়ে সাইন ইন করুন।

ধাপ ১ : আপনার প্রকল্পে SDK যোগ করুন

  • প্লে গেমস পিসি C++ এসডিকে ডাউনলোড করুন।

  • আপনার অ্যাপ্লিকেশনের কোডবেসে API headers ফোল্ডার includes/ কপি করুন।

  • আপনার লক্ষ্য আর্কিটেকচারের উপর নির্ভর করে, imports/ ডিরেক্টরি থেকে পুনঃবিতরণযোগ্য ফাইলগুলি আপনার অ্যাপ্লিকেশনের প্রকল্পে অনুলিপি করুন:

    • ৬৪-বিট (x64) এর জন্য: imports/x64/ থেকে ফাইলগুলি কপি করুন।
    • ৩২-বিট (x86) এর জন্য: imports/x86/ থেকে ফাইলগুলি কপি করুন।
  • আপনার প্রকল্পটিকে play_pc_sdk.lib এর সাথে লিঙ্ক করুন যাতে play_pc_sdk.dll এর বিষয়বস্তু অ্যাক্সেস করা যায়।

ধাপ ২ : একটি ম্যানিফেস্ট ফাইল যোগ করুন

আপনার গেমের মধ্যে থেকে SDK ব্যবহার করার আগে, আপনাকে আপনার গেম এক্সিকিউটেবলকে Play Console-এর ভিতরে দাবি করা Play প্যাকেজ নামের সাথে সংযুক্ত করতে হবে। এটি আপনার গেমের এক্সিকিউটেবল ডিরেক্টরিতে একটি 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

ধাপ ৩ : আপনার গেমটিতে ডিজিটালি স্বাক্ষর করুন

আপনার গেমটি SDK ব্যবহার করার আগে, গেমটির এক্সিকিউটেবলটি একটি Authenticode ডিজিটাল স্বাক্ষর ব্যবহার করে ডিজিটালভাবে স্বাক্ষরিত হতে হবে। একটি এক্সিকিউটেবল কীভাবে স্বাক্ষর করবেন তার নির্দেশাবলীর জন্য SignTool-এর ডকুমেন্টেশন দেখুন।

আপনার গেমটি ডিজিটালি স্বাক্ষর করার প্রক্রিয়াটি সম্পন্ন করার পরে, কনফিগারেশনের জন্য আপনার গুগল প্রতিনিধির কাছে সার্টিফিকেটের তথ্য পাঠান।

ধাপ ৪ : SDK আরম্ভ করুন

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

API টি আরম্ভ করার জন্য GooglePlayInitialize কল করে SDK ব্যবহার শুরু করুন। এটি গ্লোবাল স্টেট সেটআপ করবে, SDK রানটাইমের সাথে সংযোগ স্থাপন করবে এবং অ্যাপ্লিকেশনটি সঠিকভাবে শুরু হয়েছে কিনা তা যাচাই করবে। অন্য কোনও API ব্যবহার করার আগে এটি কল করতে হবে এবং InitializeResult::ok() এর সমান true দিয়ে ধারাবাহিকতা কলব্যাক সম্পূর্ণ করতে হবে।

// 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.
  // ...
}

যদি kActionRequiredShutdownClientProcess কোড ব্যবহার করে ইনিশিয়ালাইজেশন ব্যর্থ হয়, তাহলে যত তাড়াতাড়ি সম্ভব গেম প্রক্রিয়া থেকে বেরিয়ে আসুন । SDK এর রানটাইম ব্যবহারকারীকে আপনার গেমের জন্য কোনও অতিরিক্ত পদক্ষেপ না নিতে সহায়তা করার চেষ্টা করবে। উদাহরণস্বরূপ, যদি ব্যবহারকারীর গেমটির বৈধ লাইসেন্স না থাকে, তাহলে Google Play Games ব্যবহারকারীকে একটি কপি কিনতে অনুরোধ করবে। অন্যান্য ত্রুটির জন্য, যত তাড়াতাড়ি সম্ভব গেম প্রক্রিয়া থেকে বেরিয়ে আসার পরামর্শ দেওয়া হচ্ছে কারণ এটি ব্যবহারকারীর আপনার গেমের বৈধ লাইসেন্স আছে কিনা তা যাচাই করার মতো গুরুত্বপূর্ণ ক্রিয়াকলাপ সম্পাদন করতে SDK ব্যবহার করবে না।

একটি অসফল প্রতিক্রিয়া নিম্নলিখিত শর্তগুলির মধ্যে একটি নির্দেশ করতে পারে:

  • SDK রানটাইম ইনস্টল করা নেই, ডিভাইসে চলছে না অথবা এটি একটি পুরানো সংস্করণ যা আপনার গেমে ইন্টিগ্রেটেড SDK এর সাথে সামঞ্জস্যপূর্ণ নয়।

  • SDK রানটাইম গেমটির অ্যাপ্লিকেশন পরিচয় যাচাই করতে পারেনি। এটি একটি অবৈধ manifest.xml অথবা ডেভেলপ করার সময় ডেভেলপার মোড সক্রিয় না করে SDK ব্যবহার করার কারণে হতে পারে। এটি ছাড়া আপনার গেমের এক্সিকিউটেবলকে আপনার Play প্যাকেজ নামে নিবন্ধিত ডিজিটাল সার্টিফিকেট দিয়ে ডিজিটালভাবে স্বাক্ষরিত হতে হবে।

  • গেমটি এক্সিকিউটেবল গুগল প্লে গেমস ক্লায়েন্টের মাধ্যমে চালু করা হয়নি।

  • গুগল প্লে গেমসের সক্রিয় ব্যবহারকারীর কাছে অ্যাপ্লিকেশনটির লাইসেন্স নেই।

ধাপ ৫ : (ঐচ্ছিক) একাধিক গেম-প্রক্রিয়া সমর্থন করা

যদি আপনার গেমটি একাধিক প্রক্রিয়া ব্যবহার করে -- উদাহরণস্বরূপ, যদি Play Games PC আপনার লঞ্চার লোড করে, তাহলে আপনার লঞ্চারটি আসল গেমটি শুরু করে -- এবং এমন একটি প্রক্রিয়া থেকে Play Games PC SDK ব্যবহার করার পরিকল্পনা করে যা Google Play Games for PC দ্বারা সরাসরি চালু করা হয় না -- যদি আপনার লঞ্চার থেকে শুরু করা আসল গেমটির Play Games PC SDK ব্যবহার করার প্রয়োজন হয় -- তাহলে এই অতিরিক্ত ইন্টিগ্রেশন ধাপগুলি সম্পূর্ণ করুন:

  1. পিসির জন্য গুগল প্লে গেমস দ্বারা সরাসরি চালু করা প্রক্রিয়াটি অবশ্যই প্লে গেমস পিসি SDK এর সফল আরম্ভ যাচাই করবে।

    এটি যত তাড়াতাড়ি সম্ভব ত্রুটিগুলি সার্ফেস করে সর্বোত্তম ব্যবহারকারীর অভিজ্ঞতা প্রদান করে। মনে রাখবেন যে SDK ব্যবহার করে চাইল্ড-প্রসেসকে সরাসরি চালু হওয়া প্রক্রিয়া ছাড়াও ইনিশিয়ালাইজেশনও করতে হবে।

  2. চাইল্ড-প্রসেসে প্লে গেমস পিসি এসডিকে ব্যবহার করতে কমান্ড লাইন প্যারামিটারগুলিকে স্পনড চাইল্ড-প্রসেসে ফরোয়ার্ড করুন।

    কমান্ড লাইন প্যারামিটার ফরোয়ার্ডিংয়ের উদাহরণ:

    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 ) কিছু উদাহরণ প্যারামিটার ( --gpg_args=abc --your_args=123 ) সহ গেমটি ( YourGameLauncher.exe ) চালু করে। এরপর গেমটি একটি চাইল্ড-প্রসেস ( YourGame.exe ) তৈরি করে যা Play Games PC SDK ব্যবহার করে। এটি করার জন্য, Google Play Games for PC দ্বারা চালু করা গেম প্রক্রিয়াটি চাইল্ড-প্রসেসে প্রদত্ত কমান্ড লাইন প্যারামিটারগুলিকে ফরোয়ার্ড করে।

  3. গেমটি চলা বন্ধ হয়ে গেলে সমস্ত প্রক্রিয়া থেকে বেরিয়ে আসুন।

    যখন কোনও ব্যবহারকারী আপনার গেমটি বন্ধ করে দেয় অথবা SDK ইনিশিয়ালাইজেশন ব্যর্থতার কারণে গেমটি বন্ধ হয়ে যায়, যেমন kActionRequiredShutdownClientProcess , তখন আপনার গেমের তৈরি সমস্ত প্রক্রিয়া বন্ধ করে দিন। এটি নিশ্চিত করে যে পরের বার যখন আপনার গেমটি Google Play Games for PC ক্লায়েন্ট দ্বারা চালু করা হবে, তখন নতুন পরিবর্তনগুলি যেমন একটি ভিন্ন সক্রিয় অ্যাকাউন্টে স্যুইচ করা কার্যকর হবে।

পরবর্তী পদক্ষেপ

আপনার IDE-তে ডেভেলপ করার সময় SDK ব্যবহার করুন:

আপনার অ্যাপে গুগল প্লে পিসি বৈশিষ্ট্য যোগ করুন: