Αυτή τη Δευτέρα, 26 Φεβρουαρίου, ο Papinaut (Παραγωγός) και ο Riebeck (Συνεργάτης Παραγωγός) επέστρεψαν για ένα Ankama Live σχετικά με τα περιστατικά που συνέβησαν πρόσφατα στους διακομιστές παιχνιδιών DOFUS.
Οι τελευταίες συντηρήσεις DOFUS ήταν μεγαλύτερες και πολυάριθμες από ό,τι συνήθως, και θεωρήσαμε σημαντικό για εμάς να οργανώσουμε αυτές τις πληροφορίες σε ζωντανή μετάδοση, ώστε να μπορούμε να σας μιλήσουμε γι’ αυτές.
Αρχικά, εάν χάσατε τις πληροφορίες, σημειώστε ότι οι λεπτομέρειες των αποζημιώσεων είναι διαθέσιμες εδώ.
Τι προκάλεσε όλες αυτές τις αναταραχές;
Ουσιαστικά, οι διακοπές κατά τη διάρκεια των συντηρήσεων συνδέονται με ένα μεγάλο έργο που στοχεύει στη βελτίωση των διακομιστών παιχνιδιών στους οποίους έχουμε εργαστεί για περισσότερο από ενάμιση χρόνο και οι λεπτομέρειες του οποίου κοινοποιήθηκαν σε ένα Devblog που δημοσιεύτηκε στα τέλη του περασμένου έτους.
Αυτό το έργο περιλαμβάνει την υλοποίηση δύο βασικών στοιχείων:
Αλλαγή της μορφής δεδομένων: για να μπορέσουμε να συνεχίσουμε τον εκσυγχρονισμό του παιχνιδιού και να δημιουργήσουμε τη δυνατότητα προσθήκης νέων χαρακτηριστικών, πρέπει να εξελίξουμε τη μορφή στην οποία αποθηκεύονται τα δεδομένα του παιχνιδιού. Για να εμβαθύνουμε περισσότερο σε αυτό, σας προσκαλούμε να ανατρέξετε στο devblog που αναφέρθηκε παραπάνω,
Αντίγραφα ασφαλείας σε πραγματικό χρόνο: Επί του παρόντος, η αποθήκευση των δεδομένων του παιχνιδιού γίνεται όταν ο παίκτης αποσυνδεθεί. Ο τελικός στόχος είναι να μπορείτε να αποθηκεύσετε τα δεδομένα μόλις ο παίκτης εκτελέσει μια ενέργεια.
Στις αρχές του τρέχοντος έτους, δουλέψαμε για τα αντίγραφα ασφαλείας σε πραγματικό χρόνο των αποθεμάτων και αντιμετωπίσαμε προβλήματα κατά τη μεταφορά χαρακτήρων από έναν διακομιστή σε άλλον λόγω της μορφής αποθήκευσης των υπογραφών που εφαρμόζονται από τους Signature Runes.
Άλλες διαταραχές εμφανίστηκαν το πρώτο μισό του Φεβρουαρίου, όταν προχωρήσαμε στο θέμα των αντιγράφων ασφαλείας σε πραγματικό χρόνο των επιτευγμάτων των χαρακτήρων. Μόλις το νέο σύστημα τέθηκε σε εφαρμογή και οι διακομιστές άνοιξαν ξανά, συνειδητοποιήσαμε σε λίγες ώρες ότι τα αιτήματα ήταν πάρα πολλά, δημιουργώντας καθυστέρηση στους διακομιστές του παιχνιδιού. Έπρεπε να προχωρήσουμε σε νέα συντήρηση την επόμενη μέρα για να διορθώσουμε αυτό το πρόβλημα.
Κατά τη συντήρηση της 20ης Φεβρουαρίου, αναπτύξαμε το αντίγραφο ασφαλείας σε πραγματικό χρόνο των χαρακτηριστικών των χαρακτήρων και αντιμετωπίσαμε πολλά προβλήματα:
Δημιουργήθηκε μια σύγκρουση μεταξύ του κώδικα “κληρονομιάς” (που υπάρχει εδώ και πολύ καιρό, μερικές φορές ήδη από την αρχή του παιχνιδιού) και του νέου κώδικα, που προκάλεσε κάποιες απώλειες δεδομένων στα δεδομένα ορισμένων παικτών (ευθυγράμμιση, πρόοδος αναζήτησης, συναλλαγές στην αγορά…). Αναγκαστήκαμε να πραγματοποιήσουμε επαναφορά των δεδομένων εκείνου του πρωινού, προκειμένου να φορτώσουμε ξανά ένα καθαρό αντίγραφο ασφαλείας χωρίς απώλεια δεδομένων.
Γνωρίζουμε ότι οι επαναλήψεις δεν γίνονται καλά αποδεκτές, αλλά μερικές φορές είναι απαραίτητες όταν ο αντίκτυπος των απωλειών δεδομένων είναι πολύ σημαντικός για την εξέλιξη των παικτών ή την οικονομία των διακομιστών.
Έπειτα, χρειάστηκε να εκτελέσουμε μια άλλη συντήρηση για να λύσουμε ένα άλλο κρίσιμο ζήτημα που σχετίζεται με τη δημιουργία αντιγράφων ασφαλείας των χαρακτηριστικών που αυτή τη φορά επηρέαζε την αναγέννηση της HP στη μάχη.
Τελικά, στις 25 Φεβρουαρίου γύρω στις 10 μ.μ. CET, εντοπίστηκαν προβλήματα σύνδεσης. Αυτά συνδέθηκαν με ένα άλλο έργο: ένα εσωτερικό API που επιτρέπει τη συγκέντρωση όλων των δεδομένων παιχνιδιού των παικτών, προκειμένου να τα κοινοποιήσουμε στους ιστότοπούς μας και σε άλλα εσωτερικά εργαλεία. Είναι, για παράδειγμα, αυτό το API που σας επιτρέπει να βλέπετε τον αριθμό των χαρακτήρων που διαθέτετε σε κάθε διακομιστή όταν συνδέεστε. Επομένως, ο διακομιστής Shadow δεν είχε χώρο στο δίσκο, προκαλώντας προβλήματα με αυτό το API, δημιουργώντας άλλα διαδοχικά προβλήματα και προκαλώντας άλλες διακοπές στους άλλους διακομιστές παιχνιδιών.
Διάκριση μεταξύ των προγραμματιστών διακομιστή / προγραμματιστών πελατών και της σύνδεσης με τη θύρα Unity
Σε ένα έργο όπως το DOFUS, είναι σημαντικό να καταλάβουμε ότι έχουμε δύο πολύ ξεχωριστές ομάδες.
Η πρώτη ομάδα, που αποτελείται από προγραμματιστές-πελάτες, είναι υπεύθυνη για όλα όσα βλέπετε κατά την εκκίνηση του προγράμματος-πελάτη παιχνιδιών DOFUS. Η θύρα Unity διαχειρίζεται πρωτίστως αυτή η ομάδα καθώς ελέγχονται πολλά από τα διαφορετικά μέρη που εμφανίζονται στο παιχνίδι: διεπαφές, χαρακτήρες, κινούμενα σχέδια ορθογραφίας κ.λπ.
Η δεύτερη ομάδα, αυτή τη φορά που αποτελείται από προγραμματιστές διακομιστών, έχει εντελώς διαφορετικές αποστολές. Δεν παρεμβαίνει στον πελάτη αλλά στην πτυχή του διακομιστή. Ο διακομιστής είναι το μέρος που επιτρέπει την ανταλλαγή δεδομένων, έτσι ώστε να μπορούν να γίνονται οι διαφορετικοί υπολογισμοί στο παιχνίδι: έναρξη αγώνα, πρόκληση ζημιάς σε έναν στόχο, πώληση ενός αντικειμένου στην αγορά κ.λπ.
Παρόλο που και οι δύο αυτές ομάδες παρεμβαίνουν σε δύο πολύ διαφορετικές πτυχές και η θύρα Unity είναι κατά κύριο λόγο υπό την ομάδα πελάτη, πρέπει να κάνουμε τροποποιήσεις από την πλευρά του διακομιστή προκειμένου να βελτιώσουμε (ή να ελέγξουμε) τη λογική ορισμένων στοιχείων από την πλευρά του πελάτη.
Υπάρχει μια αλληλεξάρτηση μεταξύ αυτών των ομάδων για ορισμένα θέματα και η μορφή δεδομένων αποτελεί μέρος αυτής.
Όλες αυτές οι βαθιές τροποποιήσεις στη λειτουργία του κώδικα διακομιστή είναι απαραίτητες, ώστε τελικά να είναι δυνατές νέες βελτιώσεις στο παιχνίδι. Για παράδειγμα, μπορεί να έχετε παρατηρήσει ότι ο χρόνος δημιουργίας αντιγράφων ασφαλείας έχει μειωθεί σημαντικά, αφού χρειάζονταν μόνο μερικά δευτερόλεπτα, ενώ παλιά χρειάζονταν αρκετά λεπτά.
Σήμερα, καταφέραμε να μεταφέρουμε τα μισά δεδομένα του παιχνιδιού σε λειτουργία δημιουργίας αντιγράφων ασφαλείας σε πραγματικό χρόνο και αυτό μας επιτρέπει ήδη να οραματιζόμαστε νέες πιθανές βελτιώσεις, όπως το να μπορούμε να κλειδώνουμε στοιχεία στο απόθεμά σας. Αυτό δεν ήταν δυνατό πριν γίνουν αυτές οι τροποποιήσεις.
Ελπίζουμε ότι τώρα καταλαβαίνετε καλύτερα γιατί οι “απλές συντηρήσεις” μπορεί μερικές φορές να μετατραπούν σε χάος: θέτουμε σε κίνηση μια πραγματική αναβάθμιση ορισμένων τεχνικών συστημάτων προκειμένου να σχεδιάσουμε το μέλλον του DOFUS. Τώρα, είναι σημαντικό να κάνετε έναν απολογισμό αυτών των τελευταίων εβδομάδων: η εφαρμογή τόσων πολλών βαθιών αλλαγών, και τόσο τακτικά, οδηγεί σε σημαντικό κόστος για εσάς, μόλις προκύψει κάποιο πρόβλημα. Ο κίνδυνος είναι σημαντικός και η ταλαιπωρία από την άποψή σας είναι ακόμη μεγαλύτερη. Αυτός είναι ο λόγος που εξετάζουμε επί του παρόντος τον τρόπο αντιμετώπισης αυτών των θεμάτων για να εγγυηθούμε καλύτερη σταθερότητα παιχνιδιού.
Γιατί να αλλάξετε τη μορφή δεδομένων μόνο τώρα, το 2024; Και γιατί να μην το κάνετε κατά τη διάρκεια των ενημερώσεων;
Στην πραγματικότητα, αυτό το εγχείρημα συνεχίζεται τουλάχιστον από το 2022. Είναι η συσσώρευση δυσλειτουργιών στις τελευταίες τροποποιήσεις που το κάνουν πιο ορατό σήμερα. Μέχρι την ενημέρωση του Μαρτίου 2023 και τα προβλήματα που συνδέονται με τις βάσεις, εφαρμόζαμε αυτές τις τεχνικές αλλαγές κατά τη διάρκεια των ενημερώσεων. Αλλά αυτή τη στιγμή, τα πράγματα πήγαν στραβά: έγιναν πάρα πολλές αλλαγές ταυτόχρονα και δεν μπορέσαμε να διακρίνουμε και να χειριστούμε τα σχόλια σχετικά με το τμήμα Ενημέρωση και ποιες αφορούσαν τις τεχνικές τροποποιήσεις που πραγματοποιήθηκαν ταυτόχρονα.
Στη συνέχεια, πήραμε την απόφαση να διαχωρίσουμε την υλοποίηση αυτών των βελτιώσεων στους διακομιστές παιχνιδιών.
Επισκόπηση της λειτουργίας της beta;
Είναι ένα θέμα που εξετάζεται ακόμα και έχουμε πολλές πιθανές ιδέες, μεταξύ των οποίων η δυνατότητα να έχουμε μια beta διαθέσιμη ανά πάσα στιγμή, η οποία θα μας επέτρεπε να δοκιμάζουμε πιο τακτικά τις τροποποιήσεις που επιθυμούμε να εφαρμόσουμε. Αλλά δεν έχουμε πάρει ακόμη απόφαση για αυτό.
Πώς λειτουργούν τα τεστ καπνού;Αυτές οι δοκιμές εκτελούνται κάθε εβδομάδα πριν από κάθε επαναλειτουργία του διακομιστή, απευθείας στους διακομιστές του παιχνιδιού. Στόχος τους είναι να ακολουθήσουν μια καλά καθορισμένη λίστα ελέγχου για να επαληθεύσουν ότι όλες οι βασικές λειτουργίες του παιχνιδιού λειτουργούν σωστά (πρόσκληση σε ομάδες, σε συντεχνίες, έναρξη αγώνα, έναρξη συναλλαγής…).
Εργαζόμαστε σε μια επικοινωνία σχετικά με αυτό το θέμα, με τη μορφή ενός devblog, για να σας δώσουμε μια ενημέρωση κατάστασης για το πού βρισκόμαστε και τι σχεδιάζεται για αυτό το θέμα. Προς το παρόν δεν έχουμε ημερομηνία δημοσίευσης αυτού του άρθρου, αλλά είναι κάτι πάνω στο οποίο εργαζόμαστε.
Γιατί να μην προσφέρετε ανταμοιβές κατά τη διάρκεια των beta;Προς το παρόν, προσπαθούμε να εφαρμόσουμε κινούμενα σχέδια που προσφέρουν κάποια πρόκληση. Υπάρχει ήδη το Test-a-Beast, ένα τελετουργικό petsmount, αλλά πάντα σκεφτόμαστε τρόπους να επεξεργαστούμε ξανά τη φόρμουλα για να την κάνουμε ενδιαφέρουσα για τους παίκτες. Για την επόμενη φάση beta, η κινούμενη εικόνα θα συνδεθεί με περιεχόμενο PVM.
Πώς λειτουργούν τα rollbacks;Όπως έχουμε ήδη εξηγήσει, πραγματοποιούμε αντίγραφα ασφαλείας των δεδομένων του παιχνιδιού σε τακτά χρονικά διαστήματα. Η επαναφορά είναι η επιστροφή σε ένα προηγούμενο αντίγραφο ασφαλείας, χάνοντας όλη την πρόοδο που σημειώθηκε κατά τη φόρτωση του αντιγράφου ασφαλείας και τη στιγμή που ξεκινά η επαναφορά.
Είναι η έσχατη λύση, όταν βρισκόμαστε αντιμέτωποι με μια απώλεια δεδομένων που είναι πολύ σημαντική για να διορθωθεί με οποιονδήποτε άλλο τρόπο.
Κάποια νέα σχετικά με την κατάσταση της έρευνας σχετικά με την πολλαπλή λογιστική σε έναν πελάτη παιχνιδιού για το Unity;
Προχωράει λίγο κάθε εβδομάδα, το δοκιμάζουμε, κάνουμε τα πρώτα μας τεχνικά προσχέδια. Το πρώτο μεγάλο βήμα θα γίνει σύντομα: ποια μορφή θα πάρει στο DOFUS; Όλοι έχουμε κατά νου τη λειτουργία του hero mode στο WAKFU, αλλά είναι δύο πολύ διαφορετικά παιχνίδια και το θέμα πρέπει να προσεγγιστεί από μια νέα οπτική γωνία με τους περιορισμούς που είναι μοναδικοί στο DOFUS.
Προς το παρόν δεν είμαστε σε θέση να πούμε εάν θα είναι δυνατό ή όχι, βρισκόμαστε ακόμα στη φάση έρευνας και ανάπτυξης, αλλά μόλις έχουμε νέα, θα σας κρατάμε ενήμερους. Στο μεταξύ θα χρειαστεί υπομονή.