আপনি যদি গেম ইঞ্জিন ডেভেলপ বা কাস্টমাইজ করার জন্য C বা C++ ব্যবহার করেন, তাহলে আপনার গেম ইঞ্জিনে Android সাপোর্ট ইন্টিগ্রেট করার জন্য নিম্নলিখিত
প্রয়োজনীয়তাগুলি অত্যন্ত গুরুত্বপূর্ণ।
- Android ডেভেলপমেন্ট টুলের সুবিধা নিন
- অ্যাক্টিভিটি তৈরি করা
- স্ক্রিনে আঁকুন
- ইনপুট ইভেন্ট প্রসেস করা
- আউটপুট অডিও
- মেমরি ম্যানেজ করা
- টেস্ট ও ঝকঝকে করা
- Google Play-তে প্রকাশ করা
এই পৃষ্ঠায় বর্ণিত প্রয়োজনীয়তা আপনাকে কীভাবে স্ক্র্যাচ থেকে গেম ইঞ্জিন ডেভেলপ করতে হয় তা শেখায় না, বরং সেইসব ক্ষেত্র শনাক্ত করে যেখানে Android অন্যান্য প্ল্যাটফর্মের তুলনায় তুলনামূলকভাবে অনন্য।
Android ডেভেলপমেন্ট টুলের সুবিধা নিন
Android Studio-তে এমন টুল আছে যা আপনি এগুলির জন্য ব্যবহার করতে পারবেন:
- আপনার প্রোজেক্ট কনফিগার করা
- আপনার গেম তৈরি, ডিবাগ ও প্যাকেজ করা
- সিস্টেম, সিপিইউ ও মেমরি প্রোফাইলার ব্যবহার করে আপনার গেমের পারফর্ম্যান্স পরীক্ষা করা
- আপনার গেমের প্যাকেজ বা অ্যাপ্লিকেশন বান্ডেলের কন্টেন্ট ভালো করে দেখে নিন
- Android SDK ও NDK-এর অতিরিক্ত ফিচার ইন্টিগ্রেট করা
Android গ্রাফিক্স ইন্সপেক্টর আপনার গেমের রেন্ডারিং পারফর্ম্যান্সের বৈশিষ্ট্য নির্ধারণ করতে এবং ফ্রেম প্রোফাইলিং ব্যবহার করে রেন্ডার করা ফ্রেমের বিবরণ তদন্ত করতে সাহায্য করতে পারে।
আপনি মূলত Microsoft Visual Studio ব্যবহার করলে, আগে থেকে থাকা প্রোজেক্টে Android টার্গেট যোগ করতে, আপনি Android গেম ডেভেলপমেন্ট এক্সটেনশন (AGDE) ব্যবহার করতে পারবেন। AGDE, Visual Studio-তে নেটিভ ডিবাগিং কাজ করে এবং এতে Android Studio প্রোফাইলিং টুলের অনেকগুলির স্ট্যান্ডঅ্যালোন ভার্সন অন্তর্ভুক্ত থাকে।
অ্যাক্টিভিটি তৈরি করা
আপনার গেমকে একটি
Activity তৈরি করতে ও তার সাথে ইন্টার্যাক্ট করতে হবে। অ্যাক্টিভিটি কখন তৈরি, শুরু, আবার চালু, পজ করা,
বন্ধ করা ও ধ্বংস করা হয় তা বুঝতে Android-এ
অ্যাক্টিভিটি লাইফসাইকেল
সম্পর্কে জানুন।
নেটিভ C বা C++ গেম ইঞ্জিনের Activity-সম্পর্কিত প্রয়োজন (গেম উইন্ডো,
লাইফসাইকেল, রেন্ডারিং, ইভেন্ট ম্যানেজ করা) পূরণ করে ও ইন্টিগ্রেট করে এমন GameActivity লাইব্রেরি
সম্পর্কে পড়ুন।
স্ক্রিনে আঁকুন
আপনার গেমকে স্ক্রিনে অবজেক্ট ও স্প্রাইট আঁকতে হবে।
Android SurfaceView সম্পর্কে জানুন এবং কীভাবে আপনার গেম ইঞ্জিনে
গ্রাফিক্স কনফিগার করবেন তা জানুন।
Android ডিভাইসে বিভিন্ন ডিসপ্লে রিফ্রেশ রেট কাজ করে। ফ্রেম ড্রপ ও ফ্রেম বাফার গ্লিচ আটকাতে গেম লুপে রেন্ডারিং সম্পর্কে জানুন।
OpenGL ও Vulkan-এ মসৃণ রেন্ডারিংয়ের জন্য কীভাবে ফ্রেম পেসিং অর্জন করা যায় সেই সম্পর্কে পড়ুন। পারফর্ম্যান্স টিউনারের সাহায্যে আপনার ফ্রেম রেট অপ্টিমাইজ করুন।
আপনার রেন্ডারিংয়ের কোয়ালিটি উন্নত করতে মাল্টিস্যাম্পেল অ্যান্টি-এলায়াজিং (MSAA) ব্যবহার করুন। MSAA খুব কম ওভারহেড সহ ব্যবহার করা যেতে পারে। আরও জানতে, ব্লগ পোস্টটি দেখুন Multisampled Anti-aliasing For Almost Free — On Tile-Based Rendering Hardware।
ইনপুট ইভেন্ট প্রসেস করা
গেম ইঞ্জিন বিভিন্ন সোর্স থেকে ইনপুট ইভেন্ট পায়। ইমারসিভ গেমিং অভিজ্ঞতার জন্য, বিভিন্ন Android ইনপুট সোর্স সাপোর্ট করার বিষয়ে জানুন:
আউটপুট অডিও
আপনার গেম ইঞ্জিনকে বিভিন্ন ডিভাইস ও Android ভার্সন জুড়ে অডিও আউটপুট দিতে হবে। আপনার গেমে হাই-পারফর্ম্যান্স অডিও যোগ করতে আমাদের ওপেন-সোর্স C++ অডিও লাইব্রেরি Oboe সম্পর্কে জানুন।
সবচেয়ে কম লেটেন্সি পেতে, নির্দিষ্ট অডিও বাগ এড়াতে এবং সবচেয়ে ভাল উপলভ্য নেটিভ লাইব্রেরি (যেমন, AAudio বা OpenSL ES) অটোমেটিক বেছে নিতে Oboe ব্যবহার করুন।
মেমরি ম্যানেজ করা
Android ডিভাইসে, সিস্টেম যতটা সম্ভব সিস্টেম মেমরি (RAM) ব্যবহার করার চেষ্টা করে এবং প্রয়োজন হলে জায়গা খালি করার জন্য বিভিন্ন মেমরি অপ্টিমাইজেশন পারফর্ম করে। আপনার গেমের স্পিড কমে যাওয়া বা গেম থেকে বেরিয়ে আসা এড়াতে, মেমরি ব্যবহার ম্যানেজ করা সম্পর্কে জানুন।
টেস্ট ও ঝকঝকে করা
অপ্রত্যাশিতভাবে বন্ধ হয়ে গেলে, Android অ্যাপ ক্র্যাশ করে। এটি অব্যবস্থাপিত ব্যতিক্রম বা সিগন্যালের কারণে ঘটে। কীভাবে ক্র্যাশ শনাক্ত ও ডায়াগনসিস করা যায়, স্ট্যাক ট্রেস পড়া যায়, মেমরি ও নেটওয়ার্কিং সংক্রান্ত ব্যতিক্রম, কীভাবে logcat ব্যবহার করতে হয় এবং কীভাবে Java ও Kotlin-নির্দিষ্ট সমস্যা বোঝা যায় সেই সম্পর্কে জানুন।
Google Play-তে প্রকাশ করা
বিভিন্ন দেশ, নেটওয়ার্কের অবস্থা ও ডেটা প্ল্যানে প্লেয়াররা বিভিন্ন Android ডিভাইস দিয়ে আপনার গেম ডাউনলোড করেন। কন্টেন্ট ডেলিভারি নেটওয়ার্কের সুবিধা সহ বড় গেমের জন্য কীভাবে অ্যাপ বান্ডেল ও অ্যাসেট প্যাক ডেলিভার করতে Google Play ব্যবহার করতে হয় তা জানুন।