নিমজ্জন প্যাটার্ন

এই নির্দেশিকাটি এমন উপাদানগুলিকে বর্ণনা করে যা একটি সহজ নিমজ্জন অভিজ্ঞতা নিয়ে গঠিত, একটি Charades গেমের আকারে। গেমগুলি নিমজ্জনের জন্য একটি নিখুঁত ব্যবহারের ক্ষেত্রে কারণ বেশিরভাগের জন্য একটি কাস্টম UI এবং ইনপুট নিয়ন্ত্রণ প্রয়োজন৷

সেই সাথে, আপনি ডিজাইন, ডেভেলপমেন্ট এবং ডিস্ট্রিবিউশন টিপসও শিখবেন যা আপনার নিজের গ্লাসওয়্যার তৈরির জন্য গুরুত্বপূর্ণ।

তুমি শুরু করার আগে

Charades গেমের সম্পূর্ণ উৎস Github এ উপলব্ধ। আপনি শুরু করার আগে এটিকে অ্যান্ড্রয়েড স্টুডিওতে আমদানি করুন, কারণ এই নির্দেশিকাটি এটিকে ব্যাপকভাবে উল্লেখ করে।

  1. কুইক স্টার্ট স্ক্রীন থেকে সংস্করণ নিয়ন্ত্রণ > গিট থেকে চেক আউট ক্লিক করুন।
  2. Charades থেকে ক্লোন URL কপি করুন।
  3. Vcs সংগ্রহস্থলের URL- এ ক্লোন URL পেস্ট করুন এবং ক্লোন ক্লিক করুন।
  4. নিচের স্ক্রিনে হ্যাঁ ক্লিক করুন।
  5. নিচের স্ক্রিনে ওকে ক্লিক করুন।
  6. প্রকল্পটি তৈরি করুন এবং প্লে বোতামে ক্লিক করে আপনার সংযুক্ত গ্লাসে এটি চালান৷ অনুরোধের বিশদ বিবরণের জন্য নমুনার README চেক করতে ভুলবেন না।

আপনি কি শিখবেন

আপনি শিখবেন কিভাবে অ্যান্ড্রয়েড SDK থেকে অনেকাংশে Charades নিমজ্জন তৈরি করতে এবং তারপর GDK-কে Glass অভিজ্ঞতার সাথে যুক্ত করতে ব্যবহার করতে হয়। এখানে এমন বিষয়গুলির একটি তালিকা রয়েছে যা আপনি শিখবেন:

  • আমরা যে ডিজাইন রিসোর্স দিয়ে থাকি তার সাথে UI এর প্রবাহ ডিজাইন করা
  • গ্লাসওয়্যার শুরু করতে ভয়েস ট্রিগার ডিজাইন করা
  • গেমের UI গঠন সংজ্ঞায়িত করতে Android কার্যকলাপ ব্যবহার করে
  • অ্যান্ড্রয়েড মেনু আইটেম তৈরি করা যা ব্যবহারকারীদের গেমের বিকল্পগুলি বেছে নিতে দেয়
  • প্রধান মেনুতে একটি ভয়েস ট্রিগার সহ গ্লাস অভিজ্ঞতায় একীভূত করা
  • GDK জেসচার ডিটেক্টর ব্যবহার করে যা ব্যবহারকারীর ইনপুট শনাক্ত করে এবং কাস্টম অ্যাকশন চালায়
  • সহজ Android UI বাস্তবায়ন শেখা যা অতিরিক্ত পোলিশ যোগ করে এবং গ্লাস শৈলী অনুসরণ করে
  • বিতরণ প্রক্রিয়া এবং গ্লাসওয়্যার রিলিজ করার সময় আমরা কী খুঁজি সে সম্পর্কে শেখা

ডিজাইন

আপনি বিকাশ শুরু করার আগে, কিছু সময় নিন এবং আপনার গ্লাসওয়্যার ডিজাইন করুন। এটি করার ফলে আপনি গ্লাসে কোন UI প্রবাহ সবচেয়ে ভাল কাজ করে, আপনি কোন ভয়েস কমান্ড ব্যবহার করবেন এবং আপনার কার্ডগুলি কেমন হবে সে সম্পর্কে একটি ভাল ধারণা দেয়৷

অবশ্যই, গ্লাসওয়্যার ডিজাইন করা একটি পুনরাবৃত্ত প্রক্রিয়া এবং আপনি এখন ডিজাইন করেছেন এমন কিছু জিনিস পরিবর্তিত হবে, তবে শুরুতে করা এই কাজের একটি ভাল অংশ থাকা একটি দুর্দান্ত অভিজ্ঞতা তৈরি করার জন্য গুরুত্বপূর্ণ।

UI প্রবাহ

UI ফ্লো ডিজাইন করা একটি সহজ ব্যায়াম এবং আপনাকে কোডের একটি লাইন লেখার আগে আপনার গ্লাসওয়্যারটি কল্পনা করতে দেয়৷ আমরা যে গ্লাসওয়্যার তৈরি করি তার জন্য আমরা এটি সব সময় করি!

চ্যারাডেস নিমজ্জনের প্রধান UI উপাদানগুলি নিয়ে যাওয়া যাক, যাতে আপনি UI কীভাবে কাজ করে এবং আপনার নিজের গ্লাসওয়্যার তৈরি করার সময় এই প্রক্রিয়াটি কতটা সহায়ক হতে পারে সে সম্পর্কে ধারণা পান।

জমকালো পর্দা

যখন তারা Charades নিমজ্জন শুরু করেন তখন এই স্ক্রিনটি প্রথম ব্যবহারকারীরা দেখে। এটি ব্যবহারকারীদের গেমিং অভিজ্ঞতায় ঝাঁপিয়ে পড়ার আগে নিজেদের অভিমুখী হতে দেয় এবং এটি একটি সাধারণ গেমিং গঠন যা ব্যবহারকারীরা পরিচিত।

যখন ব্যবহারকারীরা টাচপ্যাডে ট্যাপ করেন, তখন দুটি আইটেম সহ একটি মেনু সিস্টেম প্রদর্শিত হয়, নতুন গেম এবং নির্দেশাবলী

নির্দেশ মোড

নিমজ্জন তৈরি করার সময়, ইনপুট প্রক্রিয়াগুলি কখনও কখনও অভিনব হয়, তাই এটি ব্যবহারকারীদের জানাতে সাহায্য করে যে তারা কীভাবে নিমজ্জনের সাথে ইন্টারঅ্যাক্ট করবে, বিশেষ করে একটি গেমের সাথে৷

কার্ডের এই সেটটি গেমের জন্য নির্দেশাবলী দেখায় এবং ব্যবহারকারীদের কীভাবে খেলতে হবে এবং UI এর মাধ্যমে নেভিগেট করার জন্য কোন অঙ্গভঙ্গি ব্যবহার করতে হবে সে সম্পর্কে গাইড করে। ব্যবহারকারীরা স্প্ল্যাশ স্ক্রীন থেকে নির্দেশাবলী মেনু আইটেমে আলতো চাপার মাধ্যমে এটি পেতে পারেন।

গেমপ্লে মোড

এই পর্দা প্রধান গেমপ্লে প্রবাহ গঠিত. স্প্ল্যাশ স্ক্রীন থেকে নতুন গেম মেনু আইটেমে ট্যাপ করে ব্যবহারকারীরা এই প্রবাহে যেতে পারেন।

কার্ডের এই সেটটি একটি এলোমেলো শব্দ দেখায় (10টি পর্যন্ত)। ব্যবহারকারীরা সামনের দিকে সোয়াইপ করে একটি শব্দ এড়িয়ে যান এবং শব্দটি সঠিকভাবে বর্ণনা করলে টাচপ্যাডে আলতো চাপুন।

খেলা ফলাফল পর্দা

এই পর্দা খেলার ফলাফল দেখায়. "গেম ওভার" স্ক্রিনটি প্রাথমিকভাবে প্রদর্শিত হবে এবং ব্যবহারকারীরা গেমের ফলাফল দেখতে এগিয়ে যেতে পারবেন। ব্যবহারকারীরা যখন ফলাফল কার্ডগুলির মধ্যে একটিতে ট্যাপ করেন, তখন নতুন গেম মেনু আইটেমটি ব্যবহারকারীদের অন্য গেম শুরু করতে দেয়।

ভয়েস কমান্ড

ডিজাইন প্রক্রিয়ার শুরুতেই আপনার ভয়েস কমান্ড বের করা উচিত। ভয়েস কমান্ড ব্যবহারকারীদের গ্লাস হোম (ঘড়ি কার্ড) ভয়েস মেনু থেকে গ্লাসওয়্যার শুরু করতে দেয়, যদি প্রয়োজন হয় এবং আপনি কীভাবে গ্লাসওয়্যার ডিজাইন করেন তার একটি প্রধান অংশ।

উদাহরণস্বরূপ, পোস্ট একটি আপডেট কমান্ড একটি ফায়ার-এন্ড-ফোরগেট মডেলে ভাল কাজ করে, যেখানে ব্যবহারকারীরা কমান্ড এবং কিছু টেক্সট কথা বলে এবং গ্লাসওয়্যার ব্যবহারকারীর হস্তক্ষেপ ছাড়াই এটি প্রক্রিয়া করে। এটি ব্যবহারকারীদের তারা যা করছে তা দ্রুত ফিরে পেতে দেয়।

অন্যদিকে, একটি গেম খেলার মতো কিছুর জন্য, আপনি সাধারণত ব্যবহারকারীদের একটি স্প্ল্যাশ স্ক্রিনে অবতরণ করতে চান যাতে তারা প্রথমে অভিমুখী হতে পারে। কারণ এই ভয়েস কমান্ডটি সম্ভবত একটি নিমজ্জন চালু করে, আপনি গেম শুরু করার জন্য অতিরিক্ত স্ক্রীন এবং মেনু দেখে ব্যবহারকারীদের ঠিক আছে বলে আশা করতে পারেন। ভয়েস কমান্ডের ঠিক পরেই ব্যবহারকারীদেরকে গেমিং অভিজ্ঞতায় ফেলে দেওয়া সাধারণত গেমগুলির জন্য একটি খারাপ অভিজ্ঞতা।

Charades Play a game ভয়েস কমান্ড ব্যবহার করে। ব্যবহারকারীরা ভয়েস কমান্ড ব্যবহার করার পরে, Charades স্প্ল্যাশ স্ক্রীন প্রদর্শিত হয়, ব্যবহারকারীদের আরও বিকল্পের জন্য ট্যাপ করতে অনুরোধ করে (এই ক্ষেত্রে নতুন গেম বা নির্দেশাবলী )।

কার্ড লেআউট

আপনি নিমজ্জন বা লাইভ কার্ড তৈরি করছেন না কেন, সম্ভব হলে আপনার CardBuilder বা XML লেআউট ব্যবহার করা উচিত।

প্রায়শই, আপনাকে এখনও আপনার নিজস্ব লেআউট তৈরি করতে হবে তাই সর্বোত্তম চেহারার কাচের সামগ্রী পেতে আমাদের UI নির্দেশিকা অনুসরণ করুন।

স্টপওয়াচ সাধারণ লেআউট নির্দেশিকা অনুসরণ করে, কিন্তু ভিউ এবং লেআউটের মতো স্ট্যান্ডার্ড অ্যান্ড্রয়েড উপাদান ব্যবহার করে কাস্টম UI লেআউট রয়েছে।

বিকাশ করুন

নিমজ্জনগুলি বিকাশ করতে, আপনি একই সরঞ্জামগুলি ব্যবহার করেন যা আপনি অ্যান্ড্রয়েড ডেভেলপমেন্টের জন্য ব্যবহার করবেন গ্লাসওয়্যারের বাল্ক তৈরি করতে এবং তারপর GDK অ্যাড-অনে APIগুলি ব্যবহার করুন গ্লাস-নির্দিষ্ট কার্যকারিতা অ্যাক্সেস করতে, যেমন অঙ্গভঙ্গি সনাক্তকারী এবং ভয়েস কমান্ডগুলি৷

আপনি প্রায়শই গ্লাসওয়্যার তৈরি করতে সাধারণ অ্যান্ড্রয়েড উপাদান ব্যবহার করবেন, তবে মনে রাখবেন যে কিছু ধারণা কখনও কখনও ভিন্ন হয়। উদাহরণস্বরূপ, একটি Android কার্যকলাপের সাথে একটি নিমজ্জনকে সমান করবেন না৷ নিমজ্জনগুলি হল গ্লাসের জন্য ডিজাইন করা অভিজ্ঞতা যা এক বা একাধিক Android ক্রিয়াকলাপ, সেইসাথে GDK এবং Android SDK-এর অন্যান্য অনেক উপাদান দিয়ে তৈরি।

বিকাশের বাকি অংশগুলি কীভাবে Charades গেমটি গঠন করা হয়েছে এবং প্রকল্পের প্রধান উপাদান যা আপনি আগে আমদানি করেছেন তা নিয়ে আলোচনা করা হয়েছে। আপনি যাতে অনুসরণ করতে পারেন সেজন্য এখনই Android স্টুডিও চালু রাখা উপকারী। সোর্স কোডটি নিজেই মন্তব্য করা হয়েছে, তাই এই বিভাগটি প্রতিটি ফাইলের উচ্চ-স্তরের উদ্দেশ্য এবং সহায়ক টিপস যা আপনি আপনার নিজের গ্লাসওয়্যারে প্রয়োগ করতে পারেন।

এখানে Charades এর প্রধান উপাদানগুলির একটি সংক্ষিপ্ত বিবরণ রয়েছে:

  • গ্লাস প্রধান ভয়েস মেনুতে হুক করার জন্য ভয়েস ট্রিগার ঘোষণা।
  • স্প্ল্যাশ স্ক্রিন কার্যকলাপ ব্যবহারকারীদের একটি গেম শুরু করতে বা নির্দেশাবলী দেখতে অনুমতি দেয়। এই কার্যকলাপ নির্দেশ কার্যকলাপ বা গেমপ্লে কার্যকলাপ চালু করে
  • টিউটোরিয়াল অ্যাক্টিভিটি ব্যবহারকারীদের দেখায় কিভাবে গেমের মূল ক্রিয়াগুলি বাস্তবে সম্পাদন করে গেমটি খেলতে হয়
  • গেমপ্লে কার্যকলাপ ব্যবহারকারীদের প্রকৃত গেম খেলতে দেয়
  • ফলাফল কার্যকলাপ গেমের স্কোর এবং অনুমান করা এবং অনুমান করা শব্দের একটি তালিকা দেখায়। এটি ব্যবহারকারীদের একটি মেনু আইটেম দিয়ে একটি নতুন গেম শুরু করতে দেয়।

ভয়েস কমান্ড

আপনি একটি XML রিসোর্স ফাইলের সাহায্যে ভয়েস কমান্ড তৈরি করেন যা আপনি যে কমান্ডটি ব্যবহার করছেন সেটি নির্দিষ্ট করে এবং তারপর AndroidManifest.xml ফাইলে 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 - স্ট্যান্ডার্ড কার্ডের মাত্রা এবং প্যাডিং ঘোষণা করে যা এই প্রকল্পের কার্যকলাপ গ্লাস শৈলী অনুসরণ করতে ব্যবহার করে।
  • src/com/google/android/glass/sample/charades/StartGameActivity.java - স্প্ল্যাশ স্ক্রিনের জন্য প্রধান ক্লাস।
  • res/drawable-hdpi/ic_game_50.png - নতুন গেমের জন্য মেনু আইকন।
  • res/drawable-hdpi/ic_help_50.png - নির্দেশাবলীর জন্য মেনু আইকন।

গেম মডেল

একটি গেমের মডেল (গেমের অবস্থা) UI থেকে আলাদা করা সর্বদা একটি ভাল ধারণা। CharadesModel ক্লাস গেমের স্কোর ট্র্যাক করে এবং গেমপ্লে মোডে কতগুলি বাক্যাংশ অনুমান করা হয়েছে এবং বিভিন্ন নির্দেশাবলী এবং ব্যবহারকারীরা নির্দেশাবলী মোডে সেগুলির মধ্য দিয়ে গেছে কি না।

নিম্নলিখিত ফাইলগুলি গেম মডেলের সাথে যুক্ত:

  • src/com/google/android/glass/sample/charades/CharadesModel.java

বেস গেম কার্যকলাপ

যেহেতু গেমের টিউটোরিয়াল এবং গেমপ্লে মোডগুলি একই রকম কার্যকারিতা এবং UI শেয়ার করে, এই বেস ক্লাসটি উভয়ের জন্য সাধারণ কার্যকারিতা সংজ্ঞায়িত করে। নির্দেশাবলী এবং গেমপ্লে মোডের জন্য কার্যকলাপ এই ক্লাস প্রসারিত.

নিম্নলিখিত ফাইলগুলি এই কার্যকলাপের সাথে যুক্ত:

  • 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 - প্রকৃত কার্যকলাপ সংজ্ঞায়িত করে যা পূর্বোক্ত XML সংস্থান দ্বারা সংজ্ঞায়িত লেআউট এবং মেনু দেখায়।
  • res/raw/sad_trombone.ogg - ব্যবহারকারীরা যখন সমস্ত শব্দ বুঝতে পারে না তখন বাজানোর শব্দ৷
  • res/raw/triumph.ogg - ব্যবহারকারীরা যখন 10টি শব্দের মধ্য দিয়ে যায় তখন বাজানোর শব্দ।
  • res/drawable-hdpi/ic_done_50.png - চেকমার্ক আইকন যা সঠিকভাবে অনুমান করা শব্দ দ্বারা প্রদর্শিত হয়।

অ্যানিমেশন সম্পদ

এই অ্যানিমেশন সংস্থানগুলি চ্যারাডে অতিরিক্ত পোলিশ যোগ করে:

  • res/anim/slide_out_left.xml - এটি বাম দিকে স্লাইড করার জন্য একটি প্রস্থান দৃশ্যকে অ্যানিমেট করে (উদাহরণস্বরূপ, যখন একটি শব্দ পাস করা হয়)।
  • res/anim/slide_in_right.xml - এটি ডান থেকে স্লাইড করার জন্য একটি প্রবেশ দৃশ্যকে অ্যানিমেট করে (উদাহরণস্বরূপ, যখন একটি নতুন শব্দ ভিউতে প্রবেশ করে)।
  • res/anim/tug_right.xml - এটি একটি টাগিং অ্যানিমেশন সংজ্ঞায়িত করে যদি আপনি এমন একটি ভিউতে সোয়াইপ করেন যা সোয়াইপ ব্যবহার করে না। এটি ব্যবহারকারীদের জানাতে দেয় যে সোয়াইপের কোন প্রভাব ছিল না।

অ্যান্ড্রয়েড ম্যানিফেস্ট

AndroidManifest.xml ফাইলটি আপনার গ্লাসওয়্যারের প্রধান উপাদানগুলি বর্ণনা করে যাতে সিস্টেম এটি কীভাবে চালাতে হয় তা জানে৷ Charades এর জন্য ম্যানিফেস্ট নিম্নলিখিত জিনিসগুলি ঘোষণা করে:

  • গ্লাসওয়্যারের আইকন এবং নাম। একাধিক গ্লাসওয়্যার একই ভয়েস কমান্ডে সাড়া দিলে গ্লাস প্রধান টাচ মেনুতে এই তথ্য প্রদর্শন করে।
  • চর্যাদের সাথে যুক্ত সকল কার্যক্রম। আপনার গ্লাসওয়্যারের ক্রিয়াকলাপগুলি কীভাবে শুরু করবেন তা সিস্টেমের জন্য এটি প্রয়োজনীয়।
  • ভয়েস কমান্ড এবং একটি অভিপ্রায় ফিল্টার যা একটি নির্দিষ্ট কার্যকলাপ শুরু করে যখন ভয়েস কমান্ড বলা হয়।
  • গ্লাসওয়্যারের জন্য একটি সংস্করণ কোড। এই APK-এর একটি নতুন সংস্করণ MyGlass-এ আপলোড করা হলে এই কোডটি অবশ্যই আপডেট করতে হবে (এবং সাধারণত সংস্করণের নামটিও)।