DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Энэ жил IT SCHOOL SAMSUNG нийгэм, боловсролын хөтөлбөр 5 нас хүрч байна (IT SCHOOL-ийн тухай уншина уу энд), мөн энэ үеэр бид төгсөгчдөө өөрсдийнхөө тухай болон гар утасны програмаа бүтээх туршлагаасаа ярихыг урьсан. Хүн бүр маш их хүсэл эрмэлзэлтэй байж амжилтанд хүрч чадна гэдэгт бид итгэдэг!

Энэ хэсгийн анхны зочин нь SAMSUNG IT SCHOOL-ийн 2017 оны төгсөгч, одоо MIEM NRU HSE-ийн оюутан Шамил Магомедов байлаа. Шамил, завгүй байсан ч цаг зав гарган энэхүү нийтлэлийг бичсэнд маш их баярлалаа!

хүн бүрт Сайн байна уу!
Өнөөдөр би тоглоомын ачаар SAMSUNG IT SCHOOL-д "болзолт элсэлт"-ээс Бүх Оросын гар утасны хөгжлийн тэмцээнд финалд шалгарсан тухайгаа ярихыг хүсч байна. Бөмбөр баатар.

DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Эрьт урьдын түүх

Би 10-р ангид байхдаа МТ СУРГУУЛЬ-д орсон. Сургалтын эхний өдрүүдээс л би бусад залуусаас хоцорч байсан бөгөөд энэ нь курс эхлэхээс өмнө урьдчилан таамаглах боломжтой байсан (энэ нь миний элсэлтийн шалгалтын маш бага оноогоор нотлогдсон). Энэ бүх програмчлалын зарчмууд, Android платформын бүтэц, Java хэл, энэ бүгдийг хэрхэн ойлгох вэ?

Аз болоход надад хөгжлийн ур чадварыг амжилттай эзэмшихэд шаардлагатай бүх зүйл байсан: зогсохгүй урагшлах хязгааргүй хүсэл.

Гэрийн даалгаварт маш их цаг зарцуулж, багш Владимир Владимирович Ильинтэй хичээлийн дараа байнга хоцорч (би түүнд үнэхээр азтай байсан) суралцах хурдад дасан зохицож, төгсөлтийн төслийнхөө талаар бодож эхлэв.

DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Багшийн хамт - В.В.Ильин

Санаа хайх

Олон хүмүүс төсөл зохиохдоо гарааны бизнес эсвэл туршлага хуримтлуулах жижиг зүйл ч бай бүх бэрхшээл нь хөгжилд оршдог гэж боддог: олон код бичих, шинэ номын санд суралцах, байнга туршиж үзэх - аймшиг! Надад итгээрэй, энэ нь огт үнэн биш юм. Санаа сонгох, хэрэгжүүлэх хэрэгцээтэй тулгарах хүртлээ би яг ийм байдлаар бодож үзсэн бөгөөд энэ нь хамгийн хэцүү үе шатуудын нэг болсон юм.

Сургалтын эхний шатанд санаа сонгоход хамгийн хэцүү зүйл бол хэрэгжилтийн нарийн төвөгтэй байдлыг тодорхойлох явдал юм: би удаан хугацаанд хийж чадах, нэгэн зэрэг дуртай програмаа гаргаж чадахгүй байсан.

Хамгийн гол нь би хөгжмийн тоглоом бичихийг хүсч байсан ч миний чадварт эргэлзэх нь үнэхээр саад болсон. Ажлаа дуусгах боломжгүй юм шиг санагдаж байсан тул би сонголтоо нэгээс олон удаа өөрчилсөн: хөдөлгөөнт бильярд, боулинг, гүйгч гэх мэт. Эцэст нь би үүнээс нэг сургамж авсан: бэрхшээл үргэлж гарч ирэх болно, хэрэглээний санаанаас үл хамааран, тиймээс хамгийн гол нь юу дуртайгаа сонгоод эцсээ хүртэл явах.

DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Би үргэлж Guitar Hero тоглоомд дуртай байсан

Тоглоомын логикийн хэрэгжилт

Guitar Hero гэх мэт программуудын үндсэн санаа бол хөгжмийн хэмнэлээр дэлгэцэн дээр дарах явдал юм.
Юуны өмнө би тоглоомын логикийг хэрэгжүүлж эхэлсэн:

  1. Тэмдэглэлүүд шилжих тэмдэглэл, товчлуур, зураасны ангиллыг үүсгэсэн.
  2. Би зотон зургийг програмын бүхэл бүтэн дэлгэц дээр байрлуулсан бөгөөд үүн дээр би үүсгэсэн ангиудын объектуудын байршлыг аль хэдийн дүрсэлсэн.
  3. Дууны mp3 файл болон мэдээллийн сангаас олж авсан тэмдэглэлийн массивыг нэгэн зэрэг эхлүүлсэн. Тоглоомын эхний нооргууд аль хэдийн миний ухаалаг утсанд байгаа :)

DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Тоглоомын анхны хувилбар

Тийм ээ, энэ нь "сүртэй" харагдаж байна, гэхдээ энэ нь тоглоомыг туршиж үзэхэд бараг л хангалттай байсан! Хамгийн сүүлчийн шаардлагатай алхам бол дууны нотуудын жагсаалт байсан бөгөөд би үүнийг хэрэгжүүлэхийн тулд маш их цаг зарцуулсан.
Энэ зарчим нь маш энгийн: өгөгдлийн сангийн хүснэгтийн утгуудыг ашиглан програм нь "Тэмдэглэл" ангийн объектуудыг үүсгэж, үүссэн тэмдэглэлийг массив дээр нэмдэг. Хүснэгт нь хоёр баганаас бүрдэнэ.

  • Тэмдэглэл явах ёстой 1-ээс 4 хүртэлх мөрийн дугаар
  • дэлгэцэн дээр гарч ирэх цаг.

Хэрэв бүх зүйл маш энгийн бол би яагаад маш их цаг зарцуулсан бэ? Энэ мэдээллийн санг дүүргэхийн тулд!
Харамсалтай нь, тэр үед би дууны mp3 файлаас хэрэгтэй форматтай нотыг хэрхэн автоматжуулахаа мэдэхгүй байсан тул эдгээр баганыг гараар бөглөх шаардлагатай болсон.

DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Мэдээллийн санг тэмдэглэлээр дүүргэх үйл явц

Энэ арга нь надад тоглоомыг эртнээс хөгжүүлж, туршиж эхлэх боломжийг олгосон ч би өөр зүйл бодож олох хэрэгтэй болсон нь тодорхой байсан. Энд миний багш Ильин Владимир Владимирович надад маш их тусалсан, тэр MIDI формат байдаг тухай ярьж, түүний бүтцийг тайлбарлаж, MIDI файлуудтай ажиллахад олсон номын санг олоход тусалсан.

Энэ форматын гоо үзэсгэлэн нь түүний доторх хэрэгсэл бүр нь тодорхой "тэмдэглэл" байрладаг тусдаа зам юм. Ингэснээр та бүх тэмдэглэлийг хялбархан эргүүлж, зам, цаг хугацаанаас хамааран тэдгээрийг мэдээллийн санд автоматаар нэмэх боломжтой. Энэ бол маш чухал өмч, учир нь түүний ачаар би энэ төрлийн тоглоомын асуудлыг шийдэж чадсан: өөрийн дууг нэмж оруулах боломжгүй болсон. Үнэн, MIDI формат нь том сул талтай - дуу чимээ (бид бүгд чимэг тоглоомын аялгууг санаж байна, тийм ээ?).

Тоглоомын явцыг аажмаар сайжруулснаар би програмыг бүрэн ажиллагаатай болгож, олон "онцлогуудыг" нэмсэн: төхөөрөмжийн санах ой эсвэл үүлэн каталогоос өөрийн дууг нэмэх чадвар, хүндрэлийн түвшний сонголт, анхан шатны горим гэх мэт.
Тэгээд эцэст нь би "бялуу дээрх интоор" дээр ирлээ ...

Зураг төсөл

Эндээс л миний тоглоомын “алсын хараа”-ны биелэл эхэлсэн юм. Хамгийн түрүүнд зургийн программ сонгож эхэлсэн. Би график дизайны талаар ямар ч туршлагагүй байсан тул сурахад хялбар програм хэрэгтэй байсан (Дашрамд хэлэхэд Photoshop), гэхдээ уян хатан, тохиромжтой (Будаг, уучлаарай). Сонголт нь Inkscape дээр унасан - вектор дүрсийг ихэвчлэн svg форматаар засах сайн хэрэгсэл.

Энэ програмыг бага зэрэг мэддэг болсноор би тоглоомын элемент бүрийг зурж, төхөөрөмжийн дэлгэцийн янз бүрийн хэмжээтэй тохирох өөр өөр нарийвчлалтайгаар хадгалж эхлэв. Тэмдэглэлүүдийн тэсрэлтийг харуулсан хөдөлгөөнт дүрсийг хэрэгжүүлэх оролдлого бас байсан бөгөөд гарсан загвар нь тохиромжгүй байсан ч би сэтгэл хангалуун байсан. Мэдээжийн хэрэг, төслийг дуусгахтай зэрэгцэн би дизайн дээр үргэлжлүүлэн ажиллаж, шинэ өнгө нэмж оруулав (градиент нь "анхны харцаар" хайртай).

DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Загварын анхны хувилбар (хоёр дэлгэц, хөдөлгөөнгүй, хуучин нэр)

DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Загварын хоёр дахь хувилбар (4 дэлгэц, анхны дэлгэц нь янз бүрийн өнгөөр ​​жигд лугшиж, хаа сайгүй градиент)

Төгсгөлийн төслөө хамгаалж, сонгон шалгаруулалтад тэнцэж, IT SCHOOL-ийн өргөдлийн уралдааны финалд уригдан ирснээ мэдээд маш их баярласан. Тэмцээн болоход сар орчмын хугацаа үлдсэн тул дизайны чиглэлээр илүү мэргэжлийн хүн авах талаар нухацтай бодсон. Хайлт дэмий хоосон байсангүй: миний ахын дотны найз бол маш сайн дизайнер юм! Тэр даруй надад туслахыг зөвшөөрсөн бөгөөд одоогийн тоглоомын загвар нь түүний гавьяа юм.

DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Эцсийн дизайн

Нийтлэл

Хувилбарын хувилбар дээр ажиллаж дууссаны дараа би тэр даруй програмыг Google Play Market дээр хэвлүүлэхээр бэлтгэж эхлэв. Стандарт журам: хөгжүүлэгчийн данс олж авах, програмын хуудас үүсгэх гэх мэт. Гэхдээ энэ хэсэг нь энэ тухай биш юм.

Энэ түүхийн хамгийн гайхалтай зүйл бол татаж авах статистик юм. Эхлээд DrumHero-ийн татан авалтын тоо Европын зарим орнууд, АНУ, ТУХН-ийн орнуудад аажмаар, бараг жигд өссөн боловч нэг сар өнгөрч, татан авалтын тоо 100 татагдсан байна! Сонирхолтой баримт бол татан авалтын ихэнх нь Индонезээс ирсэн.

дүгнэлт

DrumHero бол миний програмчилж сурсан анхны ноцтой төсөл юм. Тэр намайг SAMSUNG IT SCHOOL төслийн уралдааны бүх Оросын финалд хүргээд зогсохгүй график дизайн, GameDev, Play Market үйлчилгээтэй харилцах болон бусад олон зүйлийг надад өгсөн.

DrumHero: Би амьдралдаа анхны тоглоомоо хэрхэн хийсэн бэ?

Мэдээжийн хэрэг, одоо би тоглоомын олон дутагдалтай талуудыг харж байна, гэхдээ өнөөдөр татан авалтын тоо бараг 200-д хүрсэн.Миний төлөвлөгөөнд шинэ хувилбар гаргахаар төлөвлөж байгаа бөгөөд тогтвортой байдлыг нэмэгдүүлэх, тоглоомын явцыг сайжруулах, татан авалтын тоог нэмэгдүүлэх талаар санаанууд байна.

Тусламж:
SAMSUNG IT SCHOOL нь ОХУ-ын 25 хотод үйл ажиллагаа явуулдаг ахлах ангийн сурагчдад зориулсан бүтэн цагийн нэмэлт боловсролын үнэ төлбөргүй хөтөлбөр юм.
Оюутнуудын төгсөлтийн төсөл нь гар утасны програм юм. Энэ нь тоглоом, нийгмийн программ, төлөвлөгч гэх мэт тэдний хүссэн зүйл байж болно.
Та 2019 оны XNUMX-р сараас эхлэн сургалтанд хамрагдах боломжтой сайт хөтөлбөрүүд.


Эх сурвалж: www.habr.com

сэтгэгдэл нэмэх