इमर्शन पैटर्न

इस गाइड में उन चीज़ों के बारे में बताया गया है जिनके बारे में Charades गेम में, दर्शकों को आसानी से अनुभव करने में मदद मिलती है. गेम का अनुभव बेहतर बनाने के लिए गेम बिल्कुल सही हैं. ज़्यादातर गेम में कस्टम यूज़र इंटरफ़ेस (यूआई) और इनपुट कंट्रोल की ज़रूरत होती है.

साथ ही, आपको ऐसे डिज़ाइन, डेवलपमेंट, और डिस्ट्रिब्यूशन से जुड़ी सलाह भी मिलेंगी जो आपके लिए कांच के प्रॉडक्ट बनाने में अहम हैं.

शुरू करने से पहले

Charades गेम का पूरा स्रोत GitHub पर उपलब्ध है. Android Studio में इंपोर्ट करने से पहले इसे इंपोर्ट करें, क्योंकि यह गाइड इसकी बहुत ज़्यादा जानकारी देती है.

  1. क्विक स्टार्ट स्क्रीन से, वर्शन कंट्रोल से चेक आउट करें > Git पर क्लिक करें.
  2. Chardes से क्लोन यूआरएल कॉपी करें.
  3. क्लोन यूआरएल को Vcs Repository URL में चिपकाएं और Clone पर क्लिक करें.
  4. अगली स्क्रीन पर हां पर क्लिक करें.
  5. अगली स्क्रीन पर ठीक है पर क्लिक करें.
  6. प्रोजेक्ट बनाएं और उसे कनेक्ट करें बटन पर क्लिक करके, कनेक्ट किए गए Glass पर चलाएं. बुलाए जाने की जानकारी के लिए नमूने की README देखना पक्का करें.

आप इन चीज़ों के बारे में जानेंगे

आपको Android SDK के कॉम्पोनेंट का इस्तेमाल करके, Crandes इमर्सिव (एक तरह का सॉफ़्टवेयर) इमर्सिव अनुभव और उसके बाद GDK को तैयार करने का तरीका बताया जाएगा, ताकि आप Glass के अनुभव को बेहतर बना सकें. यहां उन विषयों की सूची दी गई है जिनके बारे में आप जानेंगे:

  • डिज़ाइन के हमारे संसाधनों से, यूज़र इंटरफ़ेस (यूआई) के फ़्लो को डिज़ाइन करना
  • Glassware शुरू करने के लिए, वॉइस ट्रिगर डिज़ाइन करना
  • गेम के यूज़र इंटरफ़ेस (यूआई) का स्ट्रक्चर तय करने के लिए Android की गतिविधियों का इस्तेमाल करना
  • Android के मेन्यू आइटम बनाना, ताकि उपयोगकर्ता गेम के विकल्प चुन सकें
  • वॉइस मेन्यू की मदद से, मुख्य मेन्यू में मौजूद सुविधाओं का इस्तेमाल करना
  • GDK जेस्चर डिटेक्टर का इस्तेमाल करके, उपयोगकर्ताओं के इनपुट का पता लगाना और कस्टम कार्रवाइयां करना
  • Android के यूज़र इंटरफ़ेस (यूआई) को आसानी से लागू करने के बारे में जानकारी
  • ग्लासवेयर रिलीज़ करते समय हम डिस्ट्रिब्यूशन प्रोसेस के बारे में जानना चाहते हैं

डिज़ाइन

इससे पहले कि आप डेवलप करना शुरू करें, कुछ समय लें और अपना Glassware डिज़ाइन करें. इससे आपको पता चलता है कि Glass पर किस यूज़र इंटरफ़ेस (यूआई) का फ़्लो सबसे अच्छा काम करता है, आपको कौनसी आवाज़ इस्तेमाल करनी है, और आपके कार्ड कैसे दिखेंगे.

बेशक, Glassware डिज़ाइन करना एक दोहरावपूर्ण प्रक्रिया है और कुछ चीज़ें जो आप डिज़ाइन करते हैं, वे अब बदल जाएंगी, लेकिन एक अनुभव के लिए काम शुरू करना अच्छा है.

यूज़र इंटरफ़ेस (यूआई) फ़्लो

यूज़र इंटरफ़ेस (यूआई) फ़्लो को डिज़ाइन करना एक आसान प्रक्रिया है. इसकी मदद से, कोड की लाइन लिखने से पहले, अपना Glassware विज़ुअलाइज़ किया जा सकता है. हम अपना सारा ध्यान कांच के प्रॉडक्ट बनाने में लगाते हैं!

आइए, चारेस इमर्सन के मुख्य यूज़र इंटरफ़ेस (यूआई) एलिमेंट पर नज़र डालते हैं, ताकि आप समझ सकें कि यूज़र इंटरफ़ेस (यूआई) कैसे काम करता है और अपना ग्लासवेयर बनाते समय यह प्रोसेस कितनी मददगार साबित हो सकती है.

स्प्लैश स्क्रीन

यह स्क्रीन सबसे पहले उपयोगकर्ताओं को तब दिखती है, जब वे चैरेड्स इमरेंस शुरू करते हैं. इससे, उपयोगकर्ता सिर्फ़ गेम खेलने से पहले गेम खेलने के बारे में जान पाते हैं. यह गेमिंग से जुड़ी ऐसी सामान्य चीज़ है जिससे उपयोगकर्ता परिचित होते हैं.

जब उपयोगकर्ता टचपैड पर टैप करते हैं, तो दो आइटम वाला मेन्यू सिस्टम दिखता है, जैसे कि नया गेम और निर्देश.

निर्देश मोड

इमर्सन बनाते समय, इनपुट मैकेनिज़्म कभी-कभी नॉवेल होता है. इसलिए, उपयोगकर्ताओं को यह बताना ज़रूरी होता है कि उन्हें इमर्सन के साथ कैसे इंटरैक्ट करना चाहिए, खास तौर पर किसी गेम के लिए.

कार्ड का यह सेट गेम के लिए निर्देश दिखाता है और उपयोगकर्ताओं को गेम खेलने और यूज़र इंटरफ़ेस (यूआई) में नेविगेट करने के लिए हाथ के जेस्चर (हाव-भाव) का इस्तेमाल करने के बारे में गाइड करता है. स्प्लैश स्क्रीन से निर्देश मेन्यू आइटम पर टैप करके, उपयोगकर्ता इस तक पहुंच जाते हैं.

गेमप्ले मोड

इन स्क्रीन पर, गेमप्ले का मुख्य फ़्लो शामिल होता है. स्प्लैश स्क्रीन से नया गेम मेन्यू आइटम पर टैप करके, उपयोगकर्ता इस फ़्लो पर जा सकते हैं.

कार्ड का यह सेट एक रैंडम शब्द (10 तक) दिखाता है. उपयोगकर्ता आगे की ओर स्वाइप करके, शब्द को स्किप कर सकते हैं. साथ ही, शब्द का सही ब्यौरा देने पर, टचपैड पर टैप कर सकते हैं.

गेम के नतीजों की स्क्रीन

यह स्क्रीन, गेम के नतीजे दिखाती है. शुरुआत में "गेम खत्म" स्क्रीन दिखाई देती है और उपयोगकर्ता गेम के नतीजे देखने के लिए आगे की ओर स्वाइप कर सकते हैं. जब उपयोगकर्ता किसी भी नतीजे वाले कार्ड पर टैप करते हैं, तो नया गेम मेन्यू आइटम दिखता है. इससे उपयोगकर्ता दूसरा गेम शुरू कर सकते हैं.

बोला गया निर्देश

आपको डिज़ाइन की प्रोसेस के लिए, बोलकर दिए गए निर्देश का पता लगाना होगा. अगर ज़रूरी हो, तो Voice के निर्देशों की मदद से, उपयोगकर्ताओं को Glass Home (घड़ी का कार्ड) के वॉइस मेन्यू से, Glassware शुरू करने की सुविधा मिलती है. साथ ही, यह ग्लासवेयर डिज़ाइन करने का एक मुख्य हिस्सा है.

उदाहरण के लिए, अपडेट पोस्ट करें कमांड, आग लगने और भूल जाने के मॉडल में अच्छा काम करता है. इसमें उपयोगकर्ता निर्देश देते हैं और कुछ टेक्स्ट बोलते हैं. साथ ही, Glassware उसे प्रोसेस करता है और उपयोगकर्ता के इंटरैक्शन के बिना भी. इसकी मदद से उपयोगकर्ता उन चीज़ों पर वापस जा सकते हैं जो वे जल्दी कर रहे हैं.

दूसरी ओर, कोई गेम खेलें. ऐसा करने के लिए, आपको आम तौर पर उपयोगकर्ताओं को स्प्लैश स्क्रीन पर भेजना होगा, ताकि वे सबसे पहले गेम को खेलना चाहें. बोलकर निर्देश देने की सुविधा का इस्तेमाल करके, ज़्यादातर उपयोगकर्ताओं को ऐसा लगता है कि वे तुरंत खेलना शुरू कर सकते हैं. इसलिए, गेम खेलने के लिए उपयोगकर्ताओं को अतिरिक्त स्क्रीन और मेन्यू देखने को मिल सकते हैं. बोले गए निर्देश के तुरंत बाद, उपयोगकर्ताओं को तुरंत गेमिंग का अनुभव देना, गेम के लिए एक खराब अनुभव माना जाता है.

Charades कोई गेम खेलें बोले गए निर्देश का इस्तेमाल करता है . जब उपयोगकर्ता बोलकर दिए जाने वाले निर्देश को लागू करते हैं, तो Charades स्प्लैश स्क्रीन दिखाई देती है. इस सूचना में, उपयोगकर्ताओं से ज़्यादा विकल्पों के लिए टैप करें (इस मामले में नया गेम या निर्देश) दिखाए जाते हैं.

कार्ड के लेआउट

इमर्सिव या लाइव कार्ड बनाने के लिए, जब भी हो सके, आपको CardBuilder या एक्सएमएल लेआउट का इस्तेमाल करना चाहिए.

अक्सर, आपको अब भी अपना खुद का लेआउट बनाना होता है, इसलिए सबसे अच्छे दिखने वाले Glassware के लिए हमारे यूज़र इंटरफ़ेस (यूआई) दिशा-निर्देशों का पालन करें.

स्टॉपवॉच सामान्य लेआउट दिशा-निर्देशों का पालन करती है, लेकिन इसमें लेआउट और लेआउट जैसे मानक Android कॉम्पोनेंट का इस्तेमाल करने वाले कस्टम यूज़र इंटरफ़ेस (यूआई) लेआउट होते हैं.

Develop

इमर्सन विकसित करने के लिए आप उन्हीं टूल का इस्तेमाल करते हैं, जिनका इस्तेमाल आप Android डेवलपमेंट के लिए Glassware का बल्क निर्माण करने के लिए करते हैं और फिर GDK ऐड-ऑन में मौजूद API का उपयोग करके ग्लास-विशिष्ट फ़ंक्शनलिटी, जैसे कि जेस्चर डिटेक्टर और बोले गए निर्देशों को ऐक्सेस करते हैं.

Glassware बनाने के लिए, आपको अक्सर सामान्य Android कॉम्पोनेंट का इस्तेमाल करना होता है. हालांकि, ध्यान रखें कि कभी-कभी कुछ कॉन्सेप्ट अलग-अलग होते हैं. उदाहरण के लिए, मान लें कि किसी Android की गतिविधि को इमर्सिव मान न लें. इमर्शन, Glass के लिए डिज़ाइन किए गए अनुभव हैं जो एक या कई Android गतिविधियों के साथ बनाए जाते हैं. साथ ही, GDK और Android SDK के कई दूसरे घटक भी होते हैं.

विकसित किए गए बाकी सेक्शन इस बात पर एक नज़र डालते हैं कि Charades गेम को कैसे बनाया जाता है. साथ ही, यहां उन प्रोजेक्ट के मुख्य कॉम्पोनेंट की जानकारी भी दी जाती है जिन्हें आपने पहले इंपोर्ट किया था. अब Android Studio का होना ज़रूरी है, ताकि आप इसका इस्तेमाल जारी रख सकें. सोर्स कोड पर भी टिप्पणी की जाती है, इसलिए यह सेक्शन हर फ़ाइल के हाई-लेवल मकसद और ज़रूरी सलाह के बारे में बताता है. इन्हें आप अपने Glassware पर लागू कर सकते हैं.

यहां Charades के प्रमुख कॉम्पोनेंट की खास जानकारी दी गई है:

  • Glass के मुख्य आवाज़ मेन्यू में हुक करने के लिए आवाज़ ट्रिगर करने का एलान.
  • स्प्लैश स्क्रीन पर उपयोगकर्ताओं को गेम शुरू करने या निर्देश देखने की अनुमति देने वाली गतिविधि. इस गतिविधि से, निर्देशों की गतिविधि या गेमप्ले की गतिविधि लॉन्च होती है
  • ट्यूटोरियल गतिविधि उपयोगकर्ता को गेम की मुख्य कार्रवाइयों को असल में करके गेम खेलने का तरीका दिखाती है
  • गेमप्ले की गतिविधि की मदद से, उपयोगकर्ता असल गेम खेलते हैं
  • परिणाम गतिविधि, गेम का स्कोर और उन शब्दों की सूची दिखाती है जिनका अनुमान नहीं लगाया गया है और जिनके अनुमान नहीं लगाए गए हैं. इससे उपयोगकर्ता, मेन्यू आइटम के साथ नया गेम शुरू कर सकते हैं.

बोला गया निर्देश

एक्सएमएल रिसॉर्स फ़ाइल की मदद से, बोलकर दिए जाने वाले निर्देश बनाए जा सकते हैं. एक्सएमएल फ़ाइल में, AndroidManifest.xml फ़ाइल में, एक्सएमएल रिसॉर्स के बारे में जानकारी दी जाती है.

नीचे दी गई फ़ाइलें, Charades बोले गए निर्देश से जुड़ी हैं:

  • res/xml/voice_trigger_play_a_game .xml - यह बताता है कि बोले गए निर्देश का इस्तेमाल करना है.
  • AndroidManifest.xml - यह तय करता है कि बोले गए निर्देश को बोले जाने पर क्या होगा.

स्प्लैश स्क्रीन पर की गई गतिविधि

स्प्लैश स्क्रीन वह पहली चीज़ होती है जिसे उपयोगकर्ता गेम शुरू करते समय देखते हैं और गेम शुरू करने से पहले उन्हें दिशा देते हैं.

ये फ़ाइलें इस गतिविधि से जुड़ी हैं:

  • 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 फ़ाइल, आपके Glassware के मुख्य कॉम्पोनेंट के बारे में बताती है, ताकि सिस्टम उन्हें चलाने का तरीका जान सके. Charades का मेनिफ़ेस्ट इन चीज़ों के बारे में बताता है:

  • Glassware का आइकॉन और नाम. अगर एक से ज़्यादा Glassware एक ही आवाज़ में निर्देश देते हैं, तो Glass यह जानकारी मुख्य टच मेन्यू में दिखाता है.
  • Charades से संबंधित सभी गतिविधियां. सिस्टम के लिए यह ज़रूरी है कि वह यह पता लगा सके कि आपके Glassware गतिविधियों को कैसे शुरू करें.
  • बोले जाने वाले निर्देश और इंटेंट फ़िल्टर जो बोले गए निर्देश को बोले जाने पर कोई खास गतिविधि शुरू करते हैं.
  • Glassware का वर्शन कोड. हर बार इस APK का नया वर्शन MyGlass पर अपलोड किए जाने पर, यह कोड अपडेट किया जाना चाहिए (और आम तौर पर वर्शन का नाम भी).