DrumHero: How I made the first game in my life

    This year, the social and educational program for high school students of IT SCHOOL SAMSUNG is 5 years old (read about IT SCHOOL here ), and on this occasion we invited our graduates to talk about themselves and the experience of creating their mobile applications. We believe that with a great desire, everyone can achieve success!

    Hello!

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

    image

    Background


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

    Fortunately, I had everything that was needed for the successful development of development skills: an unlimited desire to go forward and not stop.

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

    image

    With a teacher - V.V. Ilyin

    Search for an idea


    Many people think that when creating a project, whether it’s a startup or something small for gaining 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 true. I reasoned in exactly the same way, until I myself was faced with the need to choose and implement an idea, it turned out to be one of the most difficult stages.

    The most difficult thing in choosing an idea at the initial stage of training is determining the complexity of the implementation: for a long time I could not come up with an application that I could afford and at the same time like.

    Most of all I wanted to write a musical game, but doubts about my abilities very much interfered. It seemed that it would not be possible to finish the job, and for this reason I have 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

    Game logic implementation


    The main idea of ​​applications like Guitar Hero is to tap the screen to the rhythm of the music.
    First of all, I started implementing the game logic:

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


    image

    The first version of the game

    Yes, it looks “impressive”, but that was almost enough to test the game! The last necessary step was a list of notes for the song, and I had to sit a lot of time on its implementation.
    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:

    • line number from 1 to 4 along which the note should go and
    • the time at which it should appear on the screen.

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



    The process of filling the database with notes.

    This method allowed me to start developing and testing the game at first, but it was clear that something else had to be thought up. Then my teacher, Ilyin Vladimir Vladimirovich, helped me a lot, who talked about the existence of the MIDI format, explained its structure and helped me figure out the library I found for working with MIDI files.

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

    Gradually improving the gameplay, I brought the program to a fully operational state, added a lot of “features”: the ability to add my song from the device’s memory or from the cloud directory, the choice of difficulty level, the beginner mode and much more.
    And finally I got to the “cherry on the cake” ...

    Design


    This is where the embodiment of my “vision” of the game began. First of all, I began to choose a program for drawing. I had no experience in graphic design, so I needed a simple to learn (Photoshop - by), but at the same time flexible and convenient program (Paint, I'm sorry). The choice fell on Inkscape - a good tool for editing vector images, mainly svg format.

    Having become accustomed to this program a bit, I began to draw every element of the game and save it in different resolutions, suitable for different screen sizes of devices. There were also attempts to implement an animation of the explosion of notes, and despite the unsuitability of the resulting design, I was pleased. Of course, in parallel with the completion of the project, I continued to work on the design, adding new colors (gradients are love “at first sight”).



    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 pulsating in different colors, gradients everywhere)

    I defended the graduation project and was very glad when I found out that I had passed the qualifying round and was invited to Final of IT SCHOOLS application contest. I had about a month left before the competition, and I seriously thought about attracting 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 an excellent 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 on the Google Play Market. Standard procedure: acquiring a developer account, compiling an application page, etc. But this section is not about that.

    The most amazing thing in this story is the download statistics. At first, the number of DrumHero downloads increased gradually and almost uniformly in some countries of Europe, the USA and the CIS countries, but a month passed and the number of downloads reached the mark of 100,000 downloads! An interesting fact is that most of the downloads came from Indonesia.

    Conclusion


    DrumHero is my first major project where I learned to program. He not only brought me to the All-Russian final of the SAMSUNG SCHOOLS IT project competition, but also gave me great experience in graphic design, in GameDev, in conjunction with the Play Market service and much more.



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

    Information:
    IT SCHOOL SAMSUNG is a free full-time program of additional education for high school students, it works in 25 cities of Russia.
    Student Graduation Project is a mobile application. It can be a game, a social application, a scheduler - everything that they want.
    You can apply for training from September 2019 on the program website .

    Also popular now: