ΕΦΑΡΜΟΓΗ: Επιλογή Ήρωα και Τέλος παιχνιδιού
Νωρίτερα φέτος, σας υποσχεθήκαμε ότι θα σας ενημερώνουμε κάθε δύο μήνες για τη δουλειά που γίνεται στα παρασκήνια, ώστε να βελτιώσουμε τις επιδόσεις και την αξιοπιστία της εφαρμογής του League of Legends.
Η σημερινή ενημέρωση είναι το πέμπτο blog της σειράς. (Δείτε το πρώτο, το δεύτερο, το τρίτο και το τέταρτο της σειράς.)
ΜΕ ΛΙΓΑ ΛΟΓΙΑ: Τώρα που ολοκληρώσαμε τη βελτίωση των χρόνων εκκίνησης και την αρχιτεκτονική της εφαρμογής, περνάμε ευθύς αμέσως στην Επιλογή Ήρωα. Επίσης, το Τέλος παιχνιδιού έγινε μια νέας μας προτεραιότητα.
Ξεκινάει η Επιλογή Ήρωα
Παλιά... όταν ξεκινήσαμε αυτή τη σειρά blog τον Μάρτιο, αναφέραμε δύο κύριους στόχους: Τη βελτίωση του χρόνου bootstrap της εφαρμογής και την απόκριση της Επιλογής Ήρωα, με αυτήν τη συγκεκριμένη σειρά. Τον Σεπτέμβριο, μειώσαμε τελικά τον χρόνο bootstrap (χρόνος εκκίνησης εφαρμογής) στα 15,5 δευτερόλεπτα για το 90% των παικτών μας και ανακοινώσαμε ότι επιτέλους θα ξεκινούσαμε να εργαζόμαστε πάνω στην Επιλογή Ήρωα.
Ακολουθούν οι πρώτες μας Ενημερώσεις.
Αποτύπωμα μνήμης για την Επιλογή Ήρωα
Πάντα περιμέναμε ότι ανάγκες επισκευής της Επιλογή Ήρωα θα ήταν παρόμοιες με αυτές της υπόλοιπης εφαρμογής —εφαρμογές Ember για ενοποίηση, κώδικας για βελτιστοποίηση, σφάλματα για επίλυση και άλλα τέτοια. Κατά την πορεία της βαθιάς ανάλυσής μας, ανακαλύψαμε έναν απρόσμενο τύπο προβλήματος: Το αποτύπωμα μνήμης της Επιλογής Ήρωα (αλλά και της εφαρμογής) αυξάνεται κάθε φορά που εκτελείται στην ίδια περίοδο σύνδεσης.
Για το 90ο εκατοστημόριο, μοιάζει κάπως έτσι:
- Την πρώτη φορά που εκτελείται η Επιλογή Ήρωα, η κατανάλωση μνήμης της εφαρμογής αυξάνεται απότομα στα 481 MB
- Τη δεύτερη φορά σημειώνεται ένα ακόμη άλμα των 56 MB
- Από την τρίτη φορά και μετά προκαλούνται μικρότερες αυξήσεις των ~ 15MB έως 25 MB
Τελικά, καθώς παίζετε ολοένα και περισσότερα παιχνίδια κατά τη διάρκεια μίας μοναδικής περιόδου σύνδεσης, η εφαρμογή γίνεται ολοένα και πιο αργή μέχρι η επανεκκίνηση να είναι αναπόφευκτη.
Η ύπαρξη διαρροών μνήμης στην εφαρμογή δεν είναι κάτι καινούριο, αλλά διαπιστώσαμε ότι ένα μέρος αυτής της διαρροής προέρχεται από την Επιλογή Ήρωα. Ωστόσο, το μέγεθος και η έκταση των διαρροών που παρατηρούμε απαιτεί μια αλλαγή στην προσέγγισή μας. Παράλληλα με τις προσπάθειες που είχαμε προγραμματίσει αρχικά, τώρα εργαζόμαστε και στην υλοποίηση πιο ειδικευμένων εργαλείων προγραμματισμού. Αυτά τα εργαλεία θα μας επιτρέπουν να αναγνωρίζουμε και να αντιμετωπίζουμε διαρροές μνήμης σε ολόκληρη την εφαρμογή πιο αποδοτικά, μειώνοντας τον χρόνο που χρειάζεται για την παράδοση των βελτιώσεων.
Είπαμε παράλληλα, έτσι δεν είναι; Παρότι η πρόοδος ήταν αργή, σκοπεύουμε να θέσουμε σε κυκλοφορία τις πρώτες μικρές βελτιώσεις μας για την απόδοση της Επιλογής Ήρωα στην Ενημέρωση 10.23. Βελτιώσαμε την επιλογή Ξορκιών Επικαλεστή και Αμφίεσης Ματιού, ώστε να μην δημιουργούν επιπρόσθετες εφαρμογές Ember όταν ανοίγουν. Αυτό οδηγεί σε μια μικρή αλλά μετρήσιμη μείωση στη χρήση μνήμης (~1,6 MB) όταν οι παίκτες ρυθμίζουν τα Ξόρκια και τις Αμφιέσεις Ματιών τους κατά την Επιλογή Ήρωα. Αυτές είναι δύο από τις πρώτες διαρροές μνήμης που ανακαλύψαμε και η διόρθωσή τους ήταν ένας θαυμάσιος τρόπος να εφαρμόσουμε ορθές πρακτικές για να αντιμετωπίσουμε μεγαλύτερες διαρροές μνήμης στο κοντινό μέλλον! Αναμένουμε να κυκλοφορήσουμε πιο σημαντικές βελτιώσεις πριν το τέλος της χρονιάς.
Ανασκόπηση UX/UI για την Επιλογή Ήρωα
Εκτός από τη διόρθωση των σφαλμάτων, ένα άλλο κομμάτι στην επιδιόρθωση της Επιλογής Ήρωα είναι να αναγνωρίσουμε τα στοιχεία που αρέσουν στους παίκτες, αλλά και τα στοιχεία που μπορούμε να αγνοήσουμε, ή και να αποσύρουμε, επειδή οι παίκτες δεν τα θεωρούν σημαντικά. Το σκεπτικό είναι ότι η εμπειρία της Επιλογής Ήρωα είναι κρίσιμη για τον βασικό κύκλο παιχνιδιού. Έτσι, όσο πιο απλή είναι η διαδρομή αυτή, τόσο λιγότερες πιθανότητες υπάρχουν κάτι να πάει στραβά. Χρησιμοποιήσαμε τα δεδομένα της έρευνας παικτών για να μάθουμε τι θεωρούν σημαντικό όσον αφορά την Εμπειρία Χρήστη (UX) και το Περιβάλλον Χρήστη (UI) κατά την Επιλογή Ήρωα. Επίσης, προσθέτουμε μετρήσεις εντός της εφαρμογής, ώστε να ενισχύσουμε αυτές τις έρευνες με δεδομένα από τη δραστηριότητα παικτών.
Ακολουθούν μερικά από τα πρώιμα αποτελέσματά μας, και όσα έχουμε κάνει ή σκοπεύουμε να κάνουμε βάσει αυτών:
- Οι παίκτες θέλουν να γνωρίζουν με γρηγορότερη και μεγαλύτερη σαφήνεια εάν το πάτημα του κουμπιού λειτούργησε, ειδικά κατά την επιλογή και τον αποκλεισμό Ηρώων. Θα βελτιώσουμε την ταχύτητα και αξιοπιστία της οπτικής και ακουστικής ανατροφοδότησης που παρέχει το περιβάλλον για να είναι πιο ξεκάθαρο.
- Οι παίκτες δεν θεωρούν τόσο σημαντικά τα εφέ που πλαισιώνουν την επιλογή των Ξορκιών Επικαλεστή και της Αμφίεσης Ματιού. Θα καταργήσουμε τα σχετικά animation (σε συνδυασμό με την επιδιόρθωση του προβλήματος διαρροής μνήμης που αναφέρθηκε προηγουμένως).
- Θα προσθέσουμε τηλεμετρία για να μάθουμε πόσο συχνά χρησιμοποιούν οι παίκτες ορισμένες δυνατότητες της Επιλογής Ήρωα. Κυρίως, εκείνες που δεν είναι τόσο ουσιαστικές όσον αφορά την προετοιμασία για το παιχνίδι που θα ακολουθήσει. Εάν αυτές υποβιβαστούν στην κατηγορία «καλές αλλά όχι απαραίτητες», ίσως να τις καταργήσουμε χάριν ενισχυμένης απόδοσης.
- Πίνακας εκφράσεων
- Αγαπημένοι Ήρωες
- Αποστολές
Είσοδος στην Επιλογή Ήρωα
Ένα από τα μεγαλύτερα «βάσανα» που αναφέρουν οι παίκτες είναι η πληθώρα προβλημάτων που μπορεί να συναντήσουν κατά την είσοδο στην Επιλογή Ήρωα. Η αξιοπιστία στην Επιλογή Ήρωα είναι απαραίτητη, ώστε οι παίκτες να νιώθουν έτοιμοι να επικεντρωθούν στο παιχνίδι που θα ξεκινήσει. Είναι κρίσιμο να επιλύσουμε οποιαδήποτε ζητήματα μπορεί να παρέμβουν με τον αποκλεισμό Ηρώων ή το κλείδωμα των επιλογών. Επίσης, δεν θέλουμε να ανησυχείτε εάν οι Αμφιέσεις, τα Ξόρκια Επικαλεστή ή οι Ρούνοι που χρησιμοποιήσατε σε εκατοντάδες παιχνίδια θα αλλάξουν χωρίς να το αντιληφθείτε.
Καθώς ξεκινάμε να εργαζόμαστε πάνω σε αυτόν τον τομέα, οι πρωταρχικοί στόχοι για την προσέγγισή μας είναι να μπαίνουν οι παίκτες στην Επιλογή Ήρωα με αρκετό χρόνο για να πάρουν κρίσιμες αποφάσεις, να εξασφαλίσουμε ότι ο αποκλεισμός και επιλογή Ηρώων γίνονται με αξιοπιστία και όλοι οι παίκτες να μπαίνουν στο παιχνίδι με επιτυχία.
Τέλος παιχνιδιού (EOG)
Ενώ δεν ήταν ένα από τα αρχικά σημεία ενδιαφέροντος όταν ξεκινήσαμε την εκστρατεία συμμαζέματος της εφαρμογής, το Τέλος παιχνιδιού (όσα συμβαίνουν μεταξύ του πατήματος «Συνέχεια» στην οθόνη Νίκη/Ήττα και της στιγμής που θα μπορείτε να αλληλεπιδράσετε με το λόμπι μετά το τέλος του παιχνιδιού) έχει παρουσιαστεί ως δυσκολία που είναι σχεδόν στο ίδιο επίπεδο με τους χρόνους bootstrap και την απόκριση και αξιοπιστία της Επιλογής Ήρωα. Επικεντρωνόμαστε σε δυσκολίες που αφορούν δύο κύριες περιοχές:
- Οι παίκτες έχουν αναφέρει περιπτώσεις κατά τις οποίες η εφαρμογή καθυστερεί αρκετά και εμφανίζει το κουμπί «Επανασύνδεση» αφού το παιχνίδι τελειώσει, αντί να μεταβαίνει αμέσως στην οθόνη Τιμής. Ερευνούμε ακόμη την αιτία αυτού του ζητήματος.
- Μερικές φορές η εφαρμογή κλειδώνει όταν οι παίκτες επιστρέφουν σε αυτήν από την οθόνη Νίκη/Ήττα, έτσι δεν μπορούν να δουν ή να αλληλεπιδράσουν με την οθόνη Τιμής ή με το λόμπι μετά το τέλος του παιχνιδιού. Έχουμε μερικές ελπιδοφόρες επιδιορθώσεις στα σκαριά που θα κυκλοφορήσουν στην Ενημέρωση 10.23.
Σφάλματα στις ρυθμίσεις και τα αναδυόμενα
Εκτός από την εργασία που γίνεται στην Επιλογή Ήρωα και το Τέλος παιχνιδιού, πρόσφατα αντιμετωπίσαμε μια αύξηση αναφορών για σφάλματα στις ρυθμίσεις κατά τις προηγούμενες Ενημερώσεις. Αυτό περιλαμβάνει θέματα όπως την αδυναμία απομνημόνευσης των Ξορκιών Επικαλεστή σας κατά την Επιλογή Ήρωα, καθώς και την επανεμφάνιση παλιών αναδυόμενων (ξανά και ξανά και ξανά). Ο εντοπισμός αυτών των ζητημάτων ήταν δύσκολη υπόθεση. Την ίδια περίοδο, μερικές ομάδες εργάζονταν ανεξάρτητα για να ενημερώσουν τα συστήματα παρασκηνίου, δημιουργώντας πολλές διάσπαρτες ακραίες περιπτώσεις που συνδυαστικά οδήγησαν στο να συναντήσουν αρκετοί παίκτες κάποιο πρόβλημα με τις ρυθμίσεις. Κυκλοφορήσαμε τρεις ανεξάρτητες διορθώσεις για να συμβάλλουμε στην αντιμετώπιση της πλειονότητας αυτών των ζητημάτων από το τελευταίο blog, με την πιο πρόσφατη να περιλαμβάνεται στην Ενημέρωση 10.21.
Καθώς συνεχίζουμε να πραγματοποιούμε σημαντικές βελτιώσεις τόσο στην Επιλογή Ήρωα όσο και στο Τέλος παιχνιδιού, θα εξακολουθούμε να συνεργαζόμαστε με τις εσωτερικές ομάδες μας για να εντοπίζουμε και να αντιμετωπίζουμε σημαντικά σφάλματα θα ενοχλήσουν παίκτες, στην περίπτωση που προκύψουν.
Αυτή είναι η Ενημέρωσή μας αυτήν τη φορά! Έχουμε πολλά να κάνουμε μέχρι το τέλος της χρονιάς. Θα θέλαμε να σας ευχαριστήσουμε για την υπομονή σας, καθώς βάζουμε τα δυνατά μας να βελτιώνουμε την εφαρμογή για τους παίκτες μας σε κάθε Ενημέρωση!