📜 ⬆️ ⬇️

DrumHero: As I did the first game in my life

This year, the SAMSUNG IT SCHOOL's social and educational program for seniors is 5 years old (read about IT SCHOOL here ), and on this occasion we invited our graduates to tell about themselves and their mobile application development experiences. We believe that with a strong desire, everyone can achieve success!

Hello!

My name is Shamil Magomedov, I am a graduate of IT SCHOOLS SAMSUNG 2017, at the moment - a student of MIEM HSE. Today I would like to talk about how I turned from “conditionally enrolled” in IT-SCHOOL SAMSUNG into a finalist of the All-Russian mobile development competition thanks to the game DrumHero .
')
image

Prehistory


I entered IT SCHOOL when I was in the 10th grade. From the very first days of training, I lagged behind the other guys, and it was predictable even before the start of the course (my terribly low points in the entrance exam spoke about this). All these principles of programming, the device of the Android platform and the Java language, how to understand all this?

Fortunately, I had everything I needed to successfully master development skills: a boundless desire to go ahead and not stop.

Spending a lot of time doing my homework, constantly lingering after couples with teacher Vladimir Vladimirovich Ilyin (I was really lucky with him), I began to adjust to the fast pace of training and to think about my graduation project.

image

With the teacher - V.V. Ilyin

Search for an idea


Many people think that when creating a project, whether it is a startup or something small to gain experience, the whole difficulty lies in the development: writing a bunch of code, learning new libraries, constantly testing is horrible! Believe me, this is not at all the case. I reasoned exactly the same, until I myself was faced with the need to choose and implement an idea, it turned out that this was one of the most difficult stages.

The most difficult thing in the choice of ideas at the initial stage of training is the definition of the complexity of implementation: for a long time I couldn’t think of an application that I could do and at the same time liked me.

Most of all I wanted to write a musical game, but doubts in my abilities were very disturbing. It seemed that it would not be possible to finish the job, and for this reason I changed my choice more than once: mobile billiards, bowling, runner, etc. In the end, I learned one lesson from this: difficulties will always arise , regardless of the idea of ​​the application, and therefore the most important thing is to choose what you like and go to the end .

image

I always liked the game Guitar Hero

Implementation of game logic


The main idea behind Guitar Hero apps is to tap the screen to the rhythm of the music.
First of all, I started to implement the game logic:

  1. Created classes of notes, buttons and strips along which notes will move.
  2. Placed the canvas on the entire screen of the application and it already painted the location of objects created classes.
  3. Implemented simultaneous launch of mp3 song file and received from the database of an array of notes and voila! The first outline of the game is already on my smartphone :)


image

The first version of the game

Yes, it looks “impressive”, but it was almost enough to test the game! The last necessary step was the list of notes for the song, and I had to sit on it for a long time.
The principle is quite simple: according to the values ​​of the database table, the program creates objects of the “Note” class and adds the received notes to the array. The table consists of two columns:


What did I spend a lot of time for if everything is so simple? To fill this database!
Unfortunately, at that time I could not figure out how to automate the process of obtaining notes in the format I needed from the mp3 file of the song, and therefore I had to manually fill in these columns by ear.



The process of filling the database with notes

This method allowed me to start developing and testing the game from the very beginning, but it was clear that something else had to be invented. Here my teacher, Vladimir V. Ilyin, helped me a lot. He told about the existence of a MIDI format, explained his device and helped to deal with the found library for working with MIDI files.

The beauty of this format is that each instrument in it is already a separate track, on which certain “notes” are located. Thus, it is possible to easily process all notes in a cycle and, depending on the track and time, automatically add them to the database. This is a very important feature, because it was thanks to him that I managed to solve the problem of games of this genre: the inability to add my own songs. True, the MIDI format has a big minus - sound (we all remember the melodies in retro games, right?).

Gradually improving the gameplay, I brought the program to a completely working state, added a lot of “features”: the ability to add my song from the device’s memory or from the cloud catalog, select the difficulty level, beginner mode and much more.
Finally, I got to the “cherry on the cake” ...

Design


This is where the incarnation of my “vision” of the game began. The first thing I began to choose a program for drawing. I had no experience in graphic design, so I needed an easy to learn (Photoshop - by), but a flexible and convenient program (Paint, sorry). The choice fell on Inkscape - a good tool for editing vector images, mainly the svg format.

Having learned a little about this program, I began to draw each element of the game and save it in different resolutions suitable for different screen sizes of devices. There were also attempts to realize the animation of the explosion of notes, and despite the unfitness of the design, I was pleased. Of course, in parallel with the finalization of the project, I continued to work on the design, adding new colors (gradients are love “at first glance”).



The first version of the design (two screens, no animation, the old name)



The second version of the design (4 screens, the initial screen smoothly pulsates with different colors, gradients everywhere)

I defended my graduation project and was very pleased when I learned that I had passed the qualifying round and was invited to the finals of the IT SCHOOL application contest. I had about a month before the competition, and I seriously thought about bringing in a more professional person in the field of design. The search was not in vain: as it turned out, my brother's close friend is a great designer! She immediately agreed to help me, and the current design of the game is her merit.



The final version of the design

Publication


After completing work on the release version, I immediately began to prepare the application for publication in the Google Play Market. Standard procedure: acquisition of a developer account, compilation of an application page, etc. But this section is not about that.

The most amazing thing about this story is download statistics. At first, the number of DrumHero downloads increased gradually and almost evenly across some European countries, the USA and the CIS countries, but a month went by and the number of downloads reached 100,000 downloads! An interesting fact is that most of the downloads came in Indonesia.

Conclusion


DrumHero is my first serious project on which I learned to program. He did not just lead me to the All-Russian final of the IT project competition SAMSUNG SCHOOLS, but also gave me a lot of experience in graphic design, in GameDev, in cooperation with the Play Market service and in many other things.



Of course, now I see a lot of flaws in the game, although today the number of downloads has reached almost 200,000. I have plans to release a new version, I have ideas on how to increase stability, improve gameplay and increase the number of downloads.

Reference:
IT SCHOOL SAMSUNG is a free full-time program of additional education for high school students, working in 25 cities of Russia.
Student graduation project is a mobile application. It could be a game, a social application, a planner - anything they want.
Apply for training from September 2019 can be on the program website .

Source: https://habr.com/ru/post/449220/


All Articles