পটভূমি
Pixonic , ভিডিও গেম ডেভেলপারদের একটি দল যার সদর দফতর মস্কোতে, তার মোবাইল অ্যাপগুলিকে আপগ্রেড করার এবং গেমারদের আরও বিস্তৃত দর্শকদের কাছে পৌঁছানোর প্রতিটি সুযোগ অনুসরণ করে নিজেকে গর্বিত করে৷ কোম্পানির সবচেয়ে পরিচিত শিরোনামগুলির মধ্যে একটি হল ওয়ার রোবটস , একটি 12-ব্যক্তি প্লেয়ার-বনাম-প্লেয়ার (PvP) অভিজ্ঞতা যেখানে খেলোয়াড়রা লাইভ যুদ্ধক্ষেত্রে কাস্টমাইজড রোবট পরিচালনা করে এবং দ্বৈত করে।
2014 সালে প্রকাশিত, ওয়ার রোবটগুলি মূলত টাচপ্যাড-ভিত্তিক গতিবিধি এবং কোন মাউস ইনপুট সহ Android এর প্রাথমিক প্রজন্মের ডিভাইসগুলির জন্য ডিজাইন করা হয়েছিল৷ Pixonic টিম, নিজেরা আগ্রহী গেমার হওয়ার কারণে, ল্যাপটপ এবং ট্যাবলেটের মতো বিস্তৃত ডিভাইসে একটি দুর্দান্ত ব্যবহারকারীর অভিজ্ঞতা প্রদানের জন্য অ্যাপটির কিছু পরিবর্তনের প্রয়োজন বলে স্বীকৃতি দিয়েছে। ওয়ার রোবটগুলি ইতিমধ্যেই যে কোনও অ্যান্ড্রয়েড ডিভাইসে খেলার যোগ্য ছিল যেহেতু ক্রোমবুকগুলি একটি কন্টেইনারের ভিতরে অ্যান্ড্রয়েড ফ্রেমওয়ার্কের একটি সম্পূর্ণ সংস্করণ চালায় ৷ আরও কয়েকটি কোডিং পরিবর্তন করে, পিক্সনিক ChromeOS-এর সম্পূর্ণ ক্ষমতার সুবিধা নিতে সক্ষম হয়েছিল।
এখানে Pixonic টিম কীভাবে ওয়ার রোবটগুলিকে বৃহত্তর স্ক্রিনে সর্বোত্তম অভিজ্ঞতার জন্য অপ্টিমাইজ করেছে।
তারা যা করেছে
অপ্টিমাইজেশানগুলি শুরু করতে, Pixonic AndroidManifest.xml-এ একটি মেটাডেটা ট্যাগ যুক্ত করেছে যা সিস্টেমকে বলে যে এটি সম্পূর্ণ ChromeOS সমর্থনের জন্য প্রস্তুত এবং স্পর্শ ইমুলেশন অক্ষম করতে হবে:
<uses-feature android:name="android.hardware.type.pc" android:required="false" />
Pixonic অ্যাপটির minSdk 24 সেট করেছে যাতে ইউনিটি গেমিং ইঞ্জিন সরাসরি মাউস ক্লিক এবং সমস্ত আন্দোলন-সম্পর্কিত API ইভেন্টগুলি (শুধু টাচপ্যাড ইভেন্ট নয়) গ্রহণ করতে পারে।
কীবোর্ড এবং মাউস সমর্থন
ওয়ার রোবটের মতো তৃতীয়-ব্যক্তি PvP গেমগুলিতে, কীবোর্ড এবং মাউস ব্যবহার করে চলন এবং লক্ষ্য করা অনেক সহজ, বিশেষত বড়-স্ক্রীন ডিভাইসগুলিতে। সুতরাং, পরবর্তী পদক্ষেপটি ছিল টাচস্ক্রিন নিয়ন্ত্রণ বজায় রেখে গেমের যুদ্ধ মোডের জন্য কীবোর্ড এবং মাউস সমর্থনের জন্য কোডটি পুনরায় লেখা।
সঠিক সময়ে সঠিক নিয়ন্ত্রণ প্রদান করতে, Pixonic এর দল ব্যবহারকারীর বর্তমান গেমপ্লে মোড পরীক্ষা করার জন্য নতুন কোড লিখেছে:
@Override
public void onConfigurationChanged(Configuration newConfig) {
boolean hasQwertyKeyboard = newConfig.keyboard == Configuration.KEYBOARD_QWERTY && newConfig.hardKeyboardHidden == Configuration.HARDKEYBOARDHIDDEN_NO;
try {
UnityPlayer.UnitySendMessage("Receiver", "ConfigChange", new JSONObject().put("keyboard", hasQwertyKeyboard).toString());
} catch (JSONException e) {
e.printStackTrace();
}
}
যদি একটি QWERTY কীবোর্ড সনাক্ত করা হয়, গেমটি ডেস্কটপ মোডে অভিযোজিত হয়। নীচে-বাম কোণে আন্দোলন জয়স্টিক অদৃশ্য হয়ে যায়, এবং সমস্ত উপলব্ধ অ্যাকশন (যেমন অস্ত্র, ক্ষমতা এবং মেনুর মাধ্যমে সাজানো) কীবোর্ড শর্টকাট দিয়ে লেবেল করা হয়।
যদি একটি কীবোর্ড শনাক্ত না হয়, তাহলে আন্দোলন জয়স্টিক নীচে-বাম কোণে প্রদর্শিত হবে এবং কীবোর্ড শর্টকাটগুলি নীচে-ডানদিকের মেনু বোতামগুলিতে লুকানো থাকবে৷
এরপরে, Pixonic নিশ্চিত করতে চেয়েছিল যে কোনও খেলোয়াড় ক্যামেরা ঘোরানোর জন্য তাদের মাউস ব্যবহার করলে কার্সারটি লুকানো থাকে। Android 7.0 (API লেভেল 24) বা উচ্চতরকে টার্গেট করে, দল যেকোনো পয়েন্টার আইকন সেট করতে পারে। এই ক্ষেত্রে, দলটি গেমপ্লে চলাকালীন কার্সারকে অদৃশ্য করতে একটি স্বচ্ছ বিটম্যাপ ব্যবহার করেছে:
public boolean setPointerVisibility(boolean visible) {
View = activity.findViewById(android.R.id.content);
view.setPointerIcon(PointerIcon.getSystemIcon(activity, visible ? PointerIcon.TYPE_DEFAULT : PointerIcon.TYPE_NULL));
}
এটি নিশ্চিত করে যে কার্সারটি নিষ্ক্রিয় এবং অদৃশ্য হয়ে যাবে যখন অন্যান্য সমস্ত উইন্ডো বন্ধ থাকে এবং একটি যুদ্ধ চলছে। যদি কোনো পপ-আপ উইন্ডো প্রদর্শিত হয়, যেমন পজ মেনু, Pixonic কার্সারটিকে দৃশ্যমান করে, এর ডিফল্ট আইকন প্রদর্শন করে।
গেমপ্লে টিউটোরিয়াল এবং মেকানিক্স মানিয়ে নেওয়া
একটি ভাল ব্যবহারকারীর অভিজ্ঞতার জন্য, Pixonic ব্যবহারকারীর বর্তমান ডিভাইস মোডের উপর ভিত্তি করে বিভিন্ন গেমপ্লে টিউটোরিয়াল প্রদর্শন করার জন্য নতুন কোডও লিখেছে। যদি একজন খেলোয়াড় যুদ্ধের সময় ট্যাবলেট এবং ল্যাপটপ গেমপ্লেতে স্যুইচ করে এবং তারা এখনও ভিন্ন মোডের জন্য একটি টিউটোরিয়াল না দেখে থাকে, তাহলে গেমপ্লে পুনরায় শুরু হওয়ার আগে টিউটোরিয়ালটি দেখানো হয়।
প্লেয়াররা যখন ল্যাপটপ মোডে থাকে, তখন Pixonic টাচস্ক্রিন ক্যামেরা কন্ট্রোলও অক্ষম করে (যেহেতু প্লেয়াররা মাউস দিয়ে ক্যামেরা নিয়ন্ত্রণ করবে) যখন সমস্ত গেমপ্লে বোতাম স্বাভাবিকভাবে কাজ করে। মাউসের গতিবিধি থেকে স্পর্শকে আলাদা করতে, দলটি Input.touchCount
প্রপার্টি ব্যবহার করে (ইউনিটি স্ক্রিপ্টে):
if(Input.touchCount > 0) {
// this is screen touch event
} else {
// this is mouse (touchpad) event
}
মাল্টি-উইন্ডো সমর্থন
চূড়ান্ত পদক্ষেপের জন্য, Pixonic নিশ্চিত করতে চেয়েছিল যে গেমটি চালু হওয়ার সময় পূর্ণস্ক্রীন মোডে নিজেকে লক করে না। ChromeOS-এ উইন্ডোযুক্ত গেমপ্লে সক্ষম করার ফলে ব্যবহারকারীরা একই সাথে তাদের প্রিয় স্ট্রীমারগুলিকে খেলার সময় দেখতে, গেমের ওয়েবসাইটে নতুন ক্ষমতা সম্পর্কে পড়ার সময় তাদের রোবটগুলিকে আপগ্রেড করতে, বা একটি পৃথক ভিডিও দেখার সময় প্যাসিভ মোডে যুদ্ধ দেখতে দেয়৷
এটি করার জন্য, Pixonic UnityPlayerActivity
পরিবর্তনযোগ্য হিসাবে চিহ্নিত করেছে:
<activity android:name="com.unity3d.player.UnityPlayerActivity" ....
android:resizeableActivity="true">
গেমের ইন্টারফেসটি শুধুমাত্র একটি নির্দিষ্ট মাত্রার পরিসরে খেলার যোগ্য বলে মনে রেখে, দলটি ন্যূনতম সমর্থিত উইন্ডো আকার সেট করে:
<activity … >
<layout android:gravity="center" android:minHeight="800dp" android:minWidth="1200dp" />
</activity>
সবচেয়ে নিমজ্জিত গেমপ্লের জন্য, Pixonic মেটা ট্যাগগুলিকে ডিফল্ট হিসাবে এবং ল্যান্ডস্কেপ অভিযোজনকে পছন্দসই হিসাবে সেট করতে মেটা ট্যাগ ব্যবহার করেছে৷
<application>
<meta-data android:name="WindowManagerPreference:FreeformWindowSize" android:value="maximize" />
<meta-data android:name="WindowManagerPreference:FreeformWindowOrientation" android:value="landscape" />
….
</application>
এই অপ্টিমাইজেশানগুলি নিশ্চিত করে যে গেমটি বিরতি দেয়নি এবং প্লেয়াররা তাদের গেমপ্লে উইন্ডোগুলিকে প্রসারিত এবং সঙ্কুচিত করার সাথে সাথে যুদ্ধ HUD স্কেল সেই অনুযায়ী হয়।
ফলাফল
অনলাইন সংস্থানগুলির একটি বিস্তৃত লাইব্রেরির জন্য ধন্যবাদ, পুরো প্রক্রিয়াটি পিক্সনিকের পাঁচ সদস্যের ডেভেলপমেন্ট টিমের মাত্র দুই সপ্তাহ সময় নিয়েছে।
Pixonic সর্বশেষ অপ্টিমাইজেশন চালু করার পর থেকে 100,000 টিরও বেশি খেলোয়াড় ইতিমধ্যেই ChromeOS-এ যুদ্ধ রোবট খেলেছে৷ যেহেতু গেমপ্লে এখন বৃহত্তর স্ক্রিনে যোগ করা জায়গার সুবিধা নিতে পারে, যুদ্ধ রোবট যুদ্ধগুলি আগের চেয়ে আরও বেশি নিমগ্ন এবং আকর্ষক। প্রকৃতপক্ষে, অন্যান্য অ্যান্ড্রয়েড ডিভাইসের তুলনায় ক্রোমবুকে ব্যবহারকারীর সেশন 25% বেশি। প্রাথমিক প্রতিক্রিয়া অবিশ্বাস্যভাবে ইতিবাচক হয়েছে, এবং কিছু খেলোয়াড় এমনকি উল্লেখ করেছেন যে Chromebook-অপ্টিমাইজ করা গেমটি BlueStacks এর এমুলেটরের চেয়ে মসৃণভাবে চলে।
তাদের সাফল্যের উপর ভিত্তি করে, Pixonic-এর বিকাশকারীরা গেমপ্লেটিকে একটি PC-গুণমানের অভিজ্ঞতার আরও কাছাকাছি করার জন্য সমস্ত Android ডিভাইসে ওয়ার রোবটের গ্রাফিক্স আপডেট করার পরিকল্পনা করেছে।
ChromeOS-এর জন্য আপনার অ্যাপগুলি অপ্টিমাইজ করার জন্য কিছু সেরা অনুশীলন দেখুন৷