طريق الطالب لتطوير تطبيقات الجوال

مرحبًا ، أريد أن أتحدث عن كيف أتيت لإنشاء أول لعبة خطيرة نسبيًا لنظامي iOS و Android.

قبل التاريخ


بالعودة إلى المدرسة الثانوية ، كنت أنا وصديقي جيدًا في دروس علوم الكمبيوتر ، أحببت الترميز وحل المشكلات المختلفة باستخدام البرمجة. بالإضافة إلى ذلك ، كنت أحب الألعاب دائمًا ، وأنا ، مثل العديد من المعجبين باللعب ، أُغريت بفرصة شبحية في كتابة بلدي.

كما ينبغي أن يكون ، لقد طورت اهتمامًا بلغات البرمجة الأخرى ، وقررت أن "أصل" من لغة باسكال سيئة السمعة. وقع اختياري على بيثون سيئة السمعة ، لأنني سمعت عن مجموعة واسعة من التطبيقات والتطوير السهل نسبيا. الانتقال قليلاً في قراءة الأدبيات ذات الصلة ، من أجل الممارسة ، قمت بحل المشكلات من مشروع Euler .

في الواقع ، أردت طوال هذا الوقت أن أفعل شيئًا خطيرًا حقًا ، وفي مرحلة معينة شعرت أنه إن لم يكن الآن ، فلن يحدث أبدًا.
أصبحت هذه الألعاب "الخطيرة" ، كما كنت قد خمنت.

بعد أن وجدت مكتبة PyGame لهذا الدرس ، بدأت العمل. بادئ ذي بدء ، قررت أن أمارس شيئًا بسيطًا. مع ذلك ، لم تتريس ، ولكن أدرك ، ولكن ليس على الفور ، لعبة "الحياة" القديمة الجيدة ، والتي كان سعيدًا جدًا بها.

حياة



ثم انضموا إلى إبداعاتي: DX-Ball شبه منتهية ، لعبت بها باهتمام على جهاز الكمبيوتر الخاص بي في منتصف الصفر ، ونسخة من Supaplex في مهدها (نفس الحنين) ، وفي نفس الحالة ، رواق مستوحى من The Binding الحديثة نسبيًا إسحاق.

كرة Dx



إسحاق



بداية الطلاب والنبضات الأولى لإنشاء مشاريعهم الخاصة



بمرور الوقت ، أدركت شيئًا غير سار بالنسبة لي: لم أنتهي من أي شيء من المشاريع ، رغم أنه كان هناك في البداية أكثر من الحماس الكافي. وهكذا ذهب الأمر: أقل وأقل عدت إلى التطورات القديمة ، وأحيانًا استحوذت بحماس على تطورات جديدة ، لكن النتيجة كانت واحدة.

ثم ، بدأت الفترة الأكثر رعبا في حياة أي طالب: الامتحان. لقد تلاشت البرمجة في الخلفية ، ولكن بعد اجتياز الاختبارات ودخول "الإلكترونيات والإلكترونيات النانوية" في كلية سانت بطرسبرغ التقنية ، عدت إلى البرمجة. علاوة على ذلك ، هزتني حياة الطلاب قليلاً ، وعلمتني المسؤولية ، وهذا هو السبب في أنني قررت أنه من الآن فصاعدًا سوف أنهي جميع مشاريعي.

لذلك قررت أن أكتب شيئًا للأندرويد. توقف كل شيء على نفس بيثون ، لأنه كان الشيء الوحيد الذي أعرفه بطريقة أو بأخرى وما الذي يمكنني التمسك به. بدأ تعلم إطار عمل Kivy. لسوء الحظ ، بقدر ما لا أرغب فيه ، فإن Python + Kivy ليس الخيار الأفضل للتطوير لنظام Android ، وأدركت أنني لا أستطيع المضي قدمًا في هذا الاتجاه.

نتيجةً لذلك ، بعد أن أمضيت وقتًا طويلاً في تطبيق بسيط كاختبار مع استنتاج العديد من الخيارات للنتيجة النهائية ، ما زلت أنتهي بهذا المشروع المتواضع وقمت حتى بتحميله على GooglePlay. بعد ذلك ، في أعقاب شعبية معركة معركتي موسيقى الراب المشهورتين ، عرض صديقي إجراء اختبار حول هذا الموضوع وإعداد أسئلة له. لذلك ظهر مشروعنا المكتمل الأول ، وظهر فريق من شخصين ، يحمل اسم "Aspid Dynamics".



قضى معظم الوقت في التعرف على Kivy ومكتبة أخرى في KivyMD قدمت عناصر تصميم المواد من Google. قضى بقية الوقت في رسم الرموز وإعادة تصميم عديدة (اتضح في النهاية ، ليس للغاية ، ولكن كان يمكن أن يكون أسوأ). بما أنني لم أكن أعمل وحدي ، فقد جعلت عملية التطوير أسهل قليلاً وحفزتني.

بدايات جديدة


لم تكن النتيجة ما أردت ، لكنني قررت المضي قدمًا. نظرت عن كثب إلى أداة تطوير جديدة بالنسبة لي ، والتي كانت محرك الوحدة المعروف. أخيرًا تم اختيار اتجاه التطوير الإضافي ، يبقى (مجرد شيء) للتعرف على C # واستكشاف قدرات الوحدة نفسها. وهكذا ، اقتربنا من الأحداث التي وقعت مؤخرا.

كما كان من قبل ، قررت عدم معالجة شيء مستحيل على الفور. كانت الفكرة بسيطة: إنشاء لعبة يقوم فيها الأشخاص بكتابة الكلمات المناسبة لحالة محددة مسبقًا. مثال بسيط واحد: "أدخل الكلمات التي تحتوي على الأحرف الثلاثة" o "" ، وبعدها تدخل ، على سبيل المثال ، "الجرس". في البداية ، لم تكن الفكرة جديدة ، لكن بعد الاطلاع على سوق Play ، لم أجد مثل هذه الألعاب التي أقنعتني في النهاية بنجاح الفكرة.

مشروع "خبير الكلمات"


بعد اختيار الاسم التافه ، لكنه جذاب ، "Word Expert" للعبة ، بدأت أفكر بعناية في عملية التطوير. بدا التنفيذ غير معقد ، على الأقل بعد تحليل سطحي. ربما يكون الأمر كذلك ، إذا قمنا بإضفاء الطابع الرسمي على الميكانيكا الأساسية فقط ، ولكن مع النظر المفصل ، نمت الوظيفة بشكل متكرر وتم توسيعها بشكل كبير.

بعد الانتهاء من وصف المشروع ، بدأت بحماس في تنفيذ نقطة تلو الأخرى. أصبحت الفكرة الرئيسية حقيقةً بسرعة كبيرة: تم إضافة القدرة على إنشاء مستويات بناءً على عدة قوالب.

القوالب هي نوع من الأساس لبعض المعايير التي يجب أن تفي بها كلمة ما ، من بينها: بداية كلمة على "سلسلة فرعية" ، أي حرف أو تسلسل من الحروف ، ومحتوى "السلسلة الفرعية" في الكلمة ، ومحتوى الأحرف N ، والتساوي / غرابة عدد الحروف في الكلمة ، إلخ.

علاوة على ذلك ، تم التحقق من الكلمات التي أدخلها اللاعب للتأكد من توافقها مع القالب والحضور في القاموس. تم منح النقاط وفقًا لتكرار الكلمة ، وبدأت في تعيين مستويات النجاح وفقًا لعدد النقاط التي تلقيتها في 5 دقائق. في المستويات القياسية للعبة ، يحتاج الشخص إلى إدخال أكبر عدد ممكن من الكلمات حتى يتمكن من اجتياز المستويات التالية.

كلمة الخبراء



مشاكل جديدة وحلول غير متوقعة


كل شيء سيكون على ما يرام ، ولكن اتضح أنه من الصعب للغاية جعل العديد من المستويات على عكس بعضها البعض. مرة أخرى ، تولى صديقي مهمة مساعدتي ، وبحلول الوقت الذي كنت فيه في الأربعينيات من العمر ، كانت المشكلة لا تتمثل في صعوبة التفكير في المستويات فحسب ، ولكن نظرًا لوجود بعض الملامح اللغوية للإدراك البشري ، فقد اخترنا في كثير من الأحيان رسائل معينة و أنماط ، وتجاهل بعناد الآخرين.

وقد لوحظ هذا في الوقت المناسب ، وكانت هناك محاولة لتعزيز السيطرة على نفسي ، لكنها لم تقدم النتائج المرجوة ، لذلك اضطررت إلى حساب وتسجيل الترددات لاستخدام الحروف والأنماط في مستوياتنا. بعد ذلك ، أصبح من الأسهل بكثير الاعتناء بنفسك ، ولكن في النهاية تم تنفيذ 60 مستوى فقط.

نظرًا لحقيقة أن الحاجة إلى اختراع المستويات أعاقت التطوير ، وكذلك بسبب المشكلات الموضحة أعلاه ، قررت تنفيذ مولد مستوى من شأنه أن ينشئ مهمة عاقلة تستند إلى قوالبنا. لم أتمكن من العثور على ارتباط بين عدد الكلمات المطابقة للتخصيص وتكرارها وعدد النقاط المكتسبة (وهذا يعني أن المستويات يجب أن تكون متوازنة أيضًا - يدويًا).

يبدو أن هذا يرجع إلى حقيقة أن الكلمات أسهل في بعض الظروف ، حتى لو كان هناك عدد أقل منها. على سبيل المثال ، في كلمات الوعي بكل بساطة منبثقة ، مع شرط البدء على بعض السلسلة الفرعية ، على سبيل المثال ، تأخذ الكلمات على "ba". يبدو الأمر كما لو أننا نقول لأنفسنا هذا الشرط الأولي "ba" ، والدماغ يكمله بسهولة بكلمات كثيرة: "الخزان" ، "البنك" ، "الموز" ، إلخ.

ولكن إذا كان الشرط لا يحتوي على أكثر من 4 حروف العلة و 8 أحرف بالضبط ، فعلى الرغم من وجود 6 كلمات أكثر من هذه الكلمات ، فمن الواضح أن سرعة الاختيار ستنخفض. في بعض القوالب ، عندما نجد كلمة واحدة ، نجد أنفسنا في مجموعة كاملة (على سبيل المثال: ننتهي بـ "شجرة التنوب" ، إذا توصلنا إلى معلم الكلمات ، يمكننا أن نرى أن العديد من المهن ينتهي بها المطاف مثل: "البناء" و "السائق" و وما إلى ذلك). إذا لم يكن هناك اتصال ، لم يكن هناك شيء يوحد هذه الكلمات ، فبفضل عملية بحث بسيطة في أذهاننا كنا سنخمن الكثير.

تلميع ، وسائط جديدة ، اللمسات الأخيرة


قام المولد الذي تم إنشاؤه بالفعل بتيسير إنشاء المستويات وزيادة عدد المستويات تدريجياً ، وصلت أنا وصديقي بالفعل إلى مئات. استلهم الأمر نجاح المولد الذي شارك في إنشاء المستويات التي قررنا إدخالها في وضع لعبة جديد.

كان "البقاء" ، حيث تحتاج إلى إدخال الكلمات حتى تنتهي الموقت. الفرق من الوضع الكلاسيكي هو حقيقة أن اللاعب هنا يواجه مهمة إدخال كلمة في N ثانية وفقًا لحالة معينة. عند إتمام الشرط بنجاح ، يتم إنشاء مهمة جديدة ، ويتم تمديد المؤقت.

في وقت لاحق ، قررنا الحفاظ على المحتوى باستمرار ، نحتاج إلى إضافة لاعبين متعددين. بالطبع ، من المثير للاهتمام أن تقيس مفرداتك مع صديق في العطلة ، أو تلعب مع شخص غريب عبر الإنترنت. يعني وضع "الكلاسيكية" متعددة اللاعبين منافسة في عدد النقاط التي يتم تلقيها خلال فترة زمنية معينة. منذ وقت طويل للغاية مع تنفيذ اللعبة عبر الشبكة ، ما زلت أحسب انتهيت من وضعي اللعب المتعدد المتوافقين.

جلبت لنا الكثير من المشاكل في عملية التطوير. كان السبب الرئيسي هو أنني ، بنفسي ، كنت بعيدًا عن أن أكون مصممًا ، ولم يكن صديقي أيضًا يمتلك المهارة اللازمة ، وأردت تقديم صورة مناسبة. وافق أحد معارفه الثالث على مساعدتي ، لكن بعد عدة مسودات لم يتم إنهاؤها ، لم يتمكن من المتابعة.

نتيجة لذلك ، من خلال المعالجة المتكررة وجمع التعليقات من الأصدقاء ، قمت أنا شخصياً بتطوير الإصدار النهائي من التصميم.

لعبة إطلاق ، خطط للمستقبل


في البداية ، كان من المفترض أن يدخل Word Expert إلى سوق Play فقط بسبب الميزانية المحدودة ، لكن صديقي ساعدني في الحصول على 99 دولارًا اللازمة للإصدار على AppStore.

نحن نخطط لاستكمال وتحديث اللعبة. مستويات إضافية ، إنجازات ، تقييمات اللاعب وأكثر من ذلك بكثير. ربما سنجعل التوطين باللغة الإنجليزية ، وهو مكلف قليلاً في سياق هذه اللعبة.

شكرًا جزيلاً على اهتمامك بكل من يقرأ هذا المنشور الطويل.

مع خالص التقدير لك
فريق Aspid Dynamics.

Source: https://habr.com/ru/post/ar459928/


All Articles