DrumHero: Hoe ik de eerste game in mijn leven maakte

Dit jaar bestaat het sociale en educatieve programma IT SCHOOL SAMSUNG 5 jaar (lees over IT SCHOOL hier), en bij deze gelegenheid nodigden we onze afgestudeerden uit om over zichzelf en hun ervaringen met het maken van hun mobiele applicaties te praten. Wij geloven dat met veel verlangen iedereen succes kan behalen!

De eerste gast in deze sectie was Shamil Magomedov, afgestudeerd in 2017 aan SAMSUNG IT SCHOOL, nu student aan MIEM NRU HSE. Shamil, heel erg bedankt dat je de tijd hebt genomen om dit artikel te schrijven, ondanks je drukke agenda!

Hallo iedereen!
Vandaag wil ik het hebben over hoe ik dankzij de game van “voorwaardelijk toegelaten” tot de SAMSUNG IT SCHOOL ben uitgegroeid tot finalist in de All-Russische competitie voor mobiele ontwikkeling Drumheld.

DrumHero: Hoe ik de eerste game in mijn leven maakte

prehistorie

Ik ging naar de IT SCHOOL toen ik in de 10e klas zat. Vanaf de eerste trainingsdagen liep ik achter op de andere jongens, en dit was al vóór de start van de cursus voorspelbaar (dit bleek uit mijn verschrikkelijk lage scores voor het toelatingsexamen). Al deze programmeerprincipes, de structuur van het Android-platform en de Java-taal, hoe kunnen we dit allemaal begrijpen?

Gelukkig had ik alles wat ik nodig had om ontwikkelingsvaardigheden met succes onder de knie te krijgen: een grenzeloos verlangen om vooruit te komen en niet te stoppen.

Door veel tijd aan huiswerk te besteden en voortdurend te laat te blijven na de lessen bij leraar Vladimir Vladimirovitsj Ilyin (ik had ongelooflijk veel geluk met hem), begon ik me aan te passen aan het hoge leertempo en na te denken over mijn afstudeerproject.

DrumHero: Hoe ik de eerste game in mijn leven maakte

Met leraar - V.V. Ilyin

Zoek naar een idee

Veel mensen denken dat bij het maken van een project, of het nu een startup is of iets kleins om ervaring op te doen, alle moeilijkheid in de ontwikkeling ligt: ​​een heleboel code schrijven, nieuwe bibliotheken leren, voortdurend testen - horror! Geloof me, dit is helemaal niet waar. Ik redeneerde op precies dezelfde manier totdat ik zelf geconfronteerd werd met de noodzaak om een ​​idee te kiezen en uit te voeren; het bleek een van de moeilijkste fasen te zijn.

Het moeilijkste bij het kiezen van een idee in de beginfase van het leren is het bepalen van de complexiteit van de implementatie: lange tijd kon ik geen toepassing bedenken die ik kon doen en tegelijkertijd leuk vond.

Ik wilde vooral een muzikaal spel schrijven, maar twijfels over mijn kunnen stonden me echt in de weg. Het leek erop dat het niet mogelijk zou zijn om de klus te klaren, en om deze reden veranderde ik mijn keuze meer dan eens: mobiel biljart, bowlen, runner, enz. Uiteindelijk heb ik hier één les uit geleerd: er zullen altijd moeilijkheden blijven bestaan, ongeacht het toepassingsidee, en daarom het belangrijkste is om te kiezen wat je leuk vindt en tot het einde te gaan.

DrumHero: Hoe ik de eerste game in mijn leven maakte

Ik vond het spel Guitar Hero altijd leuk

Implementatie van spellogica

Het basisidee achter apps als Guitar Hero is om op het ritme van de muziek op het scherm te tikken.
Allereerst begon ik de spellogica te implementeren:

  1. Er zijn klassen van noten, knoppen en strepen gemaakt waarlangs de noten bewegen.
  2. Ik plaatste het canvas op het volledige scherm van de applicatie en beschreef daarop al de locatie van objecten van de gemaakte klassen.
  3. Implementeerde de gelijktijdige lancering van een mp3-bestand van een nummer en een reeks notities verkregen uit de database en voila! De eerste versies van het spel staan ​​al op mijn smartphone :)

DrumHero: Hoe ik de eerste game in mijn leven maakte

Eerste versie van het spel

Ja, het ziet er “indrukwekkend” uit, maar het was bijna genoeg om het spel te testen! De laatste noodzakelijke stap was de lijst met noten voor het nummer, en ik moest veel tijd besteden aan de implementatie ervan.
Het principe is vrij eenvoudig: met behulp van de waarden van de databasetabel creëert het programma objecten van de klasse "Note" en voegt de resulterende notities toe aan de array. De tabel bestaat uit twee kolommen:

  • regelnummer van 1 t/m 4 waarop het briefje moet komen en
  • het tijdstip waarop het op het scherm moet verschijnen.

Waarom heb ik er veel tijd aan besteed als alles zo eenvoudig is? Om deze database te vullen!
Helaas kon ik er op dat moment niet achter komen hoe ik het proces van het verkrijgen van de bladmuziek in het formaat dat ik nodig had uit een mp3-bestand van het nummer kon automatiseren, en dus moest ik deze kolommen handmatig op het gehoor invullen.

DrumHero: Hoe ik de eerste game in mijn leven maakte

Het proces van het vullen van de database met aantekeningen

Dankzij deze methode kon ik al vroeg beginnen met het ontwikkelen en testen van het spel, maar het was duidelijk dat ik met iets anders moest komen. Hier heeft mijn leraar, Ilyin Vladimir Vladimirovich, me enorm geholpen, die vertelde over het bestaan ​​van het MIDI-formaat, de structuur ervan uitlegde en me hielp de bibliotheek te vinden die ik had gevonden voor het werken met MIDI-bestanden.

Het mooie van dit formaat is dat elk instrument daarin al een apart spoor is waarop bepaalde “noten” zich bevinden. Zo loop je eenvoudig alle notities door en voeg je ze, afhankelijk van het nummer en de tijd, automatisch toe aan de database. Dit is een heel belangrijke eigenschap, want dankzij hem heb ik het probleem van games van dit genre kunnen oplossen: het onvermogen om mijn eigen nummers toe te voegen. Toegegeven, het MIDI-formaat heeft een groot nadeel: geluid (we herinneren ons allemaal melodieën in retrogames, toch?).

Geleidelijk aan het verbeteren van de gameplay, bracht ik het programma naar een volledig werkende staat, voegde veel "functies" toe: de mogelijkheid om je eigen nummer toe te voegen vanuit het geheugen van het apparaat of uit een cloudcatalogus, keuze van moeilijkheidsgraad, beginnersmodus en nog veel meer.
En uiteindelijk kwam ik bij de “kers op de taart”...

ontwerp

Dit is waar de belichaming van mijn ‘visie’ op het spel begon. Allereerst begon ik een tekenprogramma te kiezen. Ik had geen enkele ervaring met grafisch ontwerp, dus ik had een programma nodig dat gemakkelijk te leren was (Photoshop trouwens), maar ook flexibel en handig (Paint, sorry). De keuze viel op Inkscape - een goed hulpmiddel voor het bewerken van vectorafbeeldingen, voornamelijk in het svg-formaat.

Nadat ik wat meer vertrouwd was geraakt met dit programma, begon ik elk element van het spel te tekenen en op te slaan in verschillende resoluties, geschikt voor verschillende schermformaten van het apparaat. Er waren ook pogingen om een ​​animatie van de explosie van noten te implementeren, en ondanks de ongeschiktheid van het resulterende ontwerp was ik tevreden. Natuurlijk bleef ik, parallel met het afronden van het project, aan het ontwerp werken en nieuwe kleuren toevoegen (verlopen zijn liefde “op het eerste gezicht”).

DrumHero: Hoe ik de eerste game in mijn leven maakte

Eerste versie van het ontwerp (twee schermen, geen animatie, oude naam)

DrumHero: Hoe ik de eerste game in mijn leven maakte

Tweede versie van het ontwerp (4 schermen, het eerste scherm pulseert vloeiend met verschillende kleuren, overal verlopen)

Ik verdedigde mijn afstudeerproject en was erg blij toen ik hoorde dat ik geslaagd was voor de kwalificatieronde en was uitgenodigd voor de finale van de IT SCHOOL-aanvraagwedstrijd. Ik had nog ongeveer een maand te gaan voor de wedstrijd en ik dacht er serieus over na om een ​​professioneler persoon op het gebied van design in te huren. De zoektocht was niet tevergeefs: de goede vriend van mijn broer bleek een uitstekende ontwerper! Ze stemde er onmiddellijk mee in om mij te helpen, en het huidige spelontwerp is haar verdienste.

DrumHero: Hoe ik de eerste game in mijn leven maakte

Definitief ontwerp

uitgave

Nadat ik het werk aan de releaseversie had voltooid, begon ik onmiddellijk met het voorbereiden van de aanvraag voor publicatie op de Google Play Market. Standaardprocedure: een ontwikkelaarsaccount verkrijgen, een applicatiepagina aanmaken, enz. Maar daar gaat deze paragraaf niet over.

Het meest verrassende in dit verhaal zijn de downloadstatistieken. Aanvankelijk nam het aantal DrumHero-downloads geleidelijk en vrijwel gelijkmatig toe in sommige Europese landen, de VS en de GOS-landen, maar een maand ging voorbij en het aantal downloads bereikte 100 downloads! Een interessant feit is dat de meeste downloads uit Indonesië kwamen.

Conclusie

DrumHero is mijn eerste serieuze project waarbij ik heb leren programmeren. Hij bracht me niet alleen naar de volledig Russische finale van de SAMSUNG IT SCHOOL-projectwedstrijd, maar gaf me ook veel ervaring in grafisch ontwerp, GameDev, interactie met de Play Market-service en nog veel meer.

DrumHero: Hoe ik de eerste game in mijn leven maakte

Natuurlijk zie ik nu veel tekortkomingen in het spel, hoewel het aantal downloads vandaag bijna 200 heeft bereikt. Mijn plannen zijn om een ​​nieuwe versie uit te brengen, er zijn ideeën om de stabiliteit te vergroten, de gameplay te verbeteren en het aantal downloads te vergroten.

Help:
SAMSUNG IT SCHOOL is een gratis voltijds aanvullend onderwijsprogramma voor middelbare scholieren, actief in 25 steden in Rusland.
Het afstudeerproject van de studenten is een mobiele applicatie. Het kan een game zijn, een sociale app, een planner, wat ze maar willen.
Je kunt je vanaf september 2019 aanmelden voor een opleiding via Online programma's.


Bron: www.habr.com

Voeg een reactie