DrumHero: Men hayotimda birinchi o'yinni qanday qildim

Bu yil IT SCHOOL SAMSUNG ijtimoiy va taʼlim dasturiga 5 yosh toʻladi (IT SCHOOL haqida oʻqing shu yerda) va shu munosabat bilan biz bitiruvchilarimizni o'zlari va mobil ilovalarini yaratish tajribasi haqida suhbatlashishga taklif qildik. Ishonamizki, ko'p istak bilan hamma muvaffaqiyatga erisha oladi!

Ushbu bo'limning birinchi shunday mehmoni SAMSUNG IT SCHOOLning 2017 yil bitiruvchisi, hozirda MIEM NRU HSE talabasi Shamil Magomedov bo'ldi. Shomil, band bo'lishingizga qaramay, vaqt ajratganingiz uchun ushbu maqolani yozishga katta rahmat!

Hammaga salom!
Bugun men o'yin tufayli SAMSUNG IT SCHOOLga "shartli ravishda qabul qilingan" dan Butunrossiya uyali aloqalarni rivojlantirish tanlovida finalchiga aylanganim haqida gapirmoqchiman. Baraban qahramoni.

DrumHero: Men hayotimda birinchi o'yinni qanday qildim

Sana oldin

10-sinfda o'qiyotganimda IT MAKTABga kirganman. Treningning dastlabki kunlaridanoq men boshqa bolalardan ortda qoldim va buni kurs boshlanishidan oldin ham oldindan aytish mumkin edi (bu mening kirish imtihonlarida juda past ball olganimdan dalolat beradi). Bu dasturlash tamoyillarining barchasi, Android platformasining tuzilishi va Java tili, hammasini qanday tushunish mumkin?

Yaxshiyamki, menda rivojlanish ko'nikmalarini muvaffaqiyatli egallash uchun kerak bo'lgan hamma narsa bor edi: oldinga siljish va to'xtamaslik uchun cheksiz xohish.

Ko'p vaqtimni uy vazifalariga bag'ishlab, o'qituvchi Vladimir Vladimirovich Ilyin bilan mashg'ulotlardan keyin doimo kechikib (men u bilan juda omadli edim), men o'qishning tez sur'atlariga moslasha boshladim va bitiruv loyiham haqida o'ylay boshladim.

DrumHero: Men hayotimda birinchi o'yinni qanday qildim

O'qituvchi bilan - V.V.Ilyin

Fikr izlang

Ko'pchilik loyihani yaratishda, xoh u startap bo'lsin, xoh tajriba orttirish uchun kichik narsa bo'lsin, barcha qiyinchilik rivojlanishda yotadi, deb o'ylaydi: bir nechta kod yozish, yangi kutubxonalarni o'rganish, doimiy sinovdan o'tish - dahshat! Ishoning, bu umuman to'g'ri emas. Men o'zim g'oyani tanlash va amalga oshirish zaruratiga duch kelgunimcha, xuddi shunday fikr yuritdim, bu eng qiyin bosqichlardan biri bo'lib chiqdi.

O'rganishning dastlabki bosqichida g'oyani tanlashda eng qiyin narsa bu amalga oshirishning murakkabligini aniqlashdir: uzoq vaqt davomida men qila oladigan va bir vaqtning o'zida yoqtiradigan dasturni topa olmadim.

Eng muhimi, men musiqiy o'yin yozmoqchi bo'ldim, lekin mening qobiliyatlarim haqidagi shubhalar haqiqatan ham bu yo'lda to'sqinlik qildi. Ishni tugatishning iloji yo'qdek tuyuldi va shuning uchun men tanlovimni bir necha bor o'zgartirdim: mobil bilyard, bouling, yuguruvchi va boshqalar. Oxir-oqibat, men bundan bitta saboq oldim: qiyinchiliklar doimo yuzaga keladi, dastur g'oyasidan qat'i nazar, va shuning uchun eng muhimi, o'zingizga yoqqan narsani tanlash va oxirigacha borishdir.

DrumHero: Men hayotimda birinchi o'yinni qanday qildim

Menga har doim Guitar Hero o'yini yoqdi

O'yin mantiqini amalga oshirish

Guitar Hero kabi ilovalar ortidagi asosiy g'oya musiqaning zarbasi uchun ekranga tegishdir.
Avvalo, men o'yin mantig'ini amalga oshirishni boshladim:

  1. Eslatmalar harakatlanadigan yozuvlar, tugmalar va chiziqlar sinflari yaratildi.
  2. Men tuvalni ilovaning butun ekraniga joylashtirdim va unda men allaqachon yaratilgan sinflar ob'ektlarining joylashishini tasvirlab berdim.
  3. Bir vaqtning o'zida qo'shiqning mp3 faylini va ma'lumotlar bazasidan olingan notalar qatorini ishga tushirishni amalga oshirdi va voila! O'yinning birinchi qoralamalari allaqachon mening smartfonimda :)

DrumHero: Men hayotimda birinchi o'yinni qanday qildim

O'yinning birinchi versiyasi

Ha, bu "ta'sirli" ko'rinadi, ammo bu o'yinni sinab ko'rish uchun deyarli etarli edi! Oxirgi zarur qadam qo'shiq uchun notalar ro'yxati edi va men uni amalga oshirish ustida ishlashga ko'p vaqt sarflashim kerak edi.
Printsip juda oddiy: ma'lumotlar bazasi jadvalining qiymatlaridan foydalanib, dastur "Note" sinfining ob'ektlarini yaratadi va olingan eslatmalarni massivga qo'shadi. Jadval ikkita ustundan iborat:

  • 1 dan 4 gacha bo'lgan qator raqami, buning ustiga eslatma va
  • ekranda paydo bo'lishi kerak bo'lgan vaqt.

Agar hamma narsa juda oddiy bo'lsa, nega men ko'p vaqt sarfladim? Ushbu ma'lumotlar bazasini to'ldirish uchun!
Afsuski, o'sha paytda men qo'shiqning mp3 faylidan o'zimga kerakli formatdagi notalarni olish jarayonini qanday avtomatlashtirishni tushunolmadim va shuning uchun men ushbu ustunlarni quloq bilan qo'lda to'ldirishga majbur bo'ldim.

DrumHero: Men hayotimda birinchi o'yinni qanday qildim

Ma'lumotlar bazasini eslatmalar bilan to'ldirish jarayoni

Bu usul menga o'yinni erta ishlab chiqish va sinab ko'rishni boshlashimga imkon berdi, ammo men boshqacha narsani o'ylab topishim kerakligi aniq edi. Bu erda o'qituvchim Ilyin Vladimir Vladimirovich menga katta yordam berdi, u MIDI formatining mavjudligi haqida gapirdi, uning tuzilishini tushuntirdi va MIDI fayllari bilan ishlash uchun topgan kutubxonamni aniqlashga yordam berdi.

Ushbu formatning go'zalligi shundaki, unda har bir asbob allaqachon alohida trek bo'lib, unda ma'lum "notalar" joylashgan. Shunday qilib, siz barcha qaydlarni osongina aylanib o'tishingiz va trek va vaqtga qarab ularni avtomatik ravishda ma'lumotlar bazasiga qo'shishingiz mumkin. Bu juda muhim xususiyat, chunki u tufayli men ushbu janrdagi o'yinlar muammosini hal qila oldim: o'z qo'shiqlarimni qo'sha olmaslik. To'g'ri, MIDI formatining katta kamchiligi bor - ovoz (barchamiz retro o'yinlardagi ohanglarni eslaymiz, to'g'rimi?).

O'yin jarayonini asta-sekin takomillashtirib, men dasturni to'liq ishlaydigan holatga keltirdim, ko'plab "xususiyatlarni" qo'shdim: qurilma xotirasidan yoki bulutli katalogdan o'z qo'shiqingizni qo'shish qobiliyati, qiyinchilik darajasini tanlash, boshlang'ich rejimi va boshqalar.
Va nihoyat men "tort ustidagi gilos" ga keldim ...

dizayn

Bu erda mening o'yin haqidagi "ko'rish" timsoli boshlandi. Avvalo, rasm chizish dasturini tanlashni boshladim. Menda grafik dizayn bo'yicha tajriba yo'q edi, shuning uchun menga o'rganish oson (Aytgancha, Photoshop), lekin ayni paytda moslashuvchan va qulay (Paint, uzr) dastur kerak edi. Tanlov Inkscape-ga tushdi - bu asosan svg formatida vektorli tasvirlarni tahrirlash uchun yaxshi vosita.

Ushbu dastur bilan bir oz ko'proq tanish bo'lganimdan so'ng, men o'yinning har bir elementini chizishni boshladim va uni turli xil ekran o'lchamlari uchun mos keladigan turli xil piksellar sonida saqlashni boshladim. Shuningdek, notalarning portlashi animatsiyasini amalga oshirishga urinishlar bo'ldi va natijada dizaynning yaroqsizligiga qaramay, men mamnun bo'ldim. Albatta, loyihani yakunlash bilan bir qatorda, men yangi ranglar qo'shib, dizayn ustida ishlashni davom ettirdim (gradientlar "birinchi qarashda" muhabbatdir).

DrumHero: Men hayotimda birinchi o'yinni qanday qildim

Dizaynning birinchi versiyasi (ikkita ekran, animatsiyasiz, eski nom)

DrumHero: Men hayotimda birinchi o'yinni qanday qildim

Dizaynning ikkinchi versiyasi (4 ekran, boshlang'ich ekran turli xil ranglar bilan silliq pulsatsiyalanadi, hamma joyda gradyanlar)

Yakuniy loyihamni himoya qildim va saralash bosqichidan o‘tganimni va IT SCHOOL talabnomalari tanlovining final bosqichiga taklif etilganimni bilib, juda xursand bo‘ldim. Tanlovga bir oycha vaqt qoldi va men dizayn sohasida professionalroq odamni yollash haqida jiddiy o'yladim. Qidiruv behuda emas edi: ma'lum bo'lishicha, akamning yaqin do'sti ajoyib dizayner! U darhol menga yordam berishga rozi bo'ldi va hozirgi o'yin dizayni uning kreditidir.

DrumHero: Men hayotimda birinchi o'yinni qanday qildim

Yakuniy dizayn

Nashr

Chiqarish versiyasi ustida ishlashni tugatgandan so'ng, men darhol Google Play Marketda nashr qilish uchun dasturni tayyorlashni boshladim. Standart protsedura: dasturchi hisobini olish, dastur sahifasini yaratish va h.k. Ammo bu bo'lim bu haqda emas.

Bu hikoyada eng hayratlanarli narsa bu yuklab olish statistikasi. Avvaliga DrumHero-ni yuklab olishlar soni ba'zi Evropa mamlakatlari, AQSh va MDH mamlakatlarida asta-sekin va deyarli teng ravishda oshdi, biroq bir oy o'tdi va yuklab olishlar soni 100 000 yuklamaga etdi! Qizig'i shundaki, yuklab olishlarning aksariyati Indoneziyadan kelgan.

xulosa

DrumHero mening birinchi jiddiy loyiham bo'lib, u erda men dasturlashni o'rgandim. U meni nafaqat SAMSUNG IT SCHOOL loyihasi tanlovining Butunrossiya finaliga olib chiqdi, balki menga grafik dizayn, GameDev, Play Market xizmati bilan o‘zaro aloqada bo‘lish va boshqa ko‘p narsalarda katta tajriba berdi.

DrumHero: Men hayotimda birinchi o'yinni qanday qildim

Albatta, hozir men o'yinda ko'plab kamchiliklarni ko'rmoqdaman, garchi bugungi kunda yuklab olishlar soni deyarli 200 000 ga etgan bo'lsa-da, mening rejalarim yangi versiyani chiqarish, barqarorlikni oshirish, o'yin jarayonini yaxshilash va yuklab olishlar sonini ko'paytirish bo'yicha fikrlar mavjud.

FAQ:
SAMSUNG IT SCHOOL - bu Rossiyaning 25 ta shahrida faoliyat yurituvchi o'rta maktab o'quvchilari uchun bepul kunduzgi qo'shimcha ta'lim dasturi.
Talabalarning bitiruv loyihasi mobil ilova hisoblanadi. Bu o'yin, ijtimoiy dastur, rejalashtiruvchi, ular xohlagan narsa bo'lishi mumkin.
Siz 2019-yil sentyabr oyidan boshlab oʻqishga ariza topshirishingiz mumkin сайт dasturlari.


Manba: www.habr.com

a Izoh qo'shish