इस गाइड में Charades गेम के ऐसे कॉम्पोनेंट के बारे में बताया गया है जिनके ज़रिए आसानी से समझा जा सकता है. गेम का इस्तेमाल पूरी तरह से समझने में आसान है, क्योंकि ज़्यादातर गेम के लिए कस्टम यूज़र इंटरफ़ेस (यूआई) और इनपुट कंट्रोल की ज़रूरत होती है.
इस दौरान, आपको ग्लासवेयर बनाने के डिज़ाइन, डेवलपमेंट, और डिस्ट्रिब्यूशन से जुड़ी सलाह भी दी जाएगी.
शुरू करने से पहले
Charades गेम का पूरा सोर्स, GitHub पर उपलब्ध है. शुरू करने से पहले इसे Android Studio में इंपोर्ट करें, क्योंकि यह गाइड इसके बारे में ज़्यादा जानकारी देती है.
- Quick Start स्क्रीन में, वर्शन Control > Git से चेक आउट करें पर क्लिक करें.
- Charades से क्लोन का यूआरएल कॉपी करें.
- क्लोन यूआरएल को Vcs डेटा स्टोर करने की जगह के यूआरएल में चिपकाएं और क्लोन पर क्लिक करें.
- अगली स्क्रीन में हां पर क्लिक करें.
- अगली स्क्रीन पर ठीक है पर क्लिक करें.
- प्रोजेक्ट बनाएं और चलाएं बटन पर क्लिक करके उसे अपने कनेक्ट किए गए Glass पर चलाएं. शुरू करने की जानकारी के लिए, सैंपल के
README
की जांच करना न भूलें.
आप इन चीज़ों के बारे में जानेंगे
इस लेख में आपको Android SDK के कॉम्पोनेंट इस्तेमाल करने का तरीका पता चलेगा, ताकि ज़्यादा मात्रा में शारेड इमर्शन और फिर GDK को ग्लास अनुभव से जोड़ा जा सके. यहां उन विषयों की सूची दी गई है जिनके बारे में आप जानेंगे:
- हमारे दिए गए डिज़ाइन रिसॉर्स की मदद से, यूज़र इंटरफ़ेस (यूआई) के फ़्लो को डिज़ाइन करना
- Glassware शुरू करने के लिए, वॉइस ट्रिगर डिज़ाइन करना
- गेम का यूज़र इंटरफ़ेस (यूआई) स्ट्रक्चर तय करने के लिए, Android गतिविधियों का इस्तेमाल करना
- Android मेन्यू आइटम बनाना, ताकि उपयोगकर्ता गेम के विकल्प चुन सकें
- मुख्य मेन्यू में वॉइस ट्रिगर की मदद से, Glass इस्तेमाल करने की सुविधा से इंटिग्रेट किया जा रहा है
- GDK जेस्चर डिटेक्टर का इस्तेमाल करके, जो उपयोगकर्ता के इनपुट का पता लगाता है और पसंद के मुताबिक कार्रवाइयां करता है
- Android के यूज़र इंटरफ़ेस को आसानी से इस्तेमाल करने के बारे में जानें. इससे उसे बेहतर बनाने और Glass स्टाइल अपनाने में मदद मिलती है
- इस बारे में जानना कि ग्लासवेयर डिस्ट्रिब्यूशन की प्रोसेस क्या होती है और ग्लासवेयर रिलीज़ करते समय हम किन चीज़ों पर ध्यान देते हैं
डिज़ाइन
डेवलप करने से पहले, कुछ समय निकालकर अपने ग्लासवेयर को डिज़ाइन करें. ऐसा करने से आपको इस बात की बेहतर जानकारी मिलती है कि कौन-से यूआई फ़्लो, Glass पर सबसे अच्छा काम करते हैं, आपको किस वॉइस कमांड का उपयोग करना होगा और आपके कार्ड कैसे दिखेंगे.
बेशक, ग्लासवेयर को डिज़ाइन करना बार-बार की जाने वाली प्रोसेस है और अब आपकी डिज़ाइन की गई कुछ चीज़ें बदल जाएँगी. लेकिन शुरुआत में इस काम का एक अच्छा हिस्सा होना ज़रूरी है, ताकि एक अच्छा अनुभव बनाया जा सके.
यूज़र इंटरफ़ेस (यूआई) फ़्लो
यूज़र इंटरफ़ेस (यूआई) फ़्लो को डिज़ाइन करना एक आसान काम है. इसकी मदद से, कोड की कोई लाइन लिखने से पहले अपने ग्लासवेयर को विज़ुअलाइज़ किया जा सकता है. हम ऐसा सीधे हमारे बनाए हुए ग्लासवेयर के लिए करते हैं!
आइए, Charades इमर्शन के मुख्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट पर नज़र डालते हैं, ताकि आपको यह पता चल सके कि यूआई कैसे काम करता है और अपना ग्लासवेयर बनाते समय यह प्रोसेस कितनी मददगार हो सकती है.
स्प्लैश स्क्रीन
जब लोग Charades इमर्शन शुरू करते हैं, तो उन्हें सबसे पहले यही स्क्रीन दिखती है. इससे उपयोगकर्ता गेमिंग का आनंद लेने से पहले उनके व्यवहार को पहचान सकते हैं. यह गेमिंग का एक सामान्य तरीका है, जिसे उपयोगकर्ता अच्छी तरह समझते हैं.
जब उपयोगकर्ता टचपैड पर टैप करते हैं, तो दो आइटम वाला एक मेन्यू सिस्टम दिखता है, नया गेम और निर्देश.
निर्देश मोड
इमर्शन बनाते समय, इनपुट के तरीके कभी-कभी नए होते हैं. इसलिए, उपयोगकर्ताओं को यह बताना उपयोगी होता है कि उन्हें इमर्शन के साथ कैसे इंटरैक्ट करना चाहिए, खास तौर पर किसी गेम के साथ.
कार्ड का यह सेट गेम के लिए निर्देश दिखाता है और उपयोगकर्ताओं को यह बताता है कि कैसे खेलना है और कौनसे जेस्चर का इस्तेमाल करके यूज़र इंटरफ़ेस (यूआई) में नेविगेट करना है. उपयोगकर्ता स्प्लैश स्क्रीन से निर्देश मेन्यू आइटम पर टैप करके इसे ऐक्सेस कर सकते हैं.
गेमप्ले मोड
इन स्क्रीन पर, गेमप्ले का मुख्य फ़्लो शामिल होता है. उपयोगकर्ता स्प्लैश स्क्रीन से नया गेम मेन्यू आइटम पर टैप करके, इस फ़्लो तक पहुंच सकते हैं.
कार्ड का यह सेट किसी भी शब्द (ज़्यादा से ज़्यादा 10) को दिखाता है. जब उपयोगकर्ता किसी शब्द के बारे में सही जानकारी देते हैं, तो वे आगे की ओर स्वाइप करके टचपैड पर टैप करते हैं.
गेम के नतीजों वाली स्क्रीन
इस स्क्रीन पर गेम के नतीजे दिखाए जाते हैं. इस टैब के शुरू में "गेम खत्म" स्क्रीन दिखती है. साथ ही, उपयोगकर्ता आगे की ओर स्वाइप करके गेम के नतीजे देख सकते हैं. जब उपयोगकर्ता किसी भी नतीजे वाले कार्ड पर टैप करते हैं, तो नया गेम मेन्यू आइटम दिखता है और उपयोगकर्ता दूसरा गेम शुरू कर सकते हैं.
बोला गया निर्देश
डिज़ाइन बनाने की प्रोसेस में, आपको बोलकर दिए जाने वाले निर्देश पर काफ़ी पहले ही जानकारी मिल जानी चाहिए. बोलकर दिए जाने वाले निर्देशों की मदद से उपयोगकर्ता, Glass Home (क्लॉक कार्ड) के वॉइस मेन्यू से ग्लासवेयर शुरू कर सकते हैं. ऐसा ज़रूरी होने पर, ये ग्लासवेयर डिज़ाइन करने के आपके तरीके की एक अहम भूमिका होती है.
उदाहरण के लिए, अपडेट पोस्ट करें कमांड फ़ायर-ऐंड-प्लेस मॉडल में अच्छे से काम करता है. इसमें उपयोगकर्ता निर्देश देते हैं और कुछ टेक्स्ट बोलते हैं और ग्लासवेयर, उपयोगकर्ता की अनुमति के बिना उसे प्रोसेस करता है. इससे उपयोगकर्ता अपने काम पर तेज़ी से कर पाते हैं.
वहीं दूसरी ओर, कोई गेम खेलें जैसे काम के लिए, आपको आम तौर पर उपयोगकर्ताओं को स्प्लैश स्क्रीन पर ले जाना होगा, ताकि वे पहले उनका इस्तेमाल कर सकें. बोलकर दिए गए इस निर्देश से, लोगों को गेम शुरू करने में मदद मिलती है. इसलिए, लोगों को गेम शुरू करने के लिए ज़्यादा स्क्रीन और मेन्यू देखने को मिलेगा. उपयोगकर्ताओं को बोलकर दिए जाने वाले निर्देश के तुरंत बाद, उन्हें गेमिंग का बेहतरीन अनुभव मिल जाता है.
चैर्ड्स, कोई गेम खेलें बोलकर दिए जाने वाले निर्देश का इस्तेमाल करते हैं . जब उपयोगकर्ता बोलकर निर्देश देते हैं, तब Charades स्प्लैश स्क्रीन दिखती है. इसमें उन्हें ज़्यादा विकल्प देखने के लिए टैप करें (इस मामले में नया गेम या निर्देश) का अनुरोध करने के लिए कहा जाता है.
कार्ड के लेआउट
चाहे आप इमर्शन बना रहे हों या लाइव कार्ड बना रहे हों, जहां भी हो सके आपको
CardBuilder
या एक्सएमएल लेआउट का इस्तेमाल करना चाहिए.
अक्सर, आपको अपना लेआउट खुद बनाना होता है. इसलिए, बेहतरीन दिखने वाले ग्लासवेयर के लिए यूज़र इंटरफ़ेस (यूआई) से जुड़े हमारे दिशा-निर्देशों का पालन करें.
स्टॉपवॉच, लेआउट से जुड़े सामान्य दिशा-निर्देशों का पालन करती है, लेकिन इसमें कस्टम यूज़र इंटरफ़ेस (यूआई) लेआउट हैं, जो Android के स्टैंडर्ड कॉम्पोनेंट, जैसे कि व्यू और लेआउट का इस्तेमाल करते हैं.
कॉन्टेंट बनाना
इमर्सन विकसित करने के लिए, आप उन्हीं टूल का उपयोग करते हैं जिनका उपयोग आप Android डेवलपमेंट के लिए ग्लासवेयर के अधिक बड़े हिस्से को बनाने के लिए उपयोग करेंगे और फिर ग्लास की विशिष्ट सुविधा, जैसे जेस्चर डिटेक्टर और वॉइस कमांड को एक्सेस करने के लिए GDK ऐड-ऑन में API का उपयोग करते हैं.
आप ग्लासवेयर बनाने के लिए अक्सर Android के सामान्य कॉम्पोनेंट का इस्तेमाल करते हैं, लेकिन ध्यान रखें कि कभी-कभी कुछ कॉन्सेप्ट अलग होते हैं. उदाहरण के लिए, किसी Android गतिविधि के बारे में ज़्यादा जानकारी न दें. इमर्शन, Glass के लिए डिज़ाइन किए गए ऐसे अनुभव हैं जो एक या कई Android ऐक्टिविटी के साथ-साथ GDK और Android SDK के कई अन्य कॉम्पोनेंट के साथ बनाए गए हैं.
'डेवलप करें' के बाकी सेक्शन में इस बारे में जानकारी दी गई है कि Charades गेम को कैसे स्ट्रक्चर किया गया है. साथ ही, प्रोजेक्ट के उन अहम कॉम्पोनेंट के बारे में भी बताया गया है जिन्हें आपने पहले इंपोर्ट किया था. Android Studio को अभी डिवाइस में इंस्टॉल करना आपके लिए फ़ायदेमंद है, ताकि आप इसे बेहतर तरीके से समझ सकें. सोर्स कोड पर टिप्पणी की जाती है, ताकि इस सेक्शन में हर फ़ाइल के खास मकसद के बारे में बताया गया हो. साथ ही, ऐसी सलाह दी गई हो जिसे अपने ग्लासवेयर पर लागू किया जा सकता है.
यहां चाराडेस के प्रमुख घटकों का एक संक्षिप्त अवलोकन दिया गया है:
- Glass के मुख्य वॉइस मेन्यू से जुड़ने के लिए, वॉइस ट्रिगर की जानकारी.
- स्प्लैश स्क्रीन पर की जाने वाली गतिविधि की मदद से, उपयोगकर्ता गेम शुरू कर सकते हैं या निर्देश देख सकते हैं. यह गतिविधि, निर्देशों वाली गतिविधि या गेमप्ले गतिविधि को लॉन्च करती है
- ट्यूटोरियल गतिविधि से उपयोगकर्ताओं को गेम की मुख्य कार्रवाइयों को पूरा करके गेम खेलने का तरीका बताया जाता है
- गेमप्ले गतिविधि की मदद से उपयोगकर्ता असल गेम खेल सकते हैं
- गतिविधि के नतीजों में गेम का स्कोर और अनुमान लगाए गए और अनुमान न लगाए गए शब्दों की सूची दिखती है. इससे उपयोगकर्ता, मेन्यू आइटम के साथ नया गेम भी शुरू कर सकते हैं.
बोला गया निर्देश
एक्सएमएल रिसॉर्स फ़ाइल का इस्तेमाल करके, बोलकर निर्देश दिए जाते हैं. यह फ़ाइल, इस्तेमाल किए जा रहे निर्देश की जानकारी देती है. इसके बाद, AndroidManifest.xml
फ़ाइल में एक्सएमएल रिसॉर्स को तय करती है.
ये फ़ाइलें, Charades के बोलकर दिए जाने वाले निर्देश से जुड़ी हैं:
res/xml/voice_trigger_play_a_game .xml
- बोलकर निर्देश देने की सुविधा का इस्तेमाल करता है.AndroidManifest.xml
- बोलकर निर्देश दिए जाने पर, गतिविधि शुरू होने की सूचना देता है.
स्प्लैश स्क्रीन पर की गई गतिविधि
Charades शुरू करते समय लोगों को सबसे पहले स्प्लैश स्क्रीन दिखती है और गेम शुरू करने से पहले वे स्क्रीन की दिशा को घुमाते हैं.
इस गतिविधि से ये फ़ाइलें जुड़ी हैं:
res/layout/activity_start_game.xml
- स्प्लैश स्क्रीन के लेआउट का एलान करता है.res/menu/start_game.xml
- स्प्लैश स्क्रीन के लिए मेन्यू सिस्टम का एलान करता है. इसमें निर्देश और नया गेम के मेन्यू आइटम शामिल होते हैं.res/values/dimens.xml
- स्टैंडर्ड कार्ड डाइमेंशन और पैडिंग के बारे में बताता है कि इस प्रोजेक्ट की गतिविधियों का इस्तेमाल Glass की स्टाइल को अपनाने के लिए किया जाता है.src/com/google/android/glass/sample/charades/StartGameActivity.java
- स्प्लैश स्क्रीन के लिए मुख्य क्लास.res/drawable-hdpi/ic_game_50.png
- नए गेम के लिए मेन्यू आइकॉन.res/drawable-hdpi/ic_help_50.png
- निर्देशों के लिए मेन्यू आइकॉन.
गेम का मॉडल
गेम के मॉडल (गेम की स्थिति) को यूज़र इंटरफ़ेस (यूआई) से अलग करना
हमेशा एक अच्छा आइडिया होता है. CharadesModel
क्लास, गेम के स्कोर
और गेमप्ले मोड में कितने वाक्यांशों का अनुमान लगाया गया, यह ट्रैक करती है.
साथ ही, अलग-अलग निर्देशों के साथ-साथ यह भी ट्रैक किया जाता है कि
निर्देशों वाले मोड में उपयोगकर्ताओं ने उन्हें
पूरा किया है या नहीं.
ये फ़ाइलें गेम के मॉडल से जुड़ी हैं:
src/com/google/android/glass/sample/charades/CharadesModel.java
बेस गेम ऐक्टिविटी
गेम के ट्यूटोरियल और गेमप्ले मोड की सुविधाएं और यूज़र इंटरफ़ेस (यूआई) काफ़ी हद तक एक जैसे हैं. इसलिए, यह बेस क्लास इन दोनों के काम करने के तरीके के बारे में बताती है. निर्देशों और गेमप्ले मोड के लिए इस्तेमाल की जाने वाली गतिविधियों की वजह से, इस क्लास में ज़्यादा जानकारी मिलेगी.
इस गतिविधि से ये फ़ाइलें जुड़ी हैं:
res/layout/activity_game_play.xml
- Charades के गेमप्ले और निर्देश मोड से शेयर किए जाने वाले लेआउट के बारे में बताता है.src/com/google/android/glass/sample/charades/BaseGameActivity.java
- गेमप्ले के बुनियादी फ़ंक्शन और Charades के निर्देशों वाले मोड के बारे में बताता है, जिन्हें शेयर किया जाता है.
निर्देशों से जुड़ी गतिविधि
निर्देशों की गतिविधि में तीन कार्ड दिखते हैं, जो गेम खेलने का तरीका बताते हैं. इससे यह पता चल जाता है कि उपयोगकर्ता जारी रखने से पहले कार्ड पर दिखाई गई कार्रवाई पूरी करते हैं या नहीं.
इस गतिविधि से ये फ़ाइलें जुड़ी हैं:
src/com/google/android/glass/sample/charades/TutorialActivity.java
-BaseGameActivity
को बड़ा करता है. इससे यह तय होता है कि गेम के लिए दिए गए निर्देशों का पालन करते समय, उपयोगकर्ताओं को कौनसे निर्देश दिखाने चाहिए और हाथ के जेस्चर का इस्तेमाल कैसे करना चाहिए.
गेमप्ले गतिविधि
गेमप्ले गतिविधि से गेम का मुख्य फ़्लो तय होता है. यह पता लगाता है कि कौनसे शब्द दिखाने हैं और स्कोर कैसे बनाए रखना है. इसमें हाथ के जेस्चर हैंडल करने के लिए जेस्चर डिटेक्टर होता है. साथ ही, गेम खत्म होने पर नतीजों की गतिविधि लॉन्च करता है.
इस गतिविधि से ये फ़ाइलें जुड़ी हैं:
GamePlayActivity
-BaseGameActivity
को बड़ा करता है. इसमें मुख्य गेमफ़्लो लॉजिक शामिल होता है.
नतीजों से जुड़ी गतिविधि
गतिविधि के नतीजे में, अनुमान लगाए गए शब्द, अनुमान न लगाए गए शब्द, और गेम का स्कोर दिखता है. इसमें एक मेन्यू आइटम भी होता है, जिससे उपयोगकर्ता नया गेम शुरू कर सकते हैं.
इस गतिविधि से ये फ़ाइलें जुड़ी हैं:
res/layout/game_results.xml
- "गेम खत्म" कार्ड का लेआउट बताता हैres/layout/card_results_summary.xml
- इसका इस्तेमाल करके, सूची में अनुमान लगाए गए और अनुमान नहीं लगाए गए शब्दों को दिखाने वाला लेआउट तय करता है.res/layout/table_row_result.xml
- नतीजों की खास जानकारी के लिए अलग-अलग पंक्ति का लेआउट तय करता है.src/com/google/android/glass/sample/charades/GameResultsActivity.java
- उस असल गतिविधि के बारे में बताता है जो ऊपर दिए गए एक्सएमएल संसाधनों के ज़रिए तय किए गए लेआउट और मेन्यू को दिखाती है.res/raw/sad_trombone.ogg
- इस साउंड को तब चलाया जाता है, जब उपयोगकर्ता को दिए गए सभी शब्द समझ न आते हों.res/raw/triumph.ogg
- इस साउंड को तब चलाया जा सकता है, जब कोई उपयोगकर्ता 10 शब्दों को पूरा कर ले.res/drawable-hdpi/ic_done_50.png
- सही का निशान लगाए गए उन शब्दों से दिखने वाला सही का निशान जिनका सही अनुमान लगाया गया हो.
ऐनिमेशन वाले संसाधन
ये एनिमेशन संसाधन Charades को और बेहतर बना देते हैं:
res/anim/slide_out_left.xml
- इससे बाईं ओर स्लाइड करने के लिए, स्क्रीन से बाहर निकलते हुए नज़ारे दिखते हैं. (उदाहरण के लिए, जब कोई शब्द पास हो जाता है).res/anim/slide_in_right.xml
- इससे दाईं से स्लाइड करने के लिए, एंट्री वाला व्यू ऐनिमेट होता है (उदाहरण के लिए, जब व्यू में कोई नया शब्द आता है).res/anim/tug_right.xml
- अगर आप ऐसे व्यू पर स्वाइप करते हैं जो स्वाइप नहीं करता, तो यह टगिंग ऐनिमेशन को परिभाषित करता है. इससे उपयोगकर्ताओं को पता चलता है कि स्वाइप करने का कोई असर नहीं पड़ा है.
Android मेनिफ़ेस्ट
AndroidManifest.xml
फ़ाइल आपके ग्लासवेयर के मुख्य कॉम्पोनेंट की जानकारी देती है, ताकि सिस्टम को उसे चलाने का तरीका पता हो. Charades के मेनिफ़ेस्ट में
इन चीज़ों के बारे में बताया गया है:
- ग्लासवेयर का आइकॉन और नाम. अगर एक से ज़्यादा ग्लासवेयर एक ही बोले गए निर्देश का जवाब देते हैं, तो Glass इस जानकारी को मुख्य टच मेन्यू पर दिखाता है.
- Charades से जुड़ी सभी गतिविधियां. सिस्टम को यह जानने के लिए ज़रूरी है कि ग्लासवेयर की गतिविधियों को कैसे शुरू किया जाए.
- बोला गया निर्देश और इंटेंट फ़िल्टर, जो बोले गए निर्देश के बोले जाने पर एक खास गतिविधि शुरू करता है.
- Glassware के लिए वर्शन कोड. MyGlass में इस APK का नया वर्शन अपलोड करने पर, हर बार इस कोड को अपडेट करना ज़रूरी है (और आम तौर पर वर्शन का नाम भी).