DrumHero: Wie ich das erste Spiel in meinem Leben gemacht habe

In diesem Jahr ist das Sozial- und Bildungsprogramm für Schüler der IT SCHOOL SAMSUNG 5 Jahre alt (lesen Sie hier über die IT SCHOOL). Bei dieser Gelegenheit haben wir unsere Absolventen eingeladen, über sich selbst und die Erfahrungen bei der Erstellung ihrer mobilen Anwendungen zu sprechen. Wir glauben, dass mit einem großen Wunsch jeder Erfolg haben kann!

Hallo allerseits!

Mein Name ist Shamil Magomedov, ich bin Absolvent der SAMSUNG IT SCHOOL 2017, derzeit bin ich Student an der MIEM NRU HSE. Heute möchte ich darüber sprechen, wie ich mich dank des Spiels DrumHero von „bedingt gutgeschrieben“ in der SAMSUNG IT-SCHOOL zum Finalisten des Allrussischen Wettbewerbs für mobile Entwicklung entwickelt habe .

Bild

Hintergrund


Ich trat in die IT-Schule ein, als ich in der 10. Klasse war. Von den ersten Trainingstagen an blieb ich hinter den anderen zurück, und dies war bereits vor Beginn des Kurses vorhersehbar (dies wurde durch meine schrecklich niedrigen Punktzahlen bei der Aufnahmeprüfung angezeigt). All diese Prinzipien der Programmierung, das Gerät der Android-Plattform und die Java-Sprache, wie kann man das alles verstehen?

Glücklicherweise hatte ich alles, was für die erfolgreiche Entwicklung von Entwicklungsfähigkeiten benötigt wurde: einen unbegrenzten Wunsch, vorwärts zu gehen und nicht aufzuhören.

Ich gab viel Zeit für Hausaufgaben und verweilte ständig nach Paaren mit Lehrer Vladimir Vladimirovich Ilyin (ich hatte großes Glück mit ihm). Ich begann mich an das schnelle Trainingstempo anzupassen und über ein Abschlussprojekt nachzudenken.

Bild

Mit einem Lehrer - V.V. Ilyin

Suche nach einer Idee


Viele Leute denken, dass beim Erstellen eines Projekts, sei es ein Startup oder etwas Kleines, um Erfahrungen zu sammeln, die ganze Schwierigkeit in der Entwicklung liegt: Eine Menge Code schreiben, neue Bibliotheken lernen, ständig testen ist schrecklich! Glauben Sie mir, das ist überhaupt nicht wahr. Ich habe genau so argumentiert, bis ich selbst mit der Notwendigkeit konfrontiert war, eine Idee auszuwählen und umzusetzen. Es stellte sich heraus, dass dies eine der schwierigsten Phasen war.

Das Schwierigste bei der Auswahl einer Idee in der Anfangsphase der Schulung ist die Bestimmung der Komplexität der Implementierung: Lange Zeit konnte ich keine Anwendung finden, die ich mir leisten konnte und die ich gleichzeitig mag.

Am allermeisten wollte ich ein Musikspiel schreiben, aber Zweifel an meinen Fähigkeiten störten mich sehr. Es schien, dass es nicht möglich sein würde, den Job zu beenden, und aus diesem Grund habe ich meine Wahl mehr als einmal geändert: mobiles Billard, Bowling, Läufer usw. Am Ende habe ich eine Lektion daraus gelernt: Unabhängig von der Idee der Anwendung werden immer Schwierigkeiten auftreten. Daher ist es am wichtigsten, zu wählen, was Ihnen gefällt, und bis zum Ende zu gehen .

Bild

Das Spiel Guitar Hero hat mir immer gefallen

Implementierung der Spielelogik


Die Hauptidee von Anwendungen wie Guitar Hero ist es, den Bildschirm im Rhythmus der Musik zu antippen.
Zunächst begann ich mit der Implementierung der Spielelogik:

  1. Erstellt Klassen von Notizen, Schaltflächen und Streifen, auf denen sich Notizen bewegen.
  2. Ich habe die Leinwand auf dem gesamten Bildschirm der Anwendung platziert und bereits die Position der Objekte der erstellten Klassen darauf gemalt.
  3. Implementierte den gleichzeitigen Start der MP3-Datei des Songs und der aus der Datenbank des Arrays von Noten und Voila empfangenen Noten! Die ersten Entwürfe des Spiels sind bereits auf meinem Smartphone :)


Bild

Erste Version des Spiels

Ja, es sieht "beeindruckend" aus, aber das war fast genug, um das Spiel zu testen! Der letzte notwendige Schritt war eine Liste von Noten für das Lied, und ich musste viel Zeit für die Implementierung aufwenden.
Das Prinzip ist recht einfach: Entsprechend den Werten der Datenbanktabelle erstellt das Programm Objekte der Klasse „Note“ und fügt die empfangenen Notizen dem Array hinzu. Die Tabelle besteht aus zwei Spalten:

  • Zeilennummer von 1 bis 4, entlang der die Note gehen soll und
  • die Zeit, zu der es auf dem Bildschirm erscheinen soll.

Wofür habe ich viel Zeit aufgewendet, wenn alles so einfach ist? Um diese Datenbank zu füllen!
Leider konnte ich mir damals nicht vorstellen, wie ich den Empfang von Notizen in dem von mir benötigten Format aus der MP3-Datei des Songs automatisieren könnte, und musste diese Spalten daher manuell nach Gehör ausfüllen.



Der Vorgang des Füllens der Datenbank mit Notizen

Mit dieser Methode konnte ich zunächst mit der Entwicklung und dem Testen des Spiels beginnen, aber es war klar, dass noch etwas anderes herauskommen musste. Dann half mir mein Lehrer, Ilyin Vladimir Vladimirovich, sehr, der über die Existenz des MIDI-Formats sprach, dessen Struktur erklärte und mir half, die Bibliothek herauszufinden, die ich für die Arbeit mit MIDI-Dateien gefunden hatte.

Das Schöne an diesem Format ist, dass jedes Instrument bereits eine eigene Spur ist, auf der sich bestimmte „Noten“ befinden. Auf diese Weise können Sie alle Notizen in einem Zyklus einfach verarbeiten und je nach Titel und Zeit automatisch zur Datenbank hinzufügen. Dies ist eine sehr wichtige Eigenschaft, denn dank ihm konnte ich das Problem der Spiele dieses Genres lösen: die Unfähigkeit, meine eigenen Songs hinzuzufügen. Das MIDI-Format hat zwar ein großes Minus - den Sound (wir alle erinnern uns an die Melodien in Retro-Spielen, oder?).

Allmählich verbesserte ich das Gameplay, brachte das Programm in einen voll funktionsfähigen Zustand und fügte viele „Funktionen“ hinzu: die Möglichkeit, meinen Song aus dem Speicher des Geräts oder aus dem Cloud-Verzeichnis hinzuzufügen, die Wahl des Schwierigkeitsgrades, den Anfängermodus und vieles mehr.
Und schließlich kam ich zur "Kirsche auf dem Kuchen" ...

Design


Hier begann die Verkörperung meiner „Vision“ des Spiels. Zunächst begann ich, ein Programm zum Zeichnen auszuwählen. Ich hatte keine Erfahrung im Grafikdesign, daher brauchte ich ein einfach zu erlernendes (Photoshop - by), aber gleichzeitig flexibles und praktisches Programm (Paint, tut mir leid). Die Wahl fiel auf Inkscape - ein gutes Werkzeug zum Bearbeiten von Vektorbildern, hauptsächlich im SVG-Format.

Nachdem ich mich ein wenig an dieses Programm gewöhnt hatte, begann ich, jedes Element des Spiels zu zeichnen und in verschiedenen Auflösungen zu speichern, die für verschiedene Bildschirmgrößen von Geräten geeignet waren. Es gab auch Versuche, eine Animation der Explosion von Noten zu implementieren, und trotz der Ungeeignetheit des resultierenden Designs war ich zufrieden. Parallel zum Abschluss des Projekts arbeitete ich natürlich weiter am Design und fügte neue Farben hinzu (Farbverläufe sind Liebe „auf den ersten Blick“).



Die erste Version des Designs (zwei Bildschirme, keine Animation, der alte Name)



Die zweite Version des Designs (4 Bildschirme, der erste Bildschirm pulsiert sanft mit verschiedenen Farben, Farbverläufen überall)

Ich verteidigte das Abschlussprojekt und war sehr glücklich, als ich herausfand, dass ich die Qualifikationsrunde bestanden hatte und zum Finale des IT SCHOOLS-Bewerbungswettbewerbs eingeladen wurde. Ich hatte noch ungefähr einen Monat Zeit vor dem Wettbewerb und dachte ernsthaft darüber nach, eine professionellere Person im Bereich Design zu gewinnen. Die Suche war nicht umsonst: Wie sich herausstellte, ist der enge Freund meines Bruders ein ausgezeichneter Designer! Sie erklärte sich sofort bereit, mir zu helfen, und das aktuelle Design des Spiels ist ihr Verdienst.



Die endgültige Version des Designs

Posting


Nachdem ich die Arbeit an der Release-Version abgeschlossen hatte, begann ich sofort, die Anwendung für die Veröffentlichung im Google Play Market vorzubereiten. Standardverfahren: Erwerb eines Entwicklerkontos, Kompilieren einer Anwendungsseite usw. Aber in diesem Abschnitt geht es nicht darum.

Das Erstaunlichste in dieser Geschichte ist die Download-Statistik. Zunächst stieg die Anzahl der DrumHero-Downloads in einigen Ländern Europas, der USA und der GUS-Staaten allmählich und nahezu gleichmäßig an, doch ein Monat verging und die Anzahl der Downloads erreichte die Marke von 100.000 Downloads! Eine interessante Tatsache ist, dass die meisten Downloads aus Indonesien stammten.

Fazit


DrumHero ist mein erstes großes Projekt, bei dem ich das Programmieren gelernt habe. Er brachte mich nicht nur zum allrussischen Finale des IT-Projektwettbewerbs der SAMSUNG SCHOOLS, sondern gab mir auch großartige Erfahrungen im Grafikdesign, in GameDev, in Verbindung mit dem Play Market-Service und vielem mehr.



Natürlich sehe ich jetzt viele Mängel im Spiel, obwohl die Anzahl der Downloads heute fast 200.000 erreicht hat. Meine Pläne sind die Veröffentlichung einer neuen Version. Ich habe Ideen, wie ich die Stabilität erhöhen, das Gameplay verbessern und die Anzahl der Downloads erhöhen kann.

Hilfe:
SAMSUNG IT SCHOOL ist ein kostenloses Vollzeitprogramm für zusätzliche Bildung für Schüler, das in 25 Städten Russlands funktioniert.
Student Graduation Project ist eine mobile Anwendung. Es kann ein Spiel sein, eine soziale Anwendung, ein Planer - alles, was sie wollen.
Sie können sich ab September 2019 auf der Programmwebsite für eine Schulung bewerben.

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


All Articles