Tahun ini program sosial dan pendidikan IT SCHOOL SAMSUNG genap 5 tahun (baca tentang IT SCHOOL
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
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.
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.
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:
- Mencipta kelas nota, butang dan jalur di mana nota akan bergerak.
- Saya meletakkan kanvas pada keseluruhan skrin aplikasi dan di atasnya saya telah menerangkan lokasi objek kelas yang dibuat.
- 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 :)
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.
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").
Versi pertama reka bentuk (dua skrin, tiada animasi, nama lama)
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.
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.
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
Sumber: www.habr.com