Cette année, le programme social et éducatif pour les lycéens d'IT SCHOOL SAMSUNG a 5 ans (lire ici sur IT SCHOOL), et à cette occasion nous avons invité nos diplômés à parler d'eux et de l'expérience de création de leurs applications mobiles. Nous croyons qu'avec un grand désir, tout le monde peut réussir!Bonjour à tous!
Je m'appelle Shamil Magomedov, je suis diplômé de la SAMSUNG IT SCHOOL 2017, actuellement je suis étudiant au MIEM NRU HSE. Aujourd'hui, je voudrais parler de la façon dont je suis passé du «crédit conditionnel» de SAMSUNG IT-SCHOOL au finaliste du concours panrusse sur le développement mobile grâce au jeu
DrumHero .

Contexte
Je suis entré dans l'ECOLE D'ECOLE quand j'étais en 10e année. Dès les premiers jours d'entraînement, j'ai pris du retard par rapport aux autres gars, et c'était prévisible avant même le début du cours (cela était indiqué par mes scores terriblement bas à l'examen d'entrée). Tous ces principes de programmation, l'appareil de la plateforme Android et le langage Java, comment comprendre tout cela?
Heureusement, j'avais tout ce qu'il fallait pour réussir le développement des compétences de développement: un désir illimité d'aller de l'avant et de ne pas s'arrêter.
Donnant beaucoup de temps aux devoirs, s'attardant constamment après les couples avec le professeur Vladimir Vladimirovitch Ilyin (j'ai eu beaucoup de chance avec lui), j'ai commencé à m'adapter au rythme rapide de la formation et à réfléchir à un projet de fin d'études.
Avec un professeur - V.V. IlyinRechercher une idée
Beaucoup de gens pensent que lors de la création d'un projet, que ce soit une startup ou quelque chose de petit pour acquérir de l'expérience, toute la difficulté réside dans le développement: écrire un tas de code, apprendre de nouvelles bibliothèques, tester constamment est horrible! Croyez-moi, ce n'est pas du tout vrai. J'ai raisonné exactement de la même manière, jusqu'à ce que je sois moi-même confronté à la nécessité de choisir et de mettre en œuvre une idée, elle s'est avérée être l'une des étapes les plus difficiles.
La chose la plus difficile dans le choix d'une idée au stade initial de la formation est de déterminer la complexité de la mise en œuvre: pendant longtemps, je n'ai pas pu proposer une application que je pouvais me permettre et en même temps aimer.
Surtout, je voulais écrire un jeu musical, mais les doutes sur mes capacités ont beaucoup interféré. Il semblait qu'il ne serait pas possible de terminer le travail, et pour cette raison j'ai changé mon choix plus d'une fois: billard mobile, bowling, coureur, etc. En fin de compte, j'ai tiré une leçon de cela: des
difficultés surgiront toujours , quelle que soit l'idée de l'application, et donc la
chose la
plus importante est de choisir ce que vous aimez et d'aller jusqu'au bout .
J'ai toujours aimé le jeu Guitar HeroImplémentation de la logique de jeu
L'idée principale d'applications comme Guitar Hero est d'appuyer sur l'écran au rythme de la musique.
Tout d'abord, j'ai commencé à implémenter la logique du jeu:
- Création de classes de notes, boutons et rayures sur lesquelles les notes se déplaceront.
- J'ai placé le canevas sur tout l'écran de l'application et déjà peint l'emplacement des objets des classes créées.
- Implémentation du lancement simultané du fichier mp3 de la chanson et des notes reçues de la base de données du tableau de notes et le tour est joué! Les premières versions du jeu sont déjà sur mon smartphone :)
Première version du jeuOui, ça a l'air "impressionnant", mais c'était presque suffisant pour tester le jeu! La dernière étape nécessaire était une liste de notes pour la chanson, et j'ai dû m'asseoir beaucoup de temps sur sa mise en œuvre.
Le principe est assez simple: selon les valeurs de la table de base de données, le programme crée des objets de la classe «Note» et ajoute les notes reçues au tableau. Le tableau se compose de deux colonnes:
- numéro de ligne de 1 à 4 le long duquel la note doit aller et
- l'heure à laquelle il doit apparaître à l'écran.
Sur quoi ai-je passé beaucoup de temps, si tout est si simple? Pour remplir cette base de données!
Malheureusement, à cette époque, je ne pouvais pas penser à automatiser le processus de réception des notes dans le format dont j'avais besoin à partir du fichier mp3 de la chanson, et j'ai donc dû remplir manuellement ces colonnes à l'oreille.
Le processus de remplissage de la base de données avec des notesCette méthode m'a permis de commencer à développer et tester le jeu au début, mais il était clair que je devais trouver autre chose. Ensuite, mon professeur, Ilyin Vladimir Vladimirovich, m'a beaucoup aidé, qui a parlé de l'existence du format MIDI, a expliqué sa structure et m'a aidé à trouver la bibliothèque que j'ai trouvée pour travailler avec des fichiers MIDI.
La beauté de ce format est que chaque instrument est déjà une piste distincte sur laquelle se trouvent certaines «notes». Ainsi, vous pouvez facilement traiter toutes les notes dans un cycle et les ajouter automatiquement à la base de données en fonction de la piste et du temps. C'est une propriété très importante, car c'est grâce à lui que j'ai pu résoudre le problème des jeux de ce genre: l'impossibilité d'ajouter mes propres chansons. Certes, le format MIDI a un gros inconvénient - le son (nous nous souvenons tous des morceaux dans les jeux rétro, non?).
Améliorant progressivement le gameplay, j'ai amené le programme dans un état pleinement opérationnel, ajouté de nombreuses «fonctionnalités»: la possibilité d'ajouter ma chanson depuis la mémoire de l'appareil ou depuis le répertoire cloud, le choix du niveau de difficulté, le mode débutant et bien plus encore.
Et finalement je suis arrivé à la «cerise sur le gâteau» ...
La conception
C'est là que l'incarnation de ma «vision» du jeu a commencé. Tout d'abord, j'ai commencé à choisir un programme de dessin. Je n'avais aucune expérience en conception graphique, j'avais donc besoin d'un logiciel simple à apprendre (Photoshop - by), mais en même temps flexible et pratique (Paint, je suis désolé). Le choix s'est porté sur Inkscape - un bon outil pour éditer des images vectorielles, principalement au format svg.
S'étant un peu habitué à ce programme, j'ai commencé à dessiner chaque élément du jeu et à l'enregistrer dans différentes résolutions, adaptées aux différentes tailles d'écran des appareils. Il y a également eu des tentatives de mise en œuvre d'une animation de l'explosion de notes, et malgré l'inadéquation de la conception résultante, j'ai été satisfait. Bien sûr, parallèlement à l'achèvement du projet, j'ai continué à travailler sur le design, en ajoutant de nouvelles couleurs (les dégradés sont le coup de foudre «à première vue»).
La première version du design (deux écrans, pas d'animation, l'ancien nom)
La deuxième version du design (4 écrans, l'écran initial vibre en douceur avec différentes couleurs, des dégradés partout)J'ai défendu mon projet de fin d'études et j'étais très heureux quand j'ai découvert que j'avais réussi le tour de qualification et que j'étais invité à la finale du concours de candidature IT SCHOOLS. Il me restait environ un mois avant le concours et j'ai sérieusement pensé à attirer une personne plus professionnelle dans le domaine du design. La recherche n'a pas été vaine: il s'est avéré que l'ami proche de mon frère est un excellent designer! Elle a immédiatement accepté de m'aider, et la conception actuelle du jeu est son mérite.
La version finale du designPublication
Après avoir terminé le travail sur la version finale, j'ai immédiatement commencé à préparer la demande de publication sur Google Play Market. Procédure standard: acquisition d'un compte développeur, compilation d'une page d'application, etc. Mais cette section ne traite pas de cela.
La chose la plus étonnante de cette histoire est les statistiques de téléchargement. Au début, le nombre de téléchargements DrumHero a augmenté progressivement et presque uniformément dans certains pays d'Europe, aux États-Unis et dans les pays de la CEI, mais un mois s'est écoulé et le nombre de téléchargements a atteint la barre des 100 000 téléchargements! Un fait intéressant est que la plupart des téléchargements provenaient d'Indonésie.
Conclusion
DrumHero est mon premier grand projet où j'ai appris à programmer. Il m'a non seulement amené à la finale panrusse du concours de projet informatique SAMSUNG SCHOOLS IT, mais m'a également apporté une grande expérience en design graphique, dans GameDev, en collaboration avec le service Play Market et bien plus encore.

Bien sûr, je vois maintenant de nombreuses lacunes dans le jeu, bien qu'aujourd'hui le nombre de téléchargements ait atteint près de 200 000. Mes plans sont de sortir une nouvelle version, j'ai des idées sur la façon d'augmenter la stabilité, d'améliorer le gameplay et d'augmenter le nombre de téléchargements.
Aide:
IT SCHOOL SAMSUNG est un programme gratuit d'éducation à temps plein pour les lycéens, il fonctionne dans 25 villes de Russie.
Student Graduation Project est une application mobile. Cela peut être un jeu, une application sociale, un planificateur - tout ce qu'ils veulent.
Vous pouvez postuler à une formation à partir de septembre 2019 sur le site du programme.