DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

Tahun ini program sosial dan pendidikan IT SCHOOL SAMSUNG genap 5 tahun (baca tentang IT SCHOOL di sini), dan pada kesempatan ini kami menjemput graduan kami untuk bercakap tentang diri mereka dan pengalaman mereka dalam mencipta aplikasi mudah alih mereka. Kami percaya bahawa dengan banyak keinginan, semua orang boleh mencapai kejayaan!

Tetamu pertama dalam bahagian ini ialah Shamil Magomedov, lulusan 2017 SAMSUNG IT SCHOOL, kini pelajar di MIEM NRU HSE. Shamil, terima kasih banyak kerana meluangkan masa untuk menulis artikel ini, walaupun jadual anda padat!

Hello!
Hari ini saya ingin bercakap tentang bagaimana saya pergi daripada "dimasukkan secara bersyarat" ke SAMSUNG IT SCHOOL menjadi finalis dalam pertandingan pembangunan mudah alih All-Russian terima kasih kepada permainan DrumHero.

DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

prasejarah

Saya memasuki SEKOLAH IT semasa saya di tingkatan 10. Dari hari-hari pertama latihan, saya ketinggalan di belakang lelaki lain, dan ini boleh diramalkan walaupun sebelum permulaan kursus (ini terbukti dengan markah peperiksaan kemasukan saya yang sangat rendah). Semua prinsip pengaturcaraan ini, struktur platform Android dan bahasa Java, bagaimana untuk memahami semuanya?

Nasib baik, saya mempunyai semua yang saya perlukan untuk berjaya menguasai kemahiran pembangunan: keinginan yang tidak terbatas untuk maju dan tidak berhenti.

Menumpukan banyak masa untuk kerja rumah, sentiasa tinggal lewat selepas kelas dengan guru Vladimir Vladimirovich Ilyin (saya sangat bertuah dengannya), saya mula menyesuaikan diri dengan kadar pembelajaran yang pantas dan memikirkan projek pengijazahan saya.

DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

Bersama guru - V.V

Cari idea

Ramai orang berfikir bahawa apabila mencipta projek, sama ada permulaan atau sesuatu yang kecil untuk mendapatkan pengalaman, semua kesukaran terletak pada pembangunan: menulis sekumpulan kod, mempelajari perpustakaan baharu, sentiasa menguji - seram! Percayalah, ini tidak benar sama sekali. Saya membuat alasan dengan cara yang sama sehingga saya sendiri berhadapan dengan keperluan untuk memilih dan melaksanakan idea itu ternyata menjadi salah satu peringkat yang paling sukar.

Perkara yang paling sukar dalam memilih idea pada peringkat awal pembelajaran ialah menentukan kerumitan pelaksanaan: untuk masa yang lama saya tidak dapat menghasilkan aplikasi yang boleh saya lakukan dan pada masa yang sama suka.

Paling penting saya ingin menulis permainan muzik, tetapi keraguan tentang kebolehan saya benar-benar menghalang. Nampaknya tidak mungkin untuk menyelesaikan kerja itu, dan atas sebab ini saya menukar pilihan saya lebih daripada sekali: biliard mudah alih, boling, pelari, dll. Akhirnya, saya belajar satu pengajaran daripada ini: kesukaran akan sentiasa timbul, tanpa mengira idea aplikasi, dan oleh itu perkara yang paling penting ialah memilih apa yang anda suka dan pergi ke penghujung.

DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

Saya sentiasa suka permainan Guitar Hero

Pelaksanaan logik permainan

Idea asas di sebalik aplikasi seperti Guitar Hero ialah mengetik skrin mengikut rentak muzik.
Pertama sekali, saya mula melaksanakan logik permainan:

  1. Mencipta kelas nota, butang dan jalur di mana nota akan bergerak.
  2. Saya meletakkan kanvas pada keseluruhan skrin aplikasi dan di atasnya saya telah menerangkan lokasi objek kelas yang dibuat.
  3. Melaksanakan pelancaran serentak fail mp3 lagu dan pelbagai nota yang diperoleh daripada pangkalan data dan voila! Draf pertama permainan sudah ada pada telefon pintar saya :)

DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

Versi pertama permainan

Ya, ia kelihatan "mengagumkan", tetapi ia hampir cukup untuk menguji permainan! Langkah terakhir yang perlu ialah senarai nota untuk lagu itu, dan saya terpaksa menghabiskan banyak masa untuk melaksanakannya.
Prinsipnya agak mudah: menggunakan nilai jadual pangkalan data, program mencipta objek kelas "Nota" dan menambah nota yang terhasil pada tatasusunan. Jadual terdiri daripada dua lajur:

  • nombor baris dari 1 hingga 4 di mana nota harus pergi dan
  • masa ia sepatutnya muncul pada skrin.

Mengapa saya menghabiskan banyak masa jika semuanya begitu mudah? Untuk mengisi pangkalan data ini!
Malangnya, pada masa itu saya tidak dapat memikirkan cara untuk mengautomasikan proses mendapatkan muzik helaian dalam format yang saya perlukan daripada fail mp3 lagu itu, jadi saya terpaksa mengisi lajur ini secara manual mengikut telinga.

DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

Proses mengisi pangkalan data dengan nota

Kaedah ini membolehkan saya mula membangunkan dan menguji permainan pada awal, tetapi jelas bahawa saya perlu menghasilkan sesuatu yang berbeza. Di sini guru saya, Ilyin Vladimir Vladimirovich, banyak membantu saya, yang bercakap tentang kewujudan format MIDI, menerangkan strukturnya dan membantu saya memikirkan perpustakaan yang saya temui untuk bekerja dengan fail MIDI.

Keindahan format ini ialah di dalamnya setiap instrumen sudah menjadi trek berasingan di mana "nota" tertentu terletak. Dengan cara ini, anda boleh mengulangi semua nota dengan mudah dan, bergantung pada trek dan masa, menambahkannya secara automatik ke pangkalan data. Ini adalah harta yang sangat penting, kerana berkat itu saya dapat menyelesaikan masalah permainan genre ini: ketidakupayaan untuk menambah lagu saya sendiri. Benar, format MIDI mempunyai kelemahan besar - bunyi (kita semua ingat melodi dalam permainan retro, bukan?).

Meningkatkan permainan secara beransur-ansur, saya membawa program ke keadaan berfungsi sepenuhnya, menambah banyak "ciri": keupayaan untuk menambah lagu anda sendiri dari memori peranti atau dari katalog awan, pilihan tahap kesukaran, mod pemula dan banyak lagi.
Dan akhirnya saya sampai ke "ceri pada kek"...

Design

Di sinilah penjelmaan "visi" permainan saya bermula. Pertama sekali, saya mula memilih program lukisan. Saya tidak mempunyai sebarang pengalaman dalam reka bentuk grafik, jadi saya memerlukan program yang mudah dipelajari (Photoshop, by the way), tetapi juga fleksibel dan mudah (Cat, maaf). Pilihan jatuh pada Inkscape - alat yang baik untuk mengedit imej vektor, terutamanya dalam format svg.

Setelah menjadi lebih biasa dengan program ini, saya mula melukis setiap elemen permainan dan menyimpannya dalam resolusi yang berbeza, sesuai untuk saiz skrin peranti yang berbeza. Terdapat juga percubaan untuk melaksanakan animasi letupan nota, dan walaupun reka bentuk yang dihasilkan tidak sesuai, saya gembira. Sudah tentu, selari dengan memuktamadkan projek, saya terus mengusahakan reka bentuk, menambah warna baharu (kecerunan adalah cinta "pandangan pertama").

DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

Versi pertama reka bentuk (dua skrin, tiada animasi, nama lama)

DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

Versi kedua reka bentuk (4 skrin, skrin awal berdenyut lancar dengan warna yang berbeza, kecerunan di mana-mana)

Saya mempertahankan projek akhir saya dan sangat gembira apabila saya mendapat tahu saya telah melepasi pusingan kelayakan dan dijemput ke peringkat akhir pertandingan permohonan SEKOLAH IT. Saya mempunyai kira-kira sebulan lagi sebelum pertandingan, dan saya serius memikirkan untuk mengupah orang yang lebih profesional dalam bidang reka bentuk. Pencarian itu tidak sia-sia: ternyata, kawan rapat abang saya adalah seorang pereka yang sangat baik! Dia segera bersetuju untuk membantu saya, dan reka bentuk permainan semasa adalah kreditnya.

DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

Reka bentuk akhir

Penerbitan

Selepas menyelesaikan kerja pada versi keluaran, saya segera mula menyediakan aplikasi untuk penerbitan di Pasaran Google Play. Prosedur standard: memperoleh akaun pembangun, mencipta halaman aplikasi, dsb. Tetapi bahagian ini bukan tentang itu.

Perkara yang paling mengejutkan dalam cerita ini ialah statistik muat turun. Pada mulanya, bilangan muat turun DrumHero meningkat secara beransur-ansur dan hampir sama rata di beberapa negara Eropah, Amerika Syarikat dan negara-negara CIS, tetapi sebulan berlalu dan bilangan muat turun mencapai 100 muat turun! Fakta menarik ialah kebanyakan muat turun datang dari Indonesia.

Kesimpulan

DrumHero ialah projek serius pertama saya di mana saya belajar memprogram. Dia bukan sahaja membawa saya ke final semua-Rusia pertandingan projek SAMSUNG IT SCHOOL, tetapi juga memberi saya banyak pengalaman dalam reka bentuk grafik, GameDev, interaksi dengan perkhidmatan Play Market dan banyak lagi.

DrumHero: Bagaimana saya membuat permainan pertama dalam hidup saya

Sudah tentu, sekarang saya melihat banyak kekurangan dalam permainan, walaupun hari ini jumlah muat turun telah mencapai hampir 200 rancangan saya adalah untuk mengeluarkan versi baru, terdapat idea tentang cara meningkatkan kestabilan, meningkatkan permainan dan meningkatkan jumlah muat turun.

Bantuan:
SAMSUNG IT SCHOOL ialah program pendidikan tambahan sepenuh masa percuma untuk pelajar sekolah menengah, beroperasi di 25 bandar di Rusia.
Projek pengijazahan pelajar adalah aplikasi mudah alih. Ia boleh menjadi permainan, aplikasi sosial, perancang, apa sahaja yang mereka mahu.
Anda boleh memohon latihan mulai September 2019 di Online program.


Sumber: www.habr.com

Tambah komen