DrumHero: Jak stworzyłem pierwszą grę w życiu

W tym roku program społeczno-edukacyjny IT SCHOOL SAMSUNG kończy 5 lat (przeczytaj o IT SCHOOL tutaj) i z tej okazji zaprosiliśmy naszych absolwentów do opowiedzenia o sobie i swoich doświadczeniach w tworzeniu aplikacji mobilnych. Wierzymy, że przy odrobinie chęci każdy może osiągnąć sukces!

Pierwszym takim gościem w tej sekcji był Shamil Magomedov, absolwent SAMSUNG IT SCHOOL z 2017 roku, obecnie student MIEM NRU HSE. Shamil, dziękuję bardzo za poświęcenie czasu na napisanie tego artykułu, pomimo napiętego harmonogramu!

Witam wszystkich!
Dziś chciałbym opowiedzieć o tym, jak dzięki grze przeszedłem od „warunkowego przyjęcia” do SAMSUNG IT SCHOOL do finalisty Ogólnorosyjskiego konkursu na rozwój urządzeń mobilnych Bohater bębna.

DrumHero: Jak stworzyłem pierwszą grę w życiu

prehistoria

Do SZKOŁY IT trafiłem w 10 klasie. Już od pierwszych dni szkolenia pozostawałem w tyle za innymi chłopakami, co było do przewidzenia jeszcze przed rozpoczęciem kursu (co potwierdzały moje koszmarnie niskie oceny z egzaminów wstępnych). Te wszystkie zasady programowania, struktura platformy Android i język Java, jak to wszystko zrozumieć?

Na szczęście miałem wszystko, czego potrzebowałem, aby skutecznie opanować umiejętności rozwojowe: bezgraniczną chęć poruszania się do przodu i nie zatrzymywania się.

Poświęcając dużo czasu na odrabianie lekcji, ciągle spóźniając się po zajęciach z nauczycielem Władimirem Władimirowiczem Iljanem (miałem z nim niesamowite szczęście), zacząłem dostosowywać się do szybkiego tempa nauki i myśleć o moim projekcie dyplomowym.

DrumHero: Jak stworzyłem pierwszą grę w życiu

Z nauczycielem - V.V. Ilyinem

Szukaj pomysłu

Wiele osób uważa, że ​​podczas tworzenia projektu, czy to startupu, czy czegoś małego w celu zdobycia doświadczenia, cała trudność leży w rozwoju: pisanie pęczka kodu, nauka nowych bibliotek, ciągłe testowanie - horror! Uwierz mi, to wcale nie jest prawda. Rozumowałem dokładnie tak samo, dopóki sam nie stanąłem przed koniecznością wyboru i wdrożenia pomysłu, co okazało się jednym z trudniejszych etapów.

Najtrudniejszą rzeczą w wyborze pomysłu na początkowym etapie nauki jest określenie złożoności realizacji: przez długi czas nie mogłem wymyślić aplikacji, którą byłbym w stanie wykonać, a jednocześnie by mi się spodobała.

Przede wszystkim chciałem napisać grę muzyczną, ale przeszkodziły mi wątpliwości co do moich umiejętności. Wydawało się, że dokończenie pracy nie będzie możliwe i z tego powodu nie raz zmieniałem wybór: mobilny bilard, kręgle, biegacz itp. Ostatecznie wyciągnąłem z tego jedną lekcję: trudności zawsze będą się pojawiać, niezależnie od pomysłu na aplikację, a co za tym idzie najważniejsze jest, aby wybrać to, co lubisz i przejść do końca.

DrumHero: Jak stworzyłem pierwszą grę w życiu

Zawsze lubiłem grę Guitar Hero

Implementacja logiki gry

Podstawową ideą aplikacji takich jak Guitar Hero jest dotykanie ekranu w rytm muzyki.
Przede wszystkim zacząłem wdrażać logikę gry:

  1. Stworzono klasy nut, przycisków i pasków, po których będą się przesuwać nuty.
  2. Umieściłem canvas na całym ekranie aplikacji i na nim opisałem już położenie obiektów tworzonych klas.
  3. Zaimplementowano jednoczesne uruchamianie pliku mp3 z piosenką i szeregiem nut uzyskanych z bazy danych i voila! Pierwsze wersje gry już są na moim smartfonie :)

DrumHero: Jak stworzyłem pierwszą grę w życiu

Pierwsza wersja gry

Tak, wygląda „imponując”, ale to prawie wystarczyło, aby przetestować grę! Ostatnim niezbędnym krokiem była lista nut do utworu, a nad jej wdrożeniem musiałem spędzić dużo czasu.
Zasada jest dość prosta: korzystając z wartości tabeli bazy danych, program tworzy obiekty klasy „Note” i dodaje powstałe notatki do tablicy. Tabela składa się z dwóch kolumn:

  • numer wiersza od 1 do 4, w którym powinna znaleźć się notatka oraz
  • czas, w którym powinien pojawić się na ekranie.

Po co spędziłem dużo czasu, skoro wszystko jest takie proste? Aby zapełnić tę bazę danych!
Niestety, w tamtym czasie nie wiedziałem, jak zautomatyzować proces uzyskiwania nut w potrzebnym formacie z pliku mp3 utworu, więc musiałem ręcznie wypełniać te kolumny ze słuchu.

DrumHero: Jak stworzyłem pierwszą grę w życiu

Proces wypełniania bazy notatkami

Ta metoda pozwoliła mi wcześnie rozpocząć tworzenie i testowanie gry, ale było jasne, że muszę wymyślić coś innego. Tutaj bardzo mi pomógł mój nauczyciel, Iljin Władimir Władimirowicz, który opowiedział o istnieniu formatu MIDI, wyjaśnił jego strukturę i pomógł mi odkryć bibliotekę, którą znalazłem do pracy z plikami MIDI.

Piękno tego formatu polega na tym, że w nim każdy instrument jest już osobną ścieżką, na której znajdują się określone „nuty”. W ten sposób możesz łatwo przeglądać wszystkie nuty i, w zależności od utworu i czasu, automatycznie dodawać je do bazy danych. To bardzo ważna właściwość, bo to dzięki niej udało mi się rozwiązać problem gier tego gatunku: brak możliwości dodawania własnych utworów. To prawda, że ​​​​format MIDI ma dużą wadę - dźwięk (wszyscy pamiętamy melodie z gier retro, prawda?).

Stopniowo ulepszając rozgrywkę, doprowadziłem program do stanu w pełni działającego, dodałem wiele „funkcji”: możliwość dodania własnego utworu z pamięci urządzenia lub z katalogu w chmurze, wybór poziomu trudności, tryb dla początkujących i wiele więcej.
I w końcu doszłam do „wisienki na torcie”...

Konstrukcja

To tutaj zaczęło się ucieleśnianie mojej „wizji” gry. Przede wszystkim zacząłem wybierać program do rysowania. Nie miałem żadnego doświadczenia w projektowaniu graficznym, więc potrzebowałem programu, który będzie łatwy w nauce (swoją drogą Photoshop), ale jednocześnie elastyczny i wygodny (Paint, przepraszam). Wybór padł na Inkscape - dobre narzędzie do edycji obrazów wektorowych, głównie w formacie svg.

Po zapoznaniu się nieco z tym programem zacząłem rysować każdy element gry i zapisywać go w różnych rozdzielczościach, odpowiednich dla różnych rozmiarów ekranów urządzeń. Były też próby wprowadzenia animacji eksplozji banknotów i pomimo nieprzydatności powstałego projektu, byłem zadowolony. Oczywiście równolegle z finalizacją projektu kontynuowałem pracę nad projektem, dodając nowe kolory (gradienty to miłość „od pierwszego wejrzenia”).

DrumHero: Jak stworzyłem pierwszą grę w życiu

Pierwsza wersja projektu (dwa ekrany, brak animacji, stara nazwa)

DrumHero: Jak stworzyłem pierwszą grę w życiu

Druga wersja projektu (4 ekrany, ekran początkowy płynnie pulsuje różnymi kolorami, wszędzie gradienty)

Obroniłem swój projekt finałowy i bardzo się ucieszyłem, gdy dowiedziałem się, że przeszedłem eliminacje i zostałem zaproszony do finału konkursu aplikacyjnego SZKOŁA IT. Do konkursu został mi około miesiąc i poważnie myślałem o zatrudnieniu bardziej profesjonalnej osoby w dziedzinie projektowania. Poszukiwania nie poszły na marne: jak się okazało, bliski przyjaciel mojego brata jest znakomitym projektantem! Od razu zgodziła się mi pomóc, a obecny projekt gry jest jej zasługą.

DrumHero: Jak stworzyłem pierwszą grę w życiu

Ostateczny projekt

Publikacja

Po zakończeniu prac nad wersją wydawniczą od razu przystąpiłem do przygotowywania aplikacji do publikacji w Google Play Market. Standardowa procedura: uzyskanie konta programisty, utworzenie strony aplikacji itp. Ale ten rozdział nie jest o tym.

Najbardziej zaskakującą rzeczą w tej historii są statystyki pobrań. Początkowo liczba pobrań DrumHero rosła stopniowo i prawie równomiernie w niektórych krajach Europy, USA i krajach WNP, ale minął miesiąc i liczba pobrań osiągnęła 100 000 pobrań! Ciekawostką jest to, że większość pobrań pochodziła z Indonezji.

wniosek

DrumHero to mój pierwszy poważny projekt, w którym nauczyłem się programować. Nie tylko doprowadził mnie do ogólnorosyjskiego finału konkursu projektu SAMSUNG IT SCHOOL, ale także dał mi duże doświadczenie w projektowaniu graficznym, GameDev, interakcji z usługą Play Market i wielu innych.

DrumHero: Jak stworzyłem pierwszą grę w życiu

Oczywiście teraz widzę wiele niedociągnięć w grze, choć dziś liczba pobrań osiągnęła prawie 200 000. W planach mam wydanie nowej wersji, są pomysły jak zwiększyć stabilność, usprawnić rozgrywkę i zwiększyć liczbę pobrań.

FAQ:
SAMSUNG IT SCHOOL to bezpłatny, stacjonarny program edukacji dodatkowej dla uczniów szkół średnich, działający w 25 miastach Rosji.
Projekt dyplomowy studentów to aplikacja mobilna. Może to być gra, aplikacja społecznościowa, planista, cokolwiek tylko chcą.
Zgłoszenia na szkolenie można składać od września 2019 r. o godz witryna internetowa programy.


Źródło: www.habr.com

Dodaj komentarz