DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

Dit jier bestiet it sosjale en edukatyf programma IT SCHOOL SAMSUNG 5 jier (lês oer IT SCHOOL hjir), en by dizze gelegenheid hawwe wy ús ôfstudearden útnoege om te praten oer harsels en har ûnderfining by it meitsjen fan har mobile applikaasjes. Wy leauwe dat elkenien mei in protte winsk sukses kin berikke!

De earste sa'n gast yn dizze seksje wie Shamil Magomedov, in 2017 ôfstudearre fan SAMSUNG IT SCHOOL, no in studint oan MIEM NRU HSE. Shamil, tige tank foar it nimmen fan de tiid om dit artikel te skriuwen, nettsjinsteande jo drokke skema!

Hello everyone!
Hjoed wol ik prate oer hoe't ik gie fan "betingsten talitten" ta de SAMSUNG IT SCHOOL yn in finalist yn 'e All-Russyske mobile ûntwikkelingskompetysje tanksij it spultsje DrumHero.

DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

prehistoarje

Ik kaam yn IT SCHOOL doe't ik yn 'e 10e klasse siet. Fan 'e earste dagen fan' e oplieding lei ik efter de oare jonges, en dit wie foarspelber noch foar it begjin fan 'e kursus (dit waard bewiisd troch myn ferskriklik lege skoares foar yngongseksamen). Al dizze programmearringprinsipes, de struktuer fan it Android-platfoarm en de Java-taal, hoe kinne jo it allegear begripe?

Gelokkich hie ik alles wat ik nedich wie om ûntwikkelingsfeardigens mei súkses te behearskjen: in grinsleaze winsk om foarút te gean en net te stopjen.

In protte tiid besteegje oan húswurk, hieltyd let te bliuwen nei lessen mei learaar Vladimir Vladimirovich Ilyin (ik wie ongelooflijk gelok mei him), begon ik oan te passen oan it rappe leartempo en nei te tinken oer myn ôfstudearprojekt.

DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

Mei learaar - V.V. Ilyin

Sykje nei in idee

In protte minsken tinke dat by it oanmeitsjen fan in projekt, of it no in opstart is of wat lyts om ûnderfining op te heljen, alle muoite leit yn 'e ûntwikkeling: it skriuwen fan in bosk koade, it learen fan nije biblioteken, konstant testen - horror! Leau my, dit is hielendal net wier. Ik redenearre op krekt deselde manier oant ik sels te krijen hie mei de needsaak om in idee te kiezen en út te fieren; it blykte ien fan 'e dreechste stadia te wêzen.

It dreechste ding by it kiezen fan in idee yn 'e earste faze fan learen is it bepalen fan de kompleksiteit fan ymplemintaasje: ik koe in lange tiid net komme mei in applikaasje dy't ik koe dwaan en tagelyk leuk.

Meast fan alles woe ik in muzikaal spul skriuwe, mar twifels oer myn kapasiteiten stiene echt yn 'e wei. It like dat it net mooglik wêze soe om it wurk ôf te meitsjen, en dêrom haw ik myn kar mear as ien kear feroare: mobyl biljert, bowling, runner, ensfh. Uteinlik learde ik ien les fan dit: swierrichheden sille altyd ûntstean, nettsjinsteande de applikaasje idee, en dêrom it wichtichste is om te kiezen wat jo leuk fine en nei it ein gean.

DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

Ik haw altyd like it spultsje Guitar Hero

Utfiering fan spultsje logika

It basisidee efter apps lykas Guitar Hero is om it skerm te tikken op 'e beat fan' e muzyk.
As earste begon ik de spiellogika te ymplementearjen:

  1. Oanmakke klassen fan notysjes, knoppen en strepen wêrby't de notysjes sille bewege.
  2. Ik pleatste it doek op it heule skerm fan 'e applikaasje en dêrop haw ik de lokaasje fan objekten fan' e makke klassen al beskreaun.
  3. Implementearre de simultane lansearring fan in mp3-bestân fan in ferske en in array fan notysjes krigen fan 'e database en voila! De earste konsepten fan it spultsje binne al op myn smartphone :)

DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

Earste ferzje fan it spul

Ja, it liket "yndrukwekkend", mar it wie hast genôch om it spultsje te testen! De lêste nedige stap wie de list mei notysjes foar it ferske, en ik moast in protte tiid besteegje oan it útfieren fan it.
It prinsipe is frij simpel: mei help fan de wearden fan de databank tabel, it programma makket objekten fan de klasse "Note" en heakket de resultearjende notysjes oan de array. De tabel bestiet út twa kolommen:

  • line nûmer fan 1 oan 4 dêr't de notysje moat gean en
  • de tiid wêrop it moat ferskine op it skerm.

Wêrom haw ik in protte tiid trochbrocht as alles sa ienfâldich is? Om dizze databank te befolkjen!
Spitigernôch koe ik op dat stuit net útfine hoe't ik it proses fan it krijen fan de blêdmuzyk yn it formaat dat ik nedich wie fan in mp3-bestân fan it ferske automatisearje koe, en dus moast ik dizze kolommen manuell ynfolje.

DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

It proses fan it ynfoljen fan de databank mei notysjes

Dizze metoade koe my begjinne te ûntwikkeljen en te testen it spultsje betiid, mar it wie dúdlik dat ik moast komme mei wat oars. Hjir holp myn learaar, Ilyin Vladimir Vladimirovich, my in protte, dy't praat oer it bestean fan it MIDI-formaat, ferklearre de struktuer en holp my de bibleteek út te finen dy't ik fûn hie foar wurkjen mei MIDI-bestannen.

De skientme fan dit formaat is dat dêryn elk ynstrumint al in apart spoar is, dêr't bepaalde "notysjes" op sitte. Op dizze manier kinne jo alle notysjes maklik trochrinne en, ôfhinklik fan it spoar en de tiid, se automatysk tafoegje oan de databank. Dit is in heul wichtich eigendom, om't it wie te tankjen oan it dat ik it probleem fan spultsjes fan dit sjenre koe oplosse: it ûnfermogen om myn eigen ferskes ta te foegjen. Wier, it MIDI-formaat hat in grut neidiel - lûd (wy tinke allegear melodieën yn retro-spultsjes, toch?).

Stadichoan ferbetterjen fan de gameplay, ik brocht it programma nei in folslein wurkjende steat, tafoege in protte "funksjes": de mooglikheid om te foegjen jo eigen ferske út it apparaat syn ûnthâld of út in wolk katalogus, kar fan swierrichheden nivo, begjinner modus en folle mear.
En úteinlik kaam ik by de "kers op 'e taart" ...

design

Dit is wêr't de belichaming fan myn "fyzje" fan it spul begon. Earst bin ik begûn mei it kiezen fan in tekenprogramma. Ik hie gjin ûnderfining yn grafysk ûntwerp, dus ik hie in programma nedich dat maklik te learen wie (Photoshop, trouwens), mar ek fleksibel en handich (Paint, sorry). De kar foel op Inkscape - in goed ark foar it bewurkjen fan fektorôfbyldings, benammen yn it svg-formaat.

Nei't ik in bytsje mear fertroud wurden wie mei dit programma, begon ik elk elemint fan it spultsje te tekenjen en it op te slaan yn ferskate resolúsjes, geskikt foar ferskate apparaatskermgrutte. D'r wiene ek besykjen om in animaasje fan 'e eksploazje fan notysjes út te fieren, en nettsjinsteande de ûngeskiktens fan it resultearjende ûntwerp, wie ik bliid. Fansels, parallel mei it finalisearjen fan it projekt, bleau ik wurkje oan it ûntwerp, it tafoegjen fan nije kleuren (gradiënten binne leafde "op it earste gesicht").

DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

Earste ferzje fan it ûntwerp (twa skermen, gjin animaasje, âlde namme)

DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

Twadde ferzje fan it ûntwerp (4 skermen, it inisjele skerm pulsearret soepel mei ferskate kleuren, gradienten oeral)

Ik ferdigene myn lêste projekt en wie tige bliid doe't ik fûn út dat ik hie slagge foar de kwalifikaasjeronde en waard útnoege foar de finale fan de IT SCHOOL applikaasje kompetysje. Ik hie sawat in moanne oer foar de konkurrinsje, en ik tocht serieus oer it ynhieren fan in mear profesjonele persoan op it mêd fan ûntwerp. It sykjen wie net om 'e nocht: sa die bliken, de nauwe freon fan myn broer is in poerbêste ûntwerper! Se stimde fuortendaliks yn om my te helpen, en it hjoeddeistige spultsje-ûntwerp is har kredyt.

DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

Finale ûntwerp

Publikaasje

Nei it foltôgjen fan it wurk oan 'e releaseferzje, begon ik fuortendaliks de applikaasje foar publikaasje op' e Google Play Market te meitsjen. Standertproseduere: in ûntwikkeldersaccount oanmeitsje, in applikaasjeside oanmeitsje, ensfh. Mar dizze seksje giet der net oer.

It meast ferrassende ding yn dit ferhaal is de downloadstatistiken. Yn it earstoan, it oantal DrumHero downloads tanommen stadichoan en hast gelyk oer guon Europeeske lannen, de FS en de CIS lannen, mar in moanne ferrûn en it oantal downloads berikte 100 downloads! In nijsgjirrich feit is dat de measte downloads út Yndoneezje kamen.

konklúzje

DrumHero is myn earste serieuze projekt wêr't ik learde te programmearjen. Hy brocht my net allinich nei de all-Russyske finale fan 'e SAMSUNG IT SCHOOL-projektkompetysje, mar joech my ek in protte ûnderfining yn grafysk ûntwerp, GameDev, ynteraksje mei de Play Market-tsjinst en folle mear.

DrumHero: Hoe't ik de earste wedstriid yn myn libben makke

Fansels, no sjoch ik in protte tekoartkommingen yn it spul, hoewol hjoed it oantal downloads hast hast 200 000 berikt.

Help:
SAMSUNG IT SCHOOL is in fergees fulltime ekstra opliedingsprogramma foar studinten fan middelbere skoallen, opereare yn 25 stêden fan Ruslân.
It ôfstudearprojekt fan 'e studinten is in mobile applikaasje. It kin in spultsje wêze, in sosjale app, in planner, wat se wolle.
Jo kinne oanfreegje foar training fan septimber 2019 by side programma's.


Boarne: www.habr.com

Add a comment