DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

Vanjaar word die sosiale en opvoedkundige program IT SCHOOL SAMSUNG 5 jaar oud (lees oor IT SCHOOL hier), en by hierdie geleentheid het ons ons gegradueerdes genooi om oor hulself en hul ervaring in die skep van hul mobiele toepassings te praat. Ons glo dat almal met baie begeerte sukses kan behaal!

Die eerste sulke gas in hierdie afdeling was Shamil Magomedov, 'n 2017-gegradueerde van SAMSUNG IT SCHOOL, nou 'n student by MIEM NRU HSE. Shamil, baie dankie dat jy die tyd geneem het om hierdie artikel te skryf, ten spyte van jou besige skedule!

Hallo almal!
Vandag wil ek praat oor hoe ek danksy die speletjie van “voorwaardelik toegelaat” tot die SAMSUNG IT SCHOOL na 'n finalis in die All-Russian mobiele ontwikkelingskompetisie gegaan het. DrumHero.

DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

voorgeskiedenis

Ek het IT-SKOOL betree toe ek in die 10de graad was. Van die heel eerste dae van opleiding het ek agter die ander ouens gebly, en dit was voorspelbaar selfs voor die aanvang van die kursus (dit is bewys deur my verskriklike lae toelatingseksamentellings). Al hierdie programmeringsbeginsels, die struktuur van die Android-platform en die Java-taal, hoe om dit alles te verstaan?

Gelukkig het ek alles gehad wat ek nodig gehad het om ontwikkelingsvaardighede suksesvol te bemeester: 'n grenslose begeerte om vorentoe te beweeg en nie op te hou nie.

Ek het baie tyd aan huiswerk gewy, gedurig laat gebly na klasse met onderwyser Vladimir Vladimirovich Ilyin (ek was ongelooflik gelukkig saam met hom), ek het begin aanpas by die vinnige pas van leer en dink aan my gradueringsprojek.

DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

Met onderwyser - V.V. Ilyin

Soek 'n idee

Baie mense dink dat wanneer 'n projek geskep word, of dit nou 'n begin of iets klein is om ondervinding op te doen, lê al die moeilikheid in die ontwikkeling: die skryf van 'n klomp kode, leer nuwe biblioteke, toets voortdurend - gruwel! Glo my, dit is glad nie waar nie. Ek het op presies dieselfde manier geredeneer totdat ek self gekonfronteer is met die behoefte om 'n idee te kies en te implementeer; dit blyk een van die moeilikste stadiums te wees.

Die moeilikste ding om 'n idee in die aanvanklike stadium van leer te kies, is om die kompleksiteit van implementering te bepaal: vir 'n lang tyd kon ek nie vorendag kom met 'n toepassing wat ek kon doen en terselfdertyd van hou nie.

Die meeste van alles wou ek 'n musikale speletjie skryf, maar twyfel oor my vermoëns het regtig in die pad gesteek. Dit het gelyk of dit nie moontlik sou wees om die werk klaar te maak nie, en om hierdie rede het ek my keuse meer as een keer verander: mobiele biljart, rolbal, hardloper, ens. Uiteindelik het ek een les hieruit geleer: probleme sal altyd opduik, ongeag die toepassingsidee, en daarom die belangrikste ding is om te kies waarvan jy hou en tot die einde toe gaan.

DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

Ek het altyd van die spel Guitar Hero gehou

Implementering van spellogika

Die basiese idee agter toepassings soos Guitar Hero is om die skerm op die maat van die musiek te tik.
Eerstens het ek die spellogika begin implementeer:

  1. Het klasse note, knoppies en strepe geskep waarlangs die note sal beweeg.
  2. Ek het die doek op die hele skerm van die toepassing geplaas en daarop het ek reeds die ligging van voorwerpe van die geskepde klasse beskryf.
  3. Implementeer die gelyktydige bekendstelling van 'n mp3-lêer van 'n liedjie en 'n verskeidenheid notas verkry uit die databasis en voila! Die eerste konsepte van die speletjie is reeds op my slimfoon :)

DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

Eerste weergawe van die speletjie

Ja, dit lyk “indrukwekkend”, maar dit was amper genoeg om die speletjie te toets! Die laaste nodige stap was die lys van note vir die liedjie, en ek moes baie tyd spandeer om aan die implementering daarvan te werk.
Die beginsel is redelik eenvoudig: deur die waardes van die databasistabel te gebruik, skep die program voorwerpe van die "Nota" -klas en voeg die gevolglike notas by die skikking. Die tabel bestaan ​​uit twee kolomme:

  • reëlnommer van 1 tot 4 waarop die noot moet gaan en
  • die tyd waarop dit op die skerm moet verskyn.

Hoekom het ek baie tyd spandeer as alles so eenvoudig is? Om hierdie databasis te vul!
Ongelukkig kon ek op daardie tydstip nie uitvind hoe om die proses te outomatiseer om die bladmusiek in die formaat te kry wat ek nodig het van 'n mp3-lêer van die liedjie nie, en daarom moes ek hierdie kolomme per oor hand invul.

DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

Die proses om die databasis met notas te vul

Hierdie metode het my toegelaat om die speletjie vroeg te begin ontwikkel en toets, maar dit was duidelik dat ek met iets anders vorendag moes kom. Hier het my onderwyser, Ilyin Vladimir Vladimirovich, my baie gehelp, wat oor die bestaan ​​van die MIDI-formaat gepraat het, die struktuur daarvan verduidelik het en my gehelp het om die biblioteek uit te vind wat ek gevind het om met MIDI-lêers te werk.

Die skoonheid van hierdie formaat is dat elke instrument daarin reeds 'n aparte snit is waarop sekere "note" geleë is. Op hierdie manier kan jy maklik deur al die notas loop en, afhangend van die snit en tyd, dit outomaties by die databasis voeg. Dit is 'n baie belangrike eienskap, want dit was te danke daaraan dat ek die probleem van speletjies van hierdie genre kon oplos: die onvermoë om my eie liedjies by te voeg. Die MIDI-formaat het weliswaar 'n groot nadeel - klank (ons onthou almal melodieë in retro-speletjies, reg?).

Om die spel geleidelik te verbeter, het ek die program na 'n volledig werkende toestand gebring, baie "kenmerke" bygevoeg: die vermoë om jou eie liedjie uit die toestel se geheue of uit 'n wolkkatalogus by te voeg, keuse van moeilikheidsgraad, beginnermodus en nog baie meer.
En uiteindelik het ek by die “kersie op die koek” gekom...

Design

Dit is waar die vergestalting van my "visie" van die spel begin het. Eerstens het ek 'n tekenprogram begin kies. Ek het geen ondervinding in grafiese ontwerp gehad nie, so ek het 'n program nodig gehad wat maklik was om te leer (Photoshop, terloops), maar ook buigsaam en gerieflik (Paint, sorry). Die keuse het op Inkscape geval - 'n goeie hulpmiddel om vektorbeelde te redigeer, hoofsaaklik in die svg-formaat.

Nadat ek 'n bietjie meer vertroud geraak het met hierdie program, het ek begin om elke element van die speletjie te teken en dit in verskillende resolusies te stoor, geskik vir verskillende toestelskermgroottes. Daar was ook pogings om 'n animasie van die ontploffing van notas te implementeer, en ten spyte van die ongeskiktheid van die gevolglike ontwerp, was ek tevrede. Natuurlik, parallel met die finalisering van die projek, het ek voortgegaan om aan die ontwerp te werk en nuwe kleure by te voeg (gradiënte is liefde "met die eerste oogopslag").

DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

Eerste weergawe van die ontwerp (twee skerms, geen animasie, ou naam)

DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

Tweede weergawe van die ontwerp (4 skerms, die aanvanklike skerm pulseer glad met verskillende kleure, gradiënte oral)

Ek het my finale projek verdedig en was baie bly toe ek uitvind dat ek die kwalifiserende rondte geslaag het en genooi is na die finaal van die IT-SKOOL-aansoekkompetisie. Ek het omtrent 'n maand oor gehad voor die kompetisie, en ek het ernstig daaraan gedink om 'n meer professionele persoon op die gebied van ontwerp aan te stel. Die soektog was nie verniet nie: soos dit geblyk het, is my broer se goeie vriend 'n uitstekende ontwerper! Sy het dadelik ingestem om my te help, en die huidige speletjie-ontwerp is haar krediet.

DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

Finale ontwerp

publikasie

Nadat ek werk aan die vrystellingweergawe voltooi het, het ek dadelik begin om die aansoek voor te berei vir publikasie op die Google Play Market. Standaardprosedure: verkry 'n ontwikkelaarrekening, skep 'n toepassingbladsy, ens. Maar hierdie afdeling gaan nie daaroor nie.

Die mees verrassende ding in hierdie storie is die aflaaistatistieke. Aanvanklik het die aantal DrumHero-aflaaie geleidelik en byna eweredig toegeneem oor sommige Europese lande, die VSA en die GOS-lande, maar 'n maand het verbygegaan en die aantal aflaaie het 100 000 aflaaie bereik! 'n Interessante feit is dat die meeste van die aflaaie van Indonesië gekom het.

Gevolgtrekking

DrumHero is my eerste ernstige projek waar ek geleer het om te programmeer. Hy het my nie net na die geheel-Russiese finaal van die SAMSUNG IT SCHOOL-projekkompetisie gebring nie, maar het my ook baie ondervinding gegee in grafiese ontwerp, GameDev, interaksie met die Play Market-diens en nog baie meer.

DrumHero: Hoe ek die eerste speletjie in my lewe gemaak het

Natuurlik, nou sien ek baie tekortkominge in die spel, alhoewel die aantal aflaaie vandag amper 200 000 bereik het. My planne is om 'n nuwe weergawe vry te stel, daar is idees oor hoe om stabiliteit te verhoog, spel te verbeter en die aantal aflaaie te verhoog.

Hulp:
SAMSUNG IT SCHOOL is 'n gratis voltydse addisionele onderwysprogram vir hoërskoolleerlinge, wat in 25 stede van Rusland werksaam is.
Die studente se afstudeerprojek is 'n mobiele toepassing. Dit kan 'n speletjie, 'n sosiale toepassing, 'n beplanner wees, wat hulle ook al wil hê.
Jy kan aansoek doen vir opleiding vanaf September 2019 by Online program.


Bron: will.com

Voeg 'n opmerking