DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Φέτος το κοινωνικό και εκπαιδευτικό πρόγραμμα IT SCHOOL SAMSUNG γίνεται 5 ετών (διαβάστε για το IT SCHOOL εδώ), και με την ευκαιρία αυτή καλέσαμε τους αποφοίτους μας να μιλήσουν για τον εαυτό τους και την εμπειρία τους στη δημιουργία των εφαρμογών τους για κινητά. Πιστεύουμε ότι με πολλή επιθυμία, όλοι μπορούν να πετύχουν!

Ο πρώτος τέτοιος καλεσμένος σε αυτό το τμήμα ήταν ο Shamil Magomedov, απόφοιτος του 2017 του SAMSUNG IT SCHOOL, τώρα φοιτητής στο MIEM NRU HSE. Shamil, σας ευχαριστώ πολύ που αφιερώσατε χρόνο για να γράψετε αυτό το άρθρο, παρά το πολυάσχολο πρόγραμμά σας!

Γεια σε όλους!
Σήμερα θα ήθελα να μιλήσω για το πώς έγινα από την «υπό όρους εισαγωγή» στο SAMSUNG IT SCHOOL σε φιναλίστ στον Πανρωσικό διαγωνισμό ανάπτυξης κινητής τηλεφωνίας χάρη στο παιχνίδι DrumHero.

DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Ιστορικό

Μπήκα στη ΣΧΟΛΗ ΠΛΗΡΟΦΟΡΙΚΗΣ όταν ήμουν στη 10η δημοτικού. Από τις πρώτες κιόλας μέρες της προπόνησης, έμεινα πίσω από τα άλλα παιδιά, και αυτό ήταν προβλέψιμο ακόμη και πριν από την έναρξη του μαθήματος (αυτό αποδεικνύεται από τις φρικτά χαμηλές βαθμολογίες μου στις εισαγωγικές εξετάσεις). Όλες αυτές οι αρχές προγραμματισμού, η δομή της πλατφόρμας Android και η γλώσσα Java, πώς να τα καταλάβετε όλα;

Ευτυχώς, είχα όλα όσα χρειαζόμουν για να κατακτήσω με επιτυχία τις δεξιότητες ανάπτυξης: μια απεριόριστη επιθυμία να προχωρήσω μπροστά και να μην σταματήσω.

Αφιερώνοντας πολύ χρόνο στην εργασία, παραμένοντας συνεχώς αργά μετά τα μαθήματα με τον δάσκαλο Vladimir Vladimirovich Ilyin (ήμουν απίστευτα τυχερός μαζί του), άρχισα να προσαρμόζομαι στον γρήγορο ρυθμό της μάθησης και να σκέφτομαι το έργο αποφοίτησής μου.

DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Με δάσκαλο - V.V. Ilyin

Αναζητήστε μια ιδέα

Πολλοί άνθρωποι πιστεύουν ότι όταν δημιουργούν ένα έργο, είτε πρόκειται για startup είτε για κάτι μικρό για να αποκτήσουν εμπειρία, όλη η δυσκολία έγκειται στην ανάπτυξη: να γράψεις ένα σωρό κώδικα, να μάθεις νέες βιβλιοθήκες, να δοκιμάζεις συνεχώς - φρίκη! Πιστέψτε με, αυτό δεν είναι καθόλου αλήθεια. Σκεφτόμουν με τον ίδιο ακριβώς τρόπο μέχρι που ο ίδιος αντιμετώπισα την ανάγκη να επιλέξω και να υλοποιήσω μια ιδέα· αποδείχθηκε ότι ήταν ένα από τα πιο δύσκολα στάδια.

Το πιο δύσκολο πράγμα στην επιλογή μιας ιδέας στο αρχικό στάδιο της μάθησης είναι ο προσδιορισμός της πολυπλοκότητας της υλοποίησης: για μεγάλο χρονικό διάστημα δεν μπορούσα να καταλήξω σε μια εφαρμογή που θα μπορούσα να κάνω και ταυτόχρονα να μου αρέσει.

Πάνω από όλα ήθελα να γράψω ένα μουσικό παιχνίδι, αλλά οι αμφιβολίες για τις ικανότητές μου με εμπόδισαν πραγματικά. Φαινόταν ότι δεν θα ήταν δυνατό να τελειώσω τη δουλειά, και για αυτό το λόγο άλλαξα την επιλογή μου περισσότερες από μία φορές: μπιλιάρδο για κινητά, μπόουλινγκ, δρομέας κ.λπ. Τελικά, πήρα ένα μάθημα από αυτό: δυσκολίες θα προκύπτουν πάντα, ανεξάρτητα από την ιδέα εφαρμογής, και επομένως το πιο σημαντικό είναι να διαλέξεις αυτό που σου αρέσει και να πας μέχρι το τέλος.

DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Πάντα μου άρεσε το παιχνίδι Guitar Hero

Εφαρμογή της λογικής του παιχνιδιού

Η βασική ιδέα πίσω από εφαρμογές όπως το Guitar Hero είναι να αγγίξετε την οθόνη στον ρυθμό της μουσικής.
Πρώτα απ 'όλα, άρχισα να εφαρμόζω τη λογική του παιχνιδιού:

  1. Δημιούργησε κατηγορίες σημειώσεων, κουμπιών και λωρίδων κατά μήκος των οποίων θα κινούνται οι νότες.
  2. Τοποθέτησα τον καμβά σε ολόκληρη την οθόνη της εφαρμογής και σε αυτόν ήδη περιέγραψα τη θέση των αντικειμένων των δημιουργημένων κλάσεων.
  3. Υλοποιήθηκε η ταυτόχρονη εκκίνηση ενός αρχείου mp3 ενός τραγουδιού και μιας σειράς σημειώσεων που λαμβάνονται από τη βάση δεδομένων και το voila! Τα πρώτα προσχέδια του παιχνιδιού είναι ήδη στο smartphone μου :)

DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Η πρώτη έκδοση του παιχνιδιού

Ναι, φαίνεται «εντυπωσιακό», αλλά ήταν σχεδόν αρκετό για να δοκιμάσει το παιχνίδι! Το τελευταίο απαραίτητο βήμα ήταν η λίστα με τις νότες για το τραγούδι και έπρεπε να αφιερώσω πολύ χρόνο για την υλοποίησή του.
Η αρχή είναι αρκετά απλή: χρησιμοποιώντας τις τιμές του πίνακα βάσης δεδομένων, το πρόγραμμα δημιουργεί αντικείμενα της κλάσης "Σημείωση" και προσθέτει τις σημειώσεις που προκύπτουν στον πίνακα. Ο πίνακας αποτελείται από δύο στήλες:

  • αριθμός γραμμής από το 1 έως το 4 στον οποίο πρέπει να μπει η σημείωση και
  • την ώρα που θα πρέπει να εμφανιστεί στην οθόνη.

Γιατί πέρασα πολύ χρόνο αν όλα είναι τόσο απλά; Για να συμπληρωθεί αυτή η βάση δεδομένων!
Δυστυχώς, εκείνη την εποχή δεν μπορούσα να καταλάβω πώς να αυτοματοποιήσω τη διαδικασία λήψης της παρτιτούρας στη μορφή που χρειαζόμουν από ένα αρχείο mp3 του τραγουδιού, και έτσι έπρεπε να συμπληρώσω χειροκίνητα αυτές τις στήλες με το αυτί.

DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Η διαδικασία πλήρωσης της βάσης δεδομένων με σημειώσεις

Αυτή η μέθοδος μου επέτρεψε να αρχίσω να αναπτύσσω και να δοκιμάζω το παιχνίδι από νωρίς, αλλά ήταν ξεκάθαρο ότι έπρεπε να καταλήξω σε κάτι διαφορετικό. Εδώ με βοήθησε πολύ ο δάσκαλός μου, Ilyin Vladimir Vladimirovich, ο οποίος μίλησε για την ύπαρξη της μορφής MIDI, εξήγησε τη δομή της και με βοήθησε να καταλάβω τη βιβλιοθήκη που είχα βρει για την εργασία με αρχεία MIDI.

Η ομορφιά αυτής της μορφής είναι ότι σε αυτό κάθε όργανο είναι ήδη ένα ξεχωριστό κομμάτι στο οποίο βρίσκονται ορισμένες «νότες». Με αυτόν τον τρόπο, μπορείτε εύκολα να κάνετε βρόχο σε όλες τις σημειώσεις και, ανάλογα με το κομμάτι και την ώρα, να τις προσθέσετε αυτόματα στη βάση δεδομένων. Αυτή είναι μια πολύ σημαντική ιδιότητα, γιατί χάρη σε αυτό μπόρεσα να λύσω το πρόβλημα των παιχνιδιών αυτού του είδους: την αδυναμία να προσθέσω τα δικά μου τραγούδια. Είναι αλήθεια ότι η μορφή MIDI έχει ένα μεγάλο μειονέκτημα - ήχο (όλοι θυμόμαστε μελωδίες σε ρετρό παιχνίδια, σωστά;).

Βελτιώνοντας σταδιακά το παιχνίδι, έφερα το πρόγραμμα σε κατάσταση πλήρους λειτουργίας, πρόσθεσα πολλά "χαρακτηριστικά": τη δυνατότητα να προσθέσετε το δικό σας τραγούδι από τη μνήμη της συσκευής ή από έναν κατάλογο cloud, επιλογή επιπέδου δυσκολίας, λειτουργία αρχαρίου και πολλά άλλα.
Και τελικά έφτασα στο “cherry on the cake”...

Σχέδιο

Εδώ ξεκίνησε η ενσάρκωση του «οράματός μου» του παιχνιδιού. Πρώτα από όλα, άρχισα να επιλέγω ένα πρόγραμμα ζωγραφικής. Δεν είχα καμία εμπειρία στη γραφιστική, οπότε χρειαζόμουν ένα πρόγραμμα που ήταν εύκολο στην εκμάθηση (Photoshop, παρεμπιπτόντως), αλλά και ευέλικτο και βολικό (Paint, sorry). Η επιλογή έπεσε στο Inkscape - ένα καλό εργαλείο για την επεξεργασία διανυσματικών εικόνων, κυρίως σε μορφή svg.

Έχοντας εξοικειωθεί λίγο περισσότερο με αυτό το πρόγραμμα, άρχισα να σχεδιάζω κάθε στοιχείο του παιχνιδιού και να το αποθηκεύω σε διαφορετικές αναλύσεις, κατάλληλες για διαφορετικά μεγέθη οθόνης συσκευών. Υπήρξαν επίσης προσπάθειες να υλοποιηθεί μια κινούμενη εικόνα της έκρηξης των νότων, και παρά την ακαταλληλότητα του σχεδίου που προέκυψε, έμεινα ευχαριστημένος. Φυσικά, παράλληλα με την ολοκλήρωση του έργου, συνέχισα να ασχολούμαι με το σχέδιο, προσθέτοντας νέα χρώματα (οι διαβαθμίσεις είναι αγάπη «με την πρώτη ματιά»).

DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Πρώτη έκδοση του σχεδίου (δύο οθόνες, χωρίς κινούμενα σχέδια, παλιό όνομα)

DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Δεύτερη έκδοση του σχεδίου (4 οθόνες, η αρχική οθόνη πάλλεται ομαλά με διαφορετικά χρώματα, διαβαθμίσεις παντού)

Υπερασπίστηκα το τελικό μου έργο και χάρηκα πολύ όταν έμαθα ότι πέρασα τον προκριματικό γύρο και κλήθηκα στον τελικό του διαγωνισμού εφαρμογής IT SCHOOL. Μου έμεινε περίπου ένας μήνας πριν τον διαγωνισμό, και σκέφτηκα σοβαρά να προσλάβω έναν πιο επαγγελματία στον χώρο του design. Η αναζήτηση δεν ήταν μάταιη: όπως αποδείχθηκε, ο στενός φίλος του αδελφού μου είναι εξαιρετικός σχεδιαστής! Συμφώνησε αμέσως να με βοηθήσει και η τρέχουσα σχεδίαση του παιχνιδιού είναι η τιμή της.

DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Τελικός σχεδιασμός

Δημοσίευση

Αφού ολοκλήρωσα τις εργασίες για την έκδοση κυκλοφορίας, άρχισα αμέσως να προετοιμάζω την εφαρμογή για δημοσίευση στο Google Play Market. Τυπική διαδικασία: απόκτηση λογαριασμού προγραμματιστή, δημιουργία σελίδας εφαρμογής κ.λπ. Αλλά αυτή η ενότητα δεν αφορά αυτό.

Το πιο εκπληκτικό σε αυτή την ιστορία είναι τα στατιστικά στοιχεία λήψης. Αρχικά, ο αριθμός των λήψεων του DrumHero αυξήθηκε σταδιακά και σχεδόν ομοιόμορφα σε ορισμένες ευρωπαϊκές χώρες, τις ΗΠΑ και τις χώρες της ΚΑΚ, αλλά πέρασε ένας μήνας και ο αριθμός των λήψεων έφτασε τις 100 λήψεις! Ένα ενδιαφέρον γεγονός είναι ότι οι περισσότερες λήψεις προήλθαν από την Ινδονησία.

Συμπέρασμα

Το DrumHero είναι το πρώτο μου σοβαρό έργο όπου έμαθα να προγραμματίζω. Όχι μόνο με έφερε στον πανρωσικό τελικό του διαγωνισμού έργου SAMSUNG IT SCHOOL, αλλά μου έδωσε επίσης μεγάλη εμπειρία στη γραφιστική, το GameDev, την αλληλεπίδραση με την υπηρεσία Play Market και πολλά άλλα.

DrumHero: Πώς έκανα το πρώτο παιχνίδι στη ζωή μου

Φυσικά, τώρα βλέπω πολλές ελλείψεις στο παιχνίδι, αν και σήμερα ο αριθμός των λήψεων έχει φτάσει σχεδόν τις 200. Τα σχέδιά μου είναι να κυκλοφορήσω μια νέα έκδοση, υπάρχουν ιδέες για το πώς να αυξήσω τη σταθερότητα, να βελτιώσω το gameplay και να αυξήσω τον αριθμό των λήψεων.

Βοήθεια:
Το SAMSUNG IT SCHOOL είναι ένα δωρεάν πρόγραμμα πλήρους απασχόλησης πρόσθετης εκπαίδευσης για μαθητές γυμνασίου, που λειτουργεί σε 25 πόλεις της Ρωσίας.
Το έργο αποφοίτησης των μαθητών είναι μια εφαρμογή για κινητά. Θα μπορούσε να είναι ένα παιχνίδι, μια εφαρμογή κοινωνικής δικτύωσης, ένας σχεδιαστής, ό,τι θέλουν.
Μπορείτε να κάνετε αίτηση για εκπαίδευση από τον Σεπτέμβριο του 2019 στο Σε απευθείας σύνδεση προγράμματα.


Πηγή: www.habr.com

Προσθέστε ένα σχόλιο