DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

Bu yıl IT SCHOOL SAMSUNG sosyal ve eğitim programı 5 yaşına giriyor (IT SCHOOL hakkında bilgi edinin) burada) ve bu vesileyle mezunlarımızı kendilerini ve mobil uygulamalarını oluşturma konusundaki deneyimlerini paylaşmaya davet ettik. Herkesin çok arzu ederse başarıya ulaşabileceğine inanıyoruz!

Bu bölümün ilk konuğu, SAMSUNG IT SCHOOL'un 2017 mezunu ve şu anda MIEM NRU HSE'de öğrenci olan Şamil Magomedov'du. Şamil, yoğun programınıza rağmen bu makaleyi yazmaya zaman ayırdığınız için çok teşekkür ederim!

Herkese Merhaba!
Bugün oyun sayesinde SAMSUNG BT OKULU'na "şartlı olarak kabul edilmekten" Tüm Rusya mobil geliştirme yarışmasında finaliste nasıl geçtiğimden bahsetmek istiyorum. Davul Kahramanı.

DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

tarih öncesi

10. sınıftayken Bilişim Okulu'na girdim. Eğitimin ilk günlerinden itibaren diğer adamların gerisinde kaldım ve bu, kursun başlamasından önce bile tahmin edilebilirdi (bu, giriş sınavı puanlarımın korkunç derecede düşük olmasıyla kanıtlandı). Tüm bu programlama ilkeleri, Android platformunun yapısı ve Java dili, bunların hepsi nasıl anlaşılır?

Neyse ki, geliştirme becerilerinde başarılı bir şekilde ustalaşmak için ihtiyacım olan her şeye sahiptim: ilerlemek ve durmamak için sınırsız bir arzu.

Ödevlere çok zaman ayırarak, öğretmen Vladimir Vladimirovich Ilyin ile derslerden sonra sürekli geç saatlere kadar kalarak (onunla inanılmaz derecede şanslıydım), hızlı öğrenme hızına uyum sağlamaya ve mezuniyet projem hakkında düşünmeye başladım.

DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

Öğretmenle - V.V. Ilyin

Bir fikir arayın

Birçok kişi, ister yeni başlayan ister deneyim kazanmak için küçük bir proje olsun, bir proje oluştururken tüm zorluğun geliştirmede yattığını düşünüyor: bir sürü kod yazmak, yeni kütüphaneler öğrenmek, sürekli test etmek - korku! İnanın bu hiç de doğru değil. Bir fikri seçme ve uygulama ihtiyacıyla karşı karşıya kalana kadar tamamen aynı şekilde mantık yürüttüm; bunun en zor aşamalardan biri olduğu ortaya çıktı.

Öğrenmenin ilk aşamasında bir fikir seçmenin en zor yanı, uygulamanın karmaşıklığını belirlemektir: Uzun süre hem yapabileceğim hem de beğenebileceğim bir uygulama bulamadım.

En çok da müzikal bir oyun yazmak istiyordum ama yeteneklerim hakkındaki şüpheler buna engel oldu. İşi bitirmek mümkün olmayacak gibi görünüyordu ve bu nedenle seçimimi birden fazla kez değiştirdim: mobil bilardo, bowling, koşucu vb. Sonuçta bundan bir ders çıkardım: zorluklar her zaman ortaya çıkacaktıruygulama fikrinden bağımsız olarak ve dolayısıyla en önemli şey neyi sevdiğinizi seçmek ve sonuna kadar gitmek.

DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

Guitar Hero oyununu her zaman sevdim

Oyun mantığının uygulanması

Guitar Hero gibi uygulamaların arkasındaki temel fikir, ekrana müziğin ritmine göre dokunmaktır.
Öncelikle oyun mantığını uygulamaya başladım:

  1. Notların hareket edeceği notlar, düğmeler ve şeritlerden oluşan sınıflar oluşturuldu.
  2. Tuvali uygulamanın tüm ekranına yerleştirdim ve üzerinde oluşturulan sınıflardaki nesnelerin konumunu zaten tanımladım.
  3. Bir şarkının mp3 dosyasının ve veri tabanından elde edilen bir dizi notanın eşzamanlı başlatılması uygulandı ve işte! Oyunun ilk taslakları zaten akıllı telefonumda :)

DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

Oyunun ilk versiyonu

Evet, "etkileyici" görünüyor ama oyunu test etmek için neredeyse yeterliydi! Gerekli son adım, şarkının notalarının listesiydi ve bunun uygulanması için çok zaman harcamak zorunda kaldım.
Prensip oldukça basittir: Program, veritabanı tablosunun değerlerini kullanarak “Not” sınıfının nesnelerini oluşturur ve elde edilen notları diziye ekler. Tablo iki sütundan oluşur:

  • Notun gitmesi gereken 1'den 4'e kadar satır numarası ve
  • ekranda görünmesi gereken saat.

Her şey bu kadar basitse neden bu kadar zaman harcadım? Bu veritabanını doldurmak için!
Ne yazık ki o zamanlar şarkının mp3 dosyasından ihtiyacım olan formattaki notaları alma sürecini nasıl otomatikleştireceğimi çözemedim ve bu yüzden bu sütunları kulaktan kulağa manuel olarak doldurmak zorunda kaldım.

DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

Veritabanını notlarla doldurma işlemi

Bu yöntem, oyunu erkenden geliştirmeye ve test etmeye başlamamı sağladı ancak farklı bir şey bulmam gerektiği açıktı. Burada MIDI formatının varlığından bahseden, yapısını açıklayan ve MIDI dosyalarıyla çalışmak için bulduğum kütüphaneyi anlamama yardımcı olan öğretmenim Ilyin Vladimir Vladimirovich bana çok yardımcı oldu.

Bu formatın güzelliği, her enstrümanın zaten belirli "notaların" bulunduğu ayrı bir parça olmasıdır. Bu şekilde, tüm notlar arasında kolayca geçiş yapabilir ve parçaya ve zamana bağlı olarak bunları otomatik olarak veritabanına ekleyebilirsiniz. Bu çok önemli bir özellik, çünkü onun sayesinde bu türdeki oyunların sorununu çözebildim: kendi şarkılarımı ekleyememek. Doğru, MIDI formatının büyük bir dezavantajı var - ses (retro oyunlardaki melodileri hepimiz hatırlıyoruz, değil mi?).

Oynanışı yavaş yavaş geliştirerek programı tam çalışır duruma getirdim, birçok "özellik" ekledim: cihazın hafızasından veya bulut kataloğundan kendi şarkınızı ekleme yeteneği, zorluk seviyesi seçimi, başlangıç ​​​​modu ve çok daha fazlası.
Ve sonunda “pastanın üzerine kiraz”a geldim...

Dizayn

Oyuna dair “vizyonumun” somutlaşması burada başladı. Öncelikle bir çizim programı seçmeye başladım. Grafik tasarım konusunda hiç deneyimim yoktu, bu yüzden öğrenmesi kolay (bu arada Photoshop) ama aynı zamanda esnek ve kullanışlı (Paint, kusura bakmayın) bir programa ihtiyacım vardı. Seçim, çoğunlukla svg formatında vektör görsellerini düzenlemek için iyi bir araç olan Inkscape'e düştü.

Bu programa biraz daha aşina olduktan sonra oyunun her unsurunu çizmeye ve farklı cihaz ekran boyutlarına uygun farklı çözünürlüklerde kaydetmeye başladım. Ayrıca notaların patlamasının animasyonunu uygulama girişimleri de oldu ve ortaya çıkan tasarımın uygun olmamasına rağmen memnun kaldım. Tabii projenin sonuçlanmasına paralel olarak yeni renkler ekleyerek (gradyanlar “ilk görüşte aşktır”) tasarım üzerinde çalışmaya devam ettim.

DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

Tasarımın ilk versiyonu (iki ekran, animasyon yok, eski isim)

DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

Tasarımın ikinci versiyonu (4 ekran, ilk ekran farklı renklerle düzgün bir şekilde titreşiyor, her yerde degradeler)

Bitirme projemi savundum ve eleme turunu geçip IT SCHOOL başvuru yarışmasının finallerine davet edildiğimi öğrendiğimde çok mutlu oldum. Yarışmaya yaklaşık bir ay kalmıştı ve tasarım alanında daha profesyonel birini işe almayı ciddi olarak düşündüm. Arama boşuna değildi: Kardeşimin yakın arkadaşının mükemmel bir tasarımcı olduğu ortaya çıktı! Bana yardım etmeyi hemen kabul etti ve mevcut oyun tasarımı onun takdiri.

DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

Son tasarım

Yayın

Yayın sürümü üzerindeki çalışmaları tamamladıktan sonra hemen başvuruyu Google Play Market'te yayınlanmak üzere hazırlamaya başladım. Standart prosedür: geliştirici hesabı edinme, uygulama sayfası oluşturma vb. Ancak bu bölüm bununla ilgili değil.

Bu hikayedeki en şaşırtıcı şey indirme istatistikleridir. İlk başta, DrumHero indirmelerinin sayısı bazı Avrupa ülkeleri, ABD ve BDT ülkelerinde kademeli olarak ve neredeyse eşit bir şekilde arttı, ancak bir ay geçti ve indirme sayısı 100 indirmeye ulaştı! İlginç bir gerçek, indirmelerin çoğunun Endonezya'dan gelmesi.

Sonuç

DrumHero programlamayı öğrendiğim ilk ciddi projem. Beni yalnızca SAMSUNG IT SCHOOL proje yarışmasının tüm Rusya finaline getirmekle kalmadı, aynı zamanda bana grafik tasarım, GameDev, Play Market hizmetiyle etkileşim ve çok daha fazlası konusunda birçok deneyim kazandırdı.

DrumHero: Hayatımdaki ilk oyunu nasıl yaptım

Elbette artık oyunda pek çok eksiklik görüyorum, ancak bugün indirme sayısı neredeyse 200'e ulaştı.Planlarım yeni bir sürüm çıkarmak, kararlılığın nasıl artırılacağı, oynanışın nasıl geliştirileceği ve indirme sayısının nasıl artırılacağına dair fikirler var.

SSS:
SAMSUNG IT SCHOOL, Rusya'nın 25 şehrinde faaliyet gösteren, lise öğrencilerine yönelik ücretsiz, tam zamanlı bir ek eğitim programıdır.
Öğrencilerin mezuniyet projesi mobil uygulamadır. Bu bir oyun, bir sosyal uygulama, bir planlayıcı ya da ne istiyorlarsa olabilir.
Eğitime Eylül 2019 tarihinden itibaren başvurabilirsiniz. web sitesi programı.


Kaynak: habr.com

Yorum ekle