Γεια σας και πάλι. Αν διαβάζετε αυτές τις λέξεις, είναι υποχρέωσή μου λόγω του Όρκου του Ιπποκράτη να σας ενημερώσω ότι ίσως έχετε ήδη υποφέρει αρκετά διαβάζοντας ένα τέτοιο κείμενο παλαιότερα. Αν μετά από αυτό το μήνυμα είστε ακόμα εδώ, τότε είστε φοβερό ταλέντο στην απώθηση τραυματικών εμπειριών. Το λοιπόν, είμαι ό,τι έχει απομείνει από τον mirageofpenguins, έναν μηχανικό δεδομένων της Ομάδας Καταπολέμησης Απάτης, και έχω πλέον γίνει μια άμορφη, αηδιαστική μάζα καθώς έλιωσα πάνω στο πληκτρολόγιό μου προσπαθώντας:
Καθώς η Riot συνεχίζει αμέριμνη να προσθέτει παιχνίδια στον κατάλογό της, εμείς αναγκαζόμαστε να οργανώνουμε συνεχώς την άμυνα ενάντια σε έναν ολοένα αυξανόμενο αριθμό κακών. Ως τώρα, απλώς σφυροκοπούσαμε ακούραστα με πόρους οποιονδήποτε εχθρό αντικρίζαμε. Όμως, όσο ηρωική και αν ακούγεται αυτή η στρατηγική, δυστυχώς είναι κάπως άχρηστη σε ένα σύμπαν που αποτελείται από τόσο πολλά παιχνίδια.
Οι μηχανικοί της ομάδας κατά της εξαπάτησης έχουν κι αυτοί όρια στις αντοχές τους και, όπως πιθανότατα είχε προβλέψει ο Δρ. Αϊνστάιν, οι ανθρώπινοι πόροι που απαιτήθηκαν για να δημιουργηθεί μια ολοκληρωμένη πλατφόρμα κατά της απάτης χρειάστηκε να αποχαιρετήσουν την προσωπική ζωή τους. Για να μπορέσουμε να βρούμε χρόνο για να δημιουργήσουμε τις λύσεις του αύριο, χρειάστηκε πρώτα να ελέγξουμε την ταχύτητα με την οποία αποκτούσαμε τεχνολογικό προβάδισμα σε σχέση με τον αντίπαλο. Κάθε προσπάθειά μας αποτελεί και σινιάλο για τους cheaters, και κάθε ενημέρωση που κάνουμε στον κώδικα αργά ή γρήγορα θα παρακαμφθεί. Ήταν απόλυτη ανάγκη να αναμορφώσουμε τον τρόπο με τον οποίο ενεργούσαμε ενάντια στην κατάχρηση του συστήματος, για να παρατείνουμε τη διάρκεια ζωής κάθε λύσης που υλοποιούμε.
Πώς, λοιπόν, καταφέραμε να επιβραδύνουμε αυτόν τον αγώνα ταχύτητας scripting; Κρατηθείτε, γιατί θα πάμε μια μεγάλη βόλτα.
Αν δεν ξέρετε τι είναι το scripting, θα σας πούμε εμείς, για να μην ψάχνεστε σε τίποτα φόρουμ περί cheating και καταστραφείτε ηθικά: scripting είναι η χρήση ενός εξωτερικού προγράμματος για την παρακολούθηση της κατάστασης του παιχνιδιού, με σκοπό την εισαγωγή δεδομένων για λογαριασμό του παίκτη που πραγματοποιεί την απάτη. Είναι περίπου σαν να έχετε ένα πληκτρολόγιο που έχει αναγνώστη καρτών και το πληρώνετε για να πληκτρολογεί για λογαριασμό σας. Το scripting μπορεί να έχει πολύ υψηλή απόδοση όταν χρησιμοποιείται για έντονα μηχανικούς συνδυασμούς ενεργειών ή για σχεδόν στιγμιαίες αντιδράσεις. Επίσης, όμως, μειώνει δραστικά τη διάρκεια ζωής του λογαριασμού LoL. Αποκλείουμε λογαριασμούς επειδή νοιαζόμαστε. Και νοιαζόμαστε επειδή πιστεύουμε ότι τα μόνα πράγματα που θα έπρεπε να χρειάζεται κάποιος για να αγωνιστεί ισότιμα σε ένα βιντεοπαιχνίδι είναι το μυαλό του και ένα καλώδιο δικτύου.
«Κανείς δεν αγοράζει εισιτήρια για να δει ένα μηχανικό πιάνο να παίζει μόνο του. Η μη τελειότητά σας είναι κι αυτή μέρος της τέχνης σας.»
Συνολικά μιλώντας, το τοπίο στον χώρο του scripting δεν είναι αυτό που ήταν κάποτε. Οι μεγάλοι πάροχοι δηλώνουν ρητά ότι δεν κάνουν καμία προσπάθεια να παρακάμψουν τις μεθόδους εντοπισμού που χρησιμοποιούμε, δημιουργώντας, έτσι, μια κλειστή αγορά για μικρότερους παρόχους, που λειτουργούν με εξωφρενικές τιμές και υποσχέσεις για cheats που δεν εντοπίζονται. Έχουμε δει συνδρομές που φτάνουν έως και τα 300 δολάρια ΗΠΑ και για μερικές από αυτές υπάρχει ακόμα και η απαίτηση να στείλετε μια εικόνα του διπλώματος οδήγησής σας για «σκοπούς επαλήθευσης». Αυτό το τελευταίο ήταν ιδιαίτερα διασκεδαστικό: Λες και δεν έχουμε μια ολόκληρη ομάδα από γραφίστες με συνολική εμπειρία 200 ετών στο Adobe Photoshop.
Τέλος πάντων, θέλω να είμαι ειλικρινής με τους νεοσύλλεκτους της ομάδας μας —αυτόν τον πόλεμο ποτέ δεν θα τον κερδίσουμε οριστικά. Η κοινότητα του scripting δεν μπορεί να ξεφύγει από μια αλλαγή στον κώδικα, από έναν αποκλεισμό ή από έναν γάντζο του Blitz. Τους σπρώξαμε στην αφάνεια, όμως, αυτός είναι και ο λόγος που τώρα παίζουμε κυνηγητό με τις σκιές.
Αυτό που βλέπετε εδώ είναι μια μεταφυσική αναπαράσταση του μεικτού όγκου scripting καθώς διασχίζει ένα μέσο που εμείς αντιλαμβανόμαστε ως χρόνο. Ή, με πιο απλά λόγια, αυτό είναι το ποσοστό των Αγώνων Κατάταξης στο Φαράγγι των Επικαλεστών στους οποίους παίρνει μέρος κάποιος παίκτης που εξαπατά. Είναι πολύ χαμηλότερο από ό,τι παλιότερα: όμως, καθώς δεν υπάρχει πραγματικός φραγμός στην επάνοδο ατόμων στο παιχνίδι (επειδή είναι δωρεάν), μάλλον δεν πρόκειται να χαμηλώσει άλλο.
Μερικές ακόμα βασικές πληροφορίες από το γράφημα:
Κοιτάξτε, το λατρεύω αυτό το γράφημα. Εγώ το 'φτιαξα αυτό το γράφημα. Το έκανα μόνιμο τατουάζ και στα δύο χέρια μου και μία φορά την εβδομάδα πάω ξανά στο τατουατζίδικο για να του ενημερώσουν τα δεδομένα, παρά τον απίστευτο πόνο. Όμως, όσο κι αν είναι για μένα κάθαρση, αλλά και χρήσιμο για να κρατάω τη δουλειά μου, δεν είναι το πιο σημαντικό μέσο μέτρησης. Δεν είναι όλες οι μορφές cheating ισότιμες: Ένας και μόνο scripter στη βαθμίδα Κυρίαρχου, για παράδειγμα, μπορεί να βρεθεί στο πρωτοσέλιδο του Reddit και τότε θα έχουμε πολλά κλάματα για ένα σχετικά μικρό πρόβλημα.
«Η φαινομενική νίκη μετρά το ίδιο με την πραγματική νίκη, επειδή οι παίκτες δεν είναι διατεθειμένοι να δουλέψουν σκληρά για να γίνουν κυρίαρχοι σε ένα παιχνίδι όπου οι ανταγωνιστές τους μπορεί να χρησιμοποιούν τεχνικές cheating.»
Όμως, ποια scripts παίρνουν είδηση οι παίκτες;
Πρώτα από όλα, θέλαμε να επαληθεύσουμε ότι οι παίκτες μπορούν να εντοπίσουν την εξαπάτηση με μεγαλύτερη ακρίβεια από εκείνη που προσφέρει μια απλή μαντεψιά και, ειλικρινά, μερικοί δεν έχουν αυτό το «χάρισμα». Και αυτό όχι γιατί οι δικές μου μαντικές ικανότητες είναι πανίσχυρες, όσο τρομακτικές κι αν είναι. Αλλά γιατί η αυτοματοποίηση ενεργειών δεν είναι πάντα τόσο οφθαλμοφανής για τους κοινούς θνητούς. Εν μέρει λόγω της προσπάθειας των προγραμματιστών να αποφύγουν τους παράγοντες εντοπισμού συμπεριφορών, στην πράξη γίνεται όλο και δυσκολότερο για έναν άνθρωπο να διακρίνει τη διαφορά ανάμεσα σε έναν επαγγελματία παίκτη του League of Legends και σε κάποιον αρχάριο που τρέχει το πρώτο του script αποφυγής με ψευδοτυχαία καθυστέρηση. Και δυσκολεύει ακόμα περισσότερο λόγω των επιπλέον προσπαθειών των scripters να τρέχουν τα cheats τους χωρίς να εξαρτώνται από το LoL2.
Το αριστερό γράφημα δημιουργήθηκε με βάση την ακρίβεια και την επαναφορά των αναφορών παικτών στο Φαράγγι των Επικαλεστών, με αυτά τα μεγέθη ομαδοποιημένα ανά κατηγορία Αγώνων Κατάταξης. Επαναφορά εδώ σημαίνει βασικά «για ποιο ποσοστό όλων των cheaters υποβλήθηκε αναφορά» και η ακρίβεια μπορεί να ερμηνευτεί ως «ποιο ποσοστό όλων των αναφορών για εξαπάτηση ήταν ακριβείς και αφορούσαν όντως έναν cheater». Σε ένα εξωφρενικό ποσοστό 4,5% των Αγώνων Κατάταξης, υπάρχει τουλάχιστον μία αναφορά για «εργαλεία τρίτων», οπότε αυτό το σχήμα δεν δημιουργήθηκε στην πραγματικότητα με μη επεξεργασμένα δεδομένα από εκείνη την κατηγορία. Επειδή υπάρχει αφθονία αναφορών που περιλαμβάνουν κλασικές αιτιολογίες όπως «δεν απέκλεισε τον Μαοκάι» ή «εγκατέστησε trojans για να κλέψει τα bitcoin μου», προτιμήσαμε να χρησιμοποιήσουμε λέξεις-κλειδιά που προέκυψαν μέσω ανάλυσης συχνότητας από τις σωστές αναφορές3.
Το δεξιό γράφημα είναι απλώς ο ημερήσιος αριθμός αναφορών που καλύπτουν τα κριτήρια αυτά για την ίδια χρονική περίοδο (το δεύτερο μισό του 2019). Παρόλο που και αυτό το γράφημα ομαδοποιείται βάσει Κατάταξης, ένας προσεκτικός παρατηρητής θα διακρίνει ότι τα δύο γραφήματα δεν πρέπει να συγκρίνονται απευθείας, επειδή υπάρχουν διαφορετικά ποσοστά πληθυσμού παικτών για διαφορετικές Κατατάξεις. Αντί για αυτό, μπορείτε ίσως να του ρίξετε απλώς μια γρήγορη ματιά, ώστε να πάρετε μια γεύση από τη μέρα ενός μηχανικού δεδομένων της Ομάδας Καταπολέμησης Απάτης. Κι αν σας άρεσε αυτή η γεύση, μπορείτε ίσως να ρίξετε μια ακόμα γρήγορη ματιά στη σελίδα μας με τις ευκαιρίες καριέρας.
Επιτρέψτε μου να ξεσαλώσω λίγο με τα στατιστικά:
Τώρα, αν όντως οι παίκτες της Πλατινένιας+ είναι, με βάση τα μαθηματικά, εξοπλισμένοι με τη ράβδο εντοπισμού script, σε ποια χαρακτηριστικά επικεντρώνονται; Μια προφανής απάντηση θα μπορούσε να είναι η αυτοματοποιημένη αποφυγή επιδέξιων βολών. Είναι το πιο γνωστό χαρακτηριστικό του scripting και, όταν εφαρμόζεται έντονα, η παραπαίουσα, αμήχανη και κάθετη κίνηση είναι πολύ προφανής για τους παίκτες που υποβάλλουν αναφορές.
Όμως, όπως αποδεικνύεται, δεν θέλουν όλοι οι cheaters να αποκλειστούν. Έτσι, ένα σημαντικό ποσοστό των scripters δεν χρησιμοποιεί τεχνικές αποφυγής. Ή, όταν το κάνει, υπάρχει καθυστέρηση που επαρκεί για να δίνεται η εντύπωση ότι οι κινήσεις εκτελούνται εντός των ανθρώπινων ορίων, εξουδετερώνοντας έτσι σε κάποιο βαθμό το πλεονέκτημα εντοπισμού. Οπότε, τι άλλο βλέπουμε με τα εξειδικευμένα μάτια μας;
Ίδιο σχήμα με πριν, μόνο που τώρα η ομαδοποίηση γίνεται ανά Ήρωα και μου δίνει αφορμή να χρησιμοποιήσω όλες τις μπογιές. Αυτό το γράφημα δημιουργήθηκε από όλους τους Αγώνες Κατάταξης Χρυσής+ του 2019 και έχει συντομευθεί ώστε να δείχνει τους δεκαέξι κορυφαίους Ήρωες (ανά συχνότητα αναφορών ως ποσοστό όλων των αναφορών). Οπότε, ο άξονας y εδώ (η ακρίβεια) κατανοείται καλύτερα ως «σε ποιο ποσοστό οι αναφορές για εξαπάτηση που υποβλήθηκαν εναντίον του Ήρωα <champion> ήταν σωστές;»
Και τέλος, έτσι για τη συγκίνηση, πόσο καλά είναι επιτέλους αυτά τα scripts; Το παραπάνω γράφημα παρουσιάζει τη διαφορά του ποσοστού νίκης σε Αγώνες Κατάταξης ανάμεσα σε cheaters και σε παίκτες, για καθέναν από τους Ήρωες «προφανούς scripting» που ανακαλύψαμε νωρίτερα. Χρησιμοποιεί όλα τα παιχνίδια Αγώνων Κατάταξης στο Φαράγγι των Επικαλεστών και η ξεκάθαρη διαφορά του 10% εδώ μπορεί να σημαίνει ότι οι scripters νικούν (κατά μέσο όρο) 10% περισσότερο στα παιχνίδια Κατάταξης με τον Ήρωα <champion> σε σύγκριση με τον συνολικό πληθυσμό του LoL.
«Όμως, να είστε σίγουροι ότι, αν ποτέ νιώσετε μια ακατανίκητη παρόρμηση να χρησιμοποιήσετε cheats, θα βρούμε ένα σύμπαν όπου ο λογαριασμός σας δεν υπήρξε ποτέ και μετά θα το συγχωνεύσουμε αλύπητα με αυτό εδώ το σύμπαν.»
Έτσι, αν αναλογιστούμε ξανά τη μάχη μας εναντίον των cheats, ξέραμε σε ποια scripts ήταν πιο ευάλωτοι οι παίκτες, καθώς και τη σχετική αποτελεσματικότητα αυτών των scripts. Χρησιμοποιήσαμε αυτές τις μετρήσεις για να δημιουργήσουμε εκστρατείες αναστολής λογαριασμών, δίνοντας προτεραιότητα στους πιο οφθαλμοφανείς από αυτούς και εισάγοντας τυχαία καθυστέρηση σε εκείνους που μπορεί να μην αντιλαμβανόμασταν καν. Σωστά ακούσατε: Αφήσαμε τους πιο αναποτελεσματικούς από τους scripters να κάνουν scripting για περισσότερο χρόνο, αποκρύπτοντας έτσι τον χρόνο ή τον τρόπο εντοπισμού των scripters, και επιβραδύνοντας την τεχνολογική εξέλιξη της κούρσας των εξοπλισμών ανάμεσα σε εμάς και αυτούς. Έτσι, προς όλους τους οπαδούς της θεωρίας «Οι αναφορές δεν έχουν σημασία»: φάτε την.
Στον κόσμο του 2020, όπου ακόμα και οι τοστιέρες χρειάζονται απαραίτητα σύνδεση Wi-Fi για την εγκατάσταση κρίσιμων ενημερώσεων ψησίματος ψωμιού, τα πάντα μπορούν να αυτοματοποιηθούν —ακόμα και η διαδικασία ανόδου επιπέδων του League of Legends. Στην πράξη, κάτι τέτοιο μπορεί να είναι πολύ παρόμοιο με το scripting (και συχνά να χρησιμοποιείται ακόμα και το ίδιο λογισμικό). Η κύρια διαφορά είναι ότι δεν υπάρχει ο άνθρωπος χειριστής που θα πάρει τις «μεγάλες αποφάσεις». Ως αποτέλεσμα, το μέσο bot ανόδου επιπέδων τα καταφέρνει τόσο καλά σε αυτήν τη διαδικασία όσο και η μέση γάτα.
Από εκεί και πέρα, το κίνητρο που απομένει για τη χρήση botting είναι σχεδόν ουσιαστικά η παράκαμψη αποκλεισμού (επειδή απαιτείται επίπεδο 30 για τους Αγώνες Κατάταξης). Όμως, οι υπεύθυνοι είναι τόσο εύκολο να εντοπιστούν μεταξύ λογαριασμών που, ειλικρινά, δεν καιγόμαστε και τόσο. Καιγόμαστε, όμως, όταν οι νόμιμοι παίκτες υποχρεώνονται να παίξουν δίπλα σε αυτά τα bots ή εναντίον τους, επειδή, όπως μπορείτε εύκολα να φανταστείτε, το παιχνίδι δεν έχει και τόση πλάκα όταν τα τρία πέμπτα της ομάδας σου αποτελούνται από προγραμματιζόμενες καφετιέρες.
Όπως έλεγα και στην τελευταία μετάδοση σχετικά με την καταπολέμηση απάτης, έχουμε δημιουργήσει μια αρκετά σύνθετη σουίτα μοντέλων botting, τα οποία μας έχουν δώσει (ως επί το πλείστον) τη δυνατότητα να εντοπίζουμε (σχεδόν) κάθε μα κάθε ομοίωμα ανθρώπου σε ολόκληρο το παιχνίδι. Αυτά τα μοντέλα υποβοηθούνται από το γεγονός ότι το LoL διαθέτει ένα αρκετά ισχυρό, ημι-πολυμορφικό πρωτόκολλο επικοινωνιών και, παρόλο που αυτό ακούγεται σαν κάτι που σκάρωσα για το σενάριο του Westworld, στην ουσία σημαίνει ότι στο LoL τα bots πρέπει να τρέχουν μια ολοκληρωμένη εφαρμογή παιχνιδιού (και όχι headless5). Αυτό επιβαρύνει τους προγραμματιστές τους, γιατί αναγκάζονται να χρησιμοποιούν σημαντικά περισσότερους υπολογιστικούς πόρους, παρέχοντάς μας έτσι ένα μπόνους επίπεδο περιορισμού, γιατί χωρίς ισχυρή τυχαιοποίηση μπορείς θεωρητικά να τρέξεις το League ακόμα και σε ένα κομπιουτεράκι τσέπης.
Επειδή πραγματικά δεν θέλαμε όλο αυτό να καταλήξει σε έναν κύκλο εκτροφής παθογόνων bots με αντοχή στους αποκλεισμούς6, προσαρμόσαμε επίτηδες τις αναστολές ώστε να τίθενται σε ισχύ με Τυφλή Επιλογή στο Δάσος της Σύγχυσης, επιτρέποντας έτσι στο αβυσσαλέα χαμηλό MMR των bots να τα κάνει να αγωνίζονται το ένα εναντίον του άλλου. Όμως, τι έκπληξη: Το Δάσος της Σύγχυσης έπαψε να είναι δάσος.
Το γράφημα στα αριστερά είναι το πλήθος των bots που εντοπίστηκαν και το γράφημα στα δεξιά είναι το πλήθος των αναφορών των παικτών για botting. Και τα δύο αναφέρονται σε ημερήσια συχνότητα και ομαδοποιούνται ανά ουρά αναμονής παιχνιδιού. Όπως και πριν, έχουμε εξάγει ορισμένες λέξεις-κλειδιά με βάση τις οποίες έγιναν αναφορές για bots που είχαν εντοπιστεί προηγουμένως και τις έχουμε χρησιμοποιήσει για να υπολογίσουμε τον δείκτη απόδοσης των μεθόδων μας.
Πετύχαμε την παραπάνω μείωση στις αναφορές με το να στοχεύσουμε, όπως σωστά μαντέψατε, μόνο τα bots που θα έβλεπαν οι παίκτες, αφήνοντας τα ανδροειδή να φτιάξουν μόνα τους την παγίδα τους. Στις μέρες μας, γύρω στο 80% του συνόλου των bots αλλαγής επιπέδου μπαίνουν στην ουρά αναμονής της εισαγωγής του Παίκτες εναντίον Bots ως προκαθορισμένη ομάδα των πέντε. Κανένας παίκτης δεν θα τα δει και θα είναι για πάντα κολλημένα σε αιματηρές μάχες με τα δικά μας bots, λύνοντας τις διαφορές τους με φονικό τρόπο ώσπου ένα από αυτά να καταλάβει την απάτη και να υποδουλώσει την ανθρωπότητα.
Εντάξει, εδώ πραγματικά φάγαμε τα μούτρα μας. Και ήθελα να παραλείψω αυτήν την ενότητα, όπως δεν θα έβαζα τον βαθμό του πτυχίου μου στο βιογραφικό μου. Όμως ξέρω ότι είστε έξυπνοι και σας αξίζει κάτι καλύτερο, οπότε: Αναγκαστήκαμε να βγάλουμε σχεδόν εντελώς από τις προτεραιότητές μας τον εντοπισμό αυτοματοποιημένου boosting (και χρήσης διπλών λογαριασμών) λόγω της ανάπτυξης του Vanguard και των δυνατοτήτων που το συνοδεύουν. Αυτό δεν σημαίνει ότι το boosting έμενε ατιμώρητο: Ολοκληρώσαμε τη δουλειά μας πάνω στα σετ εργαλείων έρευνας, δίνοντας έτσι τη δυνατότητα σε άλλες ομάδες και αναλυτές να αποδίδουν δικαιοσύνη όπου χρειάζεται. Αλλά δεν θα έχετε άδικο αν υποθέσετε ότι μια τέτοια μη αυτόματη προσπάθεια ποτέ δεν θα μπορούσε να εντοπίσει αρκετούς παραβάτες για να αποτραπεί η συμπεριφορά αυτή. Έτσι, σκοπεύουμε να επανέλθουμε σε αυτό το ζήτημα όταν ηρεμήσουν τα πράγματα.
Για την επόμενη ενότητα, θα δώσω τη σκυτάλη στον ειδικό μας περί TFT, τον νεαρό Rioter K3o. Όπως υπονοεί το όνομά του, είναι δεινότατος παίκτης πόκερ, ημίθεος στα θέματα του TFT και γενικώς large τύπος.
Το TFT δημιούργησε μια μοναδική ευκαιρία για την Ομάδα Καταπολέμησης Απάτης το 2019: Πώς θα χειριστούμε τα θέματα ακεραιότητας του συναγωνισμού για ένα παιχνίδι που δεν υπήρχε καν πριν από έναν χρόνο;
«Για το autobattler δεν υπήρχαν προηγούμενα παραδείγματα που να άντεξαν στον χρόνο. Δεν υπήρχαν πρότυπα παραγωγής.»
Για να σχεδιάσουμε την προσέγγισή μας κατά της απάτης, έπρεπε πρώτα να προσδιορίσουμε τα κύρια στοιχεία του παιχνιδιού που έπρεπε να διαφυλαχτούν. Σαν παιχνίδι, το TFT ανταμείβει τους παίκτες που μπορούν να σχεδιάσουν και να προσαρμοστούν σε μεγαλύτερο βαθμό από τους αντιπάλους τους. Η ευελιξία και η δημιουργικότητα είναι οι κύριες εκφράσεις δεξιοτήτων και δεν πρέπει να είναι δυνατή η αντικατάστασή τους από την απομνημόνευση ή την παπαγαλία. Η προστασία αυτών των απαραίτητων χαρακτηριστικών αποτέλεσε τον πυρήνα της προσέγγισης της Ομάδας Καταπολέμησης Απάτης για το Teamfight Tactics.
Η γρήγορη κυκλοφορία του Teamfight Tactics σε έναν κόσμο πεινασμένο για autobattler ήταν μια επιτυχία. Όμως, για να ολοκληρωθεί τόσο γρήγορα, χρειάστηκε να κόψουμε δρόμο σε ορισμένα σημεία της παραγωγής. Η εμπειρία χρήστη στο TFT δεν παρείχε πολλές δυνατότητες και παραλείπονταν πληροφορίες, όπως τα ποσοστά Ανανέωσης ή οι οικονομικές αυξήσεις. Ενόσω η ομάδα του TFT δούλευε σκληρά για να προσθέσει αυτές τις δυνατότητες εμπειρίας χρήστη, εργαλεία τρίτων, ειδικά όσα χρησιμοποιούσαν υπάρχουσες επικαλύψεις του League of Legends, γέμισαν το κενό. Ωστόσο, καθώς αυτές οι εφαρμογές άρχισαν να συμπεριλαμβάνουν όλο και περισσότερες δυνατότητες, αναγκαστήκαμε να αναρωτηθούμε: «Πού θα τραβήξουμε τη διαχωριστική γραμμή;»
Οι εφαρμογές είχαν αρχίσει όχι απλώς να ενημερώνουν τους παίκτες για στατικές πτυχές του παιχνιδιού, αλλά να προσπαθούν να πάρουν αποφάσεις για λογαριασμό τους. Ανησυχούσαμε ότι υπήρχε κίνδυνος να πέσουμε στην παγίδα του αυτοματοποιημένου παιχνιδιού, καθώς και για την πολύ περιοριστική φύση τέτοιων λύσεων. Το να προωθήσουμε μια εντελώς προκαθορισμένη εμπειρία παιχνιδιού θα αποθάρρυνε τους παίκτες από το να ανακαλύψουν δικές τους, νέες στρατηγικές, κάτι που θεωρούμε ότι είναι ένα από τα πιο συναρπαστικά χαρακτηριστικά του παιχνιδιού.
Για να προστατεύσουμε την ακεραιότητα του τρόπου παιχνιδιού προσδιορίσαμε, με βοήθεια από τις ομάδες Τρόπου Παιχνιδιού και Οικοσυστήματος Τρίτων, τους κανόνες που καθορίζουν τι επιτρέπεται και τι όχι στο TFT:
Η ομάδα Οικοσυστήματος Τρίτων έχει κάνει εξαιρετική δουλειά όσον αφορά τη διατήρηση της σχέσης μας με τους προγραμματιστές για την τήρηση αυτών των προτύπων, ενώ και η ομάδα Καταπολέμησης Απάτης είναι σε επιφυλακή για τις περιπτώσεις όπου η συνεργασία με τους προγραμματιστές δεν είναι τόσο εύκολη.
Για την Κατάταξη του TFT υπάρχουν ορισμένοι προβληματισμοί όσον αφορά τον ανταγωνισμό, όμοιοι με αυτούς που υπάρχουν για το League. Μερικοί μάλιστα είναι πιο έντονοι εδώ, λόγω της μορφής «όλοι εναντίον όλων» του παιχνιδιού. Η ανταλλαγή νικών είναι μια από τις μεγαλύτερες ανησυχίες, λόγω αφενός του συστήματος εύρεσης συμπαικτών και αφετέρου της μηχανικής του παιχνιδιού. Η ομάδα ανταγωνισμού έχει εφαρμόσει περιορισμούς ομάδας ανάμεσα στις ανώτερες βαθμίδες της Κατάταξης, έτσι ώστε να υπάρχει ισορροπία μεταξύ της απόλαυσης ενός παιχνιδιού με χαρακτηριστικά κοινωνικής δικτύωσης και της διατήρησης της ακεραιότητας του ανταγωνισμού. Επίσης, έχουμε αναπτύξει μεθόδους για τον προληπτικό εντοπισμό όσων κάνουν ανταλλαγές νικών.
Ευτυχώς, μέχρι τώρα δεν έχει χρειαστεί η επιθετική τιμωρία λογαριασμών λόγω κατάχρησης. Όμως, καθώς το TFT αρχίζει να ευδοκιμεί ως esport, έχουμε προετοιμαστεί για να διαφυλάξουμε την ανταγωνιστικότητά του.
Ο λόγος τώρα και πάλι στον Phil, γνωστό και ως Δρ. Παίζω και Μαθαίνω.
Αυτή η ενότητα θα είναι συγκριτικά μικρότερη, επειδή και το παιχνίδι είναι συγκριτικά νεότερο. Όπως συμβαίνει στα περισσότερα CCG, η πιο σημαντική μορφή κατάχρησης στο Legends of Runeterra είναι η αυτοματοποίηση (botting).
Το LoR είναι ελαφρώς πιο περίπλοκο από ένα παιχνίδι με χαρτιά, οπότε μέχρι κάποιος τύπος με 3 διδακτορικά και 3000 υπολογιστικούς πόρους στο νέφος EC2 καταφέρει να επιλύσει το ταμπλό, η βασική μας ανησυχία είναι εκείνοι που χρησιμοποιούν botting για περιεχόμενο. Όμως, έως τώρα, το μόνο που έχουμε δει είναι ορισμένα bots παραίτησης.
Το τελευταίο μας γράφημα είναι το ημερήσιο πλήθος των bots παράδοσης στο beta του Legends of Runeterra και, όπως μπορείτε να δείτε, αυτή ήταν μια μάχη που την κερδίσαμε με ένα και μόνο χτύπημα. Παρεμπιπτόντως, αυτό που εννοώ με την έκφραση «bots παράδοσης» είναι ακριβώς αυτό που φαντάζεστε: ένα bot που μπαίνει σε ουρά αναμονής και αμέσως παραδίδεται στον πρώτο αντίπαλο που συναντά. Δηλαδή κάνει κάτι που μοιάζει πολύ με τη δική μου στρατηγική για περιπτώσεις σωματικής αντιπαράθεσης οποιουδήποτε είδους. Ήταν ένα περίεργο πρόβλημα, επειδή τα bots αυτού του τύπου δεν συλλέγουν πραγματικά κάτι (οι ανταμοιβές απώλειας έχουν περιορισμένο ρυθμό). Απλώς περιδιαβαίνουν το οικοσύστημα μοιράζοντας νίκες σε άλλους παίκτες, σαν μεθυσμένα ξωτικά. Πιστεύουμε πως οι δημιουργοί τους χάθηκαν λίγο στον κώδικα προτού καταλάβουν ότι η εμπειρία μειώνεται με κάθε διαδοχική ήττα. Όμως, ειλικρινά, ποιος ξέρει για ποιον λόγο δημιουργήθηκαν;
Όπως κι αν έχει, παρακολουθούμε το θέμα προσεκτικά. Όμως, προκειμένου να αποκτήσουμε το προβάδισμα σε σχέση με τις μηχανές εφαρμόζοντας, παράλληλα, και καλές πρακτικές σχεδίασης, το βασικό μας σχέδιο είναι να φροντίσουμε ώστε τα κίνητρα για αυτοματοποίηση να είναι εξαρχής λίγα. Χάρη στον περιορισμό του ρυθμού προόδου και τις πλήρεις ανταμοιβές στα φιλικά παιχνίδια, ελπίζουμε να μην συναντήσετε ποτέ bots στο LoR.
Κοιτάξτε, τα άτομα που κάνουν cheating στα FPS είναι έμπειρα και δεν σκοπεύουμε ποτέ να υποτιμήσουμε την πλήρη απροθυμία τους να μπουν στον ίσιο δρόμο. Όταν επιβεβαιώθηκε ότι θα κυκλοφορήσουμε παιχνίδι τακτικών βολών, διαγράψαμε αμέσως τους λογαριασμούς μας στο Facebook, κλειδωθήκαμε στο υπόγειο και περάσαμε τους επόμενους 14 μήνες αναπτύσσοντας μια πλατφόρμα κατά της εξαπάτησης, που θα μας βοηθούσε να καταπολεμήσουμε τα cheats για αιώνες ολόκληρους.
Την αποκαλούμε Vanguard, παρέχεται μαζί με το VALORANT και τη χαρίζω με αγάπη σε όλους τους οπαδούς που φαντάζομαι ότι έχω. Χρησιμοποιούμε το κλειστή beta ως μια ευκαιρία να δοκιμάσουμε τις νεκρομαντικές ικανότητές μας, και η έκδοση που εκτελείται αυτήν τη στιγμή είναι στην πραγματικότητα ένας απλός, γυμνός σκελετός. Οι περισσότερες δυνατότητες έχουν επίτηδες απενεργοποιηθεί, αφενός επειδή δεν θέλουμε να προδώσουμε τα μυστικά του κώδικα προτού να μπορέσουν όλοι να πάρουν μια γεύση του και αφετέρου επειδή η δέσμευσή μας στην ασφάλεια σημαίνει ότι θα πάρουμε όσο χρόνο χρειαστεί για να επαληθεύσουμε τη σταθερότητα των συστατικών του κώδικά μας. Με αυτό κατά νου, το Vanguard διαθέτει στοιχείο προγράμματος οδήγησης, αλλά για χάρη της συμβατότητας αυτό ίσως δεν αξιοποιηθεί σε κάθε τίτλο (ή στο League of Legends), εκτός αν κριθεί απαραίτητο.
Και τυχαίνει τελευταία να μπαίνουμε και στο ίντερνετ, οπότε ξέρουμε ότι τα προγράμματα οδήγησης έχουν και προβλήματα απορρήτου. Όμως, επιτρέψτε μου να σας ξεκαθαρίσω ΑΠΟΛΥΤΑ κάτι: Είμαστε μια ομάδα καταπολέμησης απάτης, γράφουμε κώδικα που μπαίνει σε εφαρμογές παιχνιδιού (που χρησιμοποιούνται από άτομα που ανήκουν και στις δύο πλευρές αυτής της μάχης) εδώ και σχεδόν μία δεκαετία και, αν θέλαμε πρόσβαση στα μυστικά των χρηστών, ειλικρινά θα την είχαμε αποκτήσει ήδη. Ξέρω ότι κάτι τέτοιο ακούγεται σαν αρνητική διαφήμιση, αλλά εγώ δεν ανήκω στο τμήμα Διαφήμισης. Συλλέγουμε πληροφορίες που αρκούν μόνο για να προσδιοριστεί με ακρίβεια αν ένας παίκτης κάνει εξαπάτηση, και μπορείτε άφοβα να έχετε εμπιστοσύνη στην πλήρη αδιαφορία μας για οτιδήποτε άλλο. Το πρόγραμμα οδήγησης φορτώνεται πρώτο και παραμένει φορτωμένο για να μπορούμε ευκολότερα να γνωρίζουμε αν έχει παραποιηθεί. Αξίζει τον κόπο γιατί προκαλεί ενόχληση στους cheaters, κι αυτό το ξέρουμε γιατί κι εμείς έχουμε βρεθεί στη θέση τους.
Και, επίσης, παρακαλώ να καταγραφεί στα πρακτικά ότι αυτός δεν είναι ο μόνος τρόπος με τον οποίο προστατεύουμε το VALORANT: Ο Arkem, από την ομάδα μας, μαστορεύει διάφορα με βάση την τεχνολογία σέρβερ της Ομίχλης Πολέμου, εφαρμόζοντας σχέδια που διασφαλίζουν ότι οι εφαρμογές του παιχνιδιού δεν έχουν πρόσβαση σε πληροφορίες παρά μόνο όταν τις χρειάζονται. Διαβάστε με ποιον τρόπο προσπαθούμε να εξαλείψουμε τα μέντιουμ από τα παιχνίδια βολών πρώτου προσώπου μπλοκάροντας την απόκρυφη ενέργεια του περιβάλλοντος.
Νομίζω πως τώρα πρέπει να τελειώσω αυτήν την ατέλειωτη παρουσίαση, όμως παρακαλώ κάντε like, subscribe και θυμηθείτε να κάνετε και κάνα δωράκι στον διαχειριστή της βάσης δεδομένων. Μπορεί να μην κάνουμε πάντα την παρουσία μας αισθητή, αλλά σαν Ομάδα Καταπολέμησης Απάτης είμαστε πάντα εδώ, με τον κώδικά μας, παλεύοντας για το δικαίωμά σας σε μια ισότιμη ανταγωνιστική εμπειρία.
Επίσης, έχουμε πλέον επίσημα ξεμείνει από splash αμφιέσεων «Riot» που χρησιμοποιούμε γι' αυτά τα άρθρα, έτσι δεν μπορώ να επιστρέψω σε υλική μορφή μέχρι να κυκλοφορήσουμε και καμιά ακόμα. Τα λέμε.
1 Κάθε φορά που κυκλοφορούμε νέες τεχνολογίες, μας ενδιαφέρουν πάντα οι αδυναμίες τους. Αν κάποια στιγμή νιώσετε μια ακατανίκητη ορμή να τα κάνετε λίμπα, εξετάστε το ενδεχόμενο να γίνετε μέλος του προγράμματος hackerone ως Θεός Τεχνολογιών κατά της Αλλοίωσης Κώδικα.
2 Στην προσπάθειά τους να ξεφύγουν από το Πανίσχυρο Μάτι μας, μερικές σουίτες scripting ισχυρίζονται ότι πλέον κάνουν χρήση «εξωτερικών πόρων». Αυτό που πραγματικά εννοούν είναι ότι πλέον δεν καλούν άμεσα συναρτήσεις του παιχνιδιού, αλλά μόνο διαβάζουν τη μνήμη της εφαρμογής παιχνιδιού (από το λειτουργικό σύστημα) και προσομοιώνουν την εισαγωγή δεδομένων από τα περιφερειακά. Στην πραγματικότητα, αυτό παρέχει στον cheater μικρότερη προστασία σε σχέση με τις παραδοσιακές μεθόδους (δεν είναι δυνατή η τροποποίηση των δεδομένων καταπολέμησης απάτης), αλλά καταφέρνει να παρακάμψει τις πιο εμφανείς μεθόδους αγνωστικού εντοπισμού. Μια ακόμα παρενέργεια είναι ότι μειώνει την απόδοση του cheat, κυρίως επειδή αποστέλλει πληροφορίες για πατήματα πλήκτρων και όχι απευθείας αιτήματα χρήσης ικανότητας.
3 Δεν θα αποκαλύψω τις λέξεις-κλειδιά που επιλέξαμε ανά περιοχή, επειδή υπάρχει μια συγκεκριμένη ομάδα ατόμων που θα τις χρησιμοποιούσε κακόβουλα για να καταστρέψει τους πίνακες ελέγχου που με τόση προσοχή έφτιαξα. Και αυτό δεν είναι κάτι που ένας επιστήμονας δεδομένων θα αποκαλούσε «καλά στατιστικά στοιχεία».
4 Δεν υπάρχει τέτοιο πράγμα.
5 Ένα headless bot είναι μια προσομοιωμένη εφαρμογή παιχνιδιού. Ένα ιδανικό bot τέτοιου τύπου δεν θα απαιτούσε σχεδόν καθόλου πόρους, επειδή θα επικοινωνούσε απευθείας με τον σέρβερ του παιχνιδιού. Δεν θα υπήρχε τίποτα προς απόδοση και καμία εισαγωγή δεδομένων, απλώς καθαρή κίνηση δικτύου. Κάτι τέτοιο θα ήταν ιδιαίτερα μη ιδανικό όσον αφορά τον όγκο δεδομένων, επειδή δεν θα υπήρχε πραγματικό όριο στο πόσες παρουσίες θα μπορούσε να φιλοξενεί κάθε προγραμματιστής ταυτόχρονα. Όμως, χάρη στην 4.20 και τη σχετική ενημέρωση στο πρωτόκολλο δικτύου που χρησιμοποιούμε, δεν είμαστε πολύ ευάλωτοι (για την ακρίβεια, είμαστε σχεδόν άτρωτοι) στις headless εφαρμογές.
6 Είναι απίστευτο το πόσο μοιάζουν με βακτηρίδια οι εφαρμογές botting. Ο πληθυσμός τους είναι μεγάλος, μεταβάλλονται εύκολα και παρουσιάζονται γρήγορα. Όποτε αναπτύσσουμε μια «θεραπεία», αυτά που ξεφεύγουν μπαίνουν πάντα ξανά σε προτεραιότητα από τους προγραμματιστές τους, με αποτέλεσμα την «αναπαραγωγή» τους. Είναι περίπου όπως όταν βγάζεις εξάνθημα ανθεκτικό στα φάρμακα, που δεν καταλαβαίνει ότι, για το καλό του, πρέπει να απεγκατασταθεί από τον οργανισμό σου.