পিসিতে Google Play গেমের জন্য PC সামঞ্জস্য এবং অপ্টিমাইজেশান

পিসিতে গুগল প্লে গেমস ব্যবহার করার জন্য আপনার গেমে পিসি কম্প্যাটিবিলিটি এবং অপটিমাইজেশন পরিবর্তন করতে হবে। এই পরিবর্তনগুলো নিশ্চিত করে যে আপনার গেমটি পিসিতে চলতে পারে এবং ব্যবহারকারীর অভিজ্ঞতা প্ল্যাটফর্মটির জন্য অপটিমাইজ করা থাকে।

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

পিসি কম্প্যাটিবিলিটি এবং অপটিমাইজেশন পরিবর্তন করার সময় (x86-64 সাপোর্ট ছাড়া), আপনি আপনার গেমটিকে পিসিতে গুগল প্লে গেমস শনাক্ত করার জন্য সেট আপ করতে পারেন এবং তারপর প্ল্যাটফর্ম-নির্দিষ্ট ফিচারগুলো নিষ্ক্রিয় বা সক্রিয় করতে পারেন। এর ফলে আপনি আপনার অ্যান্ড্রয়েড মোবাইল এবং পিসি সংস্করণের জন্য একই APK বা অ্যাপ বান্ডেল ব্যবহার করতে পারবেন।

এই পৃষ্ঠায় প্রয়োজনীয়তা ও সুপারিশগুলোর একটি সারসংক্ষেপ দেওয়া হলো:

x86-64 ABI আর্কিটেকচার অন্তর্ভুক্ত করুন

সম্ভব হলে, আপনার গেমে অন্তর্ভুক্ত সমস্ত লাইব্রেরি যেন x86-64-এর জন্য বিল্ড করা হয়, তা নিশ্চিত করুন। এর ফলে কোনো ট্রান্সলেশন লেয়ারের প্রয়োজন হয় না, যা আপনাকে সেরা পারফরম্যান্স ও স্থিতিশীলতা নিশ্চিত করতে সাহায্য করে।

লাইব্রেরি সংকলন

x86-64 প্রসেসরের সাথে সর্বোচ্চ সামঞ্জস্যতা নিশ্চিত করতে, আপনার লাইব্রেরিগুলো কম্পাইল করার সময় অ্যাটম (atom) ইন্সট্রাকশন সেট ব্যবহার করবেন না। উদাহরণস্বরূপ, gcc ব্যবহার করার সময় -march=atom ব্যবহার করা থেকে বিরত থাকুন এবং এর পরিবর্তে -march=x86-64 ব্যবহার করুন।

ইউনিটিতে লক্ষ্য স্থাপত্য

ইউনিটি ২০১৯ এবং ২০২০-এর কিছু সংস্করণে অ্যান্ড্রয়েডের জন্য x86-64 আর্কিটেকচার সাপোর্ট নেই। নিশ্চিত করুন যে আপনি ইউনিটি 2019.4.31f1, 2020.3.19f1 বা এর পরবর্তী সংস্করণ ব্যবহার করছেন।

আপনার গেমটি যদি ইউনিটি গেম ইঞ্জিনের একটি সামঞ্জস্যপূর্ণ সংস্করণ ব্যবহার করে, তাহলে x86-64 অ্যান্ড্রয়েড টার্গেটগুলি সক্রিয় করতে নিম্নলিখিতগুলি করুন:

  1. IL2CPP স্ক্রিপ্টিং ব্যাকএন্ড সক্রিয় করতে প্লেয়ার সেটিংস > অন্যান্য সেটিংস > কনফিগারেশন > স্ক্রিপ্টিং ব্যাকএন্ড- এ যান এবং ড্রপডাউন মেনু থেকে IL2CPP নির্বাচন করুন।

  2. আপনার ইউনিটি সংস্করণের জন্য x86-64 অ্যান্ড্রয়েড টার্গেট সক্রিয় করুন:

    • ইউনিটি ২০১৮ এবং পূর্ববর্তী সংস্করণ: প্লেয়ার সেটিংস > অন্যান্য সেটিংস > টার্গেট আর্কিটেকচার- এ যান এবং x86 চেকবক্সটি নির্বাচন করুন। যেহেতু ইউনিটি ২০১৮ শুধুমাত্র x86 টার্গেট সমর্থন করে, তাই আপনি x86-64 বিল্ড করতে পারবেন না। এই বিল্ডটির জন্য রিভিউ টিমের কাছ থেকে একটি ব্যতিক্রমের প্রয়োজন হবে। x86 ব্যতিক্রমের জন্য অনুরোধ করতে অনুগ্রহ করে আপনার গুগল কন্ট্যাক্টের সাথে যোগাযোগ করুন।

    • ইউনিটি ২০১৯ লং টার্ম সাপোর্ট (LTS) রিলিজ এবং পরবর্তী সংস্করণ : প্লেয়ার সেটিংস > অন্যান্য সেটিংস > টার্গেট আর্কিটেকচার- এ যান এবং x86-64 (ChromeOS) সক্রিয় করুন।

পিসিতে গুগল প্লে গেমস সনাক্ত করুন

আপনি রানটাইমে পিসি প্ল্যাটফর্মে গুগল প্লে গেমস শনাক্ত করতে পারবেন, যার ফলে আপনার গেমে প্ল্যাটফর্ম-নির্দিষ্ট ফিচারগুলো চালু বা বন্ধ করতে পারবেন।

আপনার গেমটি পিসি প্ল্যাটফর্মে গুগল প্লে গেমসে চলছে কিনা তা জানতে com.google.android.play.feature.HPE_EXPERIENCE সিস্টেম ফিচারটি পরীক্ষা করুন:

কোটলিন

    var isPC = packageManager.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

জাভা

    PackageManager pm = getPackageManager();
    boolean isPC = pm.hasSystemFeature("com.google.android.play.feature.HPE_EXPERIENCE")
  

সি#

var unityPlayerClass = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
var currentActivity = unityPlayerClass.GetStatic<AndroidJavaObject>("currentActivity");
var packageManager = currentActivity.Call<AndroidJavaObject>("getPackageManager");
var isPC = packageManager.Call<bool>("hasSystemFeature", "com.google.android.play.feature.HPE_EXPERIENCE");
  

অ্যান্ড্রয়েড লাইফসাইকেল ইভেন্টগুলি পরিচালনা করুন

পিসিতে গুগল প্লে গেমস পরিবেশে onPause ( c++ ) ইভেন্টটি হ্যান্ডেল করা গুরুত্বপূর্ণ। যখন কোনো প্লেয়ার এমুলেটর ওভারলে সক্রিয় করে, তখন আপনার গেমটি দৃশ্যমান হয়, তাই onPause ইভেন্টটি লিসেন করতে ব্যর্থ হলে ব্যবহারকারীর অভিজ্ঞতা খারাপ হতে পারে।

UI আপডেট করুন

কিছু UI উপাদান এবং অঙ্গভঙ্গি পিসির জন্য উপযুক্ত নয় এবং এগুলো আপডেট করা উচিত।

প্রয়োজনীয়:

  • দুই বা ততোধিক আঙুলের প্রয়োজন হয় এমন UI অ্যাকশন (মাল্টি-টাচ জেসচার) প্রতিস্থাপন করুন। উদাহরণস্বরূপ, পিঞ্চ-টু-জুম এবং অন্যান্য মাল্টি-টাচ জেসচারগুলোকে সংশ্লিষ্ট মাউস এবং কীবোর্ড ইনপুট দিয়ে প্রতিস্থাপন করা উচিত। ডিভাইস ইনপুট পরিবর্তন সম্পর্কে বিস্তারিত জানতে, ইনপুট সাপোর্ট দেখুন।

সুপারিশকৃত:

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

বেশিরভাগ অনুমতি ডায়ালগ নিষ্ক্রিয় করুন

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

অসমর্থিত অ্যান্ড্রয়েড বৈশিষ্ট্য এবং অনুমতি

রিলিজ প্রক্রিয়ার জন্য প্রয়োজনীয়

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

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

adb shell pm list features

আপনার গেমটিকে পিসির সাথে সামঞ্জস্যপূর্ণ করতে নিম্নলিখিত পরিবর্তনগুলি প্রয়োজন:

  • আপনার অ্যাপ ম্যানিফেস্টে <uses-feature> ডিক্লারেশনে android:required="false" যোগ করে ফিচারগুলোকে ঐচ্ছিক হিসেবে চিহ্নিত করুন । এটি শুধুমাত্র আপনার অ্যাপ ম্যানিফেস্টে আগে থেকে ঘোষিত ফিচারগুলোর ক্ষেত্রেই প্রযোজ্য হবে।

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

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

অ্যাপ ম্যানিফেস্ট সামঞ্জস্যতা সম্পর্কে আরও তথ্যের জন্য, ক্রোমবুক অ্যাপ ম্যানিফেস্ট সামঞ্জস্যতা নির্দেশিকা দেখুন।

কার্যকরী পরীক্ষার প্রয়োজনীয়তা

গুগল প্লে কনসোলে প্রথম টেস্ট বিল্ড জমা দেওয়ার আগে এই হার্ডওয়্যার বৈশিষ্ট্যগুলি সরিয়ে ফেলুন:

  • android.hardware.wifi
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.location

সামঞ্জস্যতার কারণে pm list features চালানোর সময় এই বৈশিষ্ট্যগুলির কয়েকটি সমর্থিত হিসাবে তালিকাভুক্ত হতে পারে, কিন্তু সেগুলি সম্পূর্ণরূপে প্রয়োগ করা হয়নি। android.hardware.wifi বৈশিষ্ট্যটি কীভাবে সরাতে হয় সে সম্পর্কে আরও তথ্যের জন্য, `Monitor connectivity status and connection metering` দেখুন। অসমর্থিত বৈশিষ্ট্যগুলির একটি সম্পূর্ণ তালিকার জন্য, `Chromebooks`-এর জন্য অ্যাপ ম্যানিফেস্ট সামঞ্জস্যতা নির্দেশিকা দেখুন।

গুণমান পরীক্ষার প্রয়োজনীয়তা

এই বহুল ব্যবহৃত হার্ডওয়্যার ফিচারগুলো পিসির সাথে সামঞ্জস্যপূর্ণ নয় , তাই গুগল প্লে কনসোলে চূড়ান্তভাবে জমা দেওয়ার আগে আপনাকে অবশ্যই এগুলো সরিয়ে ফেলতে হবে:

  • android.hardware.audio.pro
  • android.hardware.bluetooth
  • android.hardware.camera
  • android.hardware.consumerir
  • android.hardware.location
  • android.hardware.nfc
  • android.hardware.sensor.light
  • android.hardware.sensor.accelerometer
  • android.hardware.sensor.barometer
  • android.hardware.sensor.compass
  • android.hardware.sensor.gyroscope
  • android.hardware.sensor.proximity
  • android.hardware.telephony
  • android.hardware.touchscreen
  • android.hardware.usb.accessory
  • android.hardware.usb.host
  • android.hardware.wifi
  • android.software.midi

অসমর্থিত অনুমতি

নিম্নলিখিত বহুল ব্যবহৃত অনুমতিগুলি পিসিতে সমর্থিত নয় , তাই আপনার গেমে অবশ্যই পিসির জন্য গুগল প্লে গেমস-এর ক্ষেত্রে এগুলি নিষ্ক্রিয় করতে হবে:

  • android.permission.ACCESS_COARSE_LOCATION
  • android.permission.ACCESS_FINE_LOCATION
  • android.permission.ACCESS_WIFI_STATE
  • android.permission.BLUETOOTH
  • android.permission.CAMERA
  • android.permission.FOREGROUND_SERVICE
  • android.permission.GET_ACCOUNTS
  • android.permission.INSTALL_PACKAGES
  • android.permission.READ_CONTACTS
  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.READ_PHONE_STATE
  • android.permission.RECEIVE_BOOT_COMPLETED
  • android.permission.REQUEST_INSTALL_PACKAGES
  • android.permission.SYSTEM_ALERT_WINDOW
  • android.permission.USE_CREDENTIALS
  • android.permission.WRITE_EXTERNAL_STORAGE
  • android.permission.WRITE_SETTINGS
  • com.google.android.gms.permission.ACTIVITY_RECOGNITION

বাহ্যিক ওয়েবসাইট এবং ওয়েবভিউ

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

পোর্টিং সহজ করার জন্য, পিসিতে গুগল প্লে গেমস ওয়েবভিউ (WebView ) সমর্থন করে। যেহেতু এটি পিসিতে গুগল প্লে গেমসের পরিবেশে খোলে, তাই এতে সাধারণ ডেস্কটপ ব্রাউজার থাকবে না। আপনি যদি আগে আপনার পরিষেবার শর্তাবলী (Terms of Service), গোপনীয়তা নীতি (Privacy Policy), বা এই জাতীয় অন্য কোনো বিষয়বস্তু শেয়ার করার জন্য WebView ব্যবহার করে থাকেন, তবে এর পরিবর্তে আপনার একটি ব্রাউজার ইন্টেন্ট (browser intent) চালু করা উচিত।

অসমর্থিত গুগল প্লে সার্ভিস এপিআই নিষ্ক্রিয় করুন

রিলিজ প্রক্রিয়ার জন্য প্রয়োজনীয়

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

সমর্থিত মডিউল

এই মডিউলগুলো বর্তমানে পিসিতে গুগল প্লে গেমস দ্বারা উপলব্ধ ও সমর্থিত, এবং অতিরিক্ত ফিচার সমর্থনের পরিকল্পনা রয়েছে:

সীমিত সমর্থন

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

সমর্থিত নয়

এই মডিউলগুলো পিসির গুগল প্লে গেমসে সমর্থিত নয়, কিন্তু ব্যর্থ হলেও পিসির গুগল প্লে গেমসে কোনো সমস্যা সৃষ্টি করে না:

ভাঙা

রিলিজ প্রক্রিয়ার জন্য প্রয়োজনীয়

আপনাকে অবশ্যই পিসিতে এই মডিউলগুলি ব্যবহার করা থেকে বিরত থাকতে হবে, কারণ এগুলি পিসিতে গুগল প্লে গেমসে অপ্রত্যাশিত আচরণের কারণ হতে পারে।

স্কোপড স্টোরেজ সক্ষম করুন

রিলিজ প্রক্রিয়ার জন্য প্রয়োজনীয়

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

  • android.permission.READ_EXTERNAL_STORAGE
  • android.permission.WRITE_EXTERNAL_STORAGE

স্কোপড স্টোরেজ সম্পর্কে আরও তথ্যের জন্য দেখুন:

বিশ্লেষণ

পিসিতে গুগল প্লে গেমসে পুরোনো গুগল অ্যানালিটিক্স প্রোডাক্টগুলো কাজ করে না। যদি আপনার গেমগুলোর ক্ষেত্রেও এমনটা হয়, তবে সেগুলোকে গুগল অ্যানালিটিক্স ৪- এ মাইগ্রেট করা উচিত।

এটি কেবল তখনই আপনার গেমকে প্রভাবিত করবে, যদি আপনি বর্তমানে গুগল অ্যানালিটিক্স ৩৬০ (Google Analytics 360 ) ব্যবহার করে থাকেন। যদি আপনি আপনার গেমে অ্যানালিটিক্স ইভেন্ট ট্র্যাক করার জন্য ফায়ারবেস এসডিকে (Firebase SDK) ব্যবহার করেন এবং গুগল অ্যানালিটিক্স কনসোলে (Google Analytics Console) আপনার গেমটিকে একটি প্রপার্টি হিসেবে দেখতে পান, তাহলে আপনাকে আর কোনো পদক্ষেপ নিতে হবে না।