DrumHero: كيف صنعت أول لعبة في حياتي

يبلغ عمر البرنامج الاجتماعي والتعليمي IT SCHOOL SAMSUNG هذا العام 5 سنوات (اقرأ عن IT SCHOOL هنا)، وبهذه المناسبة قمنا بدعوة خريجينا للحديث عن أنفسهم وعن تجربتهم في إنشاء تطبيقات الهاتف المحمول الخاصة بهم. نحن نؤمن أنه مع الكثير من الرغبة، يمكن للجميع تحقيق النجاح!

كان أول ضيف في هذا القسم هو شامل ماجوميدوف، وهو خريج عام 2017 من SAMSUNG IT SCHOOL، وهو الآن طالب في MIEM NRU HSE. شامل، شكرًا جزيلاً لك على الوقت الذي أمضيته في كتابة هذا المقال، على الرغم من جدول أعمالك المزدحم!

مرحبا بالجميع!
أود اليوم أن أتحدث عن كيفية تحولي من "القبول المشروط" في مدرسة SAMSUNG IT SCHOOL إلى الدور النهائي في مسابقة تطوير الأجهزة المحمولة لعموم روسيا بفضل اللعبة DrumHero.

DrumHero: كيف صنعت أول لعبة في حياتي

قبل التاريخ

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

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

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

DrumHero: كيف صنعت أول لعبة في حياتي

مع المعلم - V. V. إيلين

ابحث عن فكرة

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

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

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

DrumHero: كيف صنعت أول لعبة في حياتي

لقد أحببت دائمًا لعبة Guitar Hero

تنفيذ منطق اللعبة

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

  1. تم إنشاء فئات من الملاحظات والأزرار والخطوط التي ستتحرك الملاحظات عبرها.
  2. لقد وضعت اللوحة القماشية على شاشة التطبيق بأكملها وقد وصفت بالفعل موقع كائنات الفئات التي تم إنشاؤها عليها.
  3. تم تنفيذ الإطلاق المتزامن لملف mp3 لأغنية ومجموعة من الملاحظات التي تم الحصول عليها من قاعدة البيانات وفويلا! المسودات الأولى للعبة موجودة بالفعل على هاتفي الذكي :)

DrumHero: كيف صنعت أول لعبة في حياتي

ервая версия игры

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

  • رقم السطر من 1 إلى 4 الذي يجب أن تذهب إليه الملاحظة و
  • الوقت الذي يجب أن يظهر فيه على الشاشة.

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

DrumHero: كيف صنعت أول لعبة في حياتي

عملية ملء قاعدة البيانات بالملاحظات

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

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

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

تصميم

وهنا بدأ تجسيد "رؤيتي" للعبة. بادئ ذي بدء، بدأت في اختيار برنامج الرسم. لم تكن لدي أي خبرة في التصميم الجرافيكي، لذلك كنت بحاجة إلى برنامج يسهل تعلمه (بالمناسبة، Photoshop)، ولكنه أيضًا مرن ومريح (الرسام، آسف). وقع الاختيار على Inkscape - وهو أداة جيدة لتحرير الصور المتجهة، خاصة بتنسيق SVG.

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

DrumHero: كيف صنعت أول لعبة في حياتي

النسخة الأولى من التصميم (شاشتين، بدون رسوم متحركة، الاسم القديم)

DrumHero: كيف صنعت أول لعبة في حياتي

النسخة الثانية من التصميم (4 شاشات، الشاشة الأولية تنبض بسلاسة مع ألوان مختلفة، وتدرجات في كل مكان)

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

DrumHero: كيف صنعت أول لعبة في حياتي

تصميم نهائي

منشور

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

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

اختتام

DrumHero هو أول مشروع جدي لي حيث تعلمت البرمجة. لم يقودني فقط إلى النهائي الروسي لمسابقة مشروع SAMSUNG IT SCHOOL، ولكنه أعطاني أيضًا الكثير من الخبرة في التصميم الجرافيكي، وGameDev، والتفاعل مع خدمة Play Market، وغير ذلك الكثير.

DrumHero: كيف صنعت أول لعبة في حياتي

بالطبع الآن أرى العديد من أوجه القصور في اللعبة، على الرغم من أن عدد التنزيلات اليوم وصل إلى ما يقرب من 200. خططي هي إصدار نسخة جديدة، وهناك أفكار حول كيفية زيادة الاستقرار وتحسين اللعب وزيادة عدد التنزيلات.

أسئلة وأجوبة:
SAMSUNG IT SCHOOL هو برنامج تعليمي إضافي مجاني بدوام كامل لطلاب المدارس الثانوية، ويعمل في 25 مدينة في روسيا.
مشروع تخرج الطلاب عبارة عن تطبيق على الهاتف المحمول. يمكن أن تكون لعبة، أو تطبيقًا اجتماعيًا، أو مخططًا، أو أي شيء يريدونه.
يمكنك التقديم للتدريب اعتبارًا من سبتمبر 2019 على على الانترنت برنامج.


المصدر: www.habr.com

إضافة تعليق