আপনার প্রথম ইনস্ট্যান্ট অ্যাপ তৈরি করুন- এ যেমন ব্যাখ্যা করা হয়েছে, গুগল প্লে ইনস্ট্যান্ট- এ অ্যাপ চালানোর জন্য সেটআপ করার ধাপগুলো গেমের ক্ষেত্রেও প্রযোজ্য। এই নির্দেশিকাটি গেমের জন্য নির্দিষ্ট কিছু সেটআপ ধাপের উপর জোর দেয়।
আপনি ইউনিটি ( গুগল প্লে ইনস্ট্যান্ট ইউনিটি প্লাগইন সহ বা ছাড়া), কোকোস২ডি , অ্যান্ড্রয়েড স্টুডিও , অথবা আপনার নিজস্ব কাস্টম ইঞ্জিন ব্যবহার করে গুগল প্লে ইনস্ট্যান্ট-এর জন্য গেম তৈরি করতে পারেন।
এই নির্দেশিকাটি ধরে নেয় যে আপনি কী ধরনের গেমিং অভিজ্ঞতা দিতে চান, তা আপনি ইতিমধ্যেই জানেন। আপনি যদি উচ্চ-মানের গেম তৈরির জন্য ধারণা এবং সেরা অনুশীলনগুলো দেখতে চান, তাহলে Google Play Instant-এর গেমগুলোর জন্য UX সেরা অনুশীলনগুলো পড়ে দেখুন।
এছাড়াও, গুগল প্লে ইনস্ট্যান্ট-এ চলতে পারে এমন কোনো গেম প্রকাশ করার আগে, আপনার প্রযুক্তিগত প্রয়োজনীয়তার চেকলিস্টটি পর্যালোচনা করা উচিত।
একটি প্রবেশ বিন্দু নির্দিষ্ট করুন
যে অ্যাক্টিভিটিতে নিম্নলিখিত ইন্টেন্ট ফিল্টারটি অন্তর্ভুক্ত থাকে, সেটি গুগল প্লে ইনস্ট্যান্ট অভিজ্ঞতার প্রবেশদ্বার হয়ে ওঠে:
<activity android:name=".GameActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
যখন কোনো ব্যবহারকারী প্লে স্টোরে 'Try Now' বোতামে অথবা গুগল প্লে গেমস অ্যাপে 'Instant play' বোতামে ট্যাপ করেন, তখন এই অ্যাক্টিভিটিটি চালু হয়। আপনি ডিপ লিঙ্ক এপিআই (deep link API) ব্যবহার করেও সরাসরি এই অ্যাক্টিভিটিটি চালু করতে পারেন।
সঠিক সংস্করণ কোডগুলি সংজ্ঞায়িত করুন
আপনার গেমের ইনস্ট্যান্ট এক্সপেরিয়েন্সের ভার্সন কোডটি ইনস্টলযোগ্য গেমের ভার্সন কোডের চেয়ে কম হতে হবে। আপনার অ্যাপের এই ধরনের ভার্সনিং খেলোয়াড়দের গুগল প্লে ইনস্ট্যান্ট এক্সপেরিয়েন্স থেকে সরাসরি তাদের ডিভাইসে গেমটি ডাউনলোড ও ইনস্টল করার সুযোগ দেয়। অ্যান্ড্রয়েড ফ্রেমওয়ার্ক এই পরিবর্তনটিকে একটি অ্যাপ আপডেট হিসেবে বিবেচনা করে।
আপনি যাতে প্রস্তাবিত ভার্সনিং স্কিমটি অনুসরণ করেন, তা নিশ্চিত করতে এই কৌশলগুলোর মধ্যে যেকোনো একটি অনুসরণ করুন:
- Google Play Instant অভিজ্ঞতার জন্য সংস্করণ কোডগুলি ১ থেকে পুনরায় চালু করুন।
- ইনস্টলযোগ্য অ্যাপের ভার্সন কোডটি ১০০০-এর মতো একটি বড় সংখ্যা দিয়ে বাড়িয়ে দিন, যাতে আপনার ইনস্ট্যান্ট এক্সপেরিয়েন্সের ভার্সন নম্বর বাড়ার জন্য পর্যাপ্ত জায়গা থাকে।
আপনার ইনস্ট্যান্ট গেম এবং ইনস্টলেবল গেম দুটি আলাদা অ্যান্ড্রয়েড স্টুডিও প্রজেক্টে তৈরি করা যেতে পারে। তবে, যদি আপনি তা করেন, তাহলে গুগল প্লে-তে আপনার গেমটি প্রকাশ করার জন্য আপনাকে নিম্নলিখিত কাজগুলো অবশ্যই করতে হবে:
- উভয় অ্যান্ড্রয়েড স্টুডিও প্রজেক্টে একই প্যাকেজ নাম ব্যবহার করুন।
- গুগল প্লে কনসোলে, উভয় সংস্করণ একই অ্যাপ্লিকেশনে আপলোড করুন।
আপনার গেমের সংস্করণ নির্ধারণের বিষয়ে আরও বিস্তারিত জানতে, আপনার অ্যাপের সংস্করণ নির্ধারণ দেখুন।
এক্সিকিউশন এনভায়রনমেন্টকে সমর্থন করুন
অন্যান্য অ্যাপের মতোই, গুগল প্লে ইনস্ট্যান্ট-এর গেমগুলো ডিভাইসের একটি সীমিত স্যান্ডবক্সের মধ্যে চলে। এই এক্সিকিউশন এনভায়রনমেন্টকে সমর্থন করার জন্য, নিম্নলিখিত বিভাগগুলিতে দেখানো ধাপগুলি সম্পূর্ণ করুন।
স্পষ্ট টেক্সট ট্র্যাফিক থেকে অপ্ট আউট করুন
Google Play Instant-এর গেমগুলো HTTP ট্র্যাফিক সমর্থন করে না। আপনার গেমটি যদি Android 9 (API লেভেল 28) বা তার উচ্চতর সংস্করণকে লক্ষ্য করে তৈরি হয়, তাহলে Android ডিফল্টরূপে আপনার গেমে ক্লিয়ারটেক্সট সমর্থন নিষ্ক্রিয় করে দেয়।
তবে, আপনার গেমটি যদি অ্যান্ড্রয়েড ৮.১ (এপিআই লেভেল ২৭) বা তার নিচের সংস্করণকে টার্গেট করে, তাহলে আপনাকে অবশ্যই একটি নেটওয়ার্ক সিকিউরিটি কনফিগ ফাইল তৈরি করতে হবে। এই ফাইলে, cleartextTrafficPermitted false এ সেট করুন, যেমনটি নিচের কোড স্নিপেটে দেখানো হয়েছে:
res/xml/network_security_config.xml
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="false"> <domain includeSubdomains="true">secure.example.com</domain> </domain-config> </network-security-config>
টার্গেট স্যান্ডবক্স সংস্করণ আপডেট করুন
আপনার ইনস্ট্যান্ট গেমের AndroidManifest.xml ফাইলটি আপডেট করুন, যাতে এটি Google Play Instant দ্বারা সমর্থিত স্যান্ডবক্স এনভায়রনমেন্টকে টার্গেট করে। নিম্নলিখিত কোড স্নিপেটে দেখানো অনুযায়ী, আপনার গেমের <manifest> এলিমেন্টে android:targetSandboxVersion অ্যাট্রিবিউটটি যোগ করে আপনি এই আপডেটটি সম্পন্ন করতে পারেন:
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
...
android:targetSandboxVersion="2" ...>
আরও তথ্যের জন্য, targetSandboxVersion অ্যাট্রিবিউটের ডকুমেন্টেশন দেখুন।
ক্যাশে বা অ্যাপ ডেটার উপস্থিতির উপর নির্ভর করবেন না।
আপনার ইনস্ট্যান্ট এক্সপেরিয়েন্স ব্যবহারকারীর ডিভাইসে ডাউনলোড করা থাকে যতক্ষণ না ইনস্ট্যান্ট এক্সপেরিয়েন্স ক্যাশে পরিষ্কার করা হয়, যা নিম্নলিখিত পরিস্থিতিগুলির মধ্যে একটিতে ঘটে থাকে:
- ডিভাইসটিতে উপলব্ধ মেমরি কমে আসায় ইনস্ট্যান্ট এক্সপেরিয়েন্স ক্যাশেটি গার্বেজ-কালেক্ট করা হচ্ছে।
- ব্যবহারকারী তার ডিভাইসটি পুনরায় চালু করেন।
এই দুইয়ের যেকোনো একটি ঘটলে, ব্যবহারকারীকে আপনার ইনস্ট্যান্ট এক্সপেরিয়েন্সটি ব্যবহার করার জন্য অবশ্যই পুনরায় ডাউনলোড করতে হবে।
সিস্টেমে স্টোরেজ স্পেস খুব কম থাকলে, আপনার ইনস্ট্যান্ট এক্সপেরিয়েন্সের ইউজার ডেটা ইন্টারনাল স্টোরেজ থেকে মুছে যেতে পারে। তাই, ব্যবহারকারীর অগ্রগতি সংরক্ষিত রাখার জন্য আপনার গেমের সার্ভারের সাথে নির্দিষ্ট সময় পর পর ইউজার ডেটা সিঙ্ক করার পরামর্শ দেওয়া হয়।
আপনার অ্যাপের আকার কমান
অন্যান্য ধরনের অ্যাপের মতো নয়, গুগল প্লে ইনস্ট্যান্ট-এর গেমগুলোর ডাউনলোড সাইজের সীমা ১৫ মেগাবাইট । এই আকারের একটি গেম তৈরি করতে, আপনাকে আপনার গেমের লজিক রিফ্যাক্টর করার প্রয়োজন হতে পারে। এই বিভাগে আপনার গেমের সাইজ অপ্টিমাইজ করতে সাহায্যকারী কিছু টুল এবং কৌশল বর্ণনা করা হয়েছে।
সরঞ্জাম
নিম্নলিখিত টুলগুলির তালিকা আপনাকে নির্ধারণ করতে সাহায্য করতে পারে যে কোন বিষয়গুলো আপনার গেমের আকার বাড়াচ্ছে:
- এপিকে অ্যানালাইজার : একটি কম্পাইল করা এপিকে-র বিষয়বস্তুর একটি সামগ্রিক চিত্র প্রদান করে। এই চিত্রের মাধ্যমে, আপনি নির্ধারণ করতে পারেন যে প্রতিটি উপাদান মোট আকারে কত বাইট অবদান রাখছে। আপনার গেমে ব্যবহৃত রিসোর্স, অ্যাসেট, লজিক এবং নেটিভ লাইব্রেরির আকার দ্রুত পরীক্ষা করতে এই টুলটি ব্যবহার করুন।
- ব্লোটি ম্যাকব্লোটফেস : বাইনারি ফাইলগুলির আকারের প্রোফাইল দেখায়।
- অ্যান্ড্রয়েড জিপিইউ ইন্সপেক্টর : আপনার গেম পুনরায় কম্পাইল না করেই টেক্সচারের আকার কমালে ফাইলের আকারের উপর কী প্রভাব পড়ে তা দেখুন।
কৌশল
আপনার গেমের আকার কমাতে আপনি যে কৌশলগুলো ব্যবহার করতে পারেন, তার একটি তালিকা নিচে দেওয়া হলো:
- আপনার গেমের কিছু লজিক বের করে এক বা একাধিক ফিচার মডিউলে রাখুন, যেগুলো আকারের সীমার মধ্যে গণনা করা হবে না।
- আপনার গেমের টেক্সচারের রেজোলিউশন কমান।
- WebP ফরম্যাট ব্যবহার করার কথা বিবেচনা করতে পারেন, বিশেষ করে যদি আপনি GPU-তে আনকম্প্রেসড টেক্সচার ব্যবহার করেন। WebP ফরম্যাট JPEG ছবির মতো একই মানের ছবি তৈরি করে, কিন্তু আকারে ১৫% থেকে ৩০% ছোট হয়। যদিও WebP ছবি ডিকম্প্রেস করতে বেশি সময় লাগে, তবুও এই ডিকম্প্রেশনের সময় আপনার গেমের টেক্সচার ডাউনলোডের সময়ের চেয়ে উল্লেখযোগ্যভাবে কম। গুগল এই ফরম্যাটটিকে একটি ওপেন সোর্স গেম ইঞ্জিনেও অন্তর্ভুক্ত করেছে।
- শব্দ ও সঙ্গীত সংকুচিত করুন বা পুনরায় ব্যবহার করুন।
- আপনার বাইনারি ফাইলের আকার ছোট করতে বিভিন্ন কম্পাইলেশন ফ্ল্যাগ ব্যবহার করুন:
-
-fvisibility=hidden– এটিই সবচেয়ে গুরুত্বপূর্ণ।cmakeএ, আপনি এটি নিম্নোক্তভাবে নির্দিষ্ট করতে পারেন:$ set_target_properties(your-target PROPERTIES CXX_VISIBILITY_PRESET hidden)
-Oz– ফাইলের আকার কমানোর জন্যও এটি গুরুত্বপূর্ণ। আপনি যদিgccব্যবহার করে কম্পাইল করেন, তাহলে এর পরিবর্তে-Osব্যবহার করুন।-
-flto– কখনও কখনও ফাইলের আকার কমিয়ে দেয়। - লিঙ্কার ফ্ল্যাগ –
--gc-sectionsফ্ল্যাগটি-ffunction-sectionsএবং-fdata-sectionsএর মতো কম্পাইলার ফ্ল্যাগের সাথে একত্রে ব্যবহার করুন।
-
- আপনার কোড ও রিসোর্সের আকার কমাতে Proguard ব্যবহার করুন।
- ছোট আকারের DEX ফাইল তৈরি করতে Gradle 4.4 বা উচ্চতর সংস্করণ ব্যবহার করুন।
- অ্যাসেটসমূহের ক্লাউড ডেলিভারি বাস্তবায়ন করুন।
একটি বড় গেমকে একাধিক APK-তে ভাগ করুন
এপিকে ফাইলের আকার কমানোর সুপারিশগুলো প্রয়োগ করার পরেও, আপনার গেমটিকে একটিমাত্র ১৫ এমবি এপিকে ফাইলের মধ্যে আনার জন্য গুগল প্লে ইনস্ট্যান্ট অভিজ্ঞতাকে অপ্টিমাইজ করা কঠিন হতে পারে। এই চ্যালেঞ্জ মোকাবেলা করতে, আপনি আপনার গেমটিকে একাধিক এপিকে ফাইলে ভাগ করতে পারেন। প্লেয়াররা প্রথমে মূল বা বেস এপিকে ফাইলটি ডাউনলোড করে খেলা শুরু করে; তারা খেলতে থাকলে, বাকি বিভক্ত এপিকে ফাইলগুলো ব্যাকগ্রাউন্ডে গেমের জন্য উপলব্ধ হয়ে যায়।
উদাহরণস্বরূপ, বেস APK-তে মূল গেম ইঞ্জিন এবং লোডিং স্ক্রিন দেখানোর জন্য প্রয়োজনীয় অ্যাসেটগুলো থাকতে পারে। বেস APK চালু হওয়ার সাথে সাথে, এটি লোডিং স্ক্রিনটি দেখায় এবং অবিলম্বে একটি অতিরিক্ত স্প্লিট APK-এর জন্য অনুরোধ করে, যেটিতে গেম এবং লেভেলের ডেটা থাকে। সেই স্প্লিট APK-টি উপলব্ধ হওয়ার পর, এটি তার অ্যাসেটগুলো গেম ইঞ্জিনে লোড করতে পারে এবং প্লেয়ারকে গেমটি শুরু করার জন্য প্রয়োজনীয় কনটেন্ট সরবরাহ করতে পারে।
ইউএক্স সেরা অনুশীলনগুলি গ্রহণ করুন
আপনার গেমটিকে তাৎক্ষণিক অভিজ্ঞতা সমর্থনের জন্য কনফিগার করার পর, একটি ভালো ব্যবহারকারী অভিজ্ঞতা প্রদানের জন্য নিম্নলিখিত বিভাগগুলিতে দেখানো লজিকটি যোগ করুন।
৬৪-বিট আর্কিটেকচার সমর্থন করে
গুগল প্লে-তে প্রকাশিত অ্যাপগুলোকে ৬৪-বিট আর্কিটেকচার সমর্থন করতে হবে। আপনার অ্যাপের একটি ৬৪-বিট সংস্করণ যোগ করলে এর পারফরম্যান্স উন্নত হয় এবং এটি শুধুমাত্র ৬৪-বিট হার্ডওয়্যারযুক্ত ডিভাইসগুলোর জন্য প্রস্তুত হয়ে যায়। ৬৪-বিট সমর্থন সম্পর্কে আরও জানুন ।
গেমটি চলছে কিনা তা পরীক্ষা করুন তাৎক্ষণিক অভিজ্ঞতা
আপনার গেমের কিছু লজিক যদি ব্যবহারকারী আপনার ইনস্ট্যান্ট এক্সপেরিয়েন্সে যুক্ত আছে কি না তার উপর নির্ভর করে, তাহলে isInstantApp() মেথডটি কল করুন। বর্তমানে চলমান প্রসেসটি যদি একটি ইনস্ট্যান্ট এক্সপেরিয়েন্স হয়, তাহলে এই মেথডটি true রিটার্ন করে।
এই যাচাইয়ের মাধ্যমে আপনি নির্ধারণ করতে পারবেন যে আপনার অ্যাপটিকে একটি সীমিত এক্সিকিউশন এনভায়রনমেন্টের মধ্যে চালাতে হবে, নাকি এটি প্ল্যাটফর্মের ফিচারগুলো ব্যবহার করতে পারবে।
ইনস্টলেশনের জন্য একটি নির্দেশিকা প্রদর্শন করুন
আপনি যদি একটি ট্রায়াল গুগল প্লে ইনস্ট্যান্ট অভিজ্ঞতা তৈরি করে থাকেন, তবে কোনো এক সময়ে গেমটি প্লেয়ারকে তাদের ডিভাইসে সম্পূর্ণ সংস্করণটি ইনস্টল করার জন্য অনুরোধ করবে। এটি করার জন্য, অ্যান্ড্রয়েডের জন্য গুগল এপিআই -তে showInstallPrompt() মেথডটি ব্যবহার করুন।
কীভাবে এবং কখন ইনস্টলেশনের জন্য প্লেয়ারকে অনুরোধ করা উচিত, সে সম্পর্কে আরও জানতে Google Play Instant-এ গেমের জন্য UX সেরা অনুশীলনগুলো দেখুন।
ইনস্টল করা অভিজ্ঞতায় ডেটা স্থানান্তর করুন
যদি কোনো খেলোয়াড় আপনার ট্রায়াল অভিজ্ঞতা উপভোগ করেন, তাহলে তিনি আপনার গেমের সম্পূর্ণ সংস্করণটি ইনস্টল করার সিদ্ধান্ত নিতে পারেন। ব্যবহারকারীকে একটি ভালো অভিজ্ঞতা দেওয়ার জন্য, খেলোয়াড়ের অগ্রগতি আপনার ইনস্ট্যান্ট অভিজ্ঞতা থেকে গেমের সম্পূর্ণ সংস্করণে স্থানান্তরিত হওয়াটা জরুরি।
আপনার গেমে যদি targetSandboxVersion হিসেবে 2 নির্দিষ্ট করা থাকে , তাহলে প্লেয়ারের অগ্রগতি স্বয়ংক্রিয়ভাবে আপনার গেমের সম্পূর্ণ সংস্করণে স্থানান্তরিত হয়ে যাবে। অন্যথায়, আপনাকে প্লেয়ারের অগ্রগতি সম্পর্কিত ডেটা ম্যানুয়ালি স্থানান্তর করতে হবে। এটি করার জন্য, Cookie API - sample app ব্যবহার করুন।
অতিরিক্ত সম্পদ
এই অতিরিক্ত উৎসগুলো থেকে গুগল প্লে ইনস্ট্যান্ট সম্পর্কে আরও জানুন:
- কোডল্যাব: আপনার প্রথম ইনস্ট্যান্ট অ্যাপ তৈরি করুন
- বিদ্যমান অ্যাপে গুগল প্লে ইনস্ট্যান্ট-এর জন্য সমর্থন যোগ করুন।
- কোডল্যাব: একটি বহু-বৈশিষ্ট্যপূর্ণ ইনস্ট্যান্ট অ্যাপ তৈরি করুন
- একটি বহু-বৈশিষ্ট্যপূর্ণ অ্যাপকে মডিউলারাইজ করুন।