সমস্ত স্ক্রিনের জন্য গেমগুলি বিকাশ করুন৷

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

খেলোয়াড়দের অভিজ্ঞতার নির্দিষ্ট পার্থক্যগুলো নিম্নরূপ:

  • ডিভাইসের ধরন: যদিও ফোনগুলো প্রচলিত অ্যান্ড্রয়েড ডিভাইসের অভিজ্ঞতা দেয়, তবুও অন্যান্য ধরনের ডিভাইসেও গেম খেলা সম্ভব। ক্রোমওএস (ChromeOS) ডিভাইসে একটি অ্যান্ড্রয়েড কন্টেইনার চালানো যায়, যা আপনার গেমটি প্রদর্শন করে। অ্যান্ড্রয়েড চালাতে সক্ষম ট্যাবলেটগুলো বিভিন্ন স্তরের গ্রাফিক্স সমর্থন করে। অ্যান্ড্রয়েড টিভি (Android TV) ডিভাইসগুলো আরও বিস্তারিত এবং আরও বেশি নিমগ্ন অভিজ্ঞতা প্রদান করে। প্লেয়াররা একটি ডিসপ্লে এক্সটেনশন টুল ব্যবহার করে একাধিক উইন্ডোর পরিবেশ অনুকরণ করতে পারে। আর ফোল্ডেবল ডিভাইস ব্যবহার করার সময়, প্লেয়াররা গেম খেলার মাঝেই স্ক্রিনের আকার পরিবর্তন করতে পারে।
  • মিথস্ক্রিয়ার পদ্ধতি: প্লেয়াররা ডিভাইসের স্ক্রিনে স্পর্শ করে ইনপুট দিতে পারে, তবে এর পরিবর্তে তারা মাউস, টাচপ্যাড, কিবোর্ড বা কন্ট্রোলারও ব্যবহার করতে পারে। এছাড়াও, ডিসপ্লে এক্সটেনশন টুল এবং ফোল্ডেবল ডিভাইসের সহজলভ্যতা প্লেয়ারদেরকে একটি বড় স্ক্রিনে আপনার গেমটি উপভোগ করার সুযোগ দেয়, যা দীর্ঘ সময় ধরে গেম খেলা এবং আরও জটিল ইন্টারফেস তৈরি করাকে আরও সহজসাধ্য করে তোলে।
  • হার্ডওয়্যার সাপোর্ট: কিছু অ্যান্ড্রয়েড-চালিত ডিভাইসে এমন হার্ডওয়্যার থাকে না যা সাধারণত হ্যান্ডহেল্ড ডিভাইসে দেখা যায়, যেমন পেছনের ক্যামেরা, জিপিএস এবং নেটওয়ার্ক কানেক্টিভিটি। আপনার গেমটিকে উপলব্ধ হার্ডওয়্যারের সাথে মানিয়ে নিতে হবে এবং নির্দিষ্ট কিছু ফিচার উপলব্ধ না থাকলে সেই পরিস্থিতি সুন্দরভাবে সামাল দিতে হবে।

এই নির্দেশিকাটি বিভিন্ন ধরণের স্ক্রিন এবং ব্যবহারকারীর মিথস্ক্রিয়ার জন্য আপনার গেম তৈরি করার সেরা পদ্ধতিগুলো তুলে ধরে। এই নির্দেশিকাটি আপনার গেমের নকশা তৈরি এবং একটি কার্যকর টেস্টিং কৌশল বিকাশের বিষয়েও পরামর্শ প্রদান করে।

গেম ডিজাইনের সেরা অনুশীলন

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

কনফিগারেশন পরিবর্তনগুলিতে ম্যানুয়ালি সাড়া দিন

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

একটি সাধারণ গেমপ্লে সেশনে বেশ কিছু কনফিগারেশন পরিবর্তন ঘটে। যদি আপনার গেম প্রতিটি কনফিগারেশন পরিবর্তন সিস্টেমকে দিয়ে করায়, তবে আপনার গেমের সিন বারবার নষ্ট হয়ে যায় এবং নতুন করে শুরু হয়, যা আপনার গেমের পারফরম্যান্স কমিয়ে দেয়। এই কারণে, আমরা আপনাকে আপনার গেমে এই কনফিগারেশন পরিবর্তনগুলো নিজে করার জন্য বিশেষভাবে উৎসাহিত করি ।

আপনার গেমে এই কনফিগারেশন পরিবর্তনের লজিকটি কীভাবে যুক্ত করবেন তা জানতে, কাস্টম কনফিগারেশন পরিবর্তন হ্যান্ডলার তৈরি করার বিভাগটি দেখুন ।

একটি নমনীয় স্থাপত্য তৈরি করুন

যত বেশি সম্ভব ডিভাইসে আপনার গেমের সাপোর্ট যোগ করতে, এই সেরা পদ্ধতিগুলো অনুসরণ করুন:

  • আলাদা আলাদা APK-এর পরিবর্তে অ্যান্ড্রয়েড অ্যাপ বান্ডেল ব্যবহার করুন। অ্যান্ড্রয়েড অ্যাপ বান্ডেল আপনাকে বিভিন্ন রেজোলিউশন এবং বিভিন্ন আর্কিটেকচার মডেলের (যেমন x86, ARM) ফাইলগুলোকে একটিমাত্র ফাইলে প্যাকেজ করার সুযোগ দেয়। আরও ভালো ব্যাপার হলো, অ্যান্ড্রয়েড অ্যাপ বান্ডেল আপনার গেমের জন্য উচ্চতর আকারের সীমা সমর্থন করে; প্রতিটি বেস APK ১৫০ মেগাবাইট পর্যন্ত বড় হতে পারে এবং বান্ডেলটির আকারও অনেক গিগাবাইট হতে পারে।
  • x86 আর্কিটেকচারের জন্য সমর্থন যোগ করুন। এই পদক্ষেপটি ARM সমর্থন করে না এমন ডিভাইসগুলিতে আপনার গেমের পারফরম্যান্স উন্নত করে, কারণ এই ডিভাইসগুলি এখন নির্দেশাবলীকে প্রথমে অনুবাদ না করেই কার্যকর করতে পারে।

ভুলকানের জন্য সমর্থন যোগ করুন

Vulkan সমর্থন করার মাধ্যমে আপনার গেম উন্নততর গ্রাফিক্স পারফরম্যান্স অর্জন করতে পারে। বেশিরভাগ ডিভাইসই এই গ্রাফিক্স এপিআই সমর্থন করে।

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

আপনার গেম নিজে যে ধরনের কনফিগারেশন পরিবর্তনগুলো পরিচালনা করবে তা ঘোষণা করতে, আপনার ম্যানিফেস্টে থাকা প্রতিটি <activity> এলিমেন্টে android:configChanges অ্যাট্রিবিউটটি যোগ করুন, যা একটি স্ক্রিন বা জটিল ইন্টারফেসকে উপস্থাপন করে।

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

<activity ...
    android:configChanges="screenSize|orientation|keyboard|keyboardHidden">
</activity>

ঘোষিত কনফিগারেশন পরিবর্তন ঘটলে, সিস্টেম এখন onConfigurationChanged() নামে একটি ভিন্ন মেথড কল করে। এই মেথডের মধ্যে আপনার গেমের UI আপডেট করার জন্য লজিক যোগ করুন:

স্ক্রিন কনফিগারেশন পরিবর্তনগুলি পরিচালনা করুন

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

আপনার গেমের onConfigurationChanged() ফাংশনের বাস্তবায়নে, যথাক্রমে স্ক্রিনের আকার এবং স্ক্রিন ওরিয়েন্টেশনের হালনাগাদ মান নির্ধারণ করতে পাস করা Configuration অবজেক্ট এবং উইন্ডো ম্যানেজারের Display অবজেক্ট ব্যবহার করুন।

নিম্নলিখিত কোড স্নিপেটটি দেখায় কিভাবে আপনার গেমের আপডেট করা স্ক্রিন সাইজ এবং ওরিয়েন্টেশন পাওয়া যাবে:

কোটলিন

override fun onConfigurationChanged(newConfig: Configuration) {
    super.onConfigurationChanged(newConfig)
    val density: Float = resources.displayMetrics.density
    val newScreenWidthPixels = (newConfig.screenWidthDp * density).toInt()
    val newScreenHeightPixels = (newConfig.screenHeightDp * density).toInt()

    // Get general orientation; either Configuration.ORIENTATION_PORTRAIT or
    // Configuration.ORIENTATION_LANDSCAPE.
    val newScreenOrientation: Int = newConfig.orientation

    // Get general rotation; one of: ROTATION_0, ROTATION_90, ROTATION_180,
    // or ROTATION_270.
    val newScreenRotation: Int = windowManager.defaultDisplay.rotation
}

জাভা

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    float density = getResources().getDisplayMetrics().density;
    int newScreenWidthPixels = (int) (newConfig.screenWidthDp * density);
    int newScreenHeightPixels = (int) (newConfig.screenHeightDp * density);

    // Get general orientation; either Configuration.ORIENTATION_PORTRAIT or
    // Configuration.ORIENTATION_LANDSCAPE.
    int newScreenOrientation = newConfig.orientation;

    // Get general rotation; one of: ROTATION_0, ROTATION_90, ROTATION_180,
    // or ROTATION_270.
    int newScreenRotation = getWindowManager().getDefaultDisplay()
            .getRotation();
}

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

গেম-নির্দিষ্ট স্ক্রিনের গুণাবলী

আপনার গেমের গুণাবলীর উপর নির্ভর করে, স্ক্রিনের আকার বা স্ক্রিনের অভিমুখ পরিবর্তনের ক্ষেত্রে আপনার গেমটি কীভাবে প্রতিক্রিয়া দেখাবে তা কীভাবে সামঞ্জস্য করবেন, তা নিম্নলিখিত বিভাগগুলিতে বর্ণনা করা হয়েছে:

পূর্ণস্ক্রিন মোড

কিছু প্ল্যাটফর্মে, যেমন ChromeOS-এ, অ্যান্ড্রয়েড অ্যাপ এবং গেমগুলো ডিফল্টভাবেই উইন্ডো মোডে এবং আকার পরিবর্তনযোগ্য হতে পারে। যদি আপনার গেমটি সবসময় ফুলস্ক্রিন মোডে চলার প্রয়োজন হয়, তাহলে আপনি আপনার <activity> এলিমেন্টগুলোর যেকোনো একটিতে android:resizeableActivity অ্যাট্রিবিউটটির মান false সেট করতে পারেন, যেমনটি নিচের কোড স্নিপেটে দেখানো হয়েছে:

<activity ...
    android:resizeableActivity="false">
</activity>

আকার-ভিত্তিক কনফিগারেশন পরিবর্তন হওয়া আটকাতে আপনি android:resizeableActivity অ্যাট্রিবিউটটির মান false সেট করতে পারেন। তবে, আপনার গেমটি যদি সবসময় ফুলস্ক্রিন মোডে না চলে, তাহলে এই অ্যাট্রিবিউটটি শুধুমাত্র পরীক্ষার উদ্দেশ্যে একটি অস্থায়ী সমাধান হিসেবেই যোগ করা উচিত।

স্ক্রিন ওরিয়েন্টেশন

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

<activity ...
    android:screenOrientation="landscape">
</activity>

ডিভাইস-নির্দিষ্ট স্ক্রিনের গুণাবলী

কিছু ডিভাইসের নির্দিষ্ট বৈশিষ্ট্যের পরিপ্রেক্ষিতে স্ক্রিন-ভিত্তিক কনফিগারেশন পরিবর্তনগুলি কীভাবে পরিচালনা করতে হয়, তা নিম্নলিখিত বিভাগগুলিতে বর্ণনা করা হয়েছে।

আকৃতির অনুপাত

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

  • টার্গেট অ্যান্ড্রয়েড ৮.০ (এপিআই লেভেল ২৬) বা উচ্চতর সংস্করণ।
  • আপনার গেমের সিন এবং ইন্টারফেসকে রিসাইজযোগ্য করুন। অ্যান্ড্রয়েড ৭.০ (এপিআই লেভেল ২৪) এবং এর থেকে উচ্চতর সংস্করণে চালিত ডিভাইসগুলিতে android:resizeableActivity true তে সেট করুন।
  • সর্বোচ্চ সমর্থিত অ্যাস্পেক্ট রেশিও ঘোষণা করুন। আপনার গেমের সাথে যুক্ত একটি <meta-data> অ্যাট্রিবিউটে, android.max_aspect কে 2.4 এ সেট করুন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে। তবে মনে রাখবেন, আপনার নির্দিষ্ট করা রেশিওর চেয়ে বড় অ্যাস্পেক্ট রেশিও ব্যবহার করলে গেমটি ডিসপ্লের মধ্যে লেটারবক্সড দেখাবে।

    <application>
    <meta-data android:name="android.max_aspect"
               android:value="2.4" />
    </application>

একই সাথে একাধিক কার্যকলাপ দেখা যাচ্ছে

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

অ্যান্ড্রয়েড ৯ (এপিআই লেভেল ২৮) বা তার চেয়ে উন্নত সংস্করণে চালিত ডিভাইসগুলোতে, উপরে দৃশ্যমান সমস্ত অ্যাক্টিভিটি একই সাথে পুনরায় চালু করা সম্ভব। তবে, এই আচরণটি কাজ করার জন্য, আপনার গেম এবং ডিভাইসের OEM উভয়কেই এই কার্যকারিতাটি গ্রহণ করতে হবে। আপনি আপনার গেমের ম্যানিফেস্টে android.allow_multiple_resumed_activities কে true সেট করার মাধ্যমে আপনার গেমে এই সাপোর্ট যোগ করতে পারেন, যেমনটি নিম্নলিখিত কোড স্নিপেটে দেখানো হয়েছে:

<application>
    <meta-data android:name="android.allow_multiple_resumed_activities"
               android:value="true" />
</application>

এরপর আপনি বিভিন্ন ডিভাইসে আপনার গেমটি পরীক্ষা করে দেখতে পারেন যে, সেগুলোর মধ্যে কোনটিতে মাল্টি-রিজিউম সঠিকভাবে কাজ করার জন্য প্রয়োজনীয় OEM সাপোর্ট রয়েছে।

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

বিভিন্ন ধরণের মিথস্ক্রিয়া মডেল পরিচালনা করুন

যখনই আপনি android:configChanges অ্যাট্রিবিউটে যথাক্রমে keyboard এবং keyboardHidden ভ্যালুগুলো অন্তর্ভুক্ত করেন, আপনার গেম কিবোর্ডের উপস্থিতি এবং প্রাপ্যতা ম্যানুয়ালি পরিচালনা করে। আপনি এই নতুন ভ্যালুগুলো ব্যবহার করে আপনার গেমের প্রধান ইনপুট পদ্ধতি আপডেট করতে পারেন।

একাধিক ধরনের ব্যবহারকারী ইনপুট সমর্থন করার জন্য আপনার গেমটি কনফিগার করার সময় নিম্নলিখিত বিষয়গুলো মনে রাখবেন:

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

    খেলোয়াড়ের পছন্দের ইনপুট ডিভাইসের উপর ভিত্তি করে আপনি প্রায়শই বুঝতে পারবেন যে সে আপনার গেমের সাথে কীভাবে ইন্টারঅ্যাক্ট করার পরিকল্পনা করছে:

    • খেলোয়াড়রা সাধারণত দ্রুত বোতাম চাপার জন্য কিবোর্ড বা গেম কন্ট্রোলার ব্যবহার করে।
    • খেলোয়াড়রা সাধারণত আরও জটিল অঙ্গভঙ্গি সম্পাদনের জন্য টাচস্ক্রিন বা টাচপ্যাড ব্যবহার করে।
    • খেলোয়াড়রা সাধারণত আরও নির্ভুল ইনপুট দেওয়ার জন্য মাউস ব্যবহার করে।

নিম্নলিখিত বিভাগগুলিতে নির্দিষ্ট ধরণের ইনপুট ডিভাইসগুলির জন্য সর্বোত্তম অনুশীলনগুলি প্রদান করা হয়েছে।

কিবোর্ড

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

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

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

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

গেম কন্ট্রোলার

আপনার গেমে কন্ট্রোলার ইনপুট পরিচালনা করার বিষয়ে আরও তথ্যের জন্য, গেম কন্ট্রোলার সমর্থন করার নির্দেশিকাটি দেখুন ।

মাউস বা টাচপ্যাড

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

অ্যান্ড্রয়েড ৮.০ (এপিআই লেভেল ২৬) এবং এর চেয়ে উন্নত সংস্করণে চালিত ডিভাইসগুলোতে, আপনি পয়েন্টার ক্যাপচার প্রক্রিয়ায় সাহায্য করার জন্য মাউস ক্যাপচার এপিআই ব্যবহার করতে পারেন। যেসব গেম উচ্চ-নির্ভুল ইনপুটে সাড়া দেয়, সেগুলোতে আপনি getX() এবং getY() মেথডগুলো কল করে পয়েন্টারের বর্তমান স্থানাঙ্ক পেতে পারেন।

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

আপনার খেলা পরীক্ষা করুন

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

আপনার পরীক্ষার পরিকল্পনা আপডেট করুন

আপনার গেমের কার্যকারিতা যাচাই করার সময়, নিম্নলিখিত টেস্ট কেসগুলো অন্তর্ভুক্ত করুন:

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

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

আপনার গেম টেস্টিং সম্পর্কিত সেরা পদ্ধতি জানতে, “Fundamentals of Testing” গাইডটি দেখুন।

টেস্টিং এবং ডিবাগিং টুল ব্যবহার করুন

প্ল্যাটফর্মটি যে বিভিন্ন সরঞ্জাম সমর্থন করে, সেগুলো ব্যবহার করে আপনি পরীক্ষাগুলো সম্পাদন করতে পারেন: