बैकग्राउंड
पिक्सोनिक, वीडियो गेम डेवलपर की एक टीम जिसका मुख्यालय मॉस्को में है. इस टीम को अपने मोबाइल ऐप्लिकेशन को अपग्रेड करने और पहले से ज़्यादा व्यापक ग्राहकों तक पहुंचने के लिए हर अवसर को दर्शक तय करते हैं. कंपनी का सबसे मशहूर गेम War Robots है. इसमें 12 खिलाड़ी एक-दूसरे के साथ मुकाबला करते हैं. इसमें खिलाड़ी, लाइव युद्ध के मैदान में अपने पसंद के रोबोट चलाते हैं और उनका इस्तेमाल करके मुकाबला करते हैं.
साल 2014 में रिलीज़ हुए War Robots को मूल रूप से, Android टचपैड-आधारित मूवमेंट और माउस इनपुट के बिना, पहली पीढ़ी के डिवाइस हैं. कॉन्टेंट बनाने Pixonic की टीम, गेमर के बारे में बताती है और उसे पता चलता है कि इस ऐप्लिकेशन के लिए ज़्यादा से ज़्यादा डिवाइसों पर बेहतरीन उपयोगकर्ता अनुभव देने के लिए बदलाव, जैसे कि लैपटॉप और टैबलेट. किसी भी Android डिवाइस पर, War Robots पहले ही खेले जा सकता था Chromebook डिवाइस, Android फ़्रेमवर्क के फ़ुल वर्शन पर काम करते हैं एक कंटेनर में रखा जाता है. कोड में कुछ और बदलाव करके, Pixonic ने ChromeOS की सभी सुविधाओं का फ़ायदा लिया.
यहां बताया गया है कि Pixonic की टीम ने बड़ी स्क्रीन पर बेहतर अनुभव देने के लिए, War Robots को कैसे ऑप्टिमाइज़ किया.
उन्होंने क्या किया
ऑप्टिमाइज़ेशन को शुरू करने के लिए, Pixonic ने AndroidManifest.xml से सिस्टम को पता चलता है कि वह ChromeOS पर पूरी तरह से काम करने के लिए तैयार है साथ ही, टच एम्युलेशन बंद करने की ज़रूरत होगी:
<uses-feature android:name="android.hardware.type.pc" android:required="false" />
Pixonic, ऐप्लिकेशन के minSdk को 24 पर भी सेट करता है, ताकि Unity गेमिंग इंजन इससे माउस क्लिक और गतिविधि से जुड़े सभी एपीआई इवेंट सीधे किए जा सकते हैं (न कि सिर्फ़ टचपैड इवेंट).
कीबोर्ड और माउस से खेलने की सुविधा
War Robots जैसे तीसरे व्यक्ति के पीवीपी गेम में, कीबोर्ड और माउस का इस्तेमाल करके, गतिविधियां करना और निशाना लगाना बहुत आसान होता है. खास तौर पर, बड़ी स्क्रीन वाले डिवाइसों पर. तो, अगले वह गेम के लिए कीबोर्ड और माउस सपोर्ट के लिए कोड को फिर से लिखना था बैटल मोड के साथ-साथ टचस्क्रीन कंट्रोल को भी चालू रखें.
सही समय पर सही कंट्रोल देने के लिए, 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 (एपीआई लेवल 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
प्रॉपर्टी (Unity स्क्रिप्ट में) का इस्तेमाल करती है:
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 की पांच सदस्यों वाली डेवलपमेंट टीम को इस प्रोसेस में सिर्फ़ दो हफ़्ते लगे.
ChromeOS पर 1,00,000 से ज़्यादा खिलाड़ियों ने पहले ही वॉर रोबोट खेले हैं Pixonic ने नए ऑप्टिमाइज़ेशन लॉन्च किए हैं. ऐसा इसलिए हुआ, क्योंकि अब गेमप्ले बड़ी स्क्रीन पर गेम खेलने के लिए जोड़ी गई जगह का फ़ायदा उठाएं. War Robots के मुकाबले, यहां तक कि जो पहले से ज़्यादा शानदार और दिलचस्प हों. असल में, अन्य Android डिवाइसों की तुलना में, Chromebook पर उपयोगकर्ता सेशन 25% ज़्यादा लंबे होते हैं. शुरुआती सुझाव बेहद सकारात्मक है और कुछ खिलाड़ियों ने यह भी माना है कि Chromebook के लिए ऑप्टिमाइज़ किए गए गेम, BlueStack के मुकाबले बेहतर तरीके से चलते हैं एम्युलेटर.
उनकी सफलता के आधार पर, Pixonic के डेवलपर, War Robots अपडेट करने की योजना बना रहे हैं ग्राफ़िक्स सभी Android डिवाइसों पर इस्तेमाल किया जा सकता है, ताकि गेमप्ले को पीसी जैसी क्वालिटी जैसा बनाया जा सके अनुभव.
ChromeOS के लिए अपने ऐप्लिकेशन ऑप्टिमाइज़ करने के सबसे सही तरीके देखें.